package dolmen
A parser library for automated deduction
Install
Dune Dependency
Authors
Maintainers
Sources
dolmen-0.8.tbz
sha256=3ee4b4b028b18ab0066cb4648fa14cd4d628a3afd79455f85fb796a9969ac80c
sha512=06d455f0221814dae44d9d8614cab7c1d4fb43a383e603a92ffc9cf4a753d42c5f2a0f3c5ae64aa6cf02da769c4666b130443ae2cf8fa0918c906d46e0caec9a
doc/src/dolmen_tptp_v6_3_0/ast.ml.html
Source file ast.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
(* This file is free software, part of dolmen. See file "LICENSE" for more information *) module type Id = sig type t (** The type of identifiers *) type namespace (** The type for namespaces. *) val term : namespace (** Usual namespace, used for temrs, types and propositions. *) val decl : namespace (** Names used to refer to tptp phrases. These are used in declarations and include statement. *) val mk : namespace -> string -> t (** Make an identifier *) end module type Term = sig type t (** The type of terms. *) type id (** The type of identifiers *) type location (** The type of locations attached to terms. *) val eq_t : ?loc:location -> unit -> t val neq_t : ?loc:location -> unit -> t val not_t : ?loc:location -> unit -> t val or_t : ?loc:location -> unit -> t val and_t : ?loc:location -> unit -> t val xor_t : ?loc:location -> unit -> t val nor_t : ?loc:location -> unit -> t val nand_t : ?loc:location -> unit -> t val equiv_t : ?loc:location -> unit -> t val implies_t : ?loc:location -> unit -> t val implied_t : ?loc:location -> unit -> t val pi_t : ?loc:location -> unit -> t val sigma_t : ?loc:location -> unit -> t val data_t : ?loc:location -> unit -> t (** Predefined symbols in tptp. Symbols as standalone terms are necessary for parsing tptp's THF. {!implied_t} is reverse implication, and {!data_t} is used in tptp's annotations. {!pi_t} and {!sigma_t} are the encoding of forall and exists quantifiers as constant in higher-order logic. *) val colon : ?loc:location -> t -> t -> t (** Juxtaposition of terms, usually used for annotating terms with their type. *) val var : ?loc:location -> id -> t (** Make a variable (in tptp, variable are syntaxically different from constants). *) val const : ?loc:location -> id -> t (** Make a constant. *) val distinct : ?loc:location -> id -> t (** Make a constant whose name possibly contain special characters (All 'distinct' constants name are enclosed in quotes). *) val int : ?loc:location -> string -> t val rat : ?loc:location -> string -> t val real : ?loc:location -> string -> t (** Constants that are syntaxically recognised as numbers. *) val apply : ?loc:location -> t -> t list -> t (** Application. *) val ite : ?loc:location -> t -> t -> t -> t (** Conditional, of the form [ite condition then_branch els_branch]. *) val union : ?loc:location -> t -> t -> t (** Union of types. *) val product : ?loc:location -> t -> t -> t (** Product of types, used for function types with more than one argument. *) val arrow : ?loc:location -> t -> t -> t (** Function type constructor. *) val subtype : ?loc:location -> t -> t -> t (** Comparison of type (used in tptp's THF). *) val pi : ?loc:location -> t list -> t -> t (** Dependant type constructor, used for polymorphic function types. *) val letin : ?loc:location -> t list -> t -> t (** Local binding for terms. *) val forall : ?loc:location -> t list -> t -> t (** Universal propositional quantification. *) val exists : ?loc:location -> t list -> t -> t (** Existencial porpositional quantification. *) val lambda : ?loc:location -> t list -> t -> t (** Function construction. *) val choice : ?loc:location -> t list -> t -> t (** Indefinite description, also called choice operator. *) val description : ?loc:location -> t list -> t -> t (** Definite description. *) val sequent : ?loc:location -> t list -> t list -> t (** Sequents as terms, used as [sequents hyps goals]. *) end module type Statement = sig type t (** The type of statements. *) type id (** The type of identifiers *) type term (** The type of terms used in statements. *) type location (** The type of locations attached to statements. *) val annot : ?loc:location -> term -> term list -> term (** Terms as annotations for statements. *) val include_ : ?loc:location -> string -> id list -> t (** Include directive. Given the filename, and a list of names to import (an empty list means import everything). *) val tpi : ?loc:location -> ?annot:term -> id -> string -> term -> t val thf : ?loc:location -> ?annot:term -> id -> string -> term -> t val tff : ?loc:location -> ?annot:term -> id -> string -> term -> t val fof : ?loc:location -> ?annot:term -> id -> string -> term -> t val cnf : ?loc:location -> ?annot:term -> id -> string -> term -> t (** TPTP statements, used for instance as [tff ~loc ~annot name role t]. Instructs the prover to register a new directive with the given name, role and term. Current tptp roles are: - ["axiom", "hypothesis", "definition", "lemma", "theorem"] acts as new assertions/declartions - ["assumption", "conjecture"] are proposition that need to be proved, and then can be used to prove other propositions. They are equivalent to the following sequence of smtlib statements: {ul {- [push 1]} {- [assert (not t)]} {- [check_sat]} {- [pop 1]} {- [assert t]} } - ["negated_conjecture"] is the same as ["conjecture"], but the given proposition is false (i.e its negation is the proposition to prove). - ["type"] declares a new symbol and its type - ["plain", "unknown", "fi_domain", "fi_functors", "fi_predicates"] are valid roles with no specified semantics - any other role is an error *) end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>