Package com.microsoft.z3
Class Context
- java.lang.Object
- 
- com.microsoft.z3.Context
 
- 
- All Implemented Interfaces:
- java.lang.AutoCloseable
 
 public class Context extends java.lang.Object implements java.lang.AutoCloseableThe main interaction with Z3 happens via the Context. For applications that spawn an unbounded number of contexts, the proper use is within a try-with-resources scope so that the Context object gets garbage collected in a predictable way. Contexts maintain all data-structures related to terms and formulas that are created relative to them.
- 
- 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description <R extends Sort>
 voidAddRecDef(FuncDecl<R> f, Expr<?>[] args, Expr<R> body)Bind a definition to a recursive function declaration.Probeand(Probe p1, Probe p2)Create a probe that evaluates totruewhen the valuep1andp2evaluate totrue.TacticandThen(Tactic t1, Tactic t2, Tactic... ts)Create a tactic that appliest1to a Goal and thent2to every subgoal produced byt1java.lang.StringbenchmarkToSMTString(java.lang.String name, java.lang.String logic, java.lang.String status, java.lang.String attributes, Expr<BoolSort>[] assumptions, Expr<BoolSort> formula)Convert a benchmark into an SMT-LIB formatted string.Expr<CharSort>charFromBv(BitVecExpr bv)Create a character from a bit-vector (code point).BitVecExprcharToBv(Expr<CharSort> ch)Create a bit-vector (code point) from character.IntExprcharToInt(Expr<CharSort> ch)Create an integer (code point) from character.voidclose()Disposes of the context.Tacticcond(Probe p, Tactic t1, Tactic t2)Create a tactic that appliest1to a given goal if the probepevaluates to true andt2otherwise.ProbeconstProbe(double val)Create a probe that always evaluates toval.Probeeq(Probe p1, Probe p2)Create a probe that evaluates totruewhen the value returned byp1is equal to the value returned byp2Tacticfail()Create a tactic always fails.TacticfailIf(Probe p)Create a tactic that fails if the probepevaluates to false.TacticfailIfNotDecided()Create a tactic that fails if the goal is not trivially satisfiable (i.e., empty) or trivially unsatisfiable (i.e., contains `false').Probege(Probe p1, Probe p2)Create a probe that evaluates totruewhen the value returned byp1is greater than or equal the value returned byp2IDecRefQueue<ApplyResult>getApplyResultDRQ()IDecRefQueue<AST>getASTDRQ()IDecRefQueue<com.microsoft.z3.ASTMap>getASTMapDRQ()IDecRefQueue<ASTVector>getASTVectorDRQ()BoolSortgetBoolSort()Retrieves the Boolean sort of the context.IDecRefQueue<Constructor<?>>getConstructorDRQ()IDecRefQueue<ConstructorList<?>>getConstructorListDRQ()IDecRefQueue<Fixedpoint>getFixedpointDRQ()IDecRefQueue<FuncInterp.Entry<?>>getFuncEntryDRQ()IDecRefQueue<FuncInterp<?>>getFuncInterpDRQ()IDecRefQueue<Goal>getGoalDRQ()IntSortgetIntSort()Retrieves the Integer sort of the context.IDecRefQueue<Model>getModelDRQ()intgetNumProbes()The number of supported Probes.intgetNumTactics()The number of supported tactics.IDecRefQueue<Optimize>getOptimizeDRQ()IDecRefQueue<ParamDescrs>getParamDescrsDRQ()IDecRefQueue<Params>getParamsDRQ()java.lang.StringgetProbeDescription(java.lang.String name)Returns a string containing a description of the probe with the given name.IDecRefQueue<Probe>getProbeDRQ()java.lang.String[]getProbeNames()The names of all supported Probes.RealSortgetRealSort()Retrieves the Real sort of the context.ParamDescrsgetSimplifyParameterDescriptions()Retrieves parameter descriptions for simplifier.IDecRefQueue<Solver>getSolverDRQ()IDecRefQueue<Statistics>getStatisticsDRQ()SeqSort<CharSort>getStringSort()Retrieves the String sort of the context.java.lang.StringgetTacticDescription(java.lang.String name)Returns a string containing a description of the tactic with the given name.IDecRefQueue<Tactic>getTacticDRQ()java.lang.String[]getTacticNames()The names of all supported tactics.Probegt(Probe p1, Probe p2)Create a probe that evaluates totruewhen the value returned byp1is greater than the value returned byp2voidinterrupt()Interrupt the execution of a Z3 procedure.SeqExpr<CharSort>intToString(Expr<IntSort> e)Convert an integer expression to a string.Probele(Probe p1, Probe p2)Create a probe that evaluates totruewhen the value returned byp1is less than or equal the value returned byp2Probelt(Probe p1, Probe p2)Create a probe that evaluates totruewhen the value returned byp1is less than the value returned byp2<R extends ArithSort>
 ArithExpr<R>mkAdd(Expr<? extends R>... t)Create an expression representingt[0] + t[1] + ....<R extends Sort>
 ReExpr<R>mkAllcharRe(R s)Create regular expression that accepts all characters Corresponds to re.allcharBoolExprmkAnd(Expr<BoolSort>... t)Create an expression representingt[0] and t[1] and ....<R extends Sort>
 Expr<R>mkApp(FuncDecl<R> f, Expr<?>... args)Create a new function application.<D extends Sort,R extends Sort>
 ArrayExpr<D,R>mkArrayConst(Symbol name, D domain, R range)Create an array constant.<D extends Sort,R extends Sort>
 ArrayExpr<D,R>mkArrayConst(java.lang.String name, D domain, R range)Create an array constant.<D extends Sort,R extends Sort>
 Expr<D>mkArrayExt(Expr<ArraySort<D,R>> arg1, Expr<ArraySort<D,R>> arg2)Create Extentionality index.<R extends Sort>
 ArraySort<Sort,R>mkArraySort(Sort[] domains, R range)Create a new array sort.<D extends Sort,R extends Sort>
 ArraySort<D,R>mkArraySort(D domain, R range)Create a new array sort.<R extends Sort>
 SeqExpr<R>mkAt(Expr<SeqSort<R>> s, Expr<IntSort> index)Retrieve sequence of length one at index.BoolExprmkAtLeast(Expr<BoolSort>[] args, int k)Create an at-least-k constraint.BoolExprmkAtMost(Expr<BoolSort>[] args, int k)Create an at-most-k constraint.BitVecSortmkBitVecSort(int size)Create a new bit-vector sort.BoolExprmkBool(boolean value)Creates a Boolean value.BoolExprmkBoolConst(Symbol name)Create a Boolean constant.BoolExprmkBoolConst(java.lang.String name)Create a Boolean constant.BoolSortmkBoolSort()Create a new Boolean sort.<R extends Sort>
 Expr<R>mkBound(int index, R ty)Creates a new bound variable.BitVecNummkBV(int v, int size)Create a bit-vector numeral.BitVecNummkBV(long v, int size)Create a bit-vector numeral.BitVecNummkBV(java.lang.String v, int size)Create a bit-vector numeral.IntExprmkBV2Int(Expr<BitVecSort> t, boolean signed)Create an integer from the bit-vector argumentt.BitVecExprmkBVAdd(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement addition.BoolExprmkBVAddNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned)Create a predicate that checks that the bit-wise addition does not overflow.BoolExprmkBVAddNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Create a predicate that checks that the bit-wise addition does not underflow.BitVecExprmkBVAND(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise conjunction.BitVecExprmkBVASHR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Arithmetic shift right Remarks: It is like logical shift right except that the most significant bits of the result always copy the most significant bit of the second argument.BitVecExprmkBVConst(Symbol name, int size)Creates a bit-vector constant.BitVecExprmkBVConst(java.lang.String name, int size)Creates a bit-vector constant.BitVecExprmkBVLSHR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Logical shift right Remarks: It is equivalent to unsigned division by2^xwhere \c x is the value oft2.BitVecExprmkBVMul(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement multiplication.BoolExprmkBVMulNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned)Create a predicate that checks that the bit-wise multiplication does not overflow.BoolExprmkBVMulNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Create a predicate that checks that the bit-wise multiplication does not underflow.BitVecExprmkBVNAND(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise NAND.BitVecExprmkBVNeg(Expr<BitVecSort> t)Standard two's complement unary minus.BoolExprmkBVNegNoOverflow(Expr<BitVecSort> t)Create a predicate that checks that the bit-wise negation does not overflow.BitVecExprmkBVNOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise NOR.BitVecExprmkBVNot(Expr<BitVecSort> t)Bitwise negation.BitVecExprmkBVOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise disjunction.BitVecExprmkBVRedAND(Expr<BitVecSort> t)Take conjunction of bits in a vector, return vector of length 1.BitVecExprmkBVRedOR(Expr<BitVecSort> t)Take disjunction of bits in a vector, return vector of length 1.BitVecExprmkBVRotateLeft(int i, Expr<BitVecSort> t)Rotate Left.BitVecExprmkBVRotateLeft(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Rotate Left.BitVecExprmkBVRotateRight(int i, Expr<BitVecSort> t)Rotate Right.BitVecExprmkBVRotateRight(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Rotate Right.BitVecExprmkBVSDiv(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Signed division.BoolExprmkBVSDivNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Create a predicate that checks that the bit-wise signed division does not overflow.BoolExprmkBVSGE(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement signed greater than or equal to.BoolExprmkBVSGT(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement signed greater-than.BitVecExprmkBVSHL(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Shift left.BoolExprmkBVSLE(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement signed less-than or equal to.BoolExprmkBVSLT(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement signed less-than Remarks: The arguments must have the same bit-vector sort.BitVecExprmkBVSMod(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement signed remainder (sign follows divisor).BitVecExprmkBVSRem(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Signed remainder.BitVecExprmkBVSub(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Two's complement subtraction.BoolExprmkBVSubNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Create a predicate that checks that the bit-wise subtraction does not overflow.BoolExprmkBVSubNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned)Create a predicate that checks that the bit-wise subtraction does not underflow.BitVecExprmkBVUDiv(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned division.BoolExprmkBVUGE(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned greater than or equal to.BoolExprmkBVUGT(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned greater-than.BoolExprmkBVULE(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned less-than or equal to.BoolExprmkBVULT(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned less-than Remarks: The arguments must have the same bit-vector sort.BitVecExprmkBVURem(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Unsigned remainder.BitVecExprmkBVXNOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise XNOR.BitVecExprmkBVXOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bitwise XOR.BoolExprmkCharLe(Expr<CharSort> ch1, Expr<CharSort> ch2)Create less than or equal to between two characters.CharSortmkCharSort()Creates character sort object.<R extends Sort>
 ReExpr<R>mkComplement(Expr<ReSort<R>> re)Create the complement regular expression.BitVecExprmkConcat(Expr<BitVecSort> t1, Expr<BitVecSort> t2)Bit-vector concatenation.<R extends Sort>
 SeqExpr<R>mkConcat(Expr<SeqSort<R>>... t)Concatenate sequences.<R extends Sort>
 ReExpr<R>mkConcat(ReExpr<R>... t)Create the concatenation of regular languages.<R extends Sort>
 Expr<R>mkConst(FuncDecl<R> f)Creates a fresh constant from the FuncDeclf.<R extends Sort>
 Expr<R>mkConst(Symbol name, R range)Creates a new Constant of sortrangeand namedname.<R extends Sort>
 Expr<R>mkConst(java.lang.String name, R range)Creates a new Constant of sortrangeand namedname.<D extends Sort,R extends Sort>
 ArrayExpr<D,R>mkConstArray(D domain, Expr<R> v)Create a constant array.<R extends Sort>
 FuncDecl<R>mkConstDecl(Symbol name, R range)Creates a new constant function declaration.<R extends Sort>
 FuncDecl<R>mkConstDecl(java.lang.String name, R range)Creates a new constant function declaration.<R> Constructor<R>mkConstructor(Symbol name, Symbol recognizer, Symbol[] fieldNames, Sort[] sorts, int[] sortRefs)Create a datatype constructor.<R> Constructor<R>mkConstructor(java.lang.String name, java.lang.String recognizer, java.lang.String[] fieldNames, Sort[] sorts, int[] sortRefs)Create a datatype constructor.<R extends Sort>
 BoolExprmkContains(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2)Check for sequence containment of s2 in s1.<R> DatatypeSort<R>mkDatatypeSort(Symbol name, Constructor<R>[] constructors)Create a new datatype sort.<R> DatatypeSort<R>mkDatatypeSort(java.lang.String name, Constructor<R>[] constructors)Create a new datatype sort.DatatypeSort<java.lang.Object>[]mkDatatypeSorts(Symbol[] names, Constructor<java.lang.Object>[][] c)Create mutually recursive datatypes.DatatypeSort<java.lang.Object>[]mkDatatypeSorts(java.lang.String[] names, Constructor<java.lang.Object>[][] c)Create mutually recursive data-types.<R extends Sort>
 ReExpr<R>mkDiff(Expr<ReSort<R>> a, Expr<ReSort<R>> b)Create a difference regular expression.BoolExprmkDistinct(Expr<?>... args)Creates adistinctterm.<R extends ArithSort>
 ArithExpr<R>mkDiv(Expr<? extends R> t1, Expr<? extends R> t2)Create an expression representingt1 / t2.<R extends Sort>
 ReExpr<R>mkEmptyRe(R s)Create the empty regular expression.<R extends Sort>
 SeqExpr<R>mkEmptySeq(R s)Create the empty sequence.<D extends Sort>
 ArrayExpr<D,BoolSort>mkEmptySet(D domain)Create an empty set.<R> EnumSort<R>mkEnumSort(Symbol name, Symbol... enumNames)Create a new enumeration sort.<R> EnumSort<R>mkEnumSort(java.lang.String name, java.lang.String... enumNames)Create a new enumeration sort.BoolExprmkEq(Expr<?> x, Expr<?> y)Creates the equalityx = yQuantifiermkExists(Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Creates an existential quantifier using a list of constants that will form the set of bound variables.QuantifiermkExists(Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Creates an existential quantifier using de-Bruijn indexed variables.BitVecExprmkExtract(int high, int low, Expr<BitVecSort> t)Bit-vector extraction.<R extends Sort>
 SeqExpr<R>mkExtract(Expr<SeqSort<R>> s, Expr<IntSort> offset, Expr<IntSort> length)Extract subsequence.BoolExprmkFalse()The false Term.<R> FiniteDomainSort<R>mkFiniteDomainSort(Symbol name, long size)Create a new finite domain sort.<R> FiniteDomainSort<R>mkFiniteDomainSort(java.lang.String name, long size)Create a new finite domain sort.FixedpointmkFixedpoint()Create a Fixedpoint context.QuantifiermkForall(Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Creates a universal quantifier using a list of constants that will form the set of bound variables.QuantifiermkForall(Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Create a universal Quantifier.FPNummkFP(boolean sgn, int exp, int sig, FPSort s)Create a numeral of FloatingPoint sort from a sign bit and two integers.FPNummkFP(boolean sgn, long exp, long sig, FPSort s)Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.FPNummkFP(double v, FPSort s)Create a numeral of FloatingPoint sort from a double.FPNummkFP(float v, FPSort s)Create a numeral of FloatingPoint sort from a float.FPNummkFP(int v, FPSort s)Create a numeral of FloatingPoint sort from an int.FPExprmkFP(Expr<BitVecSort> sgn, Expr<BitVecSort> sig, Expr<BitVecSort> exp)Create an expression of FloatingPoint sort from three bit-vector expressions.FPExprmkFPAbs(Expr<FPSort> t)Floating-point absolute valueFPExprmkFPAdd(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2)Floating-point additionFPExprmkFPDiv(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2)Floating-point divisionBoolExprmkFPEq(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point equality.FPExprmkFPFMA(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2, Expr<FPSort> t3)Floating-point fused multiply-addBoolExprmkFPGEq(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point greater than or equal.BoolExprmkFPGt(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point greater than.FPNummkFPInf(FPSort s, boolean negative)Create a floating-point infinity of sort s.BoolExprmkFPIsInfinite(Expr<FPSort> t)Predicate indicating whether t is a floating-point number representing +oo or -oo.BoolExprmkFPIsNaN(Expr<FPSort> t)Predicate indicating whether t is a NaN.BoolExprmkFPIsNegative(Expr<FPSort> t)Predicate indicating whether t is a negative floating-point number.BoolExprmkFPIsNormal(Expr<FPSort> t)Predicate indicating whether t is a normal floating-point numberBoolExprmkFPIsPositive(Expr<FPSort> t)Predicate indicating whether t is a positive floating-point number.BoolExprmkFPIsSubnormal(Expr<FPSort> t)Predicate indicating whether t is a subnormal floating-point numberBoolExprmkFPIsZero(Expr<FPSort> t)Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.BoolExprmkFPLEq(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point less than or equal.BoolExprmkFPLt(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point less than.FPExprmkFPMax(Expr<FPSort> t1, Expr<FPSort> t2)Maximum of floating-point numbers.FPExprmkFPMin(Expr<FPSort> t1, Expr<FPSort> t2)Minimum of floating-point numbers.FPExprmkFPMul(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2)Floating-point multiplicationFPNummkFPNaN(FPSort s)Create a NaN of sort s.FPExprmkFPNeg(Expr<FPSort> t)Floating-point negationFPNummkFPNumeral(boolean sgn, int exp, int sig, FPSort s)Create a numeral of FloatingPoint sort from a sign bit and two integers.FPNummkFPNumeral(boolean sgn, long exp, long sig, FPSort s)Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.FPNummkFPNumeral(double v, FPSort s)Create a numeral of FloatingPoint sort from a double.FPNummkFPNumeral(float v, FPSort s)Create a numeral of FloatingPoint sort from a float.FPNummkFPNumeral(int v, FPSort s)Create a numeral of FloatingPoint sort from an int.FPExprmkFPRem(Expr<FPSort> t1, Expr<FPSort> t2)Floating-point remainderFPRMNummkFPRNA()Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.FPRMNummkFPRNE()Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.FPRMSortmkFPRoundingModeSort()Create the floating-point RoundingMode sort.FPRMNummkFPRoundNearestTiesToAway()Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.FPRMExprmkFPRoundNearestTiesToEven()Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.FPExprmkFPRoundToIntegral(Expr<FPRMSort> rm, Expr<FPSort> t)Floating-point roundToIntegral.FPRMNummkFPRoundTowardNegative()Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.FPRMNummkFPRoundTowardPositive()Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.FPRMNummkFPRoundTowardZero()Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.FPRMNummkFPRTN()Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.FPRMNummkFPRTP()Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.FPRMNummkFPRTZ()Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.FPSortmkFPSort(int ebits, int sbits)Create a FloatingPoint sort.FPSortmkFPSort128()Create the quadruple-precision (128-bit) FloatingPoint sort.FPSortmkFPSort16()Create the half-precision (16-bit) FloatingPoint sort.FPSortmkFPSort32()Create the single-precision (32-bit) FloatingPoint sort.FPSortmkFPSort64()Create the double-precision (64-bit) FloatingPoint sort.FPSortmkFPSortDouble()Create the double-precision (64-bit) FloatingPoint sort.FPSortmkFPSortHalf()Create the half-precision (16-bit) FloatingPoint sort.FPSortmkFPSortQuadruple()Create the quadruple-precision (128-bit) FloatingPoint sort.FPSortmkFPSortSingle()Create the single-precision (32-bit) FloatingPoint sort.FPExprmkFPSqrt(Expr<FPRMSort> rm, Expr<FPSort> t)Floating-point square rootFPExprmkFPSub(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2)Floating-point subtractionBitVecExprmkFPToBV(Expr<FPRMSort> rm, Expr<FPSort> t, int sz, boolean signed)Conversion of a floating-point term into a bit-vector.FPExprmkFPToFP(Expr<BitVecSort> bv, FPSort s)Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.FPExprmkFPToFP(Expr<FPRMSort> rm, Expr<BitVecSort> t, FPSort s, boolean signed)Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.BitVecExprmkFPToFP(Expr<FPRMSort> rm, Expr<IntSort> exp, Expr<RealSort> sig, FPSort s)Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.FPExprmkFPToFP(Expr<FPRMSort> rm, FPExpr t, FPSort s)Conversion of a FloatingPoint term into another term of different FloatingPoint sort.FPExprmkFPToFP(Expr<FPRMSort> rm, RealExpr t, FPSort s)Conversion of a term of real sort into a term of FloatingPoint sort.FPExprmkFPToFP(FPSort s, Expr<FPRMSort> rm, Expr<FPSort> t)Conversion of a floating-point number to another FloatingPoint sort s.BitVecExprmkFPToIEEEBV(Expr<FPSort> t)Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.RealExprmkFPToReal(Expr<FPSort> t)Conversion of a floating-point term into a real-numbered term.FPNummkFPZero(FPSort s, boolean negative)Create a floating-point zero of sort s.<R extends Sort>
 Expr<R>mkFreshConst(java.lang.String prefix, R range)Creates a fresh Constant of sortrangeand a name prefixed withprefix.<R extends Sort>
 FuncDecl<R>mkFreshConstDecl(java.lang.String prefix, R range)Creates a fresh constant function declaration with a name prefixed withprefix.<R extends Sort>
 FuncDecl<R>mkFreshFuncDecl(java.lang.String prefix, Sort[] domain, R range)Creates a fresh function declaration with a name prefixed withprefix.<R extends Sort>
 ReExpr<R>mkFullRe(R s)Create the full regular expression.<D extends Sort>
 ArrayExpr<D,BoolSort>mkFullSet(D domain)Create the full set.<R extends Sort>
 FuncDecl<R>mkFuncDecl(Symbol name, Sort[] domain, R range)Creates a new function declaration.<R extends Sort>
 FuncDecl<R>mkFuncDecl(Symbol name, Sort domain, R range)Creates a new function declaration.<R extends Sort>
 FuncDecl<R>mkFuncDecl(java.lang.String name, Sort[] domain, R range)Creates a new function declaration.<R extends Sort>
 FuncDecl<R>mkFuncDecl(java.lang.String name, Sort domain, R range)Creates a new function declaration.BoolExprmkGe(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2)Create an expression representingt1 >= t2GoalmkGoal(boolean models, boolean unsatCores, boolean proofs)Creates a new Goal.BoolExprmkGt(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2)Create an expression representingt1 > t2BoolExprmkIff(Expr<BoolSort> t1, Expr<BoolSort> t2)Create an expression representingt1 iff t2.BoolExprmkImplies(Expr<BoolSort> t1, Expr<BoolSort> t2)Create an expression representingt1 -> t2.<R extends Sort>
 IntExprmkIndexOf(Expr<SeqSort<R>> s, Expr<SeqSort<R>> substr, Expr<IntSort> offset)Extract index of sub-string starting at offset.<R extends Sort>
 BoolExprmkInRe(Expr<SeqSort<R>> s, Expr<ReSort<R>> re)Check for regular expression membership.IntNummkInt(int v)Create an integer numeral.IntNummkInt(long v)Create an integer numeral.IntNummkInt(java.lang.String v)Create an integer numeral.BitVecExprmkInt2BV(int n, Expr<IntSort> t)Create annbit bit-vector from the integer argumentt.RealExprmkInt2Real(Expr<IntSort> t)Coerce an integer to a real.IntExprmkIntConst(Symbol name)Creates an integer constant.IntExprmkIntConst(java.lang.String name)Creates an integer constant.<R extends Sort>
 ReExpr<R>mkIntersect(Expr<ReSort<R>>... t)Create the intersection of regular languages.IntSortmkIntSort()Create a new integer sort.BoolExprmkIsDigit(Expr<CharSort> ch)Create a check if the character is a digit.BoolExprmkIsInteger(Expr<RealSort> t)Creates an expression that checks whether a real number is an integer.<R extends Sort>
 Expr<R>mkITE(Expr<BoolSort> t1, Expr<? extends R> t2, Expr<? extends R> t3)Create an expression representing an if-then-else:ite(t1, t2, t3).<R extends Sort>
 Lambda<R>mkLambda(Expr<?>[] boundConstants, Expr<R> body)Create a lambda expression.<R extends Sort>
 Lambda<R>mkLambda(Sort[] sorts, Symbol[] names, Expr<R> body)Create a lambda expression.BoolExprmkLe(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2)Create an expression representingt1 <= t2<R extends Sort>
 IntExprmkLength(Expr<SeqSort<R>> s)Retrieve the length of a given sequence.<R extends Sort>
 ListSort<R>mkListSort(Symbol name, R elemSort)Create a new list sort.<R extends Sort>
 ListSort<R>mkListSort(java.lang.String name, R elemSort)Create a new list sort.<R extends Sort>
 ReExpr<R>mkLoop(Expr<ReSort<R>> re, int lo)Take the lower-bounded Kleene star of a regular expression.<R extends Sort>
 ReExpr<R>mkLoop(Expr<ReSort<R>> re, int lo, int hi)Take the lower and upper-bounded Kleene star of a regular expression.BoolExprmkLt(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2)Create an expression representingt1 < t2<D extends Sort,R1 extends Sort,R2 extends Sort>
 ArrayExpr<D,R2>mkMap(FuncDecl<R2> f, Expr<ArraySort<D,R1>>... args)Maps f on the argument arrays.IntExprmkMod(Expr<IntSort> t1, Expr<IntSort> t2)Create an expression representingt1 mod t2.<R extends ArithSort>
 ArithExpr<R>mkMul(Expr<? extends R>... t)Create an expression representingt[0] * t[1] * ....BoolExprmkNot(Expr<BoolSort> a)Create an expression representingnot(a).<R extends Sort>
 Expr<R>mkNth(Expr<SeqSort<R>> s, Expr<IntSort> index)Retrieve element at index.<R extends Sort>
 Expr<R>mkNumeral(int v, R ty)Create a Term of a given sort.<R extends Sort>
 Expr<R>mkNumeral(long v, R ty)Create a Term of a given sort.<R extends Sort>
 Expr<R>mkNumeral(java.lang.String v, R ty)Create a Term of a given sort.OptimizemkOptimize()Create a Optimize context.<R extends Sort>
 ReExpr<R>mkOption(Expr<ReSort<R>> re)Create the optional regular expression.BoolExprmkOr(Expr<BoolSort>... t)Create an expression representingt[0] or t[1] or ....ParamsmkParams()Creates a new ParameterSet.PatternmkPattern(Expr<?>... terms)Create a quantifier pattern.BoolExprmkPBEq(int[] coeffs, Expr<BoolSort>[] args, int k)Create a pseudo-Boolean equal constraint.BoolExprmkPBGe(int[] coeffs, Expr<BoolSort>[] args, int k)Create a pseudo-Boolean greater-or-equal constraint.BoolExprmkPBLe(int[] coeffs, Expr<BoolSort>[] args, int k)Create a pseudo-Boolean less-or-equal constraint.<R extends Sort>
 ReExpr<R>mkPlus(Expr<ReSort<R>> re)Take the Kleene plus of a regular expression.<R extends ArithSort>
 ArithExpr<R>mkPower(Expr<? extends R> t1, Expr<? extends R> t2)Create an expression representingt1 ^ t2.<R extends Sort>
 BoolExprmkPrefixOf(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2)Check for sequence prefix.ProbemkProbe(java.lang.String name)Creates a new Probe.QuantifiermkQuantifier(boolean universal, Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Create a QuantifierQuantifiermkQuantifier(boolean universal, Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)Create a Quantifier.<R extends Sort>
 ReExpr<R>mkRange(Expr<SeqSort<CharSort>> lo, Expr<SeqSort<CharSort>> hi)Create a range expression.RatNummkReal(int v)Create a real numeral.RatNummkReal(int num, int den)Create a real from a fraction.RatNummkReal(long v)Create a real numeral.RatNummkReal(java.lang.String v)Create a real numeral.IntExprmkReal2Int(Expr<RealSort> t)Coerce a real to an integer.RealExprmkRealConst(Symbol name)Creates a real constant.RealExprmkRealConst(java.lang.String name)Creates a real constant.RealSortmkRealSort()Create a real sort.<R extends Sort>
 FuncDecl<R>mkRecFuncDecl(Symbol name, Sort[] domain, R range)Creates a new recursive function declaration.IntExprmkRem(Expr<IntSort> t1, Expr<IntSort> t2)Create an expression representingt1 rem t2.BitVecExprmkRepeat(int i, Expr<BitVecSort> t)Bit-vector repetition.<R extends Sort>
 SeqExpr<R>mkReplace(Expr<SeqSort<R>> s, Expr<SeqSort<R>> src, Expr<SeqSort<R>> dst)Replace the first occurrence of src by dst in s.<R extends Sort>
 ReSort<R>mkReSort(R s)Create a new regular expression sort<R extends Sort>
 Expr<R>mkSelect(Expr<ArraySort<Sort,R>> a, Expr<?>[] args)Array read.<D extends Sort,R extends Sort>
 Expr<R>mkSelect(Expr<ArraySort<D,R>> a, Expr<D> i)Array read.<R extends Sort>
 SeqSort<R>mkSeqSort(R s)Create a new sequence sort<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetAdd(Expr<ArraySort<D,BoolSort>> set, Expr<D> element)Add an element to the set.<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetComplement(Expr<ArraySort<D,BoolSort>> arg)Take the complement of a set.<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetDel(Expr<ArraySort<D,BoolSort>> set, Expr<D> element)Remove an element from a set.<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetDifference(Expr<ArraySort<D,BoolSort>> arg1, Expr<ArraySort<D,BoolSort>> arg2)Take the difference between two sets.<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetIntersection(Expr<ArraySort<D,BoolSort>>... args)Take the intersection of a list of sets.<D extends Sort>
 BoolExprmkSetMembership(Expr<D> elem, Expr<ArraySort<D,BoolSort>> set)Check for set membership.<D extends Sort>
 SetSort<D>mkSetSort(D ty)Create a set type.<D extends Sort>
 BoolExprmkSetSubset(Expr<ArraySort<D,BoolSort>> arg1, Expr<ArraySort<D,BoolSort>> arg2)Check for subsetness of sets.<D extends Sort>
 ArrayExpr<D,BoolSort>mkSetUnion(Expr<ArraySort<D,BoolSort>>... args)Take the union of a list of sets.BitVecExprmkSignExt(int i, Expr<BitVecSort> t)Bit-vector sign extension.SolvermkSimpleSolver()Creates a new (incremental) solver.SolvermkSolver()Creates a new (incremental) solver.SolvermkSolver(Symbol logic)Creates a new (incremental) solver.SolvermkSolver(Tactic t)Creates a solver that is implemented using the given tactic.SolvermkSolver(java.lang.String logic)Creates a new (incremental) solver.<R extends Sort>
 ReExpr<R>mkStar(Expr<ReSort<R>> re)Take the Kleene star of a regular expression.<R extends Sort>
 ArrayExpr<Sort,R>mkStore(Expr<ArraySort<Sort,R>> a, Expr<?>[] args, Expr<R> v)Array update.<D extends Sort,R extends Sort>
 ArrayExpr<D,R>mkStore(Expr<ArraySort<D,R>> a, Expr<D> i, Expr<R> v)Array update.SeqExpr<CharSort>mkString(java.lang.String s)Create a string constant.SeqSort<CharSort>mkStringSort()Create a new string sort<R extends ArithSort>
 ArithExpr<R>mkSub(Expr<? extends R>... t)Create an expression representingt[0] - t[1] - ....<R extends Sort>
 BoolExprmkSuffixOf(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2)Check for sequence suffix.IntSymbolmkSymbol(int i)Creates a new symbol using an integer.StringSymbolmkSymbol(java.lang.String name)Create a symbol using a string.TacticmkTactic(java.lang.String name)Creates a new Tactic.<D extends Sort,R extends Sort>
 Expr<R>mkTermArray(Expr<ArraySort<D,R>> array)Access the array default value.<R extends Sort>
 ReExpr<R>mkToRe(Expr<SeqSort<R>> s)Convert a regular expression that accepts sequence s.BoolExprmkTrue()The true Term.TupleSortmkTupleSort(Symbol name, Symbol[] fieldNames, Sort[] fieldSorts)Create a new tuple sort.<R extends ArithSort>
 ArithExpr<R>mkUnaryMinus(Expr<R> t)Create an expression representing-t.UninterpretedSortmkUninterpretedSort(Symbol s)Create a new uninterpreted sort.UninterpretedSortmkUninterpretedSort(java.lang.String str)Create a new uninterpreted sort.<R extends Sort>
 ReExpr<R>mkUnion(Expr<ReSort<R>>... t)Create the union of regular languages.<R extends Sort>
 SeqExpr<R>mkUnit(Expr<R> elem)Create the singleton sequence.<F extends Sort,R extends Sort>
 Expr<R>mkUpdateField(FuncDecl<F> field, Expr<R> t, Expr<F> v)Update a datatype field at expression t with value v.BoolExprmkXor(Expr<BoolSort> t1, Expr<BoolSort> t2)Create an expression representingt1 xor t2.BitVecExprmkZeroExt(int i, Expr<BitVecSort> t)Bit-vector zero extension.longnCtx()Probenot(Probe p)Create a probe that evaluates totruewhen the valuepdoes not evaluate totrue.Probeor(Probe p1, Probe p2)Create a probe that evaluates totruewhen the valuep1orp2evaluate totrue.TacticorElse(Tactic t1, Tactic t2)Create a tactic that first appliest1to a Goal and if it fails then returns the result oft2applied to the Goal.TacticparAndThen(Tactic t1, Tactic t2)Create a tactic that appliest1to a given goal and thent2to every subgoal produced byt1.TacticparOr(Tactic... t)Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).BoolExpr[]parseSMTLIB2File(java.lang.String fileName, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls)Parse the given file using the SMT-LIB2 parser.BoolExpr[]parseSMTLIB2String(java.lang.String str, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls)Parse the given string using the SMT-LIB2 parser.Tacticrepeat(Tactic t, int max)Create a tactic that keeps applyingtuntil the goal is not modified anymore or the maximum number of iterationsmaxis reached.SeqExpr<CharSort>sbvToString(Expr<BitVecSort> e)Convert an signed bitvector expression to a string.voidsetPrintMode(Z3_ast_print_mode value)Selects the format used for pretty-printing expressions.java.lang.StringSimplifyHelp()Return a string describing all available parameters toExpr.Simplify.Tacticskip()Create a tactic that just returns the given goal.IntExprstringToInt(Expr<SeqSort<CharSort>> e)Convert an integer expression to a string.Tacticthen(Tactic t1, Tactic t2, Tactic... ts)Create a tactic that appliest1to a Goal and thent2to every subgoal produced byt1Remarks: Shorthand forAndThen.TactictryFor(Tactic t, int ms)Create a tactic that appliestto a goal formsmilliseconds.SeqExpr<CharSort>ubvToString(Expr<BitVecSort> e)Convert an unsigned bitvector expression to a string.longunwrapAST(AST a)Unwraps an AST.voidupdateParamValue(java.lang.String id, java.lang.String value)Update a mutable configuration parameter.TacticusingParams(Tactic t, Params p)Create a tactic that appliestusing the given set of parametersp.Tacticwhen(Probe p, Tactic t)Create a tactic that appliestto a given goal if the probepevaluates to true.Tacticwith(Tactic t, Params p)Create a tactic that appliestusing the given set of parametersp.ASTwrapAST(long nativeObject)Wraps an AST.
 
- 
- 
- 
Constructor Detail- 
Contextpublic Context() 
 - 
Contextprotected Context(long m_ctx) 
 - 
Contextpublic Context(java.util.Map<java.lang.String,java.lang.String> settings) Constructor. Remarks: The following parameters can be set: - proof (Boolean) Enable proof generation - debug_ref_count (Boolean) Enable debug support for Z3_ast reference counting - trace (Boolean) Tracing support for VCC - trace_file_name (String) Trace out file for VCC traces - timeout (unsigned) default timeout (in milliseconds) used for solvers - well_sorted_check type checker - auto_config use heuristics to automatically select solver and configure it - model model generation for solvers, this parameter can be overwritten when creating a solver - model_validate validate models produced by solvers - unsat_core unsat-core generation for solvers, this parameter can be overwritten when creating a solver Note that in previous versions of Z3, this constructor was also used to set global and module parameters. For this purpose we should now useGlobal.setParameter
 
- 
 - 
Method Detail- 
mkSymbolpublic IntSymbol mkSymbol(int i) Creates a new symbol using an integer. Remarks: Not all integers can be passed to this function. The legal range of unsigned integers is 0 to 2^30-1.
 - 
mkSymbolpublic StringSymbol mkSymbol(java.lang.String name) Create a symbol using a string.
 - 
getBoolSortpublic BoolSort getBoolSort() Retrieves the Boolean sort of the context.
 - 
getIntSortpublic IntSort getIntSort() Retrieves the Integer sort of the context.
 - 
getRealSortpublic RealSort getRealSort() Retrieves the Real sort of the context.
 - 
mkBoolSortpublic BoolSort mkBoolSort() Create a new Boolean sort.
 - 
mkCharSortpublic CharSort mkCharSort() Creates character sort object.
 - 
mkUninterpretedSortpublic UninterpretedSort mkUninterpretedSort(Symbol s) Create a new uninterpreted sort.
 - 
mkUninterpretedSortpublic UninterpretedSort mkUninterpretedSort(java.lang.String str) Create a new uninterpreted sort.
 - 
mkIntSortpublic IntSort mkIntSort() Create a new integer sort.
 - 
mkRealSortpublic RealSort mkRealSort() Create a real sort.
 - 
mkBitVecSortpublic BitVecSort mkBitVecSort(int size) Create a new bit-vector sort.
 - 
mkArraySortpublic <D extends Sort,R extends Sort> ArraySort<D,R> mkArraySort(D domain, R range) Create a new array sort.
 - 
mkArraySortpublic <R extends Sort> ArraySort<Sort,R> mkArraySort(Sort[] domains, R range) Create a new array sort.
 - 
mkTupleSortpublic TupleSort mkTupleSort(Symbol name, Symbol[] fieldNames, Sort[] fieldSorts) Create a new tuple sort.
 - 
mkEnumSortpublic <R> EnumSort<R> mkEnumSort(Symbol name, Symbol... enumNames) Create a new enumeration sort.
 - 
mkEnumSortpublic <R> EnumSort<R> mkEnumSort(java.lang.String name, java.lang.String... enumNames) Create a new enumeration sort.
 - 
mkListSortpublic <R extends Sort> ListSort<R> mkListSort(Symbol name, R elemSort) Create a new list sort.
 - 
mkListSortpublic <R extends Sort> ListSort<R> mkListSort(java.lang.String name, R elemSort) Create a new list sort.
 - 
mkFiniteDomainSortpublic <R> FiniteDomainSort<R> mkFiniteDomainSort(Symbol name, long size) Create a new finite domain sort.
 - 
mkFiniteDomainSortpublic <R> FiniteDomainSort<R> mkFiniteDomainSort(java.lang.String name, long size) Create a new finite domain sort.
 - 
mkConstructorpublic <R> Constructor<R> mkConstructor(Symbol name, Symbol recognizer, Symbol[] fieldNames, Sort[] sorts, int[] sortRefs) Create a datatype constructor.- Parameters:
- name- constructor name
- recognizer- name of recognizer function.
- fieldNames- names of the constructor fields.
- sorts- field sorts, 0 if the field sort refers to a recursive sort.
- sortRefs- reference to datatype sort that is an argument to the constructor; if the corresponding sort reference is 0, then the value in sort_refs should be an index referring to one of the recursive datatypes that is declared.
 
 - 
mkConstructorpublic <R> Constructor<R> mkConstructor(java.lang.String name, java.lang.String recognizer, java.lang.String[] fieldNames, Sort[] sorts, int[] sortRefs) Create a datatype constructor.
 - 
mkDatatypeSortpublic <R> DatatypeSort<R> mkDatatypeSort(Symbol name, Constructor<R>[] constructors) Create a new datatype sort.
 - 
mkDatatypeSortpublic <R> DatatypeSort<R> mkDatatypeSort(java.lang.String name, Constructor<R>[] constructors) Create a new datatype sort.
 - 
mkDatatypeSortspublic DatatypeSort<java.lang.Object>[] mkDatatypeSorts(Symbol[] names, Constructor<java.lang.Object>[][] c) Create mutually recursive datatypes.- Parameters:
- names- names of datatype sorts
- c- list of constructors, one list per sort.
 
 - 
mkDatatypeSortspublic DatatypeSort<java.lang.Object>[] mkDatatypeSorts(java.lang.String[] names, Constructor<java.lang.Object>[][] c) Create mutually recursive data-types.
 - 
mkUpdateFieldpublic <F extends Sort,R extends Sort> Expr<R> mkUpdateField(FuncDecl<F> field, Expr<R> t, Expr<F> v) throws Z3Exception Update a datatype field at expression t with value v. The function performs a record update at t. The field that is passed in as argument is updated with value v, the remaining fields of t are unchanged.- Throws:
- Z3Exception
 
 - 
mkFuncDeclpublic <R extends Sort> FuncDecl<R> mkFuncDecl(Symbol name, Sort[] domain, R range) Creates a new function declaration.
 - 
mkFuncDeclpublic <R extends Sort> FuncDecl<R> mkFuncDecl(Symbol name, Sort domain, R range) Creates a new function declaration.
 - 
mkFuncDeclpublic <R extends Sort> FuncDecl<R> mkFuncDecl(java.lang.String name, Sort[] domain, R range) Creates a new function declaration.
 - 
mkFuncDeclpublic <R extends Sort> FuncDecl<R> mkFuncDecl(java.lang.String name, Sort domain, R range) Creates a new function declaration.
 - 
mkRecFuncDeclpublic <R extends Sort> FuncDecl<R> mkRecFuncDecl(Symbol name, Sort[] domain, R range) Creates a new recursive function declaration.
 - 
AddRecDefpublic <R extends Sort> void AddRecDef(FuncDecl<R> f, Expr<?>[] args, Expr<R> body) Bind a definition to a recursive function declaration. The function must have previously been created using MkRecFuncDecl. The body may contain recursive uses of the function or other mutually recursive functions.
 - 
mkFreshFuncDeclpublic <R extends Sort> FuncDecl<R> mkFreshFuncDecl(java.lang.String prefix, Sort[] domain, R range) Creates a fresh function declaration with a name prefixed withprefix.
 - 
mkConstDeclpublic <R extends Sort> FuncDecl<R> mkConstDecl(Symbol name, R range) Creates a new constant function declaration.
 - 
mkConstDeclpublic <R extends Sort> FuncDecl<R> mkConstDecl(java.lang.String name, R range) Creates a new constant function declaration.
 - 
mkFreshConstDeclpublic <R extends Sort> FuncDecl<R> mkFreshConstDecl(java.lang.String prefix, R range) Creates a fresh constant function declaration with a name prefixed withprefix.
 - 
mkBoundpublic <R extends Sort> Expr<R> mkBound(int index, R ty) Creates a new bound variable.- Parameters:
- index- The de-Bruijn index of the variable
- ty- The sort of the variable
 
 - 
mkPattern@SafeVarargs public final Pattern mkPattern(Expr<?>... terms) Create a quantifier pattern.
 - 
mkConstpublic <R extends Sort> Expr<R> mkConst(Symbol name, R range) Creates a new Constant of sortrangeand namedname.
 - 
mkConstpublic <R extends Sort> Expr<R> mkConst(java.lang.String name, R range) Creates a new Constant of sortrangeand namedname.
 - 
mkFreshConstpublic <R extends Sort> Expr<R> mkFreshConst(java.lang.String prefix, R range) Creates a fresh Constant of sortrangeand a name prefixed withprefix.
 - 
mkConstpublic <R extends Sort> Expr<R> mkConst(FuncDecl<R> f) Creates a fresh constant from the FuncDeclf.- Parameters:
- f- A decl of a 0-arity function
 
 - 
mkBoolConstpublic BoolExpr mkBoolConst(java.lang.String name) Create a Boolean constant.
 - 
mkIntConstpublic IntExpr mkIntConst(java.lang.String name) Creates an integer constant.
 - 
mkRealConstpublic RealExpr mkRealConst(java.lang.String name) Creates a real constant.
 - 
mkBVConstpublic BitVecExpr mkBVConst(Symbol name, int size) Creates a bit-vector constant.
 - 
mkBVConstpublic BitVecExpr mkBVConst(java.lang.String name, int size) Creates a bit-vector constant.
 - 
mkApp@SafeVarargs public final <R extends Sort> Expr<R> mkApp(FuncDecl<R> f, Expr<?>... args) Create a new function application.
 - 
mkTruepublic BoolExpr mkTrue() The true Term.
 - 
mkFalsepublic BoolExpr mkFalse() The false Term.
 - 
mkBoolpublic BoolExpr mkBool(boolean value) Creates a Boolean value.
 - 
mkITEpublic <R extends Sort> Expr<R> mkITE(Expr<BoolSort> t1, Expr<? extends R> t2, Expr<? extends R> t3) Create an expression representing an if-then-else:ite(t1, t2, t3).- Parameters:
- t1- An expression with Boolean sort
- t2- An expression
- t3- An expression with the same sort as- t2
 
 - 
mkIffpublic BoolExpr mkIff(Expr<BoolSort> t1, Expr<BoolSort> t2) Create an expression representingt1 iff t2.
 - 
mkImpliespublic BoolExpr mkImplies(Expr<BoolSort> t1, Expr<BoolSort> t2) Create an expression representingt1 -> t2.
 - 
mkXorpublic BoolExpr mkXor(Expr<BoolSort> t1, Expr<BoolSort> t2) Create an expression representingt1 xor t2.
 - 
mkAnd@SafeVarargs public final BoolExpr mkAnd(Expr<BoolSort>... t) Create an expression representingt[0] and t[1] and ....
 - 
mkOr@SafeVarargs public final BoolExpr mkOr(Expr<BoolSort>... t) Create an expression representingt[0] or t[1] or ....
 - 
mkAdd@SafeVarargs public final <R extends ArithSort> ArithExpr<R> mkAdd(Expr<? extends R>... t) Create an expression representingt[0] + t[1] + ....
 - 
mkMul@SafeVarargs public final <R extends ArithSort> ArithExpr<R> mkMul(Expr<? extends R>... t) Create an expression representingt[0] * t[1] * ....
 - 
mkSub@SafeVarargs public final <R extends ArithSort> ArithExpr<R> mkSub(Expr<? extends R>... t) Create an expression representingt[0] - t[1] - ....
 - 
mkUnaryMinuspublic <R extends ArithSort> ArithExpr<R> mkUnaryMinus(Expr<R> t) Create an expression representing-t.
 - 
mkDivpublic <R extends ArithSort> ArithExpr<R> mkDiv(Expr<? extends R> t1, Expr<? extends R> t2) Create an expression representingt1 / t2.
 - 
mkModpublic IntExpr mkMod(Expr<IntSort> t1, Expr<IntSort> t2) Create an expression representingt1 mod t2. Remarks: The arguments must have int type.
 - 
mkRempublic IntExpr mkRem(Expr<IntSort> t1, Expr<IntSort> t2) Create an expression representingt1 rem t2. Remarks: The arguments must have int type.
 - 
mkPowerpublic <R extends ArithSort> ArithExpr<R> mkPower(Expr<? extends R> t1, Expr<? extends R> t2) Create an expression representingt1 ^ t2.
 - 
mkLtpublic BoolExpr mkLt(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2) Create an expression representingt1 < t2
 - 
mkLepublic BoolExpr mkLe(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2) Create an expression representingt1 <= t2
 - 
mkGtpublic BoolExpr mkGt(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2) Create an expression representingt1 > t2
 - 
mkGepublic BoolExpr mkGe(Expr<? extends ArithSort> t1, Expr<? extends ArithSort> t2) Create an expression representingt1 >= t2
 - 
mkInt2Realpublic RealExpr mkInt2Real(Expr<IntSort> t) Coerce an integer to a real. Remarks: There is also a converse operation exposed. It follows the semantics prescribed by the SMT-LIB standard. You can take the floor of a real by creating an auxiliary integer Termkand assertingMakeInt2Real(k) <= t1 < MkInt2Real(k)+1. The argument must be of integer sort.
 - 
mkReal2Intpublic IntExpr mkReal2Int(Expr<RealSort> t) Coerce a real to an integer. Remarks: The semantics of this function follows the SMT-LIB standard for the function to_int. The argument must be of real sort.
 - 
mkIsIntegerpublic BoolExpr mkIsInteger(Expr<RealSort> t) Creates an expression that checks whether a real number is an integer.
 - 
mkBVNotpublic BitVecExpr mkBVNot(Expr<BitVecSort> t) Bitwise negation. Remarks: The argument must have a bit-vector sort.
 - 
mkBVRedANDpublic BitVecExpr mkBVRedAND(Expr<BitVecSort> t) Take conjunction of bits in a vector, return vector of length 1. Remarks: The argument must have a bit-vector sort.
 - 
mkBVRedORpublic BitVecExpr mkBVRedOR(Expr<BitVecSort> t) Take disjunction of bits in a vector, return vector of length 1. Remarks: The argument must have a bit-vector sort.
 - 
mkBVANDpublic BitVecExpr mkBVAND(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise conjunction. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVORpublic BitVecExpr mkBVOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise disjunction. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVXORpublic BitVecExpr mkBVXOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise XOR. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVNANDpublic BitVecExpr mkBVNAND(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise NAND. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVNORpublic BitVecExpr mkBVNOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise NOR. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVXNORpublic BitVecExpr mkBVXNOR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bitwise XNOR. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVNegpublic BitVecExpr mkBVNeg(Expr<BitVecSort> t) Standard two's complement unary minus. Remarks: The arguments must have a bit-vector sort.
 - 
mkBVAddpublic BitVecExpr mkBVAdd(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement addition. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVSubpublic BitVecExpr mkBVSub(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement subtraction. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVMulpublic BitVecExpr mkBVMul(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement multiplication. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVUDivpublic BitVecExpr mkBVUDiv(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned division. Remarks: It is defined as the floor oft1/t2if \c t2 is different from zero. Ift2is zero, then the result is undefined. The arguments must have the same bit-vector sort.
 - 
mkBVSDivpublic BitVecExpr mkBVSDiv(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Signed division. Remarks: It is defined in the following way: - The \c floor oft1/t2if \c t2 is different from zero, andt1*t2 >= 0. - The \c ceiling oft1/t2if \c t2 is different from zero, andt1*t2 < 0. Ift2is zero, then the result is undefined. The arguments must have the same bit-vector sort.
 - 
mkBVURempublic BitVecExpr mkBVURem(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned remainder. Remarks: It is defined ast1 - (t1 /u t2) * t2, where/urepresents unsigned division. Ift2is zero, then the result is undefined. The arguments must have the same bit-vector sort.
 - 
mkBVSRempublic BitVecExpr mkBVSRem(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Signed remainder. Remarks: It is defined ast1 - (t1 /s t2) * t2, where/srepresents signed division. The most significant bit (sign) of the result is equal to the most significant bit of \c t1. Ift2is zero, then the result is undefined. The arguments must have the same bit-vector sort.
 - 
mkBVSModpublic BitVecExpr mkBVSMod(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement signed remainder (sign follows divisor). Remarks: Ift2is zero, then the result is undefined. The arguments must have the same bit-vector sort.
 - 
mkBVULTpublic BoolExpr mkBVULT(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned less-than Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVSLTpublic BoolExpr mkBVSLT(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement signed less-than Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVULEpublic BoolExpr mkBVULE(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned less-than or equal to. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVSLEpublic BoolExpr mkBVSLE(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement signed less-than or equal to. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVUGEpublic BoolExpr mkBVUGE(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned greater than or equal to. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVSGEpublic BoolExpr mkBVSGE(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement signed greater than or equal to. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVUGTpublic BoolExpr mkBVUGT(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Unsigned greater-than. Remarks: The arguments must have the same bit-vector sort.
 - 
mkBVSGTpublic BoolExpr mkBVSGT(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Two's complement signed greater-than. Remarks: The arguments must have the same bit-vector sort.
 - 
mkConcatpublic BitVecExpr mkConcat(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Bit-vector concatenation. Remarks: The arguments must have a bit-vector sort.- Returns:
- The result is a bit-vector of size n1+n2, wheren1(n2) is the size oft1(t2).
 
 - 
mkExtractpublic BitVecExpr mkExtract(int high, int low, Expr<BitVecSort> t) Bit-vector extraction. Remarks: Extract the bitshighdown tolowfrom a bitvector of sizemto yield a new bitvector of sizen, wheren = high - low + 1. The argumenttmust have a bit-vector sort.
 - 
mkSignExtpublic BitVecExpr mkSignExt(int i, Expr<BitVecSort> t) Bit-vector sign extension. Remarks: Sign-extends the given bit-vector to the (signed) equivalent bitvector of sizem+i, where \c m is the size of the given bit-vector. The argumenttmust have a bit-vector sort.
 - 
mkZeroExtpublic BitVecExpr mkZeroExt(int i, Expr<BitVecSort> t) Bit-vector zero extension. Remarks: Extend the given bit-vector with zeros to the (unsigned) equivalent bitvector of sizem+i, where \c m is the size of the given bit-vector. The argumenttmust have a bit-vector sort.
 - 
mkRepeatpublic BitVecExpr mkRepeat(int i, Expr<BitVecSort> t) Bit-vector repetition. Remarks: The argumenttmust have a bit-vector sort.
 - 
mkBVSHLpublic BitVecExpr mkBVSHL(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Shift left. Remarks: It is equivalent to multiplication by2^xwhere \c x is the value oft2. NB. The semantics of shift operations varies between environments. This definition does not necessarily capture directly the semantics of the programming language or assembly architecture you are modeling. The arguments must have a bit-vector sort.
 - 
mkBVLSHRpublic BitVecExpr mkBVLSHR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Logical shift right Remarks: It is equivalent to unsigned division by2^xwhere \c x is the value oft2. NB. The semantics of shift operations varies between environments. This definition does not necessarily capture directly the semantics of the programming language or assembly architecture you are modeling. The arguments must have a bit-vector sort.
 - 
mkBVASHRpublic BitVecExpr mkBVASHR(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Arithmetic shift right Remarks: It is like logical shift right except that the most significant bits of the result always copy the most significant bit of the second argument. NB. The semantics of shift operations varies between environments. This definition does not necessarily capture directly the semantics of the programming language or assembly architecture you are modeling. The arguments must have a bit-vector sort.
 - 
mkBVRotateLeftpublic BitVecExpr mkBVRotateLeft(int i, Expr<BitVecSort> t) Rotate Left. Remarks: Rotate bits of \c t to the left \c i times. The argumenttmust have a bit-vector sort.
 - 
mkBVRotateRightpublic BitVecExpr mkBVRotateRight(int i, Expr<BitVecSort> t) Rotate Right. Remarks: Rotate bits of \c t to the right \c i times. The argumenttmust have a bit-vector sort.
 - 
mkBVRotateLeftpublic BitVecExpr mkBVRotateLeft(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Rotate Left. Remarks: Rotate bits oft1to the leftt2times. The arguments must have the same bit-vector sort.
 - 
mkBVRotateRightpublic BitVecExpr mkBVRotateRight(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Rotate Right. Remarks: Rotate bits oft1to the rightt2times. The arguments must have the same bit-vector sort.
 - 
mkInt2BVpublic BitVecExpr mkInt2BV(int n, Expr<IntSort> t) Create annbit bit-vector from the integer argumentt. Remarks: NB. This function is essentially treated as uninterpreted. So you cannot expect Z3 to precisely reflect the semantics of this function when solving constraints with this function. The argument must be of integer sort.
 - 
mkBV2Intpublic IntExpr mkBV2Int(Expr<BitVecSort> t, boolean signed) Create an integer from the bit-vector argumentt. Remarks: If \c is_signed is false, then the bit-vector \c t1 is treated as unsigned. So the result is non-negative and in the range[0..2^N-1], where N are the number of bits int. If \c is_signed is true, \c t1 is treated as a signed bit-vector. NB. This function is essentially treated as uninterpreted. So you cannot expect Z3 to precisely reflect the semantics of this function when solving constraints with this function. The argument must be of bit-vector sort.
 - 
mkBVAddNoOverflowpublic BoolExpr mkBVAddNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned) Create a predicate that checks that the bit-wise addition does not overflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVAddNoUnderflowpublic BoolExpr mkBVAddNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Create a predicate that checks that the bit-wise addition does not underflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVSubNoOverflowpublic BoolExpr mkBVSubNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Create a predicate that checks that the bit-wise subtraction does not overflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVSubNoUnderflowpublic BoolExpr mkBVSubNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned) Create a predicate that checks that the bit-wise subtraction does not underflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVSDivNoOverflowpublic BoolExpr mkBVSDivNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Create a predicate that checks that the bit-wise signed division does not overflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVNegNoOverflowpublic BoolExpr mkBVNegNoOverflow(Expr<BitVecSort> t) Create a predicate that checks that the bit-wise negation does not overflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVMulNoOverflowpublic BoolExpr mkBVMulNoOverflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2, boolean isSigned) Create a predicate that checks that the bit-wise multiplication does not overflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkBVMulNoUnderflowpublic BoolExpr mkBVMulNoUnderflow(Expr<BitVecSort> t1, Expr<BitVecSort> t2) Create a predicate that checks that the bit-wise multiplication does not underflow. Remarks: The arguments must be of bit-vector sort.
 - 
mkArrayConstpublic <D extends Sort,R extends Sort> ArrayExpr<D,R> mkArrayConst(Symbol name, D domain, R range) Create an array constant.
 - 
mkArrayConstpublic <D extends Sort,R extends Sort> ArrayExpr<D,R> mkArrayConst(java.lang.String name, D domain, R range) Create an array constant.
 - 
mkSelectpublic <D extends Sort,R extends Sort> Expr<R> mkSelect(Expr<ArraySort<D,R>> a, Expr<D> i) Array read. Remarks: The argumentais the array andiis the index of the array that gets read. The nodeamust have an array sort[domain -> range], andimust have the sortdomain. The sort of the result isrange.
 - 
mkSelectpublic <R extends Sort> Expr<R> mkSelect(Expr<ArraySort<Sort,R>> a, Expr<?>[] args) Array read. Remarks: The argumentais the array andargsare the indices of the array that gets read. The nodeamust have an array sort[domains -> range], andargsmust have the sortsdomains. The sort of the result isrange.
 - 
mkStorepublic <D extends Sort,R extends Sort> ArrayExpr<D,R> mkStore(Expr<ArraySort<D,R>> a, Expr<D> i, Expr<R> v) Array update. Remarks: The nodeamust have an array sort[domain -> range],imust have sortdomain,vmust have sort range. The sort of the result is[domain -> range]. The semantics of this function is given by the theory of arrays described in the SMT-LIB standard. See http://smtlib.org for more details. The result of this function is an array that is equal toa(with respect toselect) on all indices except fori, where it maps tov(and theselectofawith respect toimay be a different value).
 - 
mkStorepublic <R extends Sort> ArrayExpr<Sort,R> mkStore(Expr<ArraySort<Sort,R>> a, Expr<?>[] args, Expr<R> v) Array update. Remarks: The nodeamust have an array sort[domains -> range],imust have sortdomain,vmust have sort range. The sort of the result is[domains -> range]. The semantics of this function is given by the theory of arrays described in the SMT-LIB standard. See http://smtlib.org for more details. The result of this function is an array that is equal toa(with respect toselect) on all indices except forargs, where it maps tov(and theselectofawith respect toargsmay be a different value).
 - 
mkConstArraypublic <D extends Sort,R extends Sort> ArrayExpr<D,R> mkConstArray(D domain, Expr<R> v) Create a constant array. Remarks: The resulting term is an array, such that aselecton an arbitrary index produces the valuev.
 - 
mkMap@SafeVarargs public final <D extends Sort,R1 extends Sort,R2 extends Sort> ArrayExpr<D,R2> mkMap(FuncDecl<R2> f, Expr<ArraySort<D,R1>>... args) Maps f on the argument arrays. Remarks: Each element ofargsmust be of an array sort[domain_i -> range_i]. The function declarationfmust have typerange_1 .. range_n -> range.vmust have sort range. The sort of the result is[domain_i -> range].
 - 
mkTermArraypublic <D extends Sort,R extends Sort> Expr<R> mkTermArray(Expr<ArraySort<D,R>> array) Access the array default value. Remarks: Produces the default range value, for arrays that can be represented as finite maps with a default range value.
 - 
mkArrayExtpublic <D extends Sort,R extends Sort> Expr<D> mkArrayExt(Expr<ArraySort<D,R>> arg1, Expr<ArraySort<D,R>> arg2) Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.
 - 
mkEmptySetpublic <D extends Sort> ArrayExpr<D,BoolSort> mkEmptySet(D domain) Create an empty set.
 - 
mkSetAddpublic <D extends Sort> ArrayExpr<D,BoolSort> mkSetAdd(Expr<ArraySort<D,BoolSort>> set, Expr<D> element) Add an element to the set.
 - 
mkSetDelpublic <D extends Sort> ArrayExpr<D,BoolSort> mkSetDel(Expr<ArraySort<D,BoolSort>> set, Expr<D> element) Remove an element from a set.
 - 
mkSetUnion@SafeVarargs public final <D extends Sort> ArrayExpr<D,BoolSort> mkSetUnion(Expr<ArraySort<D,BoolSort>>... args) Take the union of a list of sets.
 - 
mkSetIntersection@SafeVarargs public final <D extends Sort> ArrayExpr<D,BoolSort> mkSetIntersection(Expr<ArraySort<D,BoolSort>>... args) Take the intersection of a list of sets.
 - 
mkSetDifferencepublic <D extends Sort> ArrayExpr<D,BoolSort> mkSetDifference(Expr<ArraySort<D,BoolSort>> arg1, Expr<ArraySort<D,BoolSort>> arg2) Take the difference between two sets.
 - 
mkSetComplementpublic <D extends Sort> ArrayExpr<D,BoolSort> mkSetComplement(Expr<ArraySort<D,BoolSort>> arg) Take the complement of a set.
 - 
mkSetMembershippublic <D extends Sort> BoolExpr mkSetMembership(Expr<D> elem, Expr<ArraySort<D,BoolSort>> set) Check for set membership.
 - 
mkSetSubsetpublic <D extends Sort> BoolExpr mkSetSubset(Expr<ArraySort<D,BoolSort>> arg1, Expr<ArraySort<D,BoolSort>> arg2) Check for subsetness of sets.
 - 
intToStringpublic SeqExpr<CharSort> intToString(Expr<IntSort> e) Convert an integer expression to a string.
 - 
ubvToStringpublic SeqExpr<CharSort> ubvToString(Expr<BitVecSort> e) Convert an unsigned bitvector expression to a string.
 - 
sbvToStringpublic SeqExpr<CharSort> sbvToString(Expr<BitVecSort> e) Convert an signed bitvector expression to a string.
 - 
stringToIntpublic IntExpr stringToInt(Expr<SeqSort<CharSort>> e) Convert an integer expression to a string.
 - 
mkConcat@SafeVarargs public final <R extends Sort> SeqExpr<R> mkConcat(Expr<SeqSort<R>>... t) Concatenate sequences.
 - 
mkLengthpublic <R extends Sort> IntExpr mkLength(Expr<SeqSort<R>> s) Retrieve the length of a given sequence.
 - 
mkPrefixOfpublic <R extends Sort> BoolExpr mkPrefixOf(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2) Check for sequence prefix.
 - 
mkSuffixOfpublic <R extends Sort> BoolExpr mkSuffixOf(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2) Check for sequence suffix.
 - 
mkContainspublic <R extends Sort> BoolExpr mkContains(Expr<SeqSort<R>> s1, Expr<SeqSort<R>> s2) Check for sequence containment of s2 in s1.
 - 
mkAtpublic <R extends Sort> SeqExpr<R> mkAt(Expr<SeqSort<R>> s, Expr<IntSort> index) Retrieve sequence of length one at index.
 - 
mkNthpublic <R extends Sort> Expr<R> mkNth(Expr<SeqSort<R>> s, Expr<IntSort> index) Retrieve element at index.
 - 
mkExtractpublic <R extends Sort> SeqExpr<R> mkExtract(Expr<SeqSort<R>> s, Expr<IntSort> offset, Expr<IntSort> length) Extract subsequence.
 - 
mkIndexOfpublic <R extends Sort> IntExpr mkIndexOf(Expr<SeqSort<R>> s, Expr<SeqSort<R>> substr, Expr<IntSort> offset) Extract index of sub-string starting at offset.
 - 
mkReplacepublic <R extends Sort> SeqExpr<R> mkReplace(Expr<SeqSort<R>> s, Expr<SeqSort<R>> src, Expr<SeqSort<R>> dst) Replace the first occurrence of src by dst in s.
 - 
mkToRepublic <R extends Sort> ReExpr<R> mkToRe(Expr<SeqSort<R>> s) Convert a regular expression that accepts sequence s.
 - 
mkInRepublic <R extends Sort> BoolExpr mkInRe(Expr<SeqSort<R>> s, Expr<ReSort<R>> re) Check for regular expression membership.
 - 
mkStarpublic <R extends Sort> ReExpr<R> mkStar(Expr<ReSort<R>> re) Take the Kleene star of a regular expression.
 - 
mkLooppublic <R extends Sort> ReExpr<R> mkLoop(Expr<ReSort<R>> re, int lo, int hi) Take the lower and upper-bounded Kleene star of a regular expression.
 - 
mkLooppublic <R extends Sort> ReExpr<R> mkLoop(Expr<ReSort<R>> re, int lo) Take the lower-bounded Kleene star of a regular expression.
 - 
mkPluspublic <R extends Sort> ReExpr<R> mkPlus(Expr<ReSort<R>> re) Take the Kleene plus of a regular expression.
 - 
mkOptionpublic <R extends Sort> ReExpr<R> mkOption(Expr<ReSort<R>> re) Create the optional regular expression.
 - 
mkComplementpublic <R extends Sort> ReExpr<R> mkComplement(Expr<ReSort<R>> re) Create the complement regular expression.
 - 
mkConcat@SafeVarargs public final <R extends Sort> ReExpr<R> mkConcat(ReExpr<R>... t) Create the concatenation of regular languages.
 - 
mkUnion@SafeVarargs public final <R extends Sort> ReExpr<R> mkUnion(Expr<ReSort<R>>... t) Create the union of regular languages.
 - 
mkIntersect@SafeVarargs public final <R extends Sort> ReExpr<R> mkIntersect(Expr<ReSort<R>>... t) Create the intersection of regular languages.
 - 
mkDiffpublic <R extends Sort> ReExpr<R> mkDiff(Expr<ReSort<R>> a, Expr<ReSort<R>> b) Create a difference regular expression.
 - 
mkEmptyRepublic <R extends Sort> ReExpr<R> mkEmptyRe(R s) Create the empty regular expression. Coresponds to re.none
 - 
mkFullRepublic <R extends Sort> ReExpr<R> mkFullRe(R s) Create the full regular expression. Corresponds to re.all
 - 
mkAllcharRepublic <R extends Sort> ReExpr<R> mkAllcharRe(R s) Create regular expression that accepts all characters Corresponds to re.allchar
 - 
mkRangepublic <R extends Sort> ReExpr<R> mkRange(Expr<SeqSort<CharSort>> lo, Expr<SeqSort<CharSort>> hi) Create a range expression.
 - 
mkCharLepublic BoolExpr mkCharLe(Expr<CharSort> ch1, Expr<CharSort> ch2) Create less than or equal to between two characters.
 - 
charToIntpublic IntExpr charToInt(Expr<CharSort> ch) Create an integer (code point) from character.
 - 
charToBvpublic BitVecExpr charToBv(Expr<CharSort> ch) Create a bit-vector (code point) from character.
 - 
charFromBvpublic Expr<CharSort> charFromBv(BitVecExpr bv) Create a character from a bit-vector (code point).
 - 
mkPBLepublic BoolExpr mkPBLe(int[] coeffs, Expr<BoolSort>[] args, int k) Create a pseudo-Boolean less-or-equal constraint.
 - 
mkPBGepublic BoolExpr mkPBGe(int[] coeffs, Expr<BoolSort>[] args, int k) Create a pseudo-Boolean greater-or-equal constraint.
 - 
mkPBEqpublic BoolExpr mkPBEq(int[] coeffs, Expr<BoolSort>[] args, int k) Create a pseudo-Boolean equal constraint.
 - 
mkNumeralpublic <R extends Sort> Expr<R> mkNumeral(java.lang.String v, R ty) Create a Term of a given sort.- Parameters:
- v- A string representing the term value in decimal notation. If the given sort is a real, then the Term can be a rational, that is, a string of the form- [num]* / [num]*.
- ty- The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size.
- Returns:
- A Term with value vand sortty
 
 - 
mkNumeralpublic <R extends Sort> Expr<R> mkNumeral(int v, R ty) Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster thanMakeNumeralsince it is not necessary to parse a string.- Parameters:
- v- Value of the numeral
- ty- Sort of the numeral
- Returns:
- A Term with value vand typety
 
 - 
mkNumeralpublic <R extends Sort> Expr<R> mkNumeral(long v, R ty) Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster thanMakeNumeralsince it is not necessary to parse a string.- Parameters:
- v- Value of the numeral
- ty- Sort of the numeral
- Returns:
- A Term with value vand typety
 
 - 
mkRealpublic RatNum mkReal(int num, int den) Create a real from a fraction.- Parameters:
- num- numerator of rational.
- den- denominator of rational.
- Returns:
- A Term with value num/denand sort Real
- See Also:
- mkNumeral(String,Sort)
 
 - 
mkRealpublic RatNum mkReal(java.lang.String v) Create a real numeral.- Parameters:
- v- A string representing the Term value in decimal notation.
- Returns:
- A Term with value vand sort Real
 
 - 
mkRealpublic RatNum mkReal(int v) Create a real numeral.- Parameters:
- v- value of the numeral.
- Returns:
- A Term with value vand sort Real
 
 - 
mkRealpublic RatNum mkReal(long v) Create a real numeral.- Parameters:
- v- value of the numeral.
- Returns:
- A Term with value vand sort Real
 
 - 
mkIntpublic IntNum mkInt(java.lang.String v) Create an integer numeral.- Parameters:
- v- A string representing the Term value in decimal notation.
 
 - 
mkIntpublic IntNum mkInt(int v) Create an integer numeral.- Parameters:
- v- value of the numeral.
- Returns:
- A Term with value vand sort Integer
 
 - 
mkIntpublic IntNum mkInt(long v) Create an integer numeral.- Parameters:
- v- value of the numeral.
- Returns:
- A Term with value vand sort Integer
 
 - 
mkBVpublic BitVecNum mkBV(java.lang.String v, int size) Create a bit-vector numeral.- Parameters:
- v- A string representing the value in decimal notation.
- size- the size of the bit-vector
 
 - 
mkBVpublic BitVecNum mkBV(int v, int size) Create a bit-vector numeral.- Parameters:
- v- value of the numeral.
- size- the size of the bit-vector
 
 - 
mkBVpublic BitVecNum mkBV(long v, int size) Create a bit-vector numeral.- Parameters:
- v- value of the numeral. *
- size- the size of the bit-vector
 
 - 
mkForallpublic Quantifier mkForall(Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Create a universal Quantifier.- Parameters:
- sorts- the sorts of the bound variables.
- names- names of the bound variables
- body- the body of the quantifier.
- weight- quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.
- patterns- array containing the patterns created using- MkPattern.
- noPatterns- array containing the anti-patterns created using- MkPattern.
- quantifierID- optional symbol to track quantifier.
- skolemID- optional symbol to track skolem constants.
- Returns:
- Creates a forall formula, where
 weightis the weight,patternsis an array of patterns,sortsis an array with the sorts of the bound variables,namesis an array with the 'names' of the bound variables, andbodyis the body of the quantifier. Quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. Note that the bound variables are de-Bruijn indices created usingmkBound(int, R). Z3 applies the convention that the last element innamesandsortsrefers to the variable with index 0, the second to last element ofnamesandsortsrefers to the variable with index 1, etc.
 
 - 
mkForallpublic Quantifier mkForall(Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Creates a universal quantifier using a list of constants that will form the set of bound variables.- See Also:
- #mkForall(Sort[],Symbol[],Expr- ,int,Pattern[],Expr>[],Symbol,Symbol) 
 
 - 
mkExistspublic Quantifier mkExists(Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Creates an existential quantifier using de-Bruijn indexed variables.- See Also:
- #mkForall(Sort[],Symbol[],Expr- ,int,Pattern[],Expr>[],Symbol,Symbol) 
 
 - 
mkExistspublic Quantifier mkExists(Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Creates an existential quantifier using a list of constants that will form the set of bound variables.- See Also:
- #mkForall(Sort[],Symbol[],Expr- ,int,Pattern[],Expr>[],Symbol,Symbol) 
 
 - 
mkQuantifierpublic Quantifier mkQuantifier(boolean universal, Sort[] sorts, Symbol[] names, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Create a Quantifier.- See Also:
- #mkForall(Sort[],Symbol[],Expr- ,int,Pattern[],Expr>[],Symbol,Symbol) 
 
 - 
mkQuantifierpublic Quantifier mkQuantifier(boolean universal, Expr<?>[] boundConstants, Expr<BoolSort> body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID) Create a Quantifier- See Also:
- #mkForall(Sort[],Symbol[],Expr- ,int,Pattern[],Expr>[],Symbol,Symbol) 
 
 - 
mkLambdapublic <R extends Sort> Lambda<R> mkLambda(Sort[] sorts, Symbol[] names, Expr<R> body) Create a lambda expression.sortsis an array with the sorts of the bound variables,namesis an array with the 'names' of the bound variables, andbodyis the body of the lambda. Note that the bound variables are de-Bruijn indices created usingmkBound(int, R)Z3 applies the convention that the last element innamesandsortsrefers to the variable with index 0, the second to last element ofnamesandsortsrefers to the variable with index 1, etc.- Parameters:
- sorts- the sorts of the bound variables.
- names- names of the bound variables.
- body- the body of the quantifier.
 
 - 
mkLambdapublic <R extends Sort> Lambda<R> mkLambda(Expr<?>[] boundConstants, Expr<R> body) Create a lambda expression. Creates a lambda expression using a list of constants that will form the set of bound variables.
 - 
setPrintModepublic void setPrintMode(Z3_ast_print_mode value) Selects the format used for pretty-printing expressions. Remarks: The default mode for pretty printing expressions is to produce SMT-LIB style output where common subexpressions are printed at each occurrence. The mode is called Z3_PRINT_SMTLIB_FULL. To print shared common subexpressions only once, use the Z3_PRINT_LOW_LEVEL mode. To print in way that conforms to SMT-LIB standards and uses let expressions to share common sub-expressions use Z3_PRINT_SMTLIB_COMPLIANT.
 - 
benchmarkToSMTStringpublic java.lang.String benchmarkToSMTString(java.lang.String name, java.lang.String logic, java.lang.String status, java.lang.String attributes, Expr<BoolSort>[] assumptions, Expr<BoolSort> formula)Convert a benchmark into an SMT-LIB formatted string.- Parameters:
- name- Name of the benchmark. The argument is optional.
- logic- The benchmark logic.
- status- The status string (sat, unsat, or unknown)
- attributes- Other attributes, such as source, difficulty or category.
- assumptions- Auxiliary assumptions.
- formula- Formula to be checked for consistency in conjunction with assumptions.
- Returns:
- A string representation of the benchmark.
 
 - 
parseSMTLIB2Stringpublic BoolExpr[] parseSMTLIB2String(java.lang.String str, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls) Parse the given string using the SMT-LIB2 parser.- Returns:
- A conjunction of assertions. If the string contains push/pop commands, the set of assertions returned are the ones in the last scope level.
 
 - 
parseSMTLIB2Filepublic BoolExpr[] parseSMTLIB2File(java.lang.String fileName, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls) Parse the given file using the SMT-LIB2 parser.
 - 
mkGoalpublic Goal mkGoal(boolean models, boolean unsatCores, boolean proofs) Creates a new Goal. Remarks: Note that the Context must have been created with proof generation support ifproofsis set to true here.- Parameters:
- models- Indicates whether model generation should be enabled.
- unsatCores- Indicates whether unsat core generation should be enabled.
- proofs- Indicates whether proof generation should be enabled.
 
 - 
mkParamspublic Params mkParams() Creates a new ParameterSet.
 - 
getNumTacticspublic int getNumTactics() The number of supported tactics.
 - 
getTacticNamespublic java.lang.String[] getTacticNames() The names of all supported tactics.
 - 
getTacticDescriptionpublic java.lang.String getTacticDescription(java.lang.String name) Returns a string containing a description of the tactic with the given name.
 - 
mkTacticpublic Tactic mkTactic(java.lang.String name) Creates a new Tactic.
 - 
andThenpublic Tactic andThen(Tactic t1, Tactic t2, Tactic... ts) Create a tactic that appliest1to a Goal and thent2to every subgoal produced byt1
 - 
thenpublic Tactic then(Tactic t1, Tactic t2, Tactic... ts) Create a tactic that appliest1to a Goal and thent2to every subgoal produced byt1Remarks: Shorthand forAndThen.
 - 
orElsepublic Tactic orElse(Tactic t1, Tactic t2) Create a tactic that first appliest1to a Goal and if it fails then returns the result oft2applied to the Goal.
 - 
tryForpublic Tactic tryFor(Tactic t, int ms) Create a tactic that appliestto a goal formsmilliseconds. Remarks: Iftdoes not terminate withinmsmilliseconds, then it fails.
 - 
whenpublic Tactic when(Probe p, Tactic t) Create a tactic that appliestto a given goal if the probepevaluates to true. Remarks: Ifpevaluates to false, then the new tactic behaves like theskiptactic.
 - 
condpublic Tactic cond(Probe p, Tactic t1, Tactic t2) Create a tactic that appliest1to a given goal if the probepevaluates to true andt2otherwise.
 - 
repeatpublic Tactic repeat(Tactic t, int max) Create a tactic that keeps applyingtuntil the goal is not modified anymore or the maximum number of iterationsmaxis reached.
 - 
skippublic Tactic skip() Create a tactic that just returns the given goal.
 - 
failpublic Tactic fail() Create a tactic always fails.
 - 
failIfNotDecidedpublic Tactic failIfNotDecided() Create a tactic that fails if the goal is not trivially satisfiable (i.e., empty) or trivially unsatisfiable (i.e., contains `false').
 - 
usingParamspublic Tactic usingParams(Tactic t, Params p) Create a tactic that appliestusing the given set of parametersp.
 - 
withpublic Tactic with(Tactic t, Params p) Create a tactic that appliestusing the given set of parametersp. Remarks: Alias forUsingParams
 - 
parOrpublic Tactic parOr(Tactic... t) Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).
 - 
parAndThenpublic Tactic parAndThen(Tactic t1, Tactic t2) Create a tactic that appliest1to a given goal and thent2to every subgoal produced byt1. The subgoals are processed in parallel.
 - 
interruptpublic void interrupt() Interrupt the execution of a Z3 procedure. Remarks: This procedure can be used to interrupt: solvers, simplifiers and tactics.
 - 
getNumProbespublic int getNumProbes() The number of supported Probes.
 - 
getProbeNamespublic java.lang.String[] getProbeNames() The names of all supported Probes.
 - 
getProbeDescriptionpublic java.lang.String getProbeDescription(java.lang.String name) Returns a string containing a description of the probe with the given name.
 - 
mkProbepublic Probe mkProbe(java.lang.String name) Creates a new Probe.
 - 
constProbepublic Probe constProbe(double val) Create a probe that always evaluates toval.
 - 
ltpublic Probe lt(Probe p1, Probe p2) Create a probe that evaluates totruewhen the value returned byp1is less than the value returned byp2
 - 
gtpublic Probe gt(Probe p1, Probe p2) Create a probe that evaluates totruewhen the value returned byp1is greater than the value returned byp2
 - 
lepublic Probe le(Probe p1, Probe p2) Create a probe that evaluates totruewhen the value returned byp1is less than or equal the value returned byp2
 - 
gepublic Probe ge(Probe p1, Probe p2) Create a probe that evaluates totruewhen the value returned byp1is greater than or equal the value returned byp2
 - 
eqpublic Probe eq(Probe p1, Probe p2) Create a probe that evaluates totruewhen the value returned byp1is equal to the value returned byp2
 - 
andpublic Probe and(Probe p1, Probe p2) Create a probe that evaluates totruewhen the valuep1andp2evaluate totrue.
 - 
orpublic Probe or(Probe p1, Probe p2) Create a probe that evaluates totruewhen the valuep1orp2evaluate totrue.
 - 
notpublic Probe not(Probe p) Create a probe that evaluates totruewhen the valuepdoes not evaluate totrue.
 - 
mkSolverpublic Solver mkSolver() Creates a new (incremental) solver. Remarks: This solver also uses a set of builtin tactics for handling the first check-sat command, and check-sat commands that take more than a given number of milliseconds to be solved.
 - 
mkSolverpublic Solver mkSolver(Symbol logic) Creates a new (incremental) solver. Remarks: This solver also uses a set of builtin tactics for handling the first check-sat command, and check-sat commands that take more than a given number of milliseconds to be solved.
 - 
mkSolverpublic Solver mkSolver(java.lang.String logic) Creates a new (incremental) solver.- See Also:
- mkSolver(Symbol)
 
 - 
mkSimpleSolverpublic Solver mkSimpleSolver() Creates a new (incremental) solver.
 - 
mkSolverpublic Solver mkSolver(Tactic t) Creates a solver that is implemented using the given tactic. Remarks: The solver supports the commandsPushandPop, but it will always solve each check from scratch.
 - 
mkFixedpointpublic Fixedpoint mkFixedpoint() Create a Fixedpoint context.
 - 
mkOptimizepublic Optimize mkOptimize() Create a Optimize context.
 - 
mkFPRoundingModeSortpublic FPRMSort mkFPRoundingModeSort() Create the floating-point RoundingMode sort.- Throws:
- Z3Exception
 
 - 
mkFPRoundNearestTiesToEvenpublic FPRMExpr mkFPRoundNearestTiesToEven() Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRNEpublic FPRMNum mkFPRNE() Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRoundNearestTiesToAwaypublic FPRMNum mkFPRoundNearestTiesToAway() Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRNApublic FPRMNum mkFPRNA() Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRoundTowardPositivepublic FPRMNum mkFPRoundTowardPositive() Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRTPpublic FPRMNum mkFPRTP() Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRoundTowardNegativepublic FPRMNum mkFPRoundTowardNegative() Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRTNpublic FPRMNum mkFPRTN() Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRoundTowardZeropublic FPRMNum mkFPRoundTowardZero() Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPRTZpublic FPRMNum mkFPRTZ() Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.- Throws:
- Z3Exception
 
 - 
mkFPSortpublic FPSort mkFPSort(int ebits, int sbits) Create a FloatingPoint sort.- Parameters:
- ebits- exponent bits in the FloatingPoint sort.
- sbits- significand bits in the FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPSortHalfpublic FPSort mkFPSortHalf() Create the half-precision (16-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSort16public FPSort mkFPSort16() Create the half-precision (16-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSortSinglepublic FPSort mkFPSortSingle() Create the single-precision (32-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSort32public FPSort mkFPSort32() Create the single-precision (32-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSortDoublepublic FPSort mkFPSortDouble() Create the double-precision (64-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSort64public FPSort mkFPSort64() Create the double-precision (64-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSortQuadruplepublic FPSort mkFPSortQuadruple() Create the quadruple-precision (128-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPSort128public FPSort mkFPSort128() Create the quadruple-precision (128-bit) FloatingPoint sort.- Throws:
- Z3Exception
 
 - 
mkFPNaNpublic FPNum mkFPNaN(FPSort s) Create a NaN of sort s.- Parameters:
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPInfpublic FPNum mkFPInf(FPSort s, boolean negative) Create a floating-point infinity of sort s.- Parameters:
- s- FloatingPoint sort.
- negative- indicates whether the result should be negative.
- Throws:
- Z3Exception
 
 - 
mkFPZeropublic FPNum mkFPZero(FPSort s, boolean negative) Create a floating-point zero of sort s.- Parameters:
- s- FloatingPoint sort.
- negative- indicates whether the result should be negative.
- Throws:
- Z3Exception
 
 - 
mkFPNumeralpublic FPNum mkFPNumeral(float v, FPSort s) Create a numeral of FloatingPoint sort from a float.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPNumeralpublic FPNum mkFPNumeral(double v, FPSort s) Create a numeral of FloatingPoint sort from a double.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPNumeralpublic FPNum mkFPNumeral(int v, FPSort s) Create a numeral of FloatingPoint sort from an int.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPNumeralpublic FPNum mkFPNumeral(boolean sgn, int exp, int sig, FPSort s) Create a numeral of FloatingPoint sort from a sign bit and two integers.- Parameters:
- sgn- the sign.
- exp- the exponent.
- sig- the significand.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPNumeralpublic FPNum mkFPNumeral(boolean sgn, long exp, long sig, FPSort s) Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.- Parameters:
- sgn- the sign.
- exp- the exponent.
- sig- the significand.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPNum mkFP(float v, FPSort s) Create a numeral of FloatingPoint sort from a float.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPNum mkFP(double v, FPSort s) Create a numeral of FloatingPoint sort from a double.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPNum mkFP(int v, FPSort s) Create a numeral of FloatingPoint sort from an int.- Parameters:
- v- numeral value.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPNum mkFP(boolean sgn, int exp, int sig, FPSort s) Create a numeral of FloatingPoint sort from a sign bit and two integers.- Parameters:
- sgn- the sign.
- exp- the exponent.
- sig- the significand.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPNum mkFP(boolean sgn, long exp, long sig, FPSort s) Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.- Parameters:
- sgn- the sign.
- exp- the exponent.
- sig- the significand.
- s- FloatingPoint sort.
- Throws:
- Z3Exception
 
 - 
mkFPAbspublic FPExpr mkFPAbs(Expr<FPSort> t) Floating-point absolute value- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPNegpublic FPExpr mkFPNeg(Expr<FPSort> t) Floating-point negation- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPAddpublic FPExpr mkFPAdd(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2) Floating-point addition- Parameters:
- rm- rounding mode term
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPSubpublic FPExpr mkFPSub(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2) Floating-point subtraction- Parameters:
- rm- rounding mode term
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPMulpublic FPExpr mkFPMul(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2) Floating-point multiplication- Parameters:
- rm- rounding mode term
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPDivpublic FPExpr mkFPDiv(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2) Floating-point division- Parameters:
- rm- rounding mode term
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPFMApublic FPExpr mkFPFMA(Expr<FPRMSort> rm, Expr<FPSort> t1, Expr<FPSort> t2, Expr<FPSort> t3) Floating-point fused multiply-add- Parameters:
- rm- rounding mode term
- t1- floating-point term
- t2- floating-point term
- t3- floating-point term Remarks: The result is round((t1 * t2) + t3)
- Throws:
- Z3Exception
 
 - 
mkFPSqrtpublic FPExpr mkFPSqrt(Expr<FPRMSort> rm, Expr<FPSort> t) Floating-point square root- Parameters:
- rm- rounding mode term
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPRempublic FPExpr mkFPRem(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point remainder- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPRoundToIntegralpublic FPExpr mkFPRoundToIntegral(Expr<FPRMSort> rm, Expr<FPSort> t) Floating-point roundToIntegral. Rounds a floating-point number to the closest integer, again represented as a floating-point number.- Parameters:
- rm- term of RoundingMode sort
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPMinpublic FPExpr mkFPMin(Expr<FPSort> t1, Expr<FPSort> t2) Minimum of floating-point numbers.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPMaxpublic FPExpr mkFPMax(Expr<FPSort> t1, Expr<FPSort> t2) Maximum of floating-point numbers.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPLEqpublic BoolExpr mkFPLEq(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point less than or equal.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPLtpublic BoolExpr mkFPLt(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point less than.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPGEqpublic BoolExpr mkFPGEq(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point greater than or equal.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPGtpublic BoolExpr mkFPGt(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point greater than.- Parameters:
- t1- floating-point term
- t2- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPEqpublic BoolExpr mkFPEq(Expr<FPSort> t1, Expr<FPSort> t2) Floating-point equality.- Parameters:
- t1- floating-point term
- t2- floating-point term Remarks: Note that this is IEEE 754 equality (as opposed to standard =).
- Throws:
- Z3Exception
 
 - 
mkFPIsNormalpublic BoolExpr mkFPIsNormal(Expr<FPSort> t) Predicate indicating whether t is a normal floating-point number.\- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsSubnormalpublic BoolExpr mkFPIsSubnormal(Expr<FPSort> t) Predicate indicating whether t is a subnormal floating-point number.\- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsZeropublic BoolExpr mkFPIsZero(Expr<FPSort> t) Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsInfinitepublic BoolExpr mkFPIsInfinite(Expr<FPSort> t) Predicate indicating whether t is a floating-point number representing +oo or -oo.- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsNaNpublic BoolExpr mkFPIsNaN(Expr<FPSort> t) Predicate indicating whether t is a NaN.- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsNegativepublic BoolExpr mkFPIsNegative(Expr<FPSort> t) Predicate indicating whether t is a negative floating-point number.- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPIsPositivepublic BoolExpr mkFPIsPositive(Expr<FPSort> t) Predicate indicating whether t is a positive floating-point number.- Parameters:
- t- floating-point term
- Throws:
- Z3Exception
 
 - 
mkFPpublic FPExpr mkFP(Expr<BitVecSort> sgn, Expr<BitVecSort> sig, Expr<BitVecSort> exp) Create an expression of FloatingPoint sort from three bit-vector expressions.- Parameters:
- sgn- bit-vector term (of size 1) representing the sign.
- sig- bit-vector term representing the significand.
- exp- bit-vector term representing the exponent. Remarks: This is the operator named `fp' in the SMT FP theory definition. Note that sgn is required to be a bit-vector of size 1. Significand and exponent are required to be greater than 1 and 2 respectively. The FloatingPoint sort of the resulting expression is automatically determined from the bit-vector sizes of the arguments.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic FPExpr mkFPToFP(Expr<BitVecSort> bv, FPSort s) Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.- Parameters:
- bv- bit-vector value (of size m).
- s- FloatingPoint sort (ebits+sbits == m) Remarks: Produces a term that represents the conversion of a bit-vector term bv to a floating-point term of sort s. The bit-vector size of bv (m) must be equal to ebits+sbits of s. The format of the bit-vector is as defined by the IEEE 754-2008 interchange format.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic FPExpr mkFPToFP(Expr<FPRMSort> rm, FPExpr t, FPSort s) Conversion of a FloatingPoint term into another term of different FloatingPoint sort.- Parameters:
- rm- RoundingMode term.
- t- FloatingPoint term.
- s- FloatingPoint sort. Remarks: Produces a term that represents the conversion of a floating-point term t to a floating-point term of sort s. If necessary, the result will be rounded according to rounding mode rm.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic FPExpr mkFPToFP(Expr<FPRMSort> rm, RealExpr t, FPSort s) Conversion of a term of real sort into a term of FloatingPoint sort.- Parameters:
- rm- RoundingMode term.
- t- term of Real sort.
- s- FloatingPoint sort. Remarks: Produces a term that represents the conversion of term t of real sort into a floating-point term of sort s. If necessary, the result will be rounded according to rounding mode rm.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic FPExpr mkFPToFP(Expr<FPRMSort> rm, Expr<BitVecSort> t, FPSort s, boolean signed) Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.- Parameters:
- rm- RoundingMode term.
- t- term of bit-vector sort.
- s- FloatingPoint sort.
- signed- flag indicating whether t is interpreted as signed or unsigned bit-vector. Remarks: Produces a term that represents the conversion of the bit-vector term t into a floating-point term of sort s. The bit-vector t is taken to be in signed 2's complement format (when signed==true, otherwise unsigned). If necessary, the result will be rounded according to rounding mode rm.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic FPExpr mkFPToFP(FPSort s, Expr<FPRMSort> rm, Expr<FPSort> t) Conversion of a floating-point number to another FloatingPoint sort s.- Parameters:
- s- FloatingPoint sort
- rm- floating-point rounding mode term
- t- floating-point term Remarks: Produces a term that represents the conversion of a floating-point term t to a different FloatingPoint sort s. If necessary, rounding according to rm is applied.
- Throws:
- Z3Exception
 
 - 
mkFPToBVpublic BitVecExpr mkFPToBV(Expr<FPRMSort> rm, Expr<FPSort> t, int sz, boolean signed) Conversion of a floating-point term into a bit-vector.- Parameters:
- rm- RoundingMode term.
- t- FloatingPoint term
- sz- Size of the resulting bit-vector.
- signed- Indicates whether the result is a signed or unsigned bit-vector. Remarks: Produces a term that represents the conversion of the floating-point term t into a bit-vector term of size sz in 2's complement format (signed when signed==true). If necessary, the result will be rounded according to rounding mode rm.
- Throws:
- Z3Exception
 
 - 
mkFPToRealpublic RealExpr mkFPToReal(Expr<FPSort> t) Conversion of a floating-point term into a real-numbered term.- Parameters:
- t- FloatingPoint term Remarks: Produces a term that represents the conversion of the floating-point term t into a real number. Note that this type of conversion will often result in non-linear constraints over real terms.
- Throws:
- Z3Exception
 
 - 
mkFPToIEEEBVpublic BitVecExpr mkFPToIEEEBV(Expr<FPSort> t) Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.- Parameters:
- t- FloatingPoint term. Remarks: The size of the resulting bit-vector is automatically determined. Note that IEEE 754-2008 allows multiple different representations of NaN. This conversion knows only one NaN and it will always produce the same bit-vector representation of that NaN.
- Throws:
- Z3Exception
 
 - 
mkFPToFPpublic BitVecExpr mkFPToFP(Expr<FPRMSort> rm, Expr<IntSort> exp, Expr<RealSort> sig, FPSort s) Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.- Parameters:
- rm- RoundingMode term.
- exp- Exponent term of Int sort.
- sig- Significand term of Real sort.
- s- FloatingPoint sort. Remarks: Produces a term that represents the conversion of sig * 2^exp into a floating-point term of sort s. If necessary, the result will be rounded according to rounding mode rm.
- Throws:
- Z3Exception
 
 - 
wrapASTpublic AST wrapAST(long nativeObject) Wraps an AST. Remarks: This function is used for transitions between native and managed objects. Note thatnativeObjectmust be a native object obtained from Z3 (e.g., throughUnwrapAST) and that it must have a correct reference count.- Parameters:
- nativeObject- The native pointer to wrap.
- See Also:
- Native.incRef(long, long),- unwrapAST(com.microsoft.z3.AST)
 
 - 
unwrapASTpublic long unwrapAST(AST a) Unwraps an AST. Remarks: This function is used for transitions between native and managed objects. It returns the native pointer to the AST. Note that AST objects are reference counted and unwrapping an AST disables automatic reference counting, i.e., all references to the IntPtr that is returned must be handled externally and through native calls (see e.g.,- Parameters:
- a- The AST to unwrap.
- See Also:
- Native.incRef(long, long),- wrapAST(long)
 
 - 
SimplifyHelppublic java.lang.String SimplifyHelp() Return a string describing all available parameters toExpr.Simplify.
 - 
getSimplifyParameterDescriptionspublic ParamDescrs getSimplifyParameterDescriptions() Retrieves parameter descriptions for simplifier.
 - 
updateParamValuepublic void updateParamValue(java.lang.String id, java.lang.String value)Update a mutable configuration parameter. Remarks: The list of all configuration parameters can be obtained using the Z3 executable:z3.exe -ini?Only a few configuration parameters are mutable once the context is created. An exception is thrown when trying to modify an immutable parameter.
 - 
nCtxpublic long nCtx() 
 - 
getConstructorDRQpublic IDecRefQueue<Constructor<?>> getConstructorDRQ() 
 - 
getConstructorListDRQpublic IDecRefQueue<ConstructorList<?>> getConstructorListDRQ() 
 - 
getASTDRQpublic IDecRefQueue<AST> getASTDRQ() 
 - 
getASTMapDRQpublic IDecRefQueue<com.microsoft.z3.ASTMap> getASTMapDRQ() 
 - 
getASTVectorDRQpublic IDecRefQueue<ASTVector> getASTVectorDRQ() 
 - 
getApplyResultDRQpublic IDecRefQueue<ApplyResult> getApplyResultDRQ() 
 - 
getFuncEntryDRQpublic IDecRefQueue<FuncInterp.Entry<?>> getFuncEntryDRQ() 
 - 
getFuncInterpDRQpublic IDecRefQueue<FuncInterp<?>> getFuncInterpDRQ() 
 - 
getGoalDRQpublic IDecRefQueue<Goal> getGoalDRQ() 
 - 
getModelDRQpublic IDecRefQueue<Model> getModelDRQ() 
 - 
getParamsDRQpublic IDecRefQueue<Params> getParamsDRQ() 
 - 
getParamDescrsDRQpublic IDecRefQueue<ParamDescrs> getParamDescrsDRQ() 
 - 
getProbeDRQpublic IDecRefQueue<Probe> getProbeDRQ() 
 - 
getSolverDRQpublic IDecRefQueue<Solver> getSolverDRQ() 
 - 
getStatisticsDRQpublic IDecRefQueue<Statistics> getStatisticsDRQ() 
 - 
getTacticDRQpublic IDecRefQueue<Tactic> getTacticDRQ() 
 - 
getFixedpointDRQpublic IDecRefQueue<Fixedpoint> getFixedpointDRQ() 
 - 
getOptimizeDRQpublic IDecRefQueue<Optimize> getOptimizeDRQ() 
 - 
closepublic void close() Disposes of the context.- Specified by:
- closein interface- java.lang.AutoCloseable
 
 
- 
 
-