aboutsummaryrefslogtreecommitdiff
path: root/kernel/closure.ml
diff options
context:
space:
mode:
authorherbelin2006-10-05 15:40:31 +0000
committerherbelin2006-10-05 15:40:31 +0000
commit55dbe8e2fa7ed2053ecd54140f6bcbdf31981e0b (patch)
tree9aea1570bb1de6ccc8e306c8344d4aaaf6352b57 /kernel/closure.ml
parent3004d1c1d53a13c4ea34e1997367ad6e0b1c31eb (diff)
Correction de deux cas où les types inductifs n'étaient pas comparés
vis à vis de l'équivalence engendrées par les modules non génératifs (cf bug #1242) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9215 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/closure.ml')
-rw-r--r--kernel/closure.ml19
1 files changed, 11 insertions, 8 deletions
diff --git a/kernel/closure.ml b/kernel/closure.ml
index 6bdca4f8ff..364475019f 100644
--- a/kernel/closure.ml
+++ b/kernel/closure.ml
@@ -375,14 +375,17 @@ let defined_rels flags env =
(rel_context env) ~init:(0,[])
(* else (0,[])*)
-
-let rec mind_equiv info kn1 kn2 =
- kn1 = kn2 ||
- match (lookup_mind kn1 info.i_env).mind_equiv with
- Some kn1' -> mind_equiv info kn2 kn1'
- | None -> match (lookup_mind kn2 info.i_env).mind_equiv with
- Some kn2' -> mind_equiv info kn2' kn1
- | None -> false
+let rec mind_equiv env (kn1,i1) (kn2,i2) =
+ let rec equiv kn1 kn2 =
+ kn1 = kn2 ||
+ match (lookup_mind kn1 env).mind_equiv with
+ Some kn1' -> equiv kn2 kn1'
+ | None -> match (lookup_mind kn2 env).mind_equiv with
+ Some kn2' -> equiv kn2' kn1
+ | None -> false in
+ i1 = i2 && equiv kn1 kn2
+
+let mind_equiv_infos info = mind_equiv info.i_env
let create mk_cl flgs env =
{ i_flags = flgs;