From 870075f34dd9fa5792bfbf413afd3b96f17e76a0 Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Fri, 8 Aug 2008 13:18:42 +0200 Subject: Imported Upstream version 8.2~beta4+dfsg --- pretyping/inductiveops.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'pretyping/inductiveops.ml') diff --git a/pretyping/inductiveops.ml b/pretyping/inductiveops.ml index 0daff713..127cd0f2 100644 --- a/pretyping/inductiveops.ml +++ b/pretyping/inductiveops.ml @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: inductiveops.ml 10114 2007-09-06 07:36:14Z herbelin $ *) +(* $Id: inductiveops.ml 11309 2008-08-06 10:30:35Z herbelin $ *) open Util open Names @@ -31,6 +31,11 @@ let type_of_constructor env cstr = Inductive.lookup_mind_specif env (inductive_of_constructor cstr) in Inductive.type_of_constructor cstr specif +(* Return constructor types in user form *) +let type_of_constructors env ind = + let specif = Inductive.lookup_mind_specif env ind in + Inductive.type_of_constructors ind specif + (* Return constructor types in normal form *) let arities_of_constructors env ind = let specif = Inductive.lookup_mind_specif env ind in @@ -87,7 +92,7 @@ let mis_nf_constructor_type (ind,mib,mip) j = and ntypes = mib.mind_ntypes and nconstr = Array.length mip.mind_consnames in let make_Ik k = mkInd ((fst ind),ntypes-k-1) in - if j > nconstr then error "Not enough constructors in the type"; + if j > nconstr then error "Not enough constructors in the type."; substl (list_tabulate make_Ik ntypes) specif.(j-1) (* Arity of constructors excluding parameters and local defs *) -- cgit v1.2.3