class

Z3::BoolExpr

Inherits Reference < Object

Constructors

new(expr : LibZ3::Ast)
Source

Instance methods

!=(other)

Returns true if this object is not equal to other.

By default this method is implemented as !(self == other) so there's no need to override this unless there's a more efficient way to do it.

Source
&(other)
Source
==(other)

Returns false (other can only be a Value here).

Source
^(other)
Source
|(other)
Source
const?
Source
iff(other)
Source
implies(other)
Source
inspect(io)
Source
ite(a : BoolExpr | Bool, b : BoolExpr | Bool) : BoolExpr
Source
ite(a : BitvecExpr, b : BitvecExpr | Int) : BitvecExpr

Both branches have to be the same sort, and a Bitvec's sort includes its size, so the sizes have to match too - sort[] is what says so

Source
ite(a : Int, b : BitvecExpr) : BitvecExpr
Source
ite(a : IntExpr | Int, b : IntExpr | Int) : IntExpr
Source
ite(a : Int | Float64 | BigRational, b : RealExpr) : RealExpr
Source
ite(a : RealExpr, b : RealExpr | Int | Float64 | BigRational) : RealExpr
Source
ite(a : Char, b : CharExpr) : CharExpr
Source
ite(a : CharExpr, b : CharExpr | Char) : CharExpr
Source
ite(a : String, b : StringExpr) : StringExpr
Source
ite(a : StringExpr, b : StringExpr | String) : StringExpr
Source
ite(a : Array, b : SeqExpr) : SeqExpr
Source
ite(a : SeqExpr, b : SeqExpr | Array) : SeqExpr

Both branches have to be the same sort, and a Seq's sort includes its element sort, so sort[] is what says so

Source
ite(a : Float64 | Int, b : FloatExpr) : FloatExpr
Source
ite(a : FloatExpr, b : FloatExpr | Float64 | Int) : FloatExpr

Both branches have to be the same sort, and a Float's sort is its two bit counts, so sort[] is what says so

Source
ite(a : RoundingModeExpr, b : RoundingModeExpr) : RoundingModeExpr
Source
same_term?(other : AnyExpr)

Whether this is the same term as other. Z3 hash-conses its expressions, so this is structural equality - Z3.int("a") + 1 built twice is one term. It is a named method rather than == because == builds a Z3 expression instead of answering a Crystal Bool - see the Limitations section of the README.

Source
simplify
Source
sort
Source
to_b
Source
to_s(io)
Source
to_unsafe
Source
value

Every sort which can hand back a Crystal object spells it #value

Source