@@ -350,8 +358,7 @@ Ltac create_protected_evar A :=
...
@@ -350,8 +358,7 @@ Ltac create_protected_evar A :=
Ltacunfold_instantiated_evar_hookH:=idtac.
Ltacunfold_instantiated_evar_hookH:=idtac.
Ltacunfold_instantiated_evarH:=
Ltacunfold_instantiated_evarH:=
(* Necessary because the lets might contain evars. *)
liUnfoldLetsContainingH;
liUnfoldLetsInContext;
unfold_instantiated_evar_hookH;
unfold_instantiated_evar_hookH;
revertH;
revertH;
repeatmatchgoalwith
repeatmatchgoalwith
...
@@ -384,10 +391,9 @@ Ltac unfold_instantiated_evar H :=
...
@@ -384,10 +391,9 @@ Ltac unfold_instantiated_evar H :=
It can use _ to create new evars, but they should be surrounded by [protected (EVAR_ID _)] such that instantiate_protected can find them and create the right let bindings afterwards.
It can use _ to create new evars, but they should be surrounded by [protected (EVAR_ID _)] such that instantiate_protected can find them and create the right let bindings afterwards.
*)
*)
Ltacinstantiate_protectedH'tac_with:=
Ltacinstantiate_protectedH'tac_with:=
(* Necessary because the lets might contain evars. *)
liUnfoldLetsInContext;
lazymatchH'with
lazymatchH'with
|protected?H=>
|protected?H=>
liUnfoldLetsContainingH;
unfoldEVAR_IDinH;
unfoldEVAR_IDinH;
(* we have to be vary careful how we instantiate the evar, as it
(* we have to be vary careful how we instantiate the evar, as it
may not rely on things introduced later (even let bindings),
may not rely on things introduced later (even let bindings),