diff options
author | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2004-09-12 11:38:09 +0000 |
---|---|---|
committer | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2004-09-12 11:38:09 +0000 |
commit | 34bc13e0ef3642244fe77fe8a8a7869fbc8d2fca (patch) | |
tree | 1b681cce520d8ba260651969ee96d0fb313ef166 /proofs | |
parent | 5cd3851617123736fafa3b81688bb63d850b9dd4 (diff) |
inclusion de meta_map dans evar_defs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6099 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs')
-rw-r--r-- | proofs/clenvtac.ml | 26 | ||||
-rw-r--r-- | proofs/clenvtac.mli | 4 |
2 files changed, 8 insertions, 22 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 diff --git a/proofs/clenvtac.mli b/proofs/clenvtac.mli index c463d75e3..cc75af0fc 100644 --- a/proofs/clenvtac.mli +++ b/proofs/clenvtac.mli @@ -21,8 +21,6 @@ open Proof_type (* Tactics *) val unify : constr -> tactic val clenv_refine : clausenv -> tactic -val res_pf : clausenv -> tactic -val res_pf_cast : clausenv -> tactic -val elim_res_pf : clausenv -> bool -> tactic +val res_pf : clausenv -> ?allow_K:bool -> tactic val e_res_pf : clausenv -> tactic val elim_res_pf_THEN_i : clausenv -> (clausenv -> tactic array) -> tactic |