aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/declarations.ml
diff options
context:
space:
mode:
authorGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-11-22 18:09:23 +0000
committerGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-11-22 18:09:23 +0000
commit62789dd765375bef0fb572603aa01039a82dd3b5 (patch)
treeb714a5027adbd60ced26b2fd0e5579f7100ab1c3 /kernel/declarations.ml
parent077199cd58a40335c29e4bb513ad48bdbddc61b1 (diff)
Monomorphization (kernel)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15992 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/declarations.ml')
-rw-r--r--kernel/declarations.ml8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/declarations.ml b/kernel/declarations.ml
index b995f2e4a..3e5b10f3b 100644
--- a/kernel/declarations.ml
+++ b/kernel/declarations.ml
@@ -180,6 +180,12 @@ type recarg =
| Mrec of inductive
| Imbr of inductive
+let eq_recarg r1 r2 = match r1, r2 with
+| Norec, Norec -> true
+| Mrec i1, Mrec i2 -> eq_ind i1 i2
+| Imbr i1, Imbr i2 -> eq_ind i1 i2
+| _ -> false
+
let subst_recarg sub r = match r with
| Norec -> r
| Mrec (kn,i) -> let kn' = subst_ind sub kn in
@@ -204,7 +210,7 @@ let dest_recarg p = fst (Rtree.dest_node p)
*)
let dest_subterms p =
let (ra,cstrs) = Rtree.dest_node p in
- assert (ra<>Norec);
+ assert (match ra with Norec -> false | _ -> true);
Array.map (fun t -> Array.to_list (snd (Rtree.dest_node t))) cstrs
let recarg_length p j =