aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs/clenvtac.ml
diff options
context:
space:
mode:
Diffstat (limited to 'proofs/clenvtac.ml')
-rw-r--r--proofs/clenvtac.ml26
1 files changed, 7 insertions, 19 deletions
diff --git a/proofs/clenvtac.ml b/proofs/clenvtac.ml
index 2d972068d..aa2ff18ce 100644
--- a/proofs/clenvtac.ml
+++ b/proofs/clenvtac.ml
@@ -48,7 +48,7 @@ let clenv_cast_meta clenv =
match kind_of_term (strip_outer_cast u) with
| Meta mv ->
(try
- match Metamap.find mv clenv.env with
+ match Metamap.find mv (metas_of clenv.env) with
| Cltyp b ->
let b' = clenv_nf_meta clenv b.rebus in
if occur_meta b' then u else mkCast (mkMeta mv, b')
@@ -62,26 +62,14 @@ let clenv_cast_meta clenv =
in
crec
-
let clenv_refine clenv gls =
tclTHEN
- (tclEVARS clenv.hook.sigma)
- (refine (clenv_value clenv)) gls
-
-let clenv_refine_cast clenv gls =
- tclTHEN
- (tclEVARS clenv.hook.sigma)
+ (tclEVARS (evars_of clenv.env))
(refine (clenv_cast_meta clenv (clenv_value clenv)))
gls
-let res_pf clenv gls =
- clenv_refine (clenv_unique_resolver false clenv gls) gls
-
-let res_pf_cast clenv gls =
- clenv_refine_cast (clenv_unique_resolver false clenv gls) gls
-
-let elim_res_pf clenv allow_K gls =
- clenv_refine_cast (clenv_unique_resolver allow_K clenv gls) gls
+let res_pf clenv ?(allow_K=false) gls =
+ clenv_refine (clenv_unique_resolver allow_K clenv gls) gls
let elim_res_pf_THEN_i clenv tac gls =
let clenv' = (clenv_unique_resolver true clenv gls) in
@@ -102,9 +90,9 @@ let e_res_pf clenv gls =
(* let unifyTerms m n = walking (fun wc -> fst (w_Unify CONV m n [] wc)) *)
let unifyTerms m n gls =
let env = pf_env gls in
- let maps = (create_evar_defs (project gls), Evd.Metamap.empty) in
- let maps' = Unification.w_unify false env CONV m n maps in
- tclIDTAC {it = gls.it; sigma = evars_of (fst maps')}
+ let evd = create_evar_defs (project gls) in
+ let evd' = Unification.w_unify false env CONV m n evd in
+ tclIDTAC {it = gls.it; sigma = evars_of evd'}
let unify m gls =
let n = pf_concl gls in unifyTerms m n gls