From 7cfc4e5146be5666419451bdd516f1f3f264d24a Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Sun, 25 Jan 2015 14:42:51 +0100 Subject: Imported Upstream version 8.5~beta1+dfsg --- kernel/declareops.mli | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 kernel/declareops.mli (limited to 'kernel/declareops.mli') diff --git a/kernel/declareops.mli b/kernel/declareops.mli new file mode 100644 index 00000000..47a82cc6 --- /dev/null +++ b/kernel/declareops.mli @@ -0,0 +1,90 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* 'c) -> ('b -> 'd) -> + ('a, 'b) declaration_arity -> ('c, 'd) declaration_arity + +(** {6 Constants} *) + +val subst_const_body : substitution -> constant_body -> constant_body + +(** Is there a actual body in const_body ? *) + +val constant_has_body : constant_body -> bool + +(** Accessing const_body, forcing access to opaque proof term if needed. + Only use this function if you know what you're doing. *) + +val body_of_constant : + Opaqueproof.opaquetab -> constant_body -> Term.constr option +val type_of_constant : constant_body -> constant_type +val constraints_of_constant : + Opaqueproof.opaquetab -> constant_body -> Univ.constraints +val universes_of_constant : + Opaqueproof.opaquetab -> constant_body -> Univ.universe_context + +(** Return the universe context, in case the definition is polymorphic, otherwise + the context is empty. *) + +val universes_of_polymorphic_constant : + Opaqueproof.opaquetab -> constant_body -> Univ.universe_context + +val is_opaque : constant_body -> bool + +(** Side effects *) + +val string_of_side_effect : side_effect -> string + +type side_effects +val no_seff : side_effects +val iter_side_effects : (side_effect -> unit) -> side_effects -> unit +val fold_side_effects : ('a -> side_effect -> 'a) -> 'a -> side_effects -> 'a +val uniquize_side_effects : side_effects -> side_effects +val union_side_effects : side_effects -> side_effects -> side_effects +val flatten_side_effects : side_effects list -> side_effects +val side_effects_of_list : side_effect list -> side_effects +val cons_side_effects : side_effect -> side_effects -> side_effects +val side_effects_is_empty : side_effects -> bool + +(** {6 Inductive types} *) + +val eq_recarg : recarg -> recarg -> bool + +val subst_recarg : substitution -> recarg -> recarg + +val mk_norec : wf_paths +val mk_paths : recarg -> wf_paths list array -> wf_paths +val dest_recarg : wf_paths -> recarg +val dest_subterms : wf_paths -> wf_paths list array +val recarg_length : wf_paths -> int -> int + +val subst_wf_paths : substitution -> wf_paths -> wf_paths + +val subst_mind_body : substitution -> mutual_inductive_body -> mutual_inductive_body + +val inductive_instance : mutual_inductive_body -> universe_instance +val inductive_context : mutual_inductive_body -> universe_context + +(** {6 Hash-consing} *) + +(** Here, strictly speaking, we don't perform true hash-consing + of the structure, but simply hash-cons all inner constr + and other known elements *) + +val hcons_const_body : constant_body -> constant_body +val hcons_mind : mutual_inductive_body -> mutual_inductive_body -- cgit v1.2.3