@@ -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 =
451451let 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(* -------------------------------------------------------------------- *)
465467let 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
487491let 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(* -------------------------------------------------------------------- *)
0 commit comments