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/context.mli | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 kernel/context.mli (limited to 'kernel/context.mli') diff --git a/kernel/context.mli b/kernel/context.mli new file mode 100644 index 00000000..5279aefb --- /dev/null +++ b/kernel/context.mli @@ -0,0 +1,122 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* Constr.t) -> named_declaration -> named_declaration +val map_named_list_declaration : + (Constr.t -> Constr.t) -> named_list_declaration -> named_list_declaration +val map_rel_declaration : + (Constr.t -> Constr.t) -> rel_declaration -> rel_declaration + +val fold_named_declaration : + (Constr.t -> 'a -> 'a) -> named_declaration -> 'a -> 'a +val fold_rel_declaration : + (Constr.t -> 'a -> 'a) -> rel_declaration -> 'a -> 'a + +val exists_named_declaration : + (Constr.t -> bool) -> named_declaration -> bool +val exists_rel_declaration : + (Constr.t -> bool) -> rel_declaration -> bool + +val for_all_named_declaration : + (Constr.t -> bool) -> named_declaration -> bool +val for_all_rel_declaration : + (Constr.t -> bool) -> rel_declaration -> bool + +val eq_named_declaration : + named_declaration -> named_declaration -> bool + +val eq_rel_declaration : + rel_declaration -> rel_declaration -> bool + +(** {6 Signatures of ordered named declarations } *) + +type named_context = named_declaration list +type section_context = named_context +type named_list_context = named_list_declaration list +type rel_context = rel_declaration list +(** In [rel_context], more recent declaration is on top *) + +val empty_named_context : named_context +val add_named_decl : named_declaration -> named_context -> named_context +val vars_of_named_context : named_context -> Id.Set.t + +val lookup_named : Id.t -> named_context -> named_declaration + +(** number of declarations *) +val named_context_length : named_context -> int + +(** named context equality *) +val named_context_equal : named_context -> named_context -> bool + +(** {6 Recurrence on [named_context]: older declarations processed first } *) +val fold_named_context : + (named_declaration -> 'a -> 'a) -> named_context -> init:'a -> 'a + +val fold_named_list_context : + (named_list_declaration -> 'a -> 'a) -> named_list_context -> init:'a -> 'a + +(** newer declarations first *) +val fold_named_context_reverse : + ('a -> named_declaration -> 'a) -> init:'a -> named_context -> 'a + +(** {6 Section-related auxiliary functions } *) +val instance_from_named_context : named_context -> Constr.t list + +(** {6 ... } *) +(** Signatures of ordered optionally named variables, intended to be + accessed by de Bruijn indices *) + +(** {6 Recurrence on [rel_context]: older declarations processed first } *) +val fold_rel_context : + (rel_declaration -> 'a -> 'a) -> rel_context -> init:'a -> 'a + +(** newer declarations first *) +val fold_rel_context_reverse : + ('a -> rel_declaration -> 'a) -> init:'a -> rel_context -> 'a + +(** {6 Map function of [rel_context] } *) +val map_rel_context : (Constr.t -> Constr.t) -> rel_context -> rel_context + +(** {6 Map function of [named_context] } *) +val map_named_context : (Constr.t -> Constr.t) -> named_context -> named_context + +(** {6 Map function of [rel_context] } *) +val iter_rel_context : (Constr.t -> unit) -> rel_context -> unit + +(** {6 Map function of [named_context] } *) +val iter_named_context : (Constr.t -> unit) -> named_context -> unit + +(** {6 Contexts of declarations referred to by de Bruijn indices } *) + +val empty_rel_context : rel_context +val add_rel_decl : rel_declaration -> rel_context -> rel_context + +val lookup_rel : int -> rel_context -> rel_declaration +(** Size of the [rel_context] including LetIns *) +val rel_context_length : rel_context -> int +(** Size of the [rel_context] without LetIns *) +val rel_context_nhyps : rel_context -> int +(** Indicates whether a LetIn or a Lambda, starting from oldest declaration *) +val rel_context_tags : rel_context -> bool list -- cgit v1.2.3