Skip to content
Snippets Groups Projects
Commit 22eea516 authored by DAILLER Sylvain's avatar DAILLER Sylvain
Browse files

Merge branch '185_let_premise_apply' into 'master'

[transform apply] let is now a premise for applied condition of apply

See merge request why3/why3!23
parents 58a3584f 35ffacad
No related branches found
No related tags found
No related merge requests found
module Test
function f int : int = 17
predicate p int int
axiom A: forall x y. x = f y -> p x y
axiom B: forall y. let x = f y in p x y
goal g : p 17 42
end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="5">
<file name="../185_apply_let.mlw" proved="true">
<theory name="Test" proved="true">
<goal name="g" proved="true">
<transf name="apply" proved="true" arg1="B">
<goal name="g.0" proved="true">
<transf name="compute_in_goal" proved="true" >
</transf>
</goal>
</transf>
</goal>
</theory>
</file>
</why3session>
File added
...@@ -35,6 +35,10 @@ let intros f = ...@@ -35,6 +35,10 @@ let intros f =
| Tquant (Tforall, fq) -> | Tquant (Tforall, fq) ->
let vsl, _, fs = t_open_quant fq in let vsl, _, fs = t_open_quant fq in
intros_aux lp (lv @ vsl) fs intros_aux lp (lv @ vsl) fs
| Tlet (t, tb) ->
let vs, t2 = t_open_bound tb in
let f = t_equ (t_var vs) t in
intros_aux (f :: lp) ([vs] @ lv) t2
| _ -> (lp, lv, f) in | _ -> (lp, lv, f) in
intros_aux [] [] f intros_aux [] [] f
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment