Builtin ObjectsMost objects that have a special meaning in logic are represented by a builtin . A builtin is a value of type t
; it might correspond to different names in different input syntaxes.
Builtins cover numbers, connectives, and builtin types, among others.
val _t_bigger_false : bool ref
type t =
| Not
| And
| Or
| Imply
| Equiv
| Xor
| Eq
| Neq
| HasType
| True
| False
| Arrow
| Wildcard
| Multiset
| TType
| Prop
| Term
| ForallConst
constant for simulating forall
| ExistsConst
constant for simulating exists
| ChoiceConst
| Grounding
| TyInt
| TyRat
| TyReal
| Int of Logtk_arith.Z.t
| Rat of Logtk_arith.Q.t
| Real of string
| Floor
| Ceiling
| Truncate
| Round
| Prec
| Succ
| Sum
| Difference
| Uminus
| Product
| Quotient
| Quotient_e
| Quotient_t
| Quotient_f
| Remainder_e
| Remainder_t
| Remainder_f
| Is_int
| Is_rat
| To_int
| To_rat
| Less
| Lesseq
| Greater
| Greatereq
| Box_opaque
hint not to open this formula
| Pseudo_de_bruijn of int
magic to embed De Bruijn indices in normal terms
| BComb
| CComb
| IComb
| KComb
| SComb
| Distinct
type fixity =
| Infix_binary
| Infix_nary
| Prefix
val is_prefix : t -> bool
is_infix s
returns true
if the way the symbol is printed should be used in a prefix way if applied to 1 argument
is_infix s
returns true
if the way the symbol is printed should be used in an infix way if applied to two arguments
val ty : t -> [ `Int | `Rat | `Other ]
val int_of_string : string -> t
val of_rat : int -> int -> t
val rat_of_string : string -> t
val is_numeric : t -> bool
val is_not_numeric : t -> bool
Any arithmetic operator, or constant
val is_logical_op : t -> bool
Any arithmetic operator, or constant
val is_logical_binop : t -> bool
val is_flattened_logical : t -> bool
val is_quantifier : t -> bool
val is_combinator : t -> bool
module Arith : sig ... end
Each tag describes an extension of FO logic
TPTP InterfaceCreates symbol and give them properties.
module TPTP : sig ... end
The module ArithOp
deals only with numeric constants, i.e., all symbols must verify is_numeric
(and most of the time, have the same type). The semantics of operations follows TPTP .
ZF