Module Term


module Term: sig  end
Some recognizers.


type t =
| Var of Var.t
| App of Sym.t * t list

val eq : t -> t -> bool
Parameters:
a : t
b : t
val eql : t list -> t list -> bool
Parameters:
al : t list
bl : t list
val mk_var : Name.t -> Dom.t option -> t
Parameters:
x : Name.t
d : Dom.t option
val mk_const : Sym.t -> t
Parameters:
f : Sym.t
val mk_app : Sym.t -> t list -> t
Parameters:
f : Sym.t
l : t list
module Hashq: sig  end
val mk_num : Hashq.key -> t
val mk_rename : Name.t -> int option -> Dom.t option -> t
Parameters:
x : Name.t
k : int option
d : Dom.t option
val mk_fresh : Name.t -> int option -> Dom.t option -> t
Parameters:
x : Name.t
k : int option
d : Dom.t option
val mk_slack : int option -> bool -> Dom.t option -> t
Parameters:
k : int option
alpha : bool
d : Dom.t option
val is_rename : t -> bool
Parameters:
?? : t
val is_fresh : t -> bool
Parameters:
?? : t
val is_internal : t -> bool
Parameters:
?? : t
val is_slack : t -> bool
Parameters:
?? : t
val is_var : t -> bool
Parameters:
?? : t
val is_app : t -> bool
Parameters:
?? : t
val is_const : t -> bool
Parameters:
?? : t
val is_intvar : t -> bool
Parameters:
?? : t
val is_realvar : t -> bool
Parameters:
?? : t
val to_var : t -> Var.t
Parameters:
?? : t
val name_of : t -> Name.t
Parameters:
a : t
val destruct : t -> Sym.t * t list
Parameters:
a : t
val sym_of : t -> Sym.t
Parameters:
a : t
val args_of : t -> t list
Parameters:
a : t
val poly_of : t -> Mpa.Q.t * t list
Parameters:
a : t
val hash : t -> int
Parameters:
?? : t
val cmp : t -> t -> int
Parameters:
a : t
b : t
val cmpl : t list -> t list -> int
Parameters:
l : t list
m : t list
val (<<<) : t -> t -> bool
Parameters:
a : t
b : t
val orient : t * t -> t * t
Parameters:
(a,b) : t * t
val min : t -> t -> t
Parameters:
a : t
b : t
val max : t -> t -> t
Parameters:
a : t
b : t

Some recognizers.

val is_interp_const : t -> bool
Parameters:
?? : t
val is_interp : t -> bool
Parameters:
?? : t
val is_uninterpreted : t -> bool
Parameters:
?? : t
val is_equal : t -> t -> Three.t
Parameters:
a : t
b : t
val mapl : (t -> t) -> t list -> t list
Mapping over list of terms. Avoids unnecessary consing.
Parameters:
f : t -> t
l : t list
val assq : t -> (t * 'a) list -> 'a
Association lists for terms.
Parameters:
a : t
?? : (t * 'a) list
val fold : (t -> 'a -> 'a) -> t -> 'a -> 'a
Iteration over terms.
Parameters:
f : t -> 'a -> 'a
a : t
acc : 'a
val iter : (t -> 'a) -> t -> unit
Parameters:
f : t -> 'a
a : t
val for_all : (t -> bool) -> t -> bool
Parameters:
p : t -> bool
a : t
val subterm : t -> t -> bool
Parameters:
a : t
b : t
val occurs : t -> t -> bool
Parameters:
x : t
b : t


Pretty-Printing


val pretty : bool Pervasives.ref
val pp : t Pretty.printer
Parameters:
fmt : Format.formatter
a : t
val to_string : t -> string

Pretty-printing of equalities/disequalities/constraints.

val pp_equal : Format.formatter -> t * t -> unit
Parameters:
fmt : Format.formatter
(x,y) : t * t
val pp_diseq : Format.formatter -> t * t -> unit
Parameters:
fmt : Format.formatter
(x,y) : t * t


Sets and maps of terms.



type trm = t
module Set: sig  end
module Map: sig  end

Apply a term map by instantiating x with b in a if m contains the binding x |-> b.

val apply : Map.key Map.t -> Map.key -> Map.key
Parameters:
m : Map.key Map.t
val vars_of : Set.elt -> Set.t
Set of variables.
Parameters:
a : Set.elt