Skip to content

Commit 76b7c76

Browse files
committed
fix byehoare
1 parent b46c8c7 commit 76b7c76

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/phl/ecPhlDeno.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ let t_ehoare_deno_r pre post tc =
104104
(* building the substitution for the pre *)
105105
let sargs = PVM.add env pv_arg (fst mpr) pr.pr_args PVM.empty in
106106
let smem = Fsubst.f_bind_mem Fsubst.f_subst_id (fst mpr) pr.pr_mem in
107+
let pre = ss_inv_rebind pre pr.pr_mem in
107108
let pre = Fsubst.f_subst smem (PVM.subst env sargs pre.inv) in
108109
let concl_pr = f_xreal_le pre (f_r2xr bd) in
109110

tests/byehoare-arg.ec

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
require import AllCore Int Real Xreal.
2+
3+
module M = {
4+
proc main(x : int) = {
5+
return x;
6+
}
7+
}.
8+
9+
lemma L &m (_x : int):
10+
Pr [ M.main(_x) @ &m : _x = res ] <= 1%r.
11+
proof.
12+
byehoare (_: ((arg = _x) `|` (1%xr)) ==> _) => //.
13+
- proc; auto => &hr.
14+
by apply xle_cxr_r => ->.
15+
qed.
16+

0 commit comments

Comments
 (0)