module Term:The structure of terms.sig
..end
type
key
type
db_index
type
term = private
| |
Bound of |
(* | Bound variables | *) |
| |
Variable of |
(* | Free variables | *) |
| |
Constant of |
(* | Constants | *) |
| |
Application of |
(* | Function application | *) |
| |
Abstraction of |
(* | Lambda abstraction | *) |
val term_equal : term -> term -> bool
val term_compare : term -> term -> int
val term_hash : term -> int
val is_variable : term -> bool
val variable : Variable.t -> term
val is_constant : term -> bool
val constant : Constant.t -> term
val constant_value : term -> Constant.t
constant_value t
is the value of a constant.
is_constant t
val is_symbolic_constant : term -> bool
not (is_symbolic_constant t) || is_constant t
val symbolic_constant : Symbol.t -> term
val symbolic_value : term -> Symbol.t
symbolic_value t
is the value of a symbolic constant.
is_symbolic_constant t
val is_integer_constant : term -> bool
not (is_integer_constant t) || is_constant t
val integer_constant : Big_int.big_int -> term
val integer_value : term -> Big_int.big_int
integer_value t
is the value of an integer constant.
is_integer_constant t
val is_rational_constant : term -> bool
not (is_rational_constant t) || is_constant t
val rational_constant : Num.num -> term
val rational_value : term -> Num.num
val is_application : term -> bool
val application : term -> term -> term
val application_function : term -> term
is_application t
val application_argument : term -> term
is_application t
val binary_application : term -> term -> term -> term
binary_application f x y
is equivalent to application
(application f x) y
.val ternary_application : term -> term -> term -> term -> term
ternary_application f x y z
is equivalent to application
(application (application f x) y) z
.val nary_application : term -> term list -> term
nary_application f args
is equivalent to List.fold_left
application f args
.val nary_application_decomposition : term -> term * term list
val is_abstraction : term -> bool
val abstraction : Variable.t -> term -> term
abstraction v tm
is \v. tm
.val nary_abstraction : Variable.t list -> term -> term
nary_abstraction [v0, ... ,vn] tm
is \v0. ... \vn.tm
.val beta_normal_form : term -> term
module Term_compared:Util.ComparedType
with type t = term
module Term_hashtbl:Hashtbl.S
with type key = term
module Term_set:Set.S
with type elt = term
module Term_mutable_set:Index.Set
with type elt = term
module Term_map:Map.S
with type key = term
module Term_union_find:Union_find.S
with type elem = term
val uninterpret : (term -> bool) ->
term Term_hashtbl.t -> term -> term
uninterpret p tbl tm
replaces "uninterpreted constants",
i.e. constant subterms s
such that not (p s)
, with fresh variables.val free_variables : term -> Term_set.t
val string_of_term : term -> string
val pp_print_term : Format.formatter -> term -> unit
val print_term : term -> unit
std_formatter
.val pp_compact_print_term : Format.formatter -> term -> unit
val compact_print_term : term -> unit
std_formatter
.val log_term : int -> term -> unit
log_term level tm
is equivalent to
Log.log level pp_print_term tm