aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-09-12 11:38:09 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-09-12 11:38:09 +0000
commit34bc13e0ef3642244fe77fe8a8a7869fbc8d2fca (patch)
tree1b681cce520d8ba260651969ee96d0fb313ef166 /proofs
parent5cd3851617123736fafa3b81688bb63d850b9dd4 (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.ml26
-rw-r--r--proofs/clenvtac.mli4
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