aboutsummaryrefslogtreecommitdiff
path: root/kernel/term.ml
diff options
context:
space:
mode:
authorherbelin2000-10-11 13:45:14 +0000
committerherbelin2000-10-11 13:45:14 +0000
commit0c349dcb8892c3ad66f3d90f6cbbfed6ad774a80 (patch)
treeb3cb9da845e47a53be4dd282694f56842b23b143 /kernel/term.ml
parentf1653111eea85e64589469ca5dfe856c9b5a2272 (diff)
Ajout let dans destArity, suppression de lift_context (lift_rel_context suffit)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@686 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/term.ml')
-rw-r--r--kernel/term.ml9
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/term.ml b/kernel/term.ml
index 5c045a8ab0..a450e61b73 100644
--- a/kernel/term.ml
+++ b/kernel/term.ml
@@ -910,10 +910,6 @@ let lift k = liftn k 1
let pop t = lift (-1) t
-let lift_context n l =
- let k = List.length l in
- list_map_i (fun i (name,c) -> (name,liftn n (k-i) c)) 0 l
-
(*********************)
(* Substituting *)
(*********************)
@@ -1242,14 +1238,15 @@ let prod_applist t nL = List.fold_left prod_app t nL
(* Other term destructors *)
(*********************************)
-type flat_arity = (name * constr) list * sorts
+type arity = rel_declaration list * sorts
(* Transforms a product term (x1:T1)..(xn:Tn)T into the pair
([(xn,Tn);...;(x1,T1)],T), where T is not a product *)
let destArity =
let rec prodec_rec l c =
match kind_of_term c with
- | IsProd (x,t,c) -> prodec_rec ((x,t)::l) c
+ | IsProd (x,t,c) -> prodec_rec ((x,None,t)::l) c
+ | IsLetIn (x,b,t,c) -> prodec_rec ((x,Some b,t)::l) c
| IsCast (c,_) -> prodec_rec l c
| IsSort s -> l,s
| _ -> anomaly "decompose_arity: not an arity"