aboutsummaryrefslogtreecommitdiff
path: root/kernel/constant.mli
diff options
context:
space:
mode:
authorherbelin2000-05-18 08:01:53 +0000
committerherbelin2000-05-18 08:01:53 +0000
commitbeac140c3970826bdfa104642301b9cee7530a97 (patch)
tree7e6b854c99179e59351a80e012024d2ab0ef4dcc /kernel/constant.mli
parent37127f2d1e7be1abe8a07a93569507256fce1b1e (diff)
Restructuration des outils pour les inductifs.
- Les déclarations (mutual_inductive_packet et mutual_inductive_body), utilisisées dans Environ vont dans Constant - Instantiations du context local (mind_specif), instantiation des paramètres globaux (inductive_family) et instantiation complète (inductive_type, nouveau nom de inductive_summary) vont dans Inductive qui est déplacé après réduction - Certaines fonctions de Typeops et celle traitant des inductifs dans Reduction sont regroupées dans Inductive git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@438 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/constant.mli')
-rw-r--r--kernel/constant.mli40
1 files changed, 40 insertions, 0 deletions
diff --git a/kernel/constant.mli b/kernel/constant.mli
index c24280c405..16894c7359 100644
--- a/kernel/constant.mli
+++ b/kernel/constant.mli
@@ -36,3 +36,43 @@ type constant_entry= {
const_entry_body : lazy_constant_value;
const_entry_type : constr option }
+(* Inductive types (internal representation). *)
+
+type recarg =
+ | Param of int
+ | Norec
+ | Mrec of int
+ | Imbr of inductive_path * (recarg list)
+
+type mutual_inductive_packet = {
+ mind_consnames : identifier array;
+ mind_typename : identifier;
+ mind_lc : constr;
+ mind_arity : typed_type;
+ mind_sort : sorts;
+ mind_nrealargs : int;
+ mind_kelim : sorts list;
+ mind_listrec : (recarg list) array;
+ mind_finite : bool }
+
+type mutual_inductive_body = {
+ mind_kind : path_kind;
+ mind_ntypes : int;
+ mind_hyps : typed_type signature;
+ mind_packets : mutual_inductive_packet array;
+ mind_constraints : constraints;
+ mind_singl : constr option;
+ mind_nparams : int }
+
+val mind_type_finite : mutual_inductive_body -> int -> bool
+
+val mind_nth_type_packet :
+ mutual_inductive_body -> int -> mutual_inductive_packet
+
+(*s Declaration of inductive types. *)
+
+type mutual_inductive_entry = {
+ mind_entry_nparams : int;
+ mind_entry_finite : bool;
+ mind_entry_inds : (identifier * constr * identifier list * constr) list }
+