diff options
| author | herbelin | 2000-05-18 08:01:53 +0000 |
|---|---|---|
| committer | herbelin | 2000-05-18 08:01:53 +0000 |
| commit | beac140c3970826bdfa104642301b9cee7530a97 (patch) | |
| tree | 7e6b854c99179e59351a80e012024d2ab0ef4dcc /kernel/constant.mli | |
| parent | 37127f2d1e7be1abe8a07a93569507256fce1b1e (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.mli | 40 |
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 } + |
