Module Z3.Boolean

module Boolean: sig .. end

Boolean expressions; Propositional logic and equality


val mk_sort : context -> Sort.sort

Create a Boolean sort

val mk_const : context -> Symbol.symbol -> Expr.expr

Create a Boolean constant.

val mk_const_s : context -> string -> Expr.expr

Create a Boolean constant.

val mk_true : context -> Expr.expr

The true Term.

val mk_false : context -> Expr.expr

The false Term.

val mk_val : context -> bool -> Expr.expr

Creates a Boolean value.

val mk_not : context -> Expr.expr -> Expr.expr

Mk an expression representing not(a).

val mk_ite : context -> Expr.expr -> Expr.expr -> Expr.expr -> Expr.expr

Create an expression representing an if-then-else: ite(t1, t2, t3).

val mk_iff : context -> Expr.expr -> Expr.expr -> Expr.expr

Create an expression representing t1 iff t2.

val mk_implies : context -> Expr.expr -> Expr.expr -> Expr.expr

Create an expression representing t1 -> t2.

val mk_xor : context -> Expr.expr -> Expr.expr -> Expr.expr

Create an expression representing t1 xor t2.

val mk_and : context -> Expr.expr list -> Expr.expr

Create an expression representing the AND of args

val mk_or : context -> Expr.expr list -> Expr.expr

Create an expression representing the OR of args

val mk_eq : context -> Expr.expr -> Expr.expr -> Expr.expr

Creates the equality between two expr's.

val mk_distinct : context -> Expr.expr list -> Expr.expr

Creates a distinct term.

val get_bool_value : Expr.expr -> Z3enums.lbool

Indicates whether the expression is the true or false expression or something else (L_UNDEF).

val is_bool : Expr.expr -> bool

Indicates whether the term has Boolean sort.

val is_true : Expr.expr -> bool

Indicates whether the term is the constant true.

val is_false : Expr.expr -> bool

Indicates whether the term is the constant false.

val is_eq : Expr.expr -> bool

Indicates whether the term is an equality predicate.

val is_distinct : Expr.expr -> bool

Indicates whether the term is an n-ary distinct predicate (every argument is mutually distinct).

val is_ite : Expr.expr -> bool

Indicates whether the term is a ternary if-then-else term

val is_and : Expr.expr -> bool

Indicates whether the term is an n-ary conjunction

val is_or : Expr.expr -> bool

Indicates whether the term is an n-ary disjunction

val is_iff : Expr.expr -> bool

Indicates whether the term is an if-and-only-if (Boolean equivalence, binary)

val is_xor : Expr.expr -> bool

Indicates whether the term is an exclusive or

val is_not : Expr.expr -> bool

Indicates whether the term is a negation

val is_implies : Expr.expr -> bool

Indicates whether the term is an implication