aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorherbelin2006-10-27 21:50:17 +0000
committerherbelin2006-10-27 21:50:17 +0000
commit3f41c704aa09301df18cfc90f72a3895e169d74c (patch)
tree1e7894b63d2c4ddfd0d60448f5719f9bba79c672 /kernel
parent5b8e645b675b6b2efac8e13c29da5e984248e507 (diff)
Ajout fold_rel_declaration et fold_named_declaration
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9303 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/term.ml3
-rw-r--r--kernel/term.mli5
2 files changed, 8 insertions, 0 deletions
diff --git a/kernel/term.ml b/kernel/term.ml
index b392d54525..49d4d231b5 100644
--- a/kernel/term.ml
+++ b/kernel/term.ml
@@ -646,6 +646,9 @@ type rel_declaration = name * constr option * types
let map_named_declaration f (id, v, ty) = (id, option_map f v, f ty)
let map_rel_declaration = map_named_declaration
+let fold_named_declaration f (_, v, ty) a = f ty (option_fold_right f v a)
+let fold_rel_declaration = fold_named_declaration
+
(****************************************************************************)
(* Functions for dealing with constr terms *)
(****************************************************************************)
diff --git a/kernel/term.mli b/kernel/term.mli
index addcdce9a0..1b19f83f41 100644
--- a/kernel/term.mli
+++ b/kernel/term.mli
@@ -327,6 +327,11 @@ val map_named_declaration :
val map_rel_declaration :
(constr -> constr) -> rel_declaration -> rel_declaration
+val fold_named_declaration :
+ (constr -> 'a -> 'a) -> named_declaration -> 'a -> 'a
+val fold_rel_declaration :
+ (constr -> 'a -> 'a) -> rel_declaration -> 'a -> 'a
+
(* Constructs either [(x:t)c] or [[x=b:t]c] *)
val mkProd_or_LetIn : rel_declaration -> types -> types
val mkNamedProd_or_LetIn : named_declaration -> types -> types