@@ -3569,30 +3569,40 @@ module LDecl = struct
35693569 let fresh_id hyps s = fresh_id (tohyps hyps) s
35703570 let fresh_ids hyps s = snd (fresh_ids (tohyps hyps) s)
35713571
3572+ (* ------------------------------------------------------------------ *)
3573+ let mapenv (f : env -> env ) (lenv : hyps ) =
3574+ { lenv with le_env = f lenv.le_env }
3575+
35723576 (* ------------------------------------------------------------------ *)
35733577 let push_active_ss m lenv =
3574- { lenv with le_env = Memory. push_active_ss m lenv.le_env }
3578+ mapenv ( Memory. push_active_ss m) lenv
35753579
35763580 let push_active_ts ml mr lenv =
3577- { lenv with le_env = Memory. push_active_ts ml mr lenv.le_env }
3581+ mapenv ( Memory. push_active_ts ml mr) lenv
35783582
35793583 let push_all l lenv =
3580- { lenv with le_env = Memory. push_all l lenv.le_env }
3584+ mapenv (Memory. push_all l) lenv
3585+
3586+ let push_active_all l lenv =
3587+ let lenv = mapenv (Memory. push_all l) lenv in
3588+
3589+ match l with
3590+ | [(m, _)] -> mapenv (Memory. set_active_ss m) lenv
3591+ | _ -> lenv
35813592
35823593 let hoareF mem xp lenv =
35833594 let env1, env2 = Fun. hoareF mem xp lenv.le_env in
3584- { lenv with le_env = env1}, {lenv with le_env = env2 }
3595+ { lenv with le_env = env1 }, { lenv with le_env = env2 }
35853596
35863597 let equivF ml mr xp1 xp2 lenv =
35873598 let env1, env2 = Fun. equivF ml mr xp1 xp2 lenv.le_env in
3588- { lenv with le_env = env1}, {lenv with le_env = env2 }
3599+ { lenv with le_env = env1 }, { lenv with le_env = env2 }
35893600
35903601 let inv_memenv ml mr lenv =
3591- { lenv with le_env = Fun. inv_memenv ml mr lenv.le_env }
3602+ mapenv ( Fun. inv_memenv ml mr) lenv
35923603
35933604 let inv_memenv1 m lenv =
3594- { lenv with le_env = Fun. inv_memenv1 m lenv.le_env }
3605+ mapenv ( Fun. inv_memenv1 m) lenv
35953606end
35963607
3597-
35983608let pp_debug_form = ref (fun _env _f -> assert false )
0 commit comments