Module Once.Term
type 'a variadic
=
|
([]) : unit variadic
|
(::) : [< bv | rm | fp ] as 'a term * 'b variadic -> ('a -> 'b) variadic
Functions accept only bit-vector, rounding-mode or floating-point as argument
Statically typed list of function argument terms.
Constructor
module Bl : sig ... end
Boolean
module Bv : sig ... end
Bit-vector
module Rm : sig ... end
Rounding-mode
module Fp : sig ... end
Floating-point
module Ar : sig ... end
Array
module Uf : sig ... end
Uninterpreted function
val const : 'a sort -> string -> 'a term
const sort symbol
create a (first-order) constant of given sort with given symbol.This creates a 0-arity function symbol.
- parameter sort
The sort of the constant.
- parameter symbol
The symbol of the constant.
- returns
A term representing the constant.
val equal : 'a t -> 'a t -> bv t
equal t0 t1
create an equality term.- parameter t0
The first term.
- parameter t1
The second term.
- returns
SMT-LIB:
=
val distinct : 'a t -> 'a t -> bv t
distinct t0 t1
create an disequality term.- parameter t0
The first term.
- parameter t1
The second term.
- returns
SMT-LIB:
not (= t0 t1)
val ite : bv t -> 'a t -> 'a t -> 'a t
ite t0 t1 t2
create an if-then-else term.- parameter t0
The condition term.
- parameter t1
The then term.
- parameter t2
The else term.
- returns
SMT-LIB:
ite
val hash : 'a t -> int
hash t
compute the hash value for a term.- parameter t
The term.
- returns
The hash value of the term.
val sort : 'a t -> 'a sort
sort t
get the sort of a term.- parameter t
The term.
- returns
The sort of the term.
val pp : Stdlib.Format.formatter -> 'a term -> unit
pp formatter t
pretty print term.- parameter formatter
The outpout formatter
- parameter t
The term.
View
type 'a view
=
|
Value : 'a value -> 'a view
|
Const : 'a sort * string -> 'a view
|
Var : [< bv | rm | fp ] as 'a sort -> 'a view
|
Lambda : 'a variadic * 'b term -> ('a, 'b) fn view
|
Equal : [< bv | rm | fp | ('b, 'c) ar ] as 'a term * 'a term -> bv view
|
Distinct : [< bv | rm | fp | ('b, 'c) ar ] as 'a term * 'a term -> bv view
|
Ite : bv term * [< bv | rm | fp | ('b, 'c) ar ] as 'a term * 'a term -> 'a view
|
Bv : ('a, 'b) Bv.operator * 'b -> bv view
|
Fp : ('a, 'b, 'c) Fp.operator * 'b -> 'c view
|
Select : ('a, 'b) ar term * 'a term -> 'b view
|
Store : ('a, 'b) ar term * 'a term * 'b term -> ('a, 'b) ar view
|
Apply : ('a, 'b) fn term * 'a variadic -> 'b view
Algebraic view of formula terms.