public class Expr extends AST
| Modifier | Constructor and Description |
|---|---|
protected |
Expr(Context ctx)
Constructor for Expr
|
protected |
Expr(Context ctx,
long obj)
Constructor for Expr
|
| Modifier and Type | Method and Description |
|---|---|
Expr[] |
getArgs()
The arguments of the expression.
|
Z3_lbool |
getBoolValue()
Indicates whether the expression is the true or false expression or
something else (Z3_L_UNDEF).
|
FuncDecl |
getFuncDecl()
The function declaration of the function that is applied in this
expression.
|
int |
getIndex()
The de-Burijn index of a bound variable.
|
int |
getNumArgs()
The number of arguments of the expression.
|
Sort |
getSort()
The Sort of the term.
|
boolean |
isAdd()
Indicates whether the term is addition (binary)
|
boolean |
isAlgebraicNumber()
Indicates whether the term is an algebraic number
|
boolean |
isAnd()
Indicates whether the term is an n-ary conjunction
|
boolean |
isArithmeticNumeral()
Indicates whether the term is an arithmetic numeral.
|
boolean |
isArray()
Indicates whether the term is of an array sort.
|
boolean |
isArrayMap()
Indicates whether the term is an array map.
|
boolean |
isAsArray()
Indicates whether the term is an as-array term.
|
boolean |
isBool()
Indicates whether the term has Boolean sort.
|
boolean |
isBV()
Indicates whether the terms is of bit-vector sort.
|
boolean |
isBVAdd()
Indicates whether the term is a bit-vector addition (binary)
|
boolean |
isBVAND()
Indicates whether the term is a bit-wise AND
|
boolean |
isBVBitOne()
Indicates whether the term is a one-bit bit-vector with value one
|
boolean |
isBVBitZero()
Indicates whether the term is a one-bit bit-vector with value zero
|
boolean |
isBVCarry()
Indicates whether the term is a bit-vector carry
Remarks: Compute the * carry bit in a full-adder.
|
boolean |
isBVComp()
Indicates whether the term is a bit-vector comparison
|
boolean |
isBVConcat()
Indicates whether the term is a bit-vector concatenation (binary)
|
boolean |
isBVExtract()
Indicates whether the term is a bit-vector extraction
|
boolean |
isBVMul()
Indicates whether the term is a bit-vector multiplication (binary)
|
boolean |
isBVNAND()
Indicates whether the term is a bit-wise NAND
|
boolean |
isBVNOR()
Indicates whether the term is a bit-wise NOR
|
boolean |
isBVNOT()
Indicates whether the term is a bit-wise NOT
|
boolean |
isBVNumeral()
Indicates whether the term is a bit-vector numeral
|
boolean |
isBVOR()
Indicates whether the term is a bit-wise OR
|
boolean |
isBVReduceAND()
Indicates whether the term is a bit-vector reduce AND
|
boolean |
isBVReduceOR()
Indicates whether the term is a bit-vector reduce OR
|
boolean |
isBVRepeat()
Indicates whether the term is a bit-vector repetition
|
boolean |
isBVRotateLeft()
Indicates whether the term is a bit-vector rotate left
|
boolean |
isBVRotateLeftExtended()
Indicates whether the term is a bit-vector rotate left (extended)
Remarks: Similar to Z3_OP_ROTATE_LEFT, but it is a binary operator
instead of a parametric one.
|
boolean |
isBVRotateRight()
Indicates whether the term is a bit-vector rotate right
|
boolean |
isBVRotateRightExtended()
Indicates whether the term is a bit-vector rotate right (extended)
Remarks: Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator
instead of a parametric one.
|
boolean |
isBVSDiv()
Indicates whether the term is a bit-vector signed division (binary)
|
boolean |
isBVSGE()
Indicates whether the term is a signed bit-vector greater-than-or-equal
|
boolean |
isBVSGT()
Indicates whether the term is a signed bit-vector greater-than
|
boolean |
isBVShiftLeft()
Indicates whether the term is a bit-vector shift left
|
boolean |
isBVShiftRightArithmetic()
Indicates whether the term is a bit-vector arithmetic shift left
|
boolean |
isBVShiftRightLogical()
Indicates whether the term is a bit-vector logical shift right
|
boolean |
isBVSignExtension()
Indicates whether the term is a bit-vector sign extension
|
boolean |
isBVSLE()
Indicates whether the term is a signed bit-vector less-than-or-equal
|
boolean |
isBVSLT()
Indicates whether the term is a signed bit-vector less-than
|
boolean |
isBVSMod()
Indicates whether the term is a bit-vector signed modulus
|
boolean |
isBVSRem()
Indicates whether the term is a bit-vector signed remainder (binary)
|
boolean |
isBVSub()
Indicates whether the term is a bit-vector subtraction (binary)
|
boolean |
isBVToInt()
Indicates whether the term is a coercion from bit-vector to integer
Remarks: This function is not supported by the decision procedures.
|
boolean |
isBVUDiv()
Indicates whether the term is a bit-vector unsigned division (binary)
|
boolean |
isBVUGE()
Indicates whether the term is an unsigned bit-vector
greater-than-or-equal
|
boolean |
isBVUGT()
Indicates whether the term is an unsigned bit-vector greater-than
|
boolean |
isBVULE()
Indicates whether the term is an unsigned bit-vector less-than-or-equal
|
boolean |
isBVULT()
Indicates whether the term is an unsigned bit-vector less-than
|
boolean |
isBVUMinus()
Indicates whether the term is a bit-vector unary minus
|
boolean |
isBVURem()
Indicates whether the term is a bit-vector unsigned remainder (binary)
|
boolean |
isBVXNOR()
Indicates whether the term is a bit-wise XNOR
|
boolean |
isBVXOR()
Indicates whether the term is a bit-wise XOR
|
boolean |
isBVXOR3()
Indicates whether the term is a bit-vector ternary XOR
Remarks: The * meaning is given by the equivalence (xor3 l1 l2 l3) <=> (xor (xor * l1 l2) l3)
|
boolean |
isBVZeroExtension()
Indicates whether the term is a bit-vector zero extension
|
boolean |
isConst()
Indicates whether the term represents a constant.
|
boolean |
isConstantArray()
Indicates whether the term is a constant array.
|
boolean |
isDefaultArray()
Indicates whether the term is a default array.
|
boolean |
isDistinct()
Indicates whether the term is an n-ary distinct predicate (every argument
is mutually distinct).
|
boolean |
isDiv()
Indicates whether the term is division (binary)
|
boolean |
isEmptyRelation()
Indicates whether the term is an empty relation
|
boolean |
isEq()
Indicates whether the term is an equality predicate.
|
boolean |
isFalse()
Indicates whether the term is the constant false.
|
boolean |
isFiniteDomain()
Indicates whether the term is of an array sort.
|
boolean |
isFiniteDomainLT()
Indicates whether the term is a less than predicate over a finite domain.
|
boolean |
isGE()
Indicates whether the term is a greater-than-or-equal
|
boolean |
isGT()
Indicates whether the term is a greater-than
|
boolean |
isIDiv()
Indicates whether the term is integer division (binary)
|
boolean |
isIff()
Indicates whether the term is an if-and-only-if (Boolean equivalence,
binary)
|
boolean |
isImplies()
Indicates whether the term is an implication
|
boolean |
isInt()
Indicates whether the term is of integer sort.
|
boolean |
isIntNum()
Indicates whether the term is an integer numeral.
|
boolean |
isIntToBV()
Indicates whether the term is a coercion from integer to bit-vector
Remarks: This function is not supported by the decision procedures.
|
boolean |
isIntToReal()
Indicates whether the term is a coercion of integer to real (unary)
|
boolean |
isIsEmptyRelation()
Indicates whether the term is a test for the emptiness of a relation
|
boolean |
isITE()
Indicates whether the term is a ternary if-then-else term
|
boolean |
isLabel()
Indicates whether the term is a label (used by the Boogie Verification
condition generator).
|
boolean |
isLabelLit()
Indicates whether the term is a label literal (used by the Boogie
Verification condition generator).
|
boolean |
isLE()
Indicates whether the term is a less-than-or-equal
|
boolean |
isLT()
Indicates whether the term is a less-than
|
boolean |
isModulus()
Indicates whether the term is modulus (binary)
|
boolean |
isMul()
Indicates whether the term is multiplication (binary)
|
boolean |
isNot()
Indicates whether the term is a negation
|
boolean |
isNumeral()
Indicates whether the term is a numeral
|
boolean |
isOEQ()
Indicates whether the term is a binary equivalence modulo namings.
|
boolean |
isOr()
Indicates whether the term is an n-ary disjunction
|
boolean |
isProofAndElimination()
Indicates whether the term is a proof by elimination of AND
Remarks: * Given a proof for (and l_1 ...
|
boolean |
isProofApplyDef()
Indicates whether the term is a proof for application of a definition
Remarks: [apply-def T1]: F ~ n F is 'equivalent' to n, given that T1 is
a proof that n is a name for F.
|
boolean |
isProofAsserted()
Indicates whether the term is a proof for a fact asserted by the user.
|
boolean |
isProofCNFStar()
Indicates whether the term is a proof for (~ P Q) where Q is in
conjunctive normal form.
|
boolean |
isProofCommutativity()
Indicates whether the term is a proof by commutativity
Remarks: [comm]:
(= (f a b) (f b a))
f is a commutative operator.
|
boolean |
isProofDefAxiom()
Indicates whether the term is a proof for Tseitin-like axioms
Remarks:
Proof object used to justify Tseitin's like axioms:
(or (not (and p q)) p) (or (not (and p q)) q) (or (not (and p q r)) p)
(or (not (and p q r)) q) (or (not (and p q r)) r) ...
|
boolean |
isProofDefIntro()
Indicates whether the term is a proof for introduction of a name
Remarks: Introduces a name for a formula/term.
|
boolean |
isProofDER()
Indicates whether the term is a proof for destructive equality resolution
Remarks: A proof for destructive equality resolution: (iff (forall (x)
(or (not (= x t)) P[x])) P[t]) if x does not occur in t.
|
boolean |
isProofDistributivity()
Indicates whether the term is a distributivity proof object.
|
boolean |
isProofElimUnusedVars()
Indicates whether the term is a proof for elimination of unused
variables.
|
boolean |
isProofGoal()
Indicates whether the term is a proof for a fact (tagged as goal)
asserted by the user.
|
boolean |
isProofHypothesis()
Indicates whether the term is a hypthesis marker.
|
boolean |
isProofIFFFalse()
Indicates whether the term is a proof by iff-false
Remarks: T1: (not p)
[iff-false T1]: (iff p false)
|
boolean |
isProofIFFOEQ()
Indicates whether the term is a proof iff-oeq
Remarks: T1: (iff p q)
[iff~ T1]: (~ p q)
|
boolean |
isProofIFFTrue()
Indicates whether the term is a proof by iff-true
Remarks: T1: p
[iff-true T1]: (iff p true)
|
boolean |
isProofLemma()
Indicates whether the term is a proof by lemma
Remarks: T1: false [lemma
T1]: (or (not l_1) ...
|
boolean |
isProofModusPonens()
Indicates whether the term is proof via modus ponens
Remarks: Given a
proof for p and a proof for (implies p q), produces a proof for q.
|
boolean |
isProofModusPonensOEQ()
Indicates whether the term is a proof by modus ponens for
equi-satisfiability.
|
boolean |
isProofMonotonicity()
Indicates whether the term is a monotonicity proof object.
|
boolean |
isProofNNFNeg()
Indicates whether the term is a proof for a negative NNF step
Remarks:
Proof for a (negative) NNF step.
|
boolean |
isProofNNFPos()
Indicates whether the term is a proof for a positive NNF step
Remarks:
Proof for a (positive) NNF step.
|
boolean |
isProofNNFStar()
Indicates whether the term is a proof for (~ P Q) here Q is in negation
normal form.
|
boolean |
isProofOrElimination()
Indicates whether the term is a proof by eliminiation of not-or
Remarks: * Given a proof for (not (or l_1 ...
|
boolean |
isProofPullQuant()
Indicates whether the term is a proof for pulling quantifiers out.
|
boolean |
isProofPullQuantStar()
Indicates whether the term is a proof for pulling quantifiers out.
|
boolean |
isProofPushQuant()
Indicates whether the term is a proof for pushing quantifiers in.
|
boolean |
isProofQuantInst()
Indicates whether the term is a proof for quantifier instantiation
Remarks: A proof of (or (not (forall (x) (P x))) (P a))
|
boolean |
isProofQuantIntro()
Indicates whether the term is a quant-intro proof
Remarks: Given a proof * for (~ p q), produces a proof for (~ (forall (x) p) (forall (x) q)).
|
boolean |
isProofReflexivity()
Indicates whether the term is a proof for (R t t), where R is a reflexive
relation.
|
boolean |
isProofRewrite()
Indicates whether the term is a proof by rewriting
Remarks: A proof for
a local rewriting step (= t s).
|
boolean |
isProofRewriteStar()
Indicates whether the term is a proof by rewriting
Remarks: A proof for
rewriting an expression t into an expression s.
|
boolean |
isProofSkolemize()
Indicates whether the term is a proof for a Skolemization step
Remarks:
Proof for:
[sk]: (~ (not (forall x (p x y))) (not (p (sk y) y))) [sk]: (~ (exists x
(p x y)) (p (sk y) y))
This proof object has no antecedents.
|
boolean |
isProofSymmetry()
Indicates whether the term is proof by symmetricity of a relation
Remarks: Given an symmetric relation R and a proof for (R t s), produces * a proof for (R s t).
|
boolean |
isProofTheoryLemma()
Indicates whether the term is a proof for theory lemma
Remarks: Generic
proof for theory lemmas.
|
boolean |
isProofTransitivity()
Indicates whether the term is a proof by transitivity of a relation
Remarks: Given a transitive relation R, and proofs for (R t s) and (R s * u), produces a proof for (R t u).
|
boolean |
isProofTransitivityStar()
Indicates whether the term is a proof by condensed transitivity of a
relation
Remarks: Condensed transitivity proof.
|
boolean |
isProofTrue()
Indicates whether the term is a Proof for the expression 'true'.
|
boolean |
isProofUnitResolution()
Indicates whether the term is a proof by unit resolution
Remarks: T1: * (or l_1 ...
|
boolean |
isRatNum()
Indicates whether the term is a real numeral.
|
boolean |
isReal()
Indicates whether the term is of sort real.
|
boolean |
isRealIsInt()
Indicates whether the term is a check that tests whether a real is
integral (unary)
|
boolean |
isRealToInt()
Indicates whether the term is a coercion of real to integer (unary)
|
boolean |
isRelation()
Indicates whether the term is of an array sort.
|
boolean |
isRelationalJoin()
Indicates whether the term is a relational join
|
boolean |
isRelationClone()
Indicates whether the term is a relational clone (copy)
Remarks: Create
a fresh copy (clone) of a relation.
|
boolean |
isRelationComplement()
Indicates whether the term is the complement of a relation
|
boolean |
isRelationFilter()
Indicates whether the term is a relation filter
Remarks: Filter
(restrict) a relation with respect to a predicate.
|
boolean |
isRelationNegationFilter()
Indicates whether the term is an intersection of a relation with the
negation of another.
|
boolean |
isRelationProject()
Indicates whether the term is a projection of columns (provided as
numbers in the parameters).
|
boolean |
isRelationRename()
Indicates whether the term is the renaming of a column in a relation
Remarks: The function takes one argument.
|
boolean |
isRelationSelect()
Indicates whether the term is a relational select
Remarks: Check if a
record is an element of the relation.
|
boolean |
isRelationStore()
Indicates whether the term is an relation store
Remarks: Insert a record
into a relation.
|
boolean |
isRelationUnion()
Indicates whether the term is the union or convex hull of two relations.
|
boolean |
isRelationWiden()
Indicates whether the term is the widening of two relations
Remarks: The
function takes two arguments.
|
boolean |
isRemainder()
Indicates whether the term is remainder (binary)
|
boolean |
isSelect()
Indicates whether the term is an array select.
|
boolean |
isSetComplement()
Indicates whether the term is set complement
|
boolean |
isSetDifference()
Indicates whether the term is set difference
|
boolean |
isSetIntersect()
Indicates whether the term is set intersection
|
boolean |
isSetSubset()
Indicates whether the term is set subset
|
boolean |
isSetUnion()
Indicates whether the term is set union
|
boolean |
isStore()
Indicates whether the term is an array store.
|
boolean |
isSub()
Indicates whether the term is subtraction (binary)
|
boolean |
isTrue()
Indicates whether the term is the constant true.
|
boolean |
isUMinus()
Indicates whether the term is a unary minus
|
boolean |
isWellSorted()
Indicates whether the term is well-sorted.
|
boolean |
isXor()
Indicates whether the term is an exclusive or
|
Expr |
simplify()
Returns a simplified version of the expression
|
Expr |
simplify(Params p)
Returns a simplified version of the expression
A set of
parameters
|
Expr |
substitute(Expr[] from,
Expr[] to)
Substitute every occurrence of
from[i] in the expression
with to[i], for i smaller than
num_exprs. |
Expr |
substitute(Expr from,
Expr to)
Substitute every occurrence of
from in the expression with
to. |
Expr |
substituteVars(Expr[] to)
Substitute the free variables in the expression with the expressions in
to
Remarks: For every i smaller than * num_exprs, the
variable with de-Bruijn index i * is replaced with term
to[i]. |
java.lang.String |
toString()
Returns a string representation of the expression.
|
Expr |
translate(Context ctx)
Translates (copies) the term to the Context
ctx. |
void |
update(Expr[] args)
Update the arguments of the expression using the arguments
args
The number of new arguments should coincide with the
current number of arguments. |
compareTo, equals, getASTKind, getId, getSExpr, hashCode, isApp, isExpr, isFuncDecl, isQuantifier, isSort, isVarprotected Expr(Context ctx)
protected Expr(Context ctx, long obj)
Z3Exception - on errorpublic Expr simplify()
Z3Exception - on errorpublic Expr simplify(Params p)
p - a Params object to configure the simplifierZ3Exception - on errorContext#SimplifyHelppublic FuncDecl getFuncDecl()
Z3Exception - on errorpublic Z3_lbool getBoolValue()
Z3Exception - on errorpublic int getNumArgs()
Z3Exception - on errorpublic Expr[] getArgs()
Z3Exception - on errorpublic void update(Expr[] args)
args
The number of new arguments should coincide with the
current number of arguments.args - argumentsZ3Exception - on errorpublic Expr substitute(Expr[] from, Expr[] to)
from[i] in the expression
with to[i], for i smaller than
num_exprs.
Remarks: The result is the new expression. The
arrays from and to must have size
num_exprs. For every i smaller than
num_exprs, we must have that sort of from[i]
must be equal to sort of to[i].Z3Exception - on errorpublic Expr substitute(Expr from, Expr to)
from in the expression with
to.Z3Exception - on errorExpr#substitute(Expr[],Expr[])public Expr substituteVars(Expr[] to)
to
Remarks: For every i smaller than * num_exprs, the
variable with de-Bruijn index i * is replaced with term
to[i].Z3Exception - on errorZ3Exception - on errorpublic java.lang.String toString()
public boolean isNumeral()
Z3Exception - on errorpublic boolean isWellSorted()
Z3Exception - on errorpublic Sort getSort()
Z3Exception - on errorpublic boolean isConst()
Z3Exception - on errorpublic boolean isIntNum()
Z3Exception - on errorpublic boolean isRatNum()
Z3Exception - on errorpublic boolean isAlgebraicNumber()
Z3Exception - on errorpublic boolean isBool()
Z3Exception - on errorpublic boolean isTrue()
Z3Exception - on errorpublic boolean isFalse()
Z3Exception - on errorpublic boolean isEq()
Z3Exception - on errorpublic boolean isDistinct()
Z3Exception - on errorpublic boolean isITE()
Z3Exception - on errorpublic boolean isAnd()
Z3Exception - on errorpublic boolean isOr()
Z3Exception - on errorpublic boolean isIff()
Z3Exception - on errorpublic boolean isXor()
Z3Exception - on errorpublic boolean isNot()
Z3Exception - on errorpublic boolean isImplies()
Z3Exception - on errorpublic boolean isInt()
Z3Exception - on errorpublic boolean isReal()
Z3Exception - on errorpublic boolean isArithmeticNumeral()
Z3Exception - on errorpublic boolean isLE()
Z3Exception - on errorpublic boolean isGE()
Z3Exception - on errorpublic boolean isLT()
Z3Exception - on errorpublic boolean isGT()
Z3Exception - on errorpublic boolean isAdd()
Z3Exception - on errorpublic boolean isSub()
Z3Exception - on errorpublic boolean isUMinus()
Z3Exception - on errorpublic boolean isMul()
Z3Exception - on errorpublic boolean isDiv()
Z3Exception - on errorpublic boolean isIDiv()
Z3Exception - on errorpublic boolean isRemainder()
Z3Exception - on errorpublic boolean isModulus()
Z3Exception - on errorpublic boolean isIntToReal()
Z3Exception - on errorpublic boolean isRealToInt()
Z3Exception - on errorpublic boolean isRealIsInt()
Z3Exception - on errorpublic boolean isArray()
Z3Exception - on errorpublic boolean isStore()
Z3Exception - on errorpublic boolean isSelect()
Z3Exception - on errorpublic boolean isConstantArray()
Z3Exception - on errorpublic boolean isDefaultArray()
Z3Exception - on errorpublic boolean isArrayMap()
Z3Exception - on errorpublic boolean isAsArray()
Z3Exception - on errorpublic boolean isSetUnion()
Z3Exception - on errorpublic boolean isSetIntersect()
Z3Exception - on errorpublic boolean isSetDifference()
Z3Exception - on errorpublic boolean isSetComplement()
Z3Exception - on errorpublic boolean isSetSubset()
Z3Exception - on errorpublic boolean isBV()
Z3Exception - on errorpublic boolean isBVNumeral()
Z3Exception - on errorpublic boolean isBVBitOne()
Z3Exception - on errorpublic boolean isBVBitZero()
Z3Exception - on errorpublic boolean isBVUMinus()
Z3Exception - on errorpublic boolean isBVAdd()
Z3Exception - on errorpublic boolean isBVSub()
Z3Exception - on errorpublic boolean isBVMul()
Z3Exception - on errorpublic boolean isBVSDiv()
Z3Exception - on errorpublic boolean isBVUDiv()
Z3Exception - on errorpublic boolean isBVSRem()
Z3Exception - on errorpublic boolean isBVURem()
Z3Exception - on errorpublic boolean isBVSMod()
Z3Exception - on errorpublic boolean isBVULE()
Z3Exception - on errorpublic boolean isBVSLE()
Z3Exception - on errorpublic boolean isBVUGE()
Z3Exception - on errorpublic boolean isBVSGE()
Z3Exception - on errorpublic boolean isBVULT()
Z3Exception - on errorpublic boolean isBVSLT()
Z3Exception - on errorpublic boolean isBVUGT()
Z3Exception - on errorpublic boolean isBVSGT()
Z3Exception - on errorpublic boolean isBVAND()
Z3Exception - on errorpublic boolean isBVOR()
Z3Exception - on errorpublic boolean isBVNOT()
Z3Exception - on errorpublic boolean isBVXOR()
Z3Exception - on errorpublic boolean isBVNAND()
Z3Exception - on errorpublic boolean isBVNOR()
Z3Exception - on errorpublic boolean isBVXNOR()
Z3Exception - on errorpublic boolean isBVConcat()
Z3Exception - on errorpublic boolean isBVSignExtension()
Z3Exception - on errorpublic boolean isBVZeroExtension()
Z3Exception - on errorpublic boolean isBVExtract()
Z3Exception - on errorpublic boolean isBVRepeat()
Z3Exception - on errorpublic boolean isBVReduceOR()
Z3Exception - on errorpublic boolean isBVReduceAND()
Z3Exception - on errorpublic boolean isBVComp()
Z3Exception - on errorpublic boolean isBVShiftLeft()
Z3Exception - on errorpublic boolean isBVShiftRightLogical()
Z3Exception - on errorpublic boolean isBVShiftRightArithmetic()
Z3Exception - on errorpublic boolean isBVRotateLeft()
Z3Exception - on errorpublic boolean isBVRotateRight()
Z3Exception - on errorpublic boolean isBVRotateLeftExtended()
Z3Exception - on errorpublic boolean isBVRotateRightExtended()
Z3Exception - on errorpublic boolean isIntToBV()
Z3Exception - on errorpublic boolean isBVToInt()
Z3Exception - on errorpublic boolean isBVCarry()
Z3Exception - on errorpublic boolean isBVXOR3()
Z3Exception - on errorpublic boolean isLabel()
Z3Exception - on errorpublic boolean isLabelLit()
Z3Exception - on errorpublic boolean isOEQ()
Z3Exception - on errorpublic boolean isProofTrue()
Z3Exception - on errorpublic boolean isProofAsserted()
Z3Exception - on errorpublic boolean isProofGoal()
Z3Exception - on errorpublic boolean isProofModusPonens()
Z3Exception - on errorpublic boolean isProofReflexivity()
Z3Exception - on errorpublic boolean isProofSymmetry()
Z3Exception - on errorpublic boolean isProofTransitivity()
Z3Exception - on errorpublic boolean isProofTransitivityStar()
Z3Exception - on errorpublic boolean isProofMonotonicity()
Z3Exception - on errorpublic boolean isProofQuantIntro()
Z3Exception - on errorpublic boolean isProofDistributivity()
Z3Exception - on errorpublic boolean isProofAndElimination()
Z3Exception - on errorpublic boolean isProofOrElimination()
Z3Exception - on errorpublic boolean isProofRewrite()
Z3Exception - on errorpublic boolean isProofRewriteStar()
Z3Exception - on errorpublic boolean isProofPullQuant()
Z3Exception - on errorpublic boolean isProofPullQuantStar()
Z3Exception - on errorpublic boolean isProofPushQuant()
Z3Exception - on errorpublic boolean isProofElimUnusedVars()
Z3Exception - on errorpublic boolean isProofDER()
Z3Exception - on errorpublic boolean isProofQuantInst()
Z3Exception - on errorpublic boolean isProofHypothesis()
Z3Exception - on errorpublic boolean isProofLemma()
Z3Exception - on errorpublic boolean isProofUnitResolution()
Z3Exception - on errorpublic boolean isProofIFFTrue()
Z3Exception - on errorpublic boolean isProofIFFFalse()
Z3Exception - on errorpublic boolean isProofCommutativity()
Z3Exception - on errorpublic boolean isProofDefAxiom()
Z3Exception - on errorpublic boolean isProofDefIntro()
Z3Exception - on errorpublic boolean isProofApplyDef()
Z3Exception - on errorpublic boolean isProofIFFOEQ()
Z3Exception - on errorpublic boolean isProofNNFPos()
Z3Exception - on errorpublic boolean isProofNNFNeg()
Z3Exception - on errorpublic boolean isProofNNFStar()
Z3Exception - on errorpublic boolean isProofCNFStar()
Z3Exception - on errorpublic boolean isProofSkolemize()
Z3Exception - on errorpublic boolean isProofModusPonensOEQ()
Z3Exception - on errorpublic boolean isProofTheoryLemma()
Z3Exception - on errorpublic boolean isRelation()
Z3Exception - on errorpublic boolean isRelationStore()
n+1 arguments, where the
first argument is the relation and the remaining n elements
correspond to the n columns of the relation.Z3Exception - on errorpublic boolean isEmptyRelation()
Z3Exception - on errorpublic boolean isIsEmptyRelation()
Z3Exception - on errorpublic boolean isRelationalJoin()
Z3Exception - on errorpublic boolean isRelationUnion()
Z3Exception - on errorpublic boolean isRelationWiden()
Z3Exception - on errorpublic boolean isRelationProject()
Z3Exception - on errorpublic boolean isRelationFilter()
Z3Exception - on errorpublic boolean isRelationNegationFilter()
Z3Exception - on errorpublic boolean isRelationRename()
Z3Exception - on errorpublic boolean isRelationComplement()
Z3Exception - on errorpublic boolean isRelationSelect()
n+1
arguments, where the first argument is a relation, and the remaining
n arguments correspond to a record.Z3Exception - on errorpublic boolean isRelationClone()
isRelationUnion to perform destructive updates to
the first argument.Z3Exception - on errorisRelationUnion()public boolean isFiniteDomain()
Z3Exception - on errorpublic boolean isFiniteDomainLT()
Z3Exception - on errorpublic int getIndex()
abs(forall (x1) phi) = forall (x1) abs1(phi, x1, 0)
abs(forall (x1, x2) phi) = abs(forall (x1) abs(forall (x2) phi))
abs1(x, x, n) = b_n
abs1(y, x, n) = y
abs1(f(t1,...,tn), x, n) = f(abs1(t1,x,n), ..., abs1(tn,x,n))
abs1(forall (x1) phi, x, n) = forall (x1) (abs1(phi, x, n+1))
The last line is significant: the index of a bound variable is
different depending on the scope in which it appears. The deeper x
appears, the higher is its index.Z3Exception - on error