Skip to content

Commit 5fc36fe

Browse files
committed
fix proc*
1 parent 22127bc commit 5fc36fe

7 files changed

Lines changed: 40 additions & 32 deletions

File tree

src/ecPV.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,8 @@ module Mpv2 = struct
823823
List.fold_left2 do1 local ids1 ids2
824824
with _ -> raise EqObsInError
825825

826-
let needed_eq env ml mr f =
826+
let needed_eq env f =
827+
let ml, mr = f.ml, f.mr in
827828

828829
let rec add_eq local eqs f1 f2 =
829830
match f1.f_node, f2.f_node with
@@ -897,8 +898,7 @@ module Mpv2 = struct
897898
end
898899
| _ -> raise Not_found in
899900

900-
try aux Mid.empty empty f
901-
with _ -> raise Not_found
901+
aux Mid.empty empty f.inv
902902

903903
let check_glob eqs =
904904
Mnpv.iter (fun pv (s,_)->

src/ecPV.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ module Mpv2 : sig
158158
val to_form_ts_inv : t -> ts_inv -> ts_inv
159159
val to_form : t -> memory -> memory -> form -> form
160160
val of_form : env -> ts_inv -> t
161-
val needed_eq : env -> EcIdent.t -> EcIdent.t -> form -> t
161+
val needed_eq : env -> ts_inv -> t
162162
val union : t -> t -> t
163163
val subset : t -> t -> bool
164164
val equal : t -> t -> bool

src/phl/ecPhlCall.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,10 @@ let t_bdhoare_call fpre fpost opt_bd tc =
239239
let t_equiv_call fpre fpost tc =
240240
let env, hyps, _ = FApi.tc1_eflat tc in
241241
let es = tc1_as_equivS tc in
242+
let ml, mr = fst es.es_ml, fst es.es_mr in
243+
let fpre = ts_inv_rebind fpre ml mr in
244+
let fpost = ts_inv_rebind fpost ml mr in
245+
242246
let (lpl,fl,argsl),sl = tc1_last_call tc es.es_sl in
243247
let (lpr,fr,argsr),sr = tc1_last_call tc es.es_sr in
244248
(* The functions satisfy their specification *)

src/phl/ecPhlDeno.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ let post_iff ml mr eq env evl evr =
438438
try
439439
if not eq then raise Not_found;
440440
Mpv2.to_form
441-
(Mpv2.needed_eq env ml mr post) ml mr f_true
441+
(Mpv2.needed_eq env {ml; mr; inv=post}) ml mr f_true
442442
with Not_found -> post
443443

444444
(* -------------------------------------------------------------------- *)

src/phl/ecPhlEqobs.ml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,8 @@ let process_eqobs_inS info tc =
457457
| Some pf ->
458458
process_eqs env tc (TTC.tc1_process_prhl_formula tc pf)
459459
| None ->
460-
try Mpv2.needed_eq env mleft mright es.es_po
461-
with _ -> tc_error !!tc "cannot infer the set of equalities" in
460+
try Mpv2.needed_eq env (es_po es)
461+
with Not_found -> tc_error !!tc "cannot infer the set of equalities" in
462462
let post = Mpv2.to_form_ts_inv eqo inv in
463463
let sim = init_sim env spec inv in
464464
let t_main tc =
@@ -501,7 +501,7 @@ let process_eqobs_inF info tc =
501501
| Some pf ->
502502
process_eqs env tc (TTC.tc1_process_prhl_form tc tbool pf)
503503
| None ->
504-
try Mpv2.needed_eq env mleft mright ef.ef_po
504+
try Mpv2.needed_eq env (ef_po ef)
505505
with _ -> tc_error !!tc "cannot infer the set of equalities" in
506506
let eqo = Mpv2.remove env pv_res pv_res eqo in
507507
let sim = init_sim env spec inv in
@@ -519,7 +519,6 @@ let process_eqobs_in cm info tc =
519519
let prett cm tc =
520520
let dt, ts = EcHiGoal.process_crushmode cm in
521521
EcPhlConseq.t_conseqauto ~delta:dt ?tsolve:ts tc in
522-
523522
let tt tc =
524523
let concl = FApi.tc1_goal tc in
525524
match concl.f_node with

src/phl/ecPhlFun.ml

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,8 @@ let t_fun_to_code_hoare_r tc =
425425
let spo = ToCodeLow.add_var env pv_res m r me PVM.empty in
426426
let pre = PVM.subst env spr (hf_pr hf).inv in
427427
let post = PVM.subst env spo (hf_po hf).inv in
428-
let concl = f_hoareS (snd me) {m;inv=pre} st {m;inv=post} in
429-
428+
let m, mt = me in
429+
let concl = f_hoareS mt {m;inv=pre} st {m;inv=post} in
430430
FApi.xmutate1 tc `FunToCode [concl]
431431

432432
(* -------------------------------------------------------------------- *)
@@ -435,14 +435,14 @@ let t_fun_to_code_ehoare_r tc =
435435
let hf = tc1_as_ehoareF tc in
436436
let f = hf.ehf_f in
437437
let m = hf.ehf_m in
438-
let (_,mt) as me, st, r, a = ToCodeLow.to_code env f m in
438+
let me, st, r, a = ToCodeLow.to_code env f m in
439439
let spr = ToCodeLow.add_var_tuple env pv_arg m a me PVM.empty in
440440
let spo = ToCodeLow.add_var env pv_res mhr r me PVM.empty in
441441

442442
let pre = PVM.subst env spr hf.ehf_pr in
443443

444444
let post = PVM.subst env spo hf.ehf_po in
445-
445+
let m, mt = me in
446446
let concl = f_eHoareS mt {m;inv=pre} st {m;inv=post} in
447447

448448
FApi.xmutate1 tc `FunToCode [concl]
@@ -451,59 +451,65 @@ let t_fun_to_code_ehoare_r tc =
451451
let t_fun_to_code_bdhoare_r tc =
452452
let env = FApi.tc1_env tc in
453453
let hf = tc1_as_bdhoareF tc in
454+
let m0 = hf.bhf_m in
454455
let f = hf.bhf_f in
455-
let m, st, r, a = ToCodeLow.to_code env f mhr in
456-
let spr = ToCodeLow.add_var_tuple env pv_arg mhr a m PVM.empty in
457-
let spo = ToCodeLow.add_var env pv_res mhr r m PVM.empty in
456+
let m, st, r, a = ToCodeLow.to_code env f m0 in
457+
let spr = ToCodeLow.add_var_tuple env pv_arg m0 a m PVM.empty in
458+
let spo = ToCodeLow.add_var env pv_res m0 r m PVM.empty in
458459
let pre = PVM.subst env spr hf.bhf_pr in
459460
let post = PVM.subst env spo hf.bhf_po in
460461
let bd = PVM.subst env spr hf.bhf_bd in
461-
let concl = f_bdHoareS_old m pre st post hf.bhf_cmp bd in
462+
let m, mt = m in
463+
let concl = f_bdHoareS mt {m;inv=pre} st {m;inv=post} hf.bhf_cmp {m;inv=bd} in
462464
FApi.xmutate1 tc `FunToCode [concl]
463465

464466
(* -------------------------------------------------------------------- *)
465467
let t_fun_to_code_equiv_r tc =
466468
let env = FApi.tc1_env tc in
467469
let ef = tc1_as_equivF tc in
470+
let ml0, mr0 = ef.ef_ml, ef.ef_mr in
468471
let (fl,fr) = ef.ef_fl, ef.ef_fr in
469-
let ml, sl, rl, al = ToCodeLow.to_code env fl mleft in
470-
let mr, sr, rr, ar = ToCodeLow.to_code env fr mright in
472+
let ml, sl, rl, al = ToCodeLow.to_code env fl ml0 in
473+
let mr, sr, rr, ar = ToCodeLow.to_code env fr mr0 in
471474
let spr =
472475
let s = PVM.empty in
473-
let s = ToCodeLow.add_var_tuple env pv_arg mleft al ml s in
474-
let s = ToCodeLow.add_var_tuple env pv_arg mright ar mr s in
476+
let s = ToCodeLow.add_var_tuple env pv_arg ml0 al ml s in
477+
let s = ToCodeLow.add_var_tuple env pv_arg mr0 ar mr s in
475478
s in
476479
let spo =
477480
let s = PVM.empty in
478-
let s = ToCodeLow.add_var env pv_res mleft rl ml s in
479-
let s = ToCodeLow.add_var env pv_res mright rr mr s in
481+
let s = ToCodeLow.add_var env pv_res ml0 rl ml s in
482+
let s = ToCodeLow.add_var env pv_res mr0 rr mr s in
480483
s in
481484
let pre = PVM.subst env spr ef.ef_pr in
482485
let post = PVM.subst env spo ef.ef_po in
483-
let concl = f_equivS_old ml mr pre sl sr post in
486+
let (ml, mlt), (mr, mrt) = ml, mr in
487+
let concl = f_equivS mlt mrt {ml;mr;inv=pre} sl sr {ml;mr;inv=post} in
484488

485489
FApi.xmutate1 tc `FunToCode [concl]
486490

487491
let t_fun_to_code_eager_r tc =
488492
let env = FApi.tc1_env tc in
489493
let eg = tc1_as_eagerF tc in
494+
let ml0, mr0 = eg.eg_ml, eg.eg_mr in
490495
let (fl,fr) = eg.eg_fl, eg.eg_fr in
491-
let ml, sl, rl, al = ToCodeLow.to_code env fl mleft in
492-
let mr, sr, rr, ar = ToCodeLow.to_code env fr mright in
496+
let ml, sl, rl, al = ToCodeLow.to_code env fl ml0 in
497+
let mr, sr, rr, ar = ToCodeLow.to_code env fr mr0 in
493498
let spr =
494499
let s = PVM.empty in
495-
let s = ToCodeLow.add_var_tuple env pv_arg mleft al ml s in
496-
let s = ToCodeLow.add_var_tuple env pv_arg mright ar mr s in
500+
let s = ToCodeLow.add_var_tuple env pv_arg ml0 al ml s in
501+
let s = ToCodeLow.add_var_tuple env pv_arg mr0 ar mr s in
497502
s in
498503
let spo =
499504
let s = PVM.empty in
500-
let s = ToCodeLow.add_var env pv_res mleft rl ml s in
501-
let s = ToCodeLow.add_var env pv_res mright rr mr s in
505+
let s = ToCodeLow.add_var env pv_res ml0 rl ml s in
506+
let s = ToCodeLow.add_var env pv_res mr0 rr mr s in
502507
s in
503508
let pre = PVM.subst env spr eg.eg_pr in
504509
let post = PVM.subst env spo eg.eg_po in
510+
let (ml, mlt), (mr, mrt) = ml, mr in
505511
let concl =
506-
f_equivS_old ml mr pre (s_seq eg.eg_sl sl) (s_seq sr eg.eg_sr) post in
512+
f_equivS mlt mrt {ml;mr;inv=pre} (s_seq eg.eg_sl sl) (s_seq sr eg.eg_sr) {ml;mr;inv=post} in
507513
FApi.xmutate1 tc `FunToCode [concl]
508514

509515
(* -------------------------------------------------------------------- *)

src/phl/ecPhlTrans.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ module Low = struct
4747
let cond1, cond2 =
4848
transitivity_side_cond hyps
4949
m1 m3 m1 m3 (es_pr es) (es_po es) p1 q1 mt p2 q2 in
50-
!pp_debug_form (FApi.tc1_env tc) cond1;
5150
let cond3 =
5251
f_equivS (snd es.es_ml) mt p1 es.es_sl c2 q1 in
5352
let cond4 =

0 commit comments

Comments
 (0)