aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2015-09-27 16:36:10 +0200
committerPierre-Marie Pédrot2015-09-27 16:47:30 +0200
commit9cadb903b7c3a3be8014152b293cd5ade3a7c8b7 (patch)
treefb4a962f5776a90c74ec14eb40175c95eb6604fc
parentca14b0bb67c9db000736333a056fc147c6f5199c (diff)
Removing subst_defined_metas_evars from Evd.
-rw-r--r--engine/evd.ml12
-rw-r--r--engine/evd.mli1
-rw-r--r--pretyping/unification.ml13
3 files changed, 13 insertions, 13 deletions
diff --git a/engine/evd.ml b/engine/evd.ml
index ae382cab45..9c53006c13 100644
--- a/engine/evd.ml
+++ b/engine/evd.ml
@@ -1504,18 +1504,6 @@ let retract_coercible_metas evd =
let metas = Metamap.smartmapi map evd.metas in
!mc, set_metas evd metas
-let subst_defined_metas_evars (bl,el) c =
- let rec substrec c = match kind_of_term c with
- | Meta i ->
- let select (j,_,_) = Int.equal i j in
- substrec (pi2 (List.find select bl))
- | Evar (evk,args) ->
- let select (_,(evk',args'),_) = Evar.equal evk evk' && Array.equal Constr.equal args args' in
- (try substrec (pi3 (List.find select el))
- with Not_found -> map_constr substrec c)
- | _ -> map_constr substrec c
- in try Some (substrec c) with Not_found -> None
-
let evar_source_of_meta mv evd =
match meta_name evd mv with
| Anonymous -> (Loc.ghost,Evar_kinds.GoalEvar)
diff --git a/engine/evd.mli b/engine/evd.mli
index 0902191818..cfe4adc09d 100644
--- a/engine/evd.mli
+++ b/engine/evd.mli
@@ -457,7 +457,6 @@ val map_metas_fvalue : (constr -> constr) -> evar_map -> evar_map
type metabinding = metavariable * constr * instance_status
val retract_coercible_metas : evar_map -> metabinding list * evar_map
-val subst_defined_metas_evars : metabinding list * ('a * existential * constr) list -> constr -> constr option
(** {5 FIXME: Nothing to do here} *)
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index 24e06007e9..123f9b8cd3 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -554,6 +554,19 @@ let isAllowedEvar flags c = match kind_of_term c with
| Evar (evk,_) -> not (Evar.Set.mem evk flags.frozen_evars)
| _ -> false
+
+let subst_defined_metas_evars (bl,el) c =
+ let rec substrec c = match kind_of_term c with
+ | Meta i ->
+ let select (j,_,_) = Int.equal i j in
+ substrec (pi2 (List.find select bl))
+ | Evar (evk,args) ->
+ let select (_,(evk',args'),_) = Evar.equal evk evk' && Array.equal Constr.equal args args' in
+ (try substrec (pi3 (List.find select el))
+ with Not_found -> map_constr substrec c)
+ | _ -> map_constr substrec c
+ in try Some (substrec c) with Not_found -> None
+
let check_compatibility env pbty flags (sigma,metasubst,evarsubst) tyM tyN =
match subst_defined_metas_evars (metasubst,[]) tyM with
| None -> sigma