From 8fea90d232c75b23c0bfe1d4b4f136f6a6f5aee8 Mon Sep 17 00:00:00 2001 From: herbelin Date: Thu, 21 Jul 2005 13:45:23 +0000 Subject: Utilisation de la non-équivalence d'inductifs pour le case_info (cf message CP et EC dans coqdev) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@7250 85f007b7-540e-0410-9357-904b9bb8a0f7 --- kernel/inductive.ml | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'kernel') diff --git a/kernel/inductive.ml b/kernel/inductive.ml index ab2177f75c..e3b152aae7 100644 --- a/kernel/inductive.ml +++ b/kernel/inductive.ml @@ -256,6 +256,16 @@ let type_case_branches env (ind,largs) pj c = (************************************************************************) (* Checking the case annotation is relevent *) +let rec inductive_kn_equiv env kn1 kn2 = + match (lookup_mind kn1 env).mind_equiv with + | Some kn1' -> inductive_kn_equiv env kn2 kn1' + | None -> match (lookup_mind kn2 env).mind_equiv with + | Some kn2' -> inductive_kn_equiv env kn2' kn1 + | None -> false + +let inductive_equiv env (kn1,i1) (kn2,i2) = + i1=i2 & inductive_kn_equiv env kn1 kn2 + let check_case_info env indsp ci = let (mib,mip) = lookup_mind_specif env indsp in if -- cgit v1.2.3