diff options
Diffstat (limited to 'proofs')
-rw-r--r-- | proofs/clenvtac.ml | 2 | ||||
-rw-r--r-- | proofs/proofview.ml | 3 | ||||
-rw-r--r-- | proofs/proofview.mli | 6 |
3 files changed, 9 insertions, 2 deletions
diff --git a/proofs/clenvtac.ml b/proofs/clenvtac.ml index 94731b039..99ea2300c 100644 --- a/proofs/clenvtac.ml +++ b/proofs/clenvtac.ml @@ -123,7 +123,7 @@ let unify ?(flags=fail_quick_unif_flags) m = let evd = create_goal_evar_defs (Proofview.Goal.sigma gl) in try let evd' = w_unify env evd CONV ~flags m n in - Proofview.V82.tclEVARS evd' + Proofview.V82.tclEVARSADVANCE evd' with e when Errors.noncritical e -> (** This is Tacticals.tclFAIL *) Proofview.tclZERO (FailError (0, lazy (Errors.print e))) diff --git a/proofs/proofview.ml b/proofs/proofview.ml index bc6ce4fc6..a97add1ce 100644 --- a/proofs/proofview.ml +++ b/proofs/proofview.ml @@ -804,6 +804,9 @@ module V82 = struct let tclEVARS evd = Proof.modify (fun ps -> { ps with solution = evd }) + let tclEVARSADVANCE evd = + Proof.modify (fun ps -> { solution = evd; comb = undefined evd ps.comb }) + let tclEVARUNIVCONTEXT ctx = Proof.modify (fun ps -> { ps with solution = Evd.set_universe_context ps.solution ctx }) diff --git a/proofs/proofview.mli b/proofs/proofview.mli index 3b2dd7ccd..94969f3a5 100644 --- a/proofs/proofview.mli +++ b/proofs/proofview.mli @@ -334,8 +334,12 @@ module V82 : sig (* normalises the evars in the goals, and stores the result in solution. *) val nf_evar_goals : unit tactic - + + (* Assumes the new evar_map does not change existing goals *) val tclEVARS : Evd.evar_map -> unit tactic + + (* Assumes the new evar_map might be solving some existing goals *) + val tclEVARSADVANCE : Evd.evar_map -> unit tactic (* Set the evar universe context *) val tclEVARUNIVCONTEXT : Evd.evar_universe_context -> unit tactic |