aboutsummaryrefslogtreecommitdiff
path: root/kernel/term.ml
diff options
context:
space:
mode:
authormohring2001-02-28 15:49:58 +0000
committermohring2001-02-28 15:49:58 +0000
commit4d00de7ac4ad9d35feb88b605d099f729490ba35 (patch)
tree0b0e620772609f9f3ca4dccbd7dbf9ad95bda963 /kernel/term.ml
parente5e6d2c234e885ba814b67b0421dca3f57659208 (diff)
Changement de subst_meta
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1412 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/term.ml')
-rw-r--r--kernel/term.ml12
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/term.ml b/kernel/term.ml
index f942fe1787..d75bea0087 100644
--- a/kernel/term.ml
+++ b/kernel/term.ml
@@ -940,6 +940,11 @@ let substn_many lamv n =
in
substrec n
+(*
+let substkey = Profile.declare_profile "substn_many";;
+let substn_many lamv n c = Profile.profile3 substkey substn_many lamv n c;;
+*)
+
let substnl laml k =
substn_many (Array.map make_substituend (Array.of_list laml)) k
let substl laml =
@@ -973,6 +978,11 @@ let replace_vars var_alist =
in
if var_alist = [] then (function x -> x) else substrec 0
+(*
+let repvarkey = Profile.declare_profile "replace_vars";;
+let replace_vars vl c = Profile.profile2 repvarkey replace_vars vl c ;;
+*)
+
(* (subst_var str t) substitute (VAR str) by (Rel 1) in t *)
let subst_var str = replace_vars [(str, mkRel 1)]
@@ -1561,7 +1571,7 @@ let subst_term_eta = subst_term_gen eta_eq_constr
(* Et puis meta doit fusionner avec Evar *)
let rec subst_meta bl c =
match kind_of_term c with
- | IsMeta i -> List.assoc i bl
+ | IsMeta i -> (try List.assoc i bl with Not_found -> c)
| _ -> map_constr (subst_meta bl) c
(* Substitute only a list of locations locs, the empty list is