Z3
 
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions
Context Class Reference
+ Inheritance diagram for Context:

Public Member Functions

 Context ()
 
 Context (Map< String, String > settings)
 
IntSymbol mkSymbol (int i)
 
StringSymbol mkSymbol (String name)
 
BoolSort getBoolSort ()
 
IntSort getIntSort ()
 
RealSort getRealSort ()
 
BoolSort mkBoolSort ()
 
CharSort mkCharSort ()
 
SeqSort< CharSortgetStringSort ()
 
UninterpretedSort mkUninterpretedSort (Symbol s)
 
UninterpretedSort mkUninterpretedSort (String str)
 
IntSort mkIntSort ()
 
RealSort mkRealSort ()
 
BitVecSort mkBitVecSort (int size)
 
final< D extends Sort, R extends Sort > ArraySort< D, R > mkArraySort (D domain, R range)
 
final< R extends Sort > ArraySort< Sort, R > mkArraySort (Sort[] domains, R range)
 
SeqSort< CharSortmkStringSort ()
 
final< R extends Sort > SeqSort< R > mkSeqSort (R s)
 
final< R extends Sort > ReSort< R > mkReSort (R s)
 
TupleSort mkTupleSort (Symbol name, Symbol[] fieldNames, Sort[] fieldSorts)
 
final< R > EnumSort< R > mkEnumSort (Symbol name, Symbol... enumNames)
 
final< R > EnumSort< R > mkEnumSort (String name, String... enumNames)
 
final< R extends Sort > ListSort< R > mkListSort (Symbol name, R elemSort)
 
final< R extends Sort > ListSort< R > mkListSort (String name, R elemSort)
 
final< R > FiniteDomainSort< R > mkFiniteDomainSort (Symbol name, long size)
 
final< R > FiniteDomainSort< R > mkFiniteDomainSort (String name, long size)
 
final< R > Constructor< R > mkConstructor (Symbol name, Symbol recognizer, Symbol[] fieldNames, Sort[] sorts, int[] sortRefs)
 
final< R > Constructor< R > mkConstructor (String name, String recognizer, String[] fieldNames, Sort[] sorts, int[] sortRefs)
 
final< R > DatatypeSort< R > mkDatatypeSort (Symbol name, Constructor< R >[] constructors)
 
final< R > DatatypeSort< R > mkDatatypeSort (String name, Constructor< R >[] constructors)
 
DatatypeSort< Object >[] mkDatatypeSorts (Symbol[] names, Constructor< Object >[][] c)
 
DatatypeSort< Object >[] mkDatatypeSorts (String[] names, Constructor< Object >[][] c)
 
TypeVarSort mkTypeVariable (Symbol name)
 
TypeVarSort mkTypeVariable (String name)
 
final< F extends Sort, R extends Sort > Expr< R > mkUpdateField (FuncDecl< F > field, Expr< R > t, Expr< F > v) throws Z3Exception
 
final< R extends Sort > FuncDecl< R > mkFuncDecl (Symbol name, Sort[] domain, R range)
 
final< R extends Sort > FuncDecl< R > mkPropagateFunction (Symbol name, Sort[] domain, R range)
 
final< R extends Sort > FuncDecl< R > mkFuncDecl (Symbol name, Sort domain, R range)
 
final< R extends Sort > FuncDecl< R > mkFuncDecl (String name, Sort[] domain, R range)
 
final< R extends Sort > FuncDecl< R > mkFuncDecl (String name, Sort domain, R range)
 
final< R extends Sort > FuncDecl< R > mkRecFuncDecl (Symbol name, Sort[] domain, R range)
 
final< R extends Sort > void AddRecDef (FuncDecl< R > f, Expr<?>[] args, Expr< R > body)
 
final< R extends Sort > FuncDecl< R > mkFreshFuncDecl (String prefix, Sort[] domain, R range)
 
final< R extends Sort > FuncDecl< R > mkConstDecl (Symbol name, R range)
 
final< R extends Sort > FuncDecl< R > mkConstDecl (String name, R range)
 
final< R extends Sort > FuncDecl< R > mkFreshConstDecl (String prefix, R range)
 
final< R extends Sort > Expr< R > mkBound (int index, R ty)
 
final Pattern mkPattern (Expr<?>... terms)
 
final< R extends Sort > Expr< R > mkConst (Symbol name, R range)
 
final< R extends Sort > Expr< R > mkConst (String name, R range)
 
final< R extends Sort > Expr< R > mkFreshConst (String prefix, R range)
 
final< R extends Sort > Expr< R > mkConst (FuncDecl< R > f)
 
BoolExpr mkBoolConst (Symbol name)
 
BoolExpr mkBoolConst (String name)
 
IntExpr mkIntConst (Symbol name)
 
IntExpr mkIntConst (String name)
 
RealExpr mkRealConst (Symbol name)
 
RealExpr mkRealConst (String name)
 
BitVecExpr mkBVConst (Symbol name, int size)
 
BitVecExpr mkBVConst (String name, int size)
 
final< R extends Sort > Expr< R > mkApp (FuncDecl< R > f, Expr<?>... args)
 
BoolExpr mkTrue ()
 
BoolExpr mkFalse ()
 
BoolExpr mkBool (boolean value)
 
BoolExpr mkEq (Expr<?> x, Expr<?> y)
 
final BoolExpr mkDistinct (Expr<?>... args)
 
final BoolExpr mkNot (Expr< BoolSort > a)
 
final< R extends Sort > Expr< R > mkITE (Expr< BoolSort > t1, Expr<? extends R > t2, Expr<? extends R > t3)
 
BoolExpr mkIff (Expr< BoolSort > t1, Expr< BoolSort > t2)
 
BoolExpr mkImplies (Expr< BoolSort > t1, Expr< BoolSort > t2)
 
BoolExpr mkXor (Expr< BoolSort > t1, Expr< BoolSort > t2)
 
final BoolExpr mkAnd (Expr< BoolSort >... t)
 
final BoolExpr mkOr (Expr< BoolSort >... t)
 
final< R extends ArithSort > ArithExpr< R > mkAdd (Expr<? extends R >... t)
 
final< R extends ArithSort > ArithExpr< R > mkMul (Expr<? extends R >... t)
 
final< R extends ArithSort > ArithExpr< R > mkSub (Expr<? extends R >... t)
 
final< R extends ArithSort > ArithExpr< R > mkUnaryMinus (Expr< R > t)
 
final< R extends ArithSort > ArithExpr< R > mkDiv (Expr<? extends R > t1, Expr<? extends R > t2)
 
IntExpr mkMod (Expr< IntSort > t1, Expr< IntSort > t2)
 
IntExpr mkRem (Expr< IntSort > t1, Expr< IntSort > t2)
 
final< R extends ArithSort > ArithExpr< R > mkPower (Expr<? extends R > t1, Expr<? extends R > t2)
 
BoolExpr mkLt (Expr<? extends ArithSort > t1, Expr<? extends ArithSort > t2)
 
BoolExpr mkLe (Expr<? extends ArithSort > t1, Expr<? extends ArithSort > t2)
 
BoolExpr mkGt (Expr<? extends ArithSort > t1, Expr<? extends ArithSort > t2)
 
BoolExpr mkGe (Expr<? extends ArithSort > t1, Expr<? extends ArithSort > t2)
 
RealExpr mkInt2Real (Expr< IntSort > t)
 
IntExpr mkReal2Int (Expr< RealSort > t)
 
BoolExpr mkIsInteger (Expr< RealSort > t)
 
BoolExpr mkDivides (Expr< IntSort > t1, Expr< IntSort > t2)
 
BitVecExpr mkBVNot (Expr< BitVecSort > t)
 
BitVecExpr mkBVRedAND (Expr< BitVecSort > t)
 
BitVecExpr mkBVRedOR (Expr< BitVecSort > t)
 
BitVecExpr mkBVAND (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVOR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVXOR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVNAND (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVNOR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVXNOR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVNeg (Expr< BitVecSort > t)
 
BitVecExpr mkBVAdd (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVSub (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVMul (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVUDiv (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVSDiv (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVURem (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVSRem (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVSMod (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVULT (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSLT (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVULE (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSLE (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVUGE (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSGE (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVUGT (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSGT (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkConcat (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkExtract (int high, int low, Expr< BitVecSort > t)
 
BitVecExpr mkSignExt (int i, Expr< BitVecSort > t)
 
BitVecExpr mkZeroExt (int i, Expr< BitVecSort > t)
 
BitVecExpr mkRepeat (int i, Expr< BitVecSort > t)
 
BitVecExpr mkBVSHL (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVLSHR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVASHR (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVRotateLeft (int i, Expr< BitVecSort > t)
 
BitVecExpr mkBVRotateRight (int i, Expr< BitVecSort > t)
 
BitVecExpr mkBVRotateLeft (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkBVRotateRight (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BitVecExpr mkInt2BV (int n, Expr< IntSort > t)
 
IntExpr mkBV2Int (Expr< BitVecSort > t, boolean signed)
 
BoolExpr mkBVAddNoOverflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2, boolean isSigned)
 
BoolExpr mkBVAddNoUnderflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSubNoOverflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVSubNoUnderflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2, boolean isSigned)
 
BoolExpr mkBVSDivNoOverflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
BoolExpr mkBVNegNoOverflow (Expr< BitVecSort > t)
 
BoolExpr mkBVMulNoOverflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2, boolean isSigned)
 
BoolExpr mkBVMulNoUnderflow (Expr< BitVecSort > t1, Expr< BitVecSort > t2)
 
final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkArrayConst (Symbol name, D domain, R range)
 
final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkArrayConst (String name, D domain, R range)
 
final< D extends Sort, R extends Sort > Expr< R > mkSelect (Expr< ArraySort< D, R > > a, Expr< D > i)
 
final< R extends Sort > Expr< R > mkSelect (Expr< ArraySort< Sort, R > > a, Expr<?>[] args)
 
final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkStore (Expr< ArraySort< D, R > > a, Expr< D > i, Expr< R > v)
 
final< R extends Sort > ArrayExpr< Sort, R > mkStore (Expr< ArraySort< Sort, R > > a, Expr<?>[] args, Expr< R > v)
 
final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkConstArray (D domain, Expr< R > v)
 
final< D extends Sort, R1 extends Sort, R2 extends Sort > ArrayExpr< D, R2 > mkMap (FuncDecl< R2 > f, Expr< ArraySort< D, R1 > >... args)
 
final< D extends Sort, R extends Sort > Expr< R > mkTermArray (Expr< ArraySort< D, R > > array)
 
final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkAsArray (FuncDecl< R > f)
 
final< D extends Sort, R extends Sort > Expr< D > mkArrayExt (Expr< ArraySort< D, R > > arg1, Expr< ArraySort< D, R > > arg2)
 
final< D extends Sort > SetSort< D > mkSetSort (D ty)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkEmptySet (D domain)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkFullSet (D domain)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetAdd (Expr< ArraySort< D, BoolSort > > set, Expr< D > element)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetDel (Expr< ArraySort< D, BoolSort > > set, Expr< D > element)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetUnion (Expr< ArraySort< D, BoolSort > >... args)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetIntersection (Expr< ArraySort< D, BoolSort > >... args)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetDifference (Expr< ArraySort< D, BoolSort > > arg1, Expr< ArraySort< D, BoolSort > > arg2)
 
final< D extends Sort > ArrayExpr< D, BoolSortmkSetComplement (Expr< ArraySort< D, BoolSort > > arg)
 
final< D extends Sort > BoolExpr mkSetMembership (Expr< D > elem, Expr< ArraySort< D, BoolSort > > set)
 
final< D extends Sort > BoolExpr mkSetSubset (Expr< ArraySort< D, BoolSort > > arg1, Expr< ArraySort< D, BoolSort > > arg2)
 
final FiniteSetSort mkFiniteSetSort (Sort elemSort)
 
final boolean isFiniteSetSort (Sort s)
 
final Sort getFiniteSetSortBasis (Sort s)
 
final Expr mkFiniteSetEmpty (Sort setSort)
 
final Expr mkFiniteSetSingleton (Expr elem)
 
final Expr mkFiniteSetUnion (Expr s1, Expr s2)
 
final Expr mkFiniteSetIntersect (Expr s1, Expr s2)
 
final Expr mkFiniteSetDifference (Expr s1, Expr s2)
 
final BoolExpr mkFiniteSetMember (Expr elem, Expr set)
 
final Expr mkFiniteSetSize (Expr set)
 
final BoolExpr mkFiniteSetSubset (Expr s1, Expr s2)
 
final Expr mkFiniteSetMap (Expr f, Expr set)
 
final Expr mkFiniteSetFilter (Expr f, Expr set)
 
final Expr mkFiniteSetRange (Expr low, Expr high)
 
final< R extends Sort > SeqExpr< R > mkEmptySeq (R s)
 
final< R extends Sort > SeqExpr< R > mkUnit (Expr< R > elem)
 
SeqExpr< CharSortmkString (String s)
 
SeqExpr< CharSortintToString (Expr< IntSort > e)
 
SeqExpr< CharSortubvToString (Expr< BitVecSort > e)
 
SeqExpr< CharSortsbvToString (Expr< BitVecSort > e)
 
IntExpr stringToInt (Expr< SeqSort< CharSort > > e)
 
final< R extends Sort > SeqExpr< R > mkConcat (Expr< SeqSort< R > >... t)
 
final< R extends Sort > IntExpr mkLength (Expr< SeqSort< R > > s)
 
final< R extends Sort > BoolExpr mkPrefixOf (Expr< SeqSort< R > > s1, Expr< SeqSort< R > > s2)
 
final< R extends Sort > BoolExpr mkSuffixOf (Expr< SeqSort< R > > s1, Expr< SeqSort< R > > s2)
 
final< R extends Sort > BoolExpr mkContains (Expr< SeqSort< R > > s1, Expr< SeqSort< R > > s2)
 
BoolExpr MkStringLt (Expr< SeqSort< CharSort > > s1, Expr< SeqSort< CharSort > > s2)
 
BoolExpr MkStringLe (Expr< SeqSort< CharSort > > s1, Expr< SeqSort< CharSort > > s2)
 
final< R extends Sort > SeqExpr< R > mkAt (Expr< SeqSort< R > > s, Expr< IntSort > index)
 
final< R extends Sort > Expr< R > mkNth (Expr< SeqSort< R > > s, Expr< IntSort > index)
 
final< R extends Sort > SeqExpr< R > mkExtract (Expr< SeqSort< R > > s, Expr< IntSort > offset, Expr< IntSort > length)
 
final< R extends Sort > IntExpr mkIndexOf (Expr< SeqSort< R > > s, Expr< SeqSort< R > > substr, Expr< IntSort > offset)
 
final< R extends Sort > IntExpr mkLastIndexOf (Expr< SeqSort< R > > s, Expr< SeqSort< R > > substr)
 
final< R extends Sort > SeqExpr< R > mkSeqMap (Expr<?> f, Expr< SeqSort< R > > s)
 
final< R extends Sort > SeqExpr< R > mkSeqMapi (Expr<?> f, Expr< IntSort > i, Expr< SeqSort< R > > s)
 
final< R extends Sort, A extends Sort > Expr< A > mkSeqFoldl (Expr<?> f, Expr< A > a, Expr< SeqSort< R > > s)
 
final< R extends Sort, A extends Sort > Expr< A > mkSeqFoldli (Expr<?> f, Expr< IntSort > i, Expr< A > a, Expr< SeqSort< R > > s)
 
final< R extends Sort > SeqExpr< R > mkReplace (Expr< SeqSort< R > > s, Expr< SeqSort< R > > src, Expr< SeqSort< R > > dst)
 
final< R extends Sort > SeqExpr< R > mkReplaceAll (Expr< SeqSort< R > > s, Expr< SeqSort< R > > src, Expr< SeqSort< R > > dst)
 
final< R extends Sort > SeqExpr< R > mkReplaceRe (Expr< SeqSort< R > > s, ReExpr< SeqSort< R > > re, Expr< SeqSort< R > > dst)
 
final< R extends Sort > SeqExpr< R > mkReplaceReAll (Expr< SeqSort< R > > s, ReExpr< SeqSort< R > > re, Expr< SeqSort< R > > dst)
 
final< R extends Sort > ReExpr< SeqSort< R > > mkToRe (Expr< SeqSort< R > > s)
 
final< R extends Sort > BoolExpr mkInRe (Expr< SeqSort< R > > s, ReExpr< SeqSort< R > > re)
 
final< R extends Sort > ReExpr< R > mkStar (Expr< ReSort< R > > re)
 
final< R extends Sort > ReExpr< R > mkPower (Expr< ReSort< R > > re, int n)
 
final< R extends Sort > ReExpr< R > mkLoop (Expr< ReSort< R > > re, int lo, int hi)
 
final< R extends Sort > ReExpr< R > mkLoop (Expr< ReSort< R > > re, int lo)
 
final< R extends Sort > ReExpr< R > mkPlus (Expr< ReSort< R > > re)
 
final< R extends Sort > ReExpr< R > mkOption (Expr< ReSort< R > > re)
 
final< R extends Sort > ReExpr< R > mkComplement (Expr< ReSort< R > > re)
 
final< R extends Sort > ReExpr< R > mkConcat (ReExpr< R >... t)
 
final< R extends Sort > ReExpr< R > mkUnion (Expr< ReSort< R > >... t)
 
final< R extends Sort > ReExpr< R > mkIntersect (Expr< ReSort< R > >... t)
 
final< R extends Sort > ReExpr< R > mkDiff (Expr< ReSort< R > > a, Expr< ReSort< R > > b)
 
final< R extends Sort > ReExpr< R > mkEmptyRe (ReSort< R > s)
 
final< R extends Sort > ReExpr< R > mkFullRe (ReSort< R > s)
 
final< R extends Sort > ReExpr< R > mkAllcharRe (ReSort< R > s)
 
final ReExpr< SeqSort< CharSort > > mkRange (Expr< SeqSort< CharSort > > lo, Expr< SeqSort< CharSort > > hi)
 
BoolExpr mkCharLe (Expr< CharSort > ch1, Expr< CharSort > ch2)
 
IntExpr charToInt (Expr< CharSort > ch)
 
BitVecExpr charToBv (Expr< CharSort > ch)
 
Expr< CharSortcharFromBv (BitVecExpr bv)
 
BoolExpr mkIsDigit (Expr< CharSort > ch)
 
BoolExpr mkAtMost (Expr< BoolSort >[] args, int k)
 
BoolExpr mkAtLeast (Expr< BoolSort >[] args, int k)
 
BoolExpr mkPBLe (int[] coeffs, Expr< BoolSort >[] args, int k)
 
BoolExpr mkPBGe (int[] coeffs, Expr< BoolSort >[] args, int k)
 
BoolExpr mkPBEq (int[] coeffs, Expr< BoolSort >[] args, int k)
 
final< R extends Sort > Expr< R > mkNumeral (String v, R ty)
 
final< R extends Sort > Expr< R > mkNumeral (int v, R ty)
 
final< R extends Sort > Expr< R > mkNumeral (long v, R ty)
 
RatNum mkReal (int num, int den)
 
RatNum mkReal (String v)
 
RatNum mkReal (int v)
 
RatNum mkReal (long v)
 
IntNum mkInt (String v)
 
IntNum mkInt (int v)
 
IntNum mkInt (long v)
 
BitVecNum mkBV (String v, int size)
 
BitVecNum mkBV (int v, int size)
 
BitVecNum mkBV (long v, int size)
 
Quantifier mkForall (Sort[] sorts, Symbol[] names, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
Quantifier mkForall (Expr<?>[] boundConstants, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
Quantifier mkExists (Sort[] sorts, Symbol[] names, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
Quantifier mkExists (Expr<?>[] boundConstants, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
Quantifier mkQuantifier (boolean universal, Sort[] sorts, Symbol[] names, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
Quantifier mkQuantifier (boolean universal, Expr<?>[] boundConstants, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
 
final< R extends Sort > Lambda< R > mkLambda (Sort[] sorts, Symbol[] names, Expr< R > body)
 
final< R extends Sort > Lambda< R > mkLambda (Expr<?>[] boundConstants, Expr< R > body)
 
void setPrintMode (Z3_ast_print_mode value)
 
String benchmarkToSMTString (String name, String logic, String status, String attributes, Expr< BoolSort >[] assumptions, Expr< BoolSort > formula)
 
BoolExpr[] parseSMTLIB2String (String str, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls)
 
BoolExpr[] parseSMTLIB2File (String fileName, Symbol[] sortNames, Sort[] sorts, Symbol[] declNames, FuncDecl<?>[] decls)
 
Goal mkGoal (boolean models, boolean unsatCores, boolean proofs)
 
Params mkParams ()
 
int getNumTactics ()
 
String[] getTacticNames ()
 
String getTacticDescription (String name)
 
Tactic mkTactic (String name)
 
Tactic andThen (Tactic t1, Tactic t2, Tactic... ts)
 
Tactic then (Tactic t1, Tactic t2, Tactic... ts)
 
Tactic orElse (Tactic t1, Tactic t2)
 
Tactic tryFor (Tactic t, int ms)
 
Tactic when (Probe p, Tactic t)
 
Tactic cond (Probe p, Tactic t1, Tactic t2)
 
Tactic repeat (Tactic t, int max)
 
Tactic skip ()
 
Tactic fail ()
 
Tactic failIf (Probe p)
 
Tactic failIfNotDecided ()
 
Tactic usingParams (Tactic t, Params p)
 
Tactic with (Tactic t, Params p)
 
Tactic parOr (Tactic... t)
 
Tactic parAndThen (Tactic t1, Tactic t2)
 
void interrupt ()
 
int getNumSimplifiers ()
 
String[] getSimplifierNames ()
 
String getSimplifierDescription (String name)
 
Simplifier mkSimplifier (String name)
 
Simplifier andThen (Simplifier t1, Simplifier t2, Simplifier... ts)
 
Simplifier then (Simplifier t1, Simplifier t2, Simplifier... ts)
 
Simplifier usingParams (Simplifier t, Params p)
 
Simplifier with (Simplifier t, Params p)
 
int getNumProbes ()
 
String[] getProbeNames ()
 
String getProbeDescription (String name)
 
Probe mkProbe (String name)
 
Probe constProbe (double val)
 
Probe lt (Probe p1, Probe p2)
 
Probe gt (Probe p1, Probe p2)
 
Probe le (Probe p1, Probe p2)
 
Probe ge (Probe p1, Probe p2)
 
Probe eq (Probe p1, Probe p2)
 
Probe and (Probe p1, Probe p2)
 
Probe or (Probe p1, Probe p2)
 
Probe not (Probe p)
 
Solver mkSolver ()
 
Solver mkSolver (Symbol logic)
 
Solver mkSolver (String logic)
 
Solver mkSimpleSolver ()
 
Solver mkSolver (Tactic t)
 
Solver mkSolver (Solver s, Simplifier simp)
 
Fixedpoint mkFixedpoint ()
 
Optimize mkOptimize ()
 
FPRMSort mkFPRoundingModeSort ()
 
FPRMExpr mkFPRoundNearestTiesToEven ()
 
FPRMNum mkFPRNE ()
 
FPRMNum mkFPRoundNearestTiesToAway ()
 
FPRMNum mkFPRNA ()
 
FPRMNum mkFPRoundTowardPositive ()
 
FPRMNum mkFPRTP ()
 
FPRMNum mkFPRoundTowardNegative ()
 
FPRMNum mkFPRTN ()
 
FPRMNum mkFPRoundTowardZero ()
 
FPRMNum mkFPRTZ ()
 
FPSort mkFPSort (int ebits, int sbits)
 
FPSort mkFPSortHalf ()
 
FPSort mkFPSort16 ()
 
FPSort mkFPSortSingle ()
 
FPSort mkFPSort32 ()
 
FPSort mkFPSortDouble ()
 
FPSort mkFPSort64 ()
 
FPSort mkFPSortQuadruple ()
 
FPSort mkFPSort128 ()
 
FPNum mkFPNaN (FPSort s)
 
FPNum mkFPInf (FPSort s, boolean negative)
 
FPNum mkFPZero (FPSort s, boolean negative)
 
FPNum mkFPNumeral (float v, FPSort s)
 
FPNum mkFPNumeral (double v, FPSort s)
 
FPNum mkFPNumeral (int v, FPSort s)
 
FPNum mkFPNumeral (boolean sgn, int exp, int sig, FPSort s)
 
FPNum mkFPNumeral (boolean sgn, long exp, long sig, FPSort s)
 
FPNum mkFP (float v, FPSort s)
 
FPNum mkFP (double v, FPSort s)
 
FPNum mkFP (int v, FPSort s)
 
FPNum mkFP (boolean sgn, int exp, int sig, FPSort s)
 
FPNum mkFP (boolean sgn, long exp, long sig, FPSort s)
 
FPExpr mkFPAbs (Expr< FPSort > t)
 
FPExpr mkFPNeg (Expr< FPSort > t)
 
FPExpr mkFPAdd (Expr< FPRMSort > rm, Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPSub (Expr< FPRMSort > rm, Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPMul (Expr< FPRMSort > rm, Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPDiv (Expr< FPRMSort > rm, Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPFMA (Expr< FPRMSort > rm, Expr< FPSort > t1, Expr< FPSort > t2, Expr< FPSort > t3)
 
FPExpr mkFPSqrt (Expr< FPRMSort > rm, Expr< FPSort > t)
 
FPExpr mkFPRem (Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPRoundToIntegral (Expr< FPRMSort > rm, Expr< FPSort > t)
 
FPExpr mkFPMin (Expr< FPSort > t1, Expr< FPSort > t2)
 
FPExpr mkFPMax (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPLEq (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPLt (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPGEq (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPGt (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPEq (Expr< FPSort > t1, Expr< FPSort > t2)
 
BoolExpr mkFPIsNormal (Expr< FPSort > t)
 
BoolExpr mkFPIsSubnormal (Expr< FPSort > t)
 
BoolExpr mkFPIsZero (Expr< FPSort > t)
 
BoolExpr mkFPIsInfinite (Expr< FPSort > t)
 
BoolExpr mkFPIsNaN (Expr< FPSort > t)
 
BoolExpr mkFPIsNegative (Expr< FPSort > t)
 
BoolExpr mkFPIsPositive (Expr< FPSort > t)
 
FPExpr mkFP (Expr< BitVecSort > sgn, Expr< BitVecSort > sig, Expr< BitVecSort > exp)
 
FPExpr mkFPToFP (Expr< BitVecSort > bv, FPSort s)
 
FPExpr mkFPToFP (Expr< FPRMSort > rm, FPExpr t, FPSort s)
 
FPExpr mkFPToFP (Expr< FPRMSort > rm, RealExpr t, FPSort s)
 
FPExpr mkFPToFP (Expr< FPRMSort > rm, Expr< BitVecSort > t, FPSort s, boolean signed)
 
FPExpr mkFPToFP (FPSort s, Expr< FPRMSort > rm, Expr< FPSort > t)
 
BitVecExpr mkFPToBV (Expr< FPRMSort > rm, Expr< FPSort > t, int sz, boolean signed)
 
RealExpr mkFPToReal (Expr< FPSort > t)
 
BitVecExpr mkFPToIEEEBV (Expr< FPSort > t)
 
BitVecExpr mkFPToFP (Expr< FPRMSort > rm, Expr< IntSort > exp, Expr< RealSort > sig, FPSort s)
 
final< R extends Sort > FuncDecl< BoolSortmkLinearOrder (R sort, int index)
 
final< R extends Sort > FuncDecl< BoolSortmkPartialOrder (R sort, int index)
 
final< R extends Sort > FuncDecl< BoolSortmkTransitiveClosure (FuncDecl< BoolSort > f)
 
final< R extends Sort > FuncDecl< BoolSortmkPiecewiseLinearOrder (R sort, int index)
 
final< R extends Sort > FuncDecl< BoolSortmkTreeOrder (R sort, int index)
 
final< R extends Sort > ASTVector polynomialSubresultants (Expr< R > p, Expr< R > q, Expr< R > x)
 
AST wrapAST (long nativeObject)
 
long unwrapAST (AST a)
 
String SimplifyHelp ()
 
ParamDescrs getSimplifyParameterDescriptions ()
 
void updateParamValue (String id, String value)
 
long nCtx ()
 
void close ()
 

Protected Member Functions

 Context (long m_ctx)
 

Detailed Description

The 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.

Definition at line 36 of file Context.java.

Constructor & Destructor Documentation

◆ Context() [1/3]

Context ( )
inline

Definition at line 40 of file Context.java.

40 {
41 synchronized (creation_lock) {
42 m_ctx = Native.mkContextRc(0);
43 init();
44 }
45 }

◆ Context() [2/3]

Context ( long  m_ctx)
inlineprotected

Definition at line 47 of file Context.java.

47 {
48 synchronized (creation_lock) {
49 this.m_ctx = m_ctx;
50 init();
51 }
52 }

◆ Context() [3/3]

Context ( Map< String, String >  settings)
inline

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 use Global.setParameter

Definition at line 72 of file Context.java.

72 {
73 synchronized (creation_lock) {
74 long cfg = Native.mkConfig();
75 for (Map.Entry<String, String> kv : settings.entrySet()) {
76 Native.setParamValue(cfg, kv.getKey(), kv.getValue());
77 }
78 m_ctx = Native.mkContextRc(cfg);
79 Native.delConfig(cfg);
80 init();
81 }
82 }
Map(f, *args)
Definition z3py.py:5058

Member Function Documentation

◆ AddRecDef()

final< R extends Sort > void AddRecDef ( FuncDecl< R >  f,
Expr<?>[]  args,
Expr< R >  body 
)
inline

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.

Definition at line 654 of file Context.java.

655 {
656 checkContextMatch(f);
657 checkContextMatch(args);
658 checkContextMatch(body);
659 long[] argsNative = AST.arrayToNative(args);
660 Native.addRecDef(nCtx(), f.getNativeObject(), args.length, argsNative, body.getNativeObject());
661 }

◆ and()

Probe and ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value p1 and p2 evaluate to true.

Definition at line 3690 of file Context.java.

3691 {
3692 checkContextMatch(p1);
3693 checkContextMatch(p2);
3694 return new Probe(this, Native.probeAnd(nCtx(), p1.getNativeObject(),
3695 p2.getNativeObject()));
3696 }

◆ andThen() [1/2]

Simplifier andThen ( Simplifier  t1,
Simplifier  t2,
Simplifier...  ts 
)
inline

Create a simplifier that applies t1 and then t1

Definition at line 3520 of file Context.java.

3522 {
3523 checkContextMatch(t1);
3524 checkContextMatch(t2);
3525 checkContextMatch(ts);
3526
3527 long last = 0;
3528 if (ts != null && ts.length > 0)
3529 {
3530 last = ts[ts.length - 1].getNativeObject();
3531 for (int i = ts.length - 2; i >= 0; i--) {
3532 last = Native.simplifierAndThen(nCtx(), ts[i].getNativeObject(),
3533 last);
3534 }
3535 }
3536 if (last != 0)
3537 {
3538 last = Native.simplifierAndThen(nCtx(), t2.getNativeObject(), last);
3539 return new Simplifier(this, Native.simplifierAndThen(nCtx(),
3540 t1.getNativeObject(), last));
3541 } else
3542 return new Simplifier(this, Native.simplifierAndThen(nCtx(),
3543 t1.getNativeObject(), t2.getNativeObject()));
3544 }

◆ andThen() [2/2]

Tactic andThen ( Tactic  t1,
Tactic  t2,
Tactic...  ts 
)
inline

Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1

Definition at line 3286 of file Context.java.

3288 {
3289 checkContextMatch(t1);
3290 checkContextMatch(t2);
3291 checkContextMatch(ts);
3292
3293 long last = 0;
3294 if (ts != null && ts.length > 0)
3295 {
3296 last = ts[ts.length - 1].getNativeObject();
3297 for (int i = ts.length - 2; i >= 0; i--) {
3298 last = Native.tacticAndThen(nCtx(), ts[i].getNativeObject(),
3299 last);
3300 }
3301 }
3302 if (last != 0)
3303 {
3304 last = Native.tacticAndThen(nCtx(), t2.getNativeObject(), last);
3305 return new Tactic(this, Native.tacticAndThen(nCtx(),
3306 t1.getNativeObject(), last));
3307 } else
3308 return new Tactic(this, Native.tacticAndThen(nCtx(),
3309 t1.getNativeObject(), t2.getNativeObject()));
3310 }

◆ benchmarkToSMTString()

String benchmarkToSMTString ( String  name,
String  logic,
String  status,
String  attributes,
Expr< BoolSort >[]  assumptions,
Expr< BoolSort formula 
)
inline

Convert a benchmark into an SMT-LIB formatted string.

Parameters
nameName of the benchmark. The argument is optional.
logicThe benchmark logic.
statusThe status string (sat, unsat, or unknown)
attributesOther attributes, such as source, difficulty or category.
assumptionsAuxiliary assumptions.
formulaFormula to be checked for consistency in conjunction with assumptions.
Returns
A string representation of the benchmark.

Definition at line 3164 of file Context.java.

3167 {
3168
3169 return Native.benchmarkToSmtlibString(nCtx(), name, logic, status,
3170 attributes, assumptions.length,
3171 AST.arrayToNative(assumptions), formula.getNativeObject());
3172 }

◆ charFromBv()

Expr< CharSort > charFromBv ( BitVecExpr  bv)
inline

Create a character from a bit-vector (code point).

Definition at line 2756 of file Context.java.

2757 {
2758 checkContextMatch(bv);
2759 return (Expr<CharSort>) Expr.create(this, Native.mkCharFromBv(nCtx(), bv.getNativeObject()));
2760 }

◆ charToBv()

BitVecExpr charToBv ( Expr< CharSort ch)
inline

Create a bit-vector (code point) from character.

Definition at line 2747 of file Context.java.

2748 {
2749 checkContextMatch(ch);
2750 return (BitVecExpr) Expr.create(this, Native.mkCharToBv(nCtx(), ch.getNativeObject()));
2751 }

◆ charToInt()

IntExpr charToInt ( Expr< CharSort ch)
inline

Create an integer (code point) from character.

Definition at line 2738 of file Context.java.

2739 {
2740 checkContextMatch(ch);
2741 return (IntExpr) Expr.create(this, Native.mkCharToInt(nCtx(), ch.getNativeObject()));
2742 }

◆ close()

void close ( )
inline

Disposes of the context.

Definition at line 4783 of file Context.java.

4784 {
4785 if (m_ctx == 0)
4786 return;
4787
4788 m_RefQueue.forceClear();
4789
4790 m_boolSort = null;
4791 m_intSort = null;
4792 m_realSort = null;
4793 m_stringSort = null;
4794 m_RefQueue = null;
4795
4796 synchronized (creation_lock) {
4797 Native.delContext(m_ctx);
4798 }
4799 m_ctx = 0;
4800 }

◆ cond()

Tactic cond ( Probe  p,
Tactic  t1,
Tactic  t2 
)
inline

Create a tactic that applies t1 to a given goal if the probe p evaluates to true and t2 otherwise.

Definition at line 3368 of file Context.java.

3369 {
3370 checkContextMatch(p);
3371 checkContextMatch(t1);
3372 checkContextMatch(t2);
3373 return new Tactic(this, Native.tacticCond(nCtx(), p.getNativeObject(),
3374 t1.getNativeObject(), t2.getNativeObject()));
3375 }

◆ constProbe()

Probe constProbe ( double  val)
inline

Create a probe that always evaluates to val.

Definition at line 3620 of file Context.java.

3621 {
3622 return new Probe(this, Native.probeConst(nCtx(), val));
3623 }

◆ eq()

Probe eq ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value returned by p1 is equal to the value returned by p2

Definition at line 3679 of file Context.java.

3680 {
3681 checkContextMatch(p1);
3682 checkContextMatch(p2);
3683 return new Probe(this, Native.probeEq(nCtx(), p1.getNativeObject(),
3684 p2.getNativeObject()));
3685 }

Referenced by AstRef.__eq__(), SortRef.cast(), and FiniteSetSortRef.cast().

◆ fail()

Tactic fail ( )
inline

Create a tactic always fails.

Definition at line 3399 of file Context.java.

3400 {
3401 return new Tactic(this, Native.tacticFail(nCtx()));
3402 }

◆ failIf()

Tactic failIf ( Probe  p)
inline

Create a tactic that fails if the probe p evaluates to false.

Definition at line 3408 of file Context.java.

3409 {
3410 checkContextMatch(p);
3411 return new Tactic(this,
3412 Native.tacticFailIf(nCtx(), p.getNativeObject()));
3413 }

◆ failIfNotDecided()

Tactic failIfNotDecided ( )
inline

Create a tactic that fails if the goal is not trivially satisfiable (i.e., empty) or trivially unsatisfiable (i.e., contains ‘false’).

Definition at line 3419 of file Context.java.

3420 {
3421 return new Tactic(this, Native.tacticFailIfNotDecided(nCtx()));
3422 }

◆ ge()

Probe ge ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value returned by p1 is greater than or equal the value returned by p2

Definition at line 3667 of file Context.java.

3668 {
3669 checkContextMatch(p1);
3670 checkContextMatch(p2);
3671 return new Probe(this, Native.probeGe(nCtx(), p1.getNativeObject(),
3672 p2.getNativeObject()));
3673 }

◆ getBoolSort()

BoolSort getBoolSort ( )
inline

Retrieves the Boolean sort of the context.

Definition at line 128 of file Context.java.

129 {
130 if (m_boolSort == null) {
131 m_boolSort = new BoolSort(this);
132 }
133 return m_boolSort;
134 }
BoolSort(ctx=None)
Definition z3py.py:1830

◆ getFiniteSetSortBasis()

final Sort getFiniteSetSortBasis ( Sort  s)
inline

Get the element sort (basis) of a finite set sort.

Definition at line 2196 of file Context.java.

2197 {
2198 checkContextMatch(s);
2199 return Sort.create(this, Native.getFiniteSetSortBasis(nCtx(), s.getNativeObject()));
2200 }

Referenced by FiniteSetSort.getBasis().

◆ getIntSort()

IntSort getIntSort ( )
inline

Retrieves the Integer sort of the context.

Definition at line 139 of file Context.java.

140 {
141 if (m_intSort == null) {
142 m_intSort = new IntSort(this);
143 }
144 return m_intSort;
145 }
IntSort(ctx=None)
Definition z3py.py:3304

◆ getNumProbes()

int getNumProbes ( )
inline

The number of supported Probes.

Definition at line 3582 of file Context.java.

3583 {
3584 return Native.getNumProbes(nCtx());
3585 }

◆ getNumSimplifiers()

int getNumSimplifiers ( )
inline

The number of supported simplifiers.

Definition at line 3482 of file Context.java.

3483 {
3484 return Native.getNumSimplifiers(nCtx());
3485 }

◆ getNumTactics()

int getNumTactics ( )
inline

The number of supported tactics.

Definition at line 3247 of file Context.java.

3248 {
3249 return Native.getNumTactics(nCtx());
3250 }

◆ getProbeDescription()

String getProbeDescription ( String  name)
inline

Returns a string containing a description of the probe with the given name.

Definition at line 3604 of file Context.java.

3605 {
3606 return Native.probeGetDescr(nCtx(), name);
3607 }

◆ getProbeNames()

String[] getProbeNames ( )
inline

The names of all supported Probes.

Definition at line 3590 of file Context.java.

3591 {
3592
3593 int n = getNumProbes();
3594 String[] res = new String[n];
3595 for (int i = 0; i < n; i++)
3596 res[i] = Native.getProbeName(nCtx(), i);
3597 return res;
3598 }
String(name, ctx=None)
Definition z3py.py:11743

◆ getRealSort()

RealSort getRealSort ( )
inline

Retrieves the Real sort of the context.

Definition at line 150 of file Context.java.

151 {
152 if (m_realSort == null) {
153 m_realSort = new RealSort(this);
154 }
155 return m_realSort;
156 }
RealSort(ctx=None)
Definition z3py.py:3321

◆ getSimplifierDescription()

String getSimplifierDescription ( String  name)
inline

Returns a string containing a description of the simplifier with the given name.

Definition at line 3504 of file Context.java.

3505 {
3506 return Native.simplifierGetDescr(nCtx(), name);
3507 }

◆ getSimplifierNames()

String[] getSimplifierNames ( )
inline

The names of all supported simplifiers.

Definition at line 3490 of file Context.java.

3491 {
3492
3493 int n = getNumSimplifiers();
3494 String[] res = new String[n];
3495 for (int i = 0; i < n; i++)
3496 res[i] = Native.getSimplifierName(nCtx(), i);
3497 return res;
3498 }

◆ getSimplifyParameterDescriptions()

ParamDescrs getSimplifyParameterDescriptions ( )
inline

Retrieves parameter descriptions for simplifier.

Definition at line 4714 of file Context.java.

4715 {
4716 return new ParamDescrs(this, Native.simplifyGetParamDescrs(nCtx()));
4717 }

◆ getStringSort()

SeqSort< CharSort > getStringSort ( )
inline

Retrieves the String sort of the context.

Definition at line 178 of file Context.java.

179 {
180 if (m_stringSort == null) {
181 m_stringSort = mkStringSort();
182 }
183 return m_stringSort;
184 }
SeqSort< CharSort > mkStringSort()
Definition Context.java:251

◆ getTacticDescription()

String getTacticDescription ( String  name)
inline

Returns a string containing a description of the tactic with the given name.

Definition at line 3269 of file Context.java.

3270 {
3271 return Native.tacticGetDescr(nCtx(), name);
3272 }

◆ getTacticNames()

String[] getTacticNames ( )
inline

The names of all supported tactics.

Definition at line 3255 of file Context.java.

3256 {
3257
3258 int n = getNumTactics();
3259 String[] res = new String[n];
3260 for (int i = 0; i < n; i++)
3261 res[i] = Native.getTacticName(nCtx(), i);
3262 return res;
3263 }

◆ gt()

Probe gt ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value returned by p1 is greater than the value returned by p2

Definition at line 3641 of file Context.java.

3642 {
3643 checkContextMatch(p1);
3644 checkContextMatch(p2);
3645 return new Probe(this, Native.probeGt(nCtx(), p1.getNativeObject(),
3646 p2.getNativeObject()));
3647 }

◆ interrupt()

void interrupt ( )
inline

Interrupt the execution of a Z3 procedure. Remarks: This procedure can be used to interrupt: solvers, simplifiers and tactics.

Definition at line 3474 of file Context.java.

3475 {
3476 Native.interrupt(nCtx());
3477 }

◆ intToString()

SeqExpr< CharSort > intToString ( Expr< IntSort e)
inline

Convert an integer expression to a string.

Definition at line 2351 of file Context.java.

2352 {
2353 return (SeqExpr<CharSort>) Expr.create(this, Native.mkIntToStr(nCtx(), e.getNativeObject()));
2354 }

◆ isFiniteSetSort()

final boolean isFiniteSetSort ( Sort  s)
inline

Check if a sort is a finite set sort.

Definition at line 2187 of file Context.java.

2188 {
2189 checkContextMatch(s);
2190 return Native.isFiniteSetSort(nCtx(), s.getNativeObject());
2191 }

◆ le()

Probe le ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value returned by p1 is less than or equal the value returned by p2

Definition at line 3654 of file Context.java.

3655 {
3656 checkContextMatch(p1);
3657 checkContextMatch(p2);
3658 return new Probe(this, Native.probeLe(nCtx(), p1.getNativeObject(),
3659 p2.getNativeObject()));
3660 }

◆ lt()

Probe lt ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value returned by p1 is less than the value returned by p2

Definition at line 3629 of file Context.java.

3630 {
3631 checkContextMatch(p1);
3632 checkContextMatch(p2);
3633 return new Probe(this, Native.probeLt(nCtx(), p1.getNativeObject(),
3634 p2.getNativeObject()));
3635 }

◆ mkAdd()

final< R extends ArithSort > ArithExpr< R > mkAdd ( Expr<? extends R >...  t)
inline

Create an expression representing t[0] + t[1] + ....

Definition at line 983 of file Context.java.

984 {
985 checkContextMatch(t);
986 return (ArithExpr<R>) Expr.create(this,
987 Native.mkAdd(nCtx(), t.length, AST.arrayToNative(t)));
988 }

◆ mkAllcharRe()

final< R extends Sort > ReExpr< R > mkAllcharRe ( ReSort< R >  s)
inline

Create regular expression that accepts all characters R has to be a sequence sort. Corresponds to re.allchar

Definition at line 2712 of file Context.java.

2713 {
2714 return (ReExpr<R>) Expr.create(this, Native.mkReAllchar(nCtx(), s.getNativeObject()));
2715 }

◆ mkAnd()

final BoolExpr mkAnd ( Expr< BoolSort >...  t)
inline

Create an expression representing t[0] and t[1] and ....

Definition at line 961 of file Context.java.

962 {
963 checkContextMatch(t);
964 return new BoolExpr(this, Native.mkAnd(nCtx(), t.length,
965 AST.arrayToNative(t)));
966 }

Referenced by Goal.AsBoolExpr().

◆ mkApp()

final< R extends Sort > Expr< R > mkApp ( FuncDecl< R >  f,
Expr<?>...  args 
)
inline

Create a new function application.

Definition at line 846 of file Context.java.

847 {
848 checkContextMatch(f);
849 checkContextMatch(args);
850 return Expr.create(this, f, args);
851 }

Referenced by ListSort< R extends Sort >.getNil().

◆ mkArrayConst() [1/2]

final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkArrayConst ( String  name,
domain,
range 
)
inline

Create an array constant.

Definition at line 1871 of file Context.java.

1873 {
1874 return (ArrayExpr<D, R>) mkConst(mkSymbol(name), mkArraySort(domain, range));
1875 }
final< D extends Sort, R extends Sort > ArraySort< D, R > mkArraySort(D domain, R range)
Definition Context.java:230
final< R extends Sort > Expr< R > mkConst(Symbol name, R range)
Definition Context.java:738
IntSymbol mkSymbol(int i)
Definition Context.java:94

◆ mkArrayConst() [2/2]

final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkArrayConst ( Symbol  name,
domain,
range 
)
inline

Create an array constant.

Definition at line 1862 of file Context.java.

1864 {
1865 return (ArrayExpr<D, R>) mkConst(name, mkArraySort(domain, range));
1866 }

◆ mkArrayExt()

final< D extends Sort, R extends Sort > Expr< D > mkArrayExt ( Expr< ArraySort< D, R > >  arg1,
Expr< ArraySort< D, R > >  arg2 
)
inline

Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.

Definition at line 2039 of file Context.java.

2040 {
2041 checkContextMatch(arg1);
2042 checkContextMatch(arg2);
2043 return (Expr<D>) Expr.create(this, Native.mkArrayExt(nCtx(), arg1.getNativeObject(), arg2.getNativeObject()));
2044 }

◆ mkArraySort() [1/2]

final< D extends Sort, R extends Sort > ArraySort< D, R > mkArraySort ( domain,
range 
)
inline

Create a new array sort.

Definition at line 230 of file Context.java.

231 {
232 checkContextMatch(domain);
233 checkContextMatch(range);
234 return new ArraySort<>(this, domain, range);
235 }

◆ mkArraySort() [2/2]

final< R extends Sort > ArraySort< Sort, R > mkArraySort ( Sort[]  domains,
range 
)
inline

Create a new array sort.

Definition at line 241 of file Context.java.

242 {
243 checkContextMatch(domains);
244 checkContextMatch(range);
245 return new ArraySort<>(this, domains, range);
246 }

◆ mkAsArray()

final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkAsArray ( FuncDecl< R >  f)
inline

Create an as-array expression from a function declaration.

Parameters
fthe function declaration to lift into an array. Must have exactly one domain sort.
See also
#mkTermArray(Expr)
#mkMap(FuncDecl, Expr[])

Definition at line 2030 of file Context.java.

2031 {
2032 checkContextMatch(f);
2033 return (ArrayExpr<D, R>) Expr.create(this, Native.mkAsArray(nCtx(), f.getNativeObject()));
2034 }

◆ mkAt()

final< R extends Sort > SeqExpr< R > mkAt ( Expr< SeqSort< R > >  s,
Expr< IntSort index 
)
inline

Retrieve sequence of length one at index.

Definition at line 2450 of file Context.java.

2451 {
2452 checkContextMatch(s, index);
2453 return (SeqExpr<R>) Expr.create(this, Native.mkSeqAt(nCtx(), s.getNativeObject(), index.getNativeObject()));
2454 }

◆ mkAtLeast()

BoolExpr mkAtLeast ( Expr< BoolSort >[]  args,
int  k 
)
inline

Create an at-least-k constraint.

Definition at line 2783 of file Context.java.

2784 {
2785 checkContextMatch(args);
2786 return (BoolExpr) Expr.create(this, Native.mkAtleast(nCtx(), args.length, AST.arrayToNative(args), k));
2787 }

◆ mkAtMost()

BoolExpr mkAtMost ( Expr< BoolSort >[]  args,
int  k 
)
inline

Create an at-most-k constraint.

Definition at line 2774 of file Context.java.

2775 {
2776 checkContextMatch(args);
2777 return (BoolExpr) Expr.create(this, Native.mkAtmost(nCtx(), args.length, AST.arrayToNative(args), k));
2778 }

◆ mkBitVecSort()

BitVecSort mkBitVecSort ( int  size)
inline

Create a new bit-vector sort.

Definition at line 222 of file Context.java.

223 {
224 return new BitVecSort(this, Native.mkBvSort(nCtx(), size));
225 }
BitVecSort(sz, ctx=None)
Definition z3py.py:4178

◆ mkBool()

BoolExpr mkBool ( boolean  value)
inline

Creates a Boolean value.

Definition at line 872 of file Context.java.

873 {
874 return value ? mkTrue() : mkFalse();
875 }

Referenced by UserPropagatorBase.conflict().

◆ mkBoolConst() [1/2]

BoolExpr mkBoolConst ( String  name)
inline

Create a Boolean constant.

Definition at line 789 of file Context.java.

790 {
791 return (BoolExpr) mkConst(mkSymbol(name), getBoolSort());
792 }

◆ mkBoolConst() [2/2]

BoolExpr mkBoolConst ( Symbol  name)
inline

Create a Boolean constant.

Definition at line 781 of file Context.java.

782 {
783 return (BoolExpr) mkConst(name, getBoolSort());
784 }

◆ mkBoolSort()

BoolSort mkBoolSort ( )
inline

Create a new Boolean sort.

Definition at line 161 of file Context.java.

162 {
163 return new BoolSort(this);
164 }

◆ mkBound()

final< R extends Sort > Expr< R > mkBound ( int  index,
ty 
)
inline

Creates a new bound variable.

Parameters
indexThe de-Bruijn index of the variable
tyThe sort of the variable

Definition at line 714 of file Context.java.

715 {
716 return (Expr<R>) Expr.create(this,
717 Native.mkBound(nCtx(), index, ty.getNativeObject()));
718 }

◆ mkBV() [1/3]

BitVecNum mkBV ( int  v,
int  size 
)
inline

Create a bit-vector numeral.

Parameters
vvalue of the numeral.
sizethe size of the bit-vector

Definition at line 2976 of file Context.java.

2977 {
2978 return (BitVecNum) mkNumeral(v, mkBitVecSort(size));
2979 }
final< R extends Sort > Expr< R > mkNumeral(String v, R ty)
BitVecSort mkBitVecSort(int size)
Definition Context.java:222

◆ mkBV() [2/3]

BitVecNum mkBV ( long  v,
int  size 
)
inline

Create a bit-vector numeral.

Parameters
vvalue of the numeral. *
sizethe size of the bit-vector

Definition at line 2986 of file Context.java.

2987 {
2988 return (BitVecNum) mkNumeral(v, mkBitVecSort(size));
2989 }

◆ mkBV() [3/3]

BitVecNum mkBV ( String  v,
int  size 
)
inline

Create a bit-vector numeral.

Parameters
vA string representing the value in decimal notation.
sizethe size of the bit-vector

Definition at line 2966 of file Context.java.

2967 {
2968 return (BitVecNum) mkNumeral(v, mkBitVecSort(size));
2969 }

◆ mkBV2Int()

IntExpr mkBV2Int ( Expr< BitVecSort t,
boolean signed   
)
inline

Create an integer from the bit-vector argument t. Remarks: If is_signed is false, then the bit-vector 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 in t. If is_signed is true, 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.

Definition at line 1742 of file Context.java.

1743 {
1744 checkContextMatch(t);
1745 return new IntExpr(this, Native.mkBv2int(nCtx(), t.getNativeObject(),
1746 (signed)));
1747 }

◆ mkBVAdd()

BitVecExpr mkBVAdd ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement addition. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1305 of file Context.java.

1306 {
1307 checkContextMatch(t1);
1308 checkContextMatch(t2);
1309 return new BitVecExpr(this, Native.mkBvadd(nCtx(),
1310 t1.getNativeObject(), t2.getNativeObject()));
1311 }

◆ mkBVAddNoOverflow()

BoolExpr mkBVAddNoOverflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2,
boolean  isSigned 
)
inline

Create a predicate that checks that the bit-wise addition does not overflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1754 of file Context.java.

1756 {
1757 checkContextMatch(t1);
1758 checkContextMatch(t2);
1759 return new BoolExpr(this, Native.mkBvaddNoOverflow(nCtx(), t1
1760 .getNativeObject(), t2.getNativeObject(), (isSigned)));
1761 }

◆ mkBVAddNoUnderflow()

BoolExpr mkBVAddNoUnderflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Create a predicate that checks that the bit-wise addition does not underflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1768 of file Context.java.

1770 {
1771 checkContextMatch(t1);
1772 checkContextMatch(t2);
1773 return new BoolExpr(this, Native.mkBvaddNoUnderflow(nCtx(),
1774 t1.getNativeObject(), t2.getNativeObject()));
1775 }

◆ mkBVAND()

BitVecExpr mkBVAND ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise conjunction. Remarks: The arguments must have a bit-vector sort.

Definition at line 1216 of file Context.java.

1217 {
1218 checkContextMatch(t1);
1219 checkContextMatch(t2);
1220 return new BitVecExpr(this, Native.mkBvand(nCtx(),
1221 t1.getNativeObject(), t2.getNativeObject()));
1222 }

◆ mkBVASHR()

BitVecExpr mkBVASHR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

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.

Definition at line 1650 of file Context.java.

1651 {
1652 checkContextMatch(t1);
1653 checkContextMatch(t2);
1654 return new BitVecExpr(this, Native.mkBvashr(nCtx(),
1655 t1.getNativeObject(), t2.getNativeObject()));
1656 }

◆ mkBVConst() [1/2]

BitVecExpr mkBVConst ( String  name,
int  size 
)
inline

Creates a bit-vector constant.

Definition at line 837 of file Context.java.

838 {
839 return (BitVecExpr) mkConst(name, mkBitVecSort(size));
840 }

◆ mkBVConst() [2/2]

BitVecExpr mkBVConst ( Symbol  name,
int  size 
)
inline

Creates a bit-vector constant.

Definition at line 829 of file Context.java.

830 {
831 return (BitVecExpr) mkConst(name, mkBitVecSort(size));
832 }

◆ mkBVLSHR()

BitVecExpr mkBVLSHR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Logical shift right Remarks: It is equivalent to unsigned division by 2^x where x is the value of t2.

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.

Definition at line 1630 of file Context.java.

1631 {
1632 checkContextMatch(t1);
1633 checkContextMatch(t2);
1634 return new BitVecExpr(this, Native.mkBvlshr(nCtx(),
1635 t1.getNativeObject(), t2.getNativeObject()));
1636 }

◆ mkBVMul()

BitVecExpr mkBVMul ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement multiplication. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1331 of file Context.java.

1332 {
1333 checkContextMatch(t1);
1334 checkContextMatch(t2);
1335 return new BitVecExpr(this, Native.mkBvmul(nCtx(),
1336 t1.getNativeObject(), t2.getNativeObject()));
1337 }

◆ mkBVMulNoOverflow()

BoolExpr mkBVMulNoOverflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2,
boolean  isSigned 
)
inline

Create a predicate that checks that the bit-wise multiplication does not overflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1836 of file Context.java.

1838 {
1839 checkContextMatch(t1);
1840 checkContextMatch(t2);
1841 return new BoolExpr(this, Native.mkBvmulNoOverflow(nCtx(), t1
1842 .getNativeObject(), t2.getNativeObject(), (isSigned)));
1843 }

◆ mkBVMulNoUnderflow()

BoolExpr mkBVMulNoUnderflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Create a predicate that checks that the bit-wise multiplication does not underflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1850 of file Context.java.

1852 {
1853 checkContextMatch(t1);
1854 checkContextMatch(t2);
1855 return new BoolExpr(this, Native.mkBvmulNoUnderflow(nCtx(),
1856 t1.getNativeObject(), t2.getNativeObject()));
1857 }

◆ mkBVNAND()

BitVecExpr mkBVNAND ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise NAND. Remarks: The arguments must have a bit-vector sort.

Definition at line 1255 of file Context.java.

1256 {
1257 checkContextMatch(t1);
1258 checkContextMatch(t2);
1259 return new BitVecExpr(this, Native.mkBvnand(nCtx(),
1260 t1.getNativeObject(), t2.getNativeObject()));
1261 }

◆ mkBVNeg()

BitVecExpr mkBVNeg ( Expr< BitVecSort t)
inline

Standard two's complement unary minus. Remarks: The arguments must have a bit-vector sort.

Definition at line 1294 of file Context.java.

1295 {
1296 checkContextMatch(t);
1297 return new BitVecExpr(this, Native.mkBvneg(nCtx(), t.getNativeObject()));
1298 }

◆ mkBVNegNoOverflow()

BoolExpr mkBVNegNoOverflow ( Expr< BitVecSort t)
inline

Create a predicate that checks that the bit-wise negation does not overflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1824 of file Context.java.

1825 {
1826 checkContextMatch(t);
1827 return new BoolExpr(this, Native.mkBvnegNoOverflow(nCtx(),
1828 t.getNativeObject()));
1829 }

◆ mkBVNOR()

BitVecExpr mkBVNOR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise NOR. Remarks: The arguments must have a bit-vector sort.

Definition at line 1268 of file Context.java.

1269 {
1270 checkContextMatch(t1);
1271 checkContextMatch(t2);
1272 return new BitVecExpr(this, Native.mkBvnor(nCtx(),
1273 t1.getNativeObject(), t2.getNativeObject()));
1274 }

◆ mkBVNot()

BitVecExpr mkBVNot ( Expr< BitVecSort t)
inline

Bitwise negation. Remarks: The argument must have a bit-vector sort.

Definition at line 1181 of file Context.java.

1182 {
1183 checkContextMatch(t);
1184 return new BitVecExpr(this, Native.mkBvnot(nCtx(), t.getNativeObject()));
1185 }

◆ mkBVOR()

BitVecExpr mkBVOR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise disjunction. Remarks: The arguments must have a bit-vector sort.

Definition at line 1229 of file Context.java.

1230 {
1231 checkContextMatch(t1);
1232 checkContextMatch(t2);
1233 return new BitVecExpr(this, Native.mkBvor(nCtx(), t1.getNativeObject(),
1234 t2.getNativeObject()));
1235 }

◆ mkBVRedAND()

BitVecExpr mkBVRedAND ( Expr< BitVecSort t)
inline

Take conjunction of bits in a vector, return vector of length 1.

Remarks: The argument must have a bit-vector sort.

Definition at line 1192 of file Context.java.

1193 {
1194 checkContextMatch(t);
1195 return new BitVecExpr(this, Native.mkBvredand(nCtx(),
1196 t.getNativeObject()));
1197 }

◆ mkBVRedOR()

BitVecExpr mkBVRedOR ( Expr< BitVecSort t)
inline

Take disjunction of bits in a vector, return vector of length 1.

Remarks: The argument must have a bit-vector sort.

Definition at line 1204 of file Context.java.

1205 {
1206 checkContextMatch(t);
1207 return new BitVecExpr(this, Native.mkBvredor(nCtx(),
1208 t.getNativeObject()));
1209 }

◆ mkBVRotateLeft() [1/2]

BitVecExpr mkBVRotateLeft ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Rotate Left. Remarks: Rotate bits of t1 to the left t2 times. The arguments must have the same bit-vector sort.

Definition at line 1688 of file Context.java.

1690 {
1691 checkContextMatch(t1);
1692 checkContextMatch(t2);
1693 return new BitVecExpr(this, Native.mkExtRotateLeft(nCtx(),
1694 t1.getNativeObject(), t2.getNativeObject()));
1695 }

◆ mkBVRotateLeft() [2/2]

BitVecExpr mkBVRotateLeft ( int  i,
Expr< BitVecSort t 
)
inline

Rotate Left. Remarks: Rotate bits of t to the left i times. The argument t must have a bit-vector sort.

Definition at line 1663 of file Context.java.

1664 {
1665 checkContextMatch(t);
1666 return new BitVecExpr(this, Native.mkRotateLeft(nCtx(), i,
1667 t.getNativeObject()));
1668 }

◆ mkBVRotateRight() [1/2]

BitVecExpr mkBVRotateRight ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Rotate Right. Remarks: Rotate bits of t1 to the rightt2 times. The arguments must have the same bit-vector sort.

Definition at line 1703 of file Context.java.

1705 {
1706 checkContextMatch(t1);
1707 checkContextMatch(t2);
1708 return new BitVecExpr(this, Native.mkExtRotateRight(nCtx(),
1709 t1.getNativeObject(), t2.getNativeObject()));
1710 }

◆ mkBVRotateRight() [2/2]

BitVecExpr mkBVRotateRight ( int  i,
Expr< BitVecSort t 
)
inline

Rotate Right. Remarks: Rotate bits of t to the right i times. The argument t must have a bit-vector sort.

Definition at line 1675 of file Context.java.

1676 {
1677 checkContextMatch(t);
1678 return new BitVecExpr(this, Native.mkRotateRight(nCtx(), i,
1679 t.getNativeObject()));
1680 }

◆ mkBVSDiv()

BitVecExpr mkBVSDiv ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Signed division. Remarks: It is defined in the following way:

  • The floor of t1/t2 if t2 is different from zero, and t1*t2 >= 0.
  • The ceiling of t1/t2 if t2 is different from zero, and t1*t2 &lt; 0.

If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.

Definition at line 1367 of file Context.java.

1368 {
1369 checkContextMatch(t1);
1370 checkContextMatch(t2);
1371 return new BitVecExpr(this, Native.mkBvsdiv(nCtx(),
1372 t1.getNativeObject(), t2.getNativeObject()));
1373 }

◆ mkBVSDivNoOverflow()

BoolExpr mkBVSDivNoOverflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Create a predicate that checks that the bit-wise signed division does not overflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1810 of file Context.java.

1812 {
1813 checkContextMatch(t1);
1814 checkContextMatch(t2);
1815 return new BoolExpr(this, Native.mkBvsdivNoOverflow(nCtx(),
1816 t1.getNativeObject(), t2.getNativeObject()));
1817 }

◆ mkBVSGE()

BoolExpr mkBVSGE ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement signed greater than or equal to. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1492 of file Context.java.

1493 {
1494 checkContextMatch(t1);
1495 checkContextMatch(t2);
1496 return new BoolExpr(this, Native.mkBvsge(nCtx(), t1.getNativeObject(),
1497 t2.getNativeObject()));
1498 }

◆ mkBVSGT()

BoolExpr mkBVSGT ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement signed greater-than. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1518 of file Context.java.

1519 {
1520 checkContextMatch(t1);
1521 checkContextMatch(t2);
1522 return new BoolExpr(this, Native.mkBvsgt(nCtx(), t1.getNativeObject(),
1523 t2.getNativeObject()));
1524 }

◆ mkBVSHL()

BitVecExpr mkBVSHL ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Shift left. Remarks: It is equivalent to multiplication by 2^x where x is the value of t2.

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.

Definition at line 1611 of file Context.java.

1612 {
1613 checkContextMatch(t1);
1614 checkContextMatch(t2);
1615 return new BitVecExpr(this, Native.mkBvshl(nCtx(),
1616 t1.getNativeObject(), t2.getNativeObject()));
1617 }

◆ mkBVSLE()

BoolExpr mkBVSLE ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement signed less-than or equal to. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1466 of file Context.java.

1467 {
1468 checkContextMatch(t1);
1469 checkContextMatch(t2);
1470 return new BoolExpr(this, Native.mkBvsle(nCtx(), t1.getNativeObject(),
1471 t2.getNativeObject()));
1472 }

◆ mkBVSLT()

BoolExpr mkBVSLT ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement signed less-than Remarks: The arguments must have the same bit-vector sort.

Definition at line 1440 of file Context.java.

1441 {
1442 checkContextMatch(t1);
1443 checkContextMatch(t2);
1444 return new BoolExpr(this, Native.mkBvslt(nCtx(), t1.getNativeObject(),
1445 t2.getNativeObject()));
1446 }

◆ mkBVSMod()

BitVecExpr mkBVSMod ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement signed remainder (sign follows divisor). Remarks: If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.

Definition at line 1414 of file Context.java.

1415 {
1416 checkContextMatch(t1);
1417 checkContextMatch(t2);
1418 return new BitVecExpr(this, Native.mkBvsmod(nCtx(),
1419 t1.getNativeObject(), t2.getNativeObject()));
1420 }

◆ mkBVSRem()

BitVecExpr mkBVSRem ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Signed remainder. Remarks: It is defined as t1 - (t1 /s t2) * t2, where /s represents signed division. The most significant bit (sign) of the result is equal to the most significant bit of t1.

If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.

Definition at line 1400 of file Context.java.

1401 {
1402 checkContextMatch(t1);
1403 checkContextMatch(t2);
1404 return new BitVecExpr(this, Native.mkBvsrem(nCtx(),
1405 t1.getNativeObject(), t2.getNativeObject()));
1406 }

◆ mkBVSub()

BitVecExpr mkBVSub ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Two's complement subtraction. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1318 of file Context.java.

1319 {
1320 checkContextMatch(t1);
1321 checkContextMatch(t2);
1322 return new BitVecExpr(this, Native.mkBvsub(nCtx(),
1323 t1.getNativeObject(), t2.getNativeObject()));
1324 }

◆ mkBVSubNoOverflow()

BoolExpr mkBVSubNoOverflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Create a predicate that checks that the bit-wise subtraction does not overflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1782 of file Context.java.

1784 {
1785 checkContextMatch(t1);
1786 checkContextMatch(t2);
1787 return new BoolExpr(this, Native.mkBvsubNoOverflow(nCtx(),
1788 t1.getNativeObject(), t2.getNativeObject()));
1789 }

◆ mkBVSubNoUnderflow()

BoolExpr mkBVSubNoUnderflow ( Expr< BitVecSort t1,
Expr< BitVecSort t2,
boolean  isSigned 
)
inline

Create a predicate that checks that the bit-wise subtraction does not underflow. Remarks: The arguments must be of bit-vector sort.

Definition at line 1796 of file Context.java.

1798 {
1799 checkContextMatch(t1);
1800 checkContextMatch(t2);
1801 return new BoolExpr(this, Native.mkBvsubNoUnderflow(nCtx(), t1
1802 .getNativeObject(), t2.getNativeObject(), (isSigned)));
1803 }

◆ mkBVUDiv()

BitVecExpr mkBVUDiv ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned division. Remarks: It is defined as the floor of t1/t2 if t2 is different from zero. If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.

Definition at line 1346 of file Context.java.

1347 {
1348 checkContextMatch(t1);
1349 checkContextMatch(t2);
1350 return new BitVecExpr(this, Native.mkBvudiv(nCtx(),
1351 t1.getNativeObject(), t2.getNativeObject()));
1352 }

◆ mkBVUGE()

BoolExpr mkBVUGE ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned greater than or equal to. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1479 of file Context.java.

1480 {
1481 checkContextMatch(t1);
1482 checkContextMatch(t2);
1483 return new BoolExpr(this, Native.mkBvuge(nCtx(), t1.getNativeObject(),
1484 t2.getNativeObject()));
1485 }

◆ mkBVUGT()

BoolExpr mkBVUGT ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned greater-than. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1505 of file Context.java.

1506 {
1507 checkContextMatch(t1);
1508 checkContextMatch(t2);
1509 return new BoolExpr(this, Native.mkBvugt(nCtx(), t1.getNativeObject(),
1510 t2.getNativeObject()));
1511 }

◆ mkBVULE()

BoolExpr mkBVULE ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned less-than or equal to. Remarks: The arguments must have the same bit-vector sort.

Definition at line 1453 of file Context.java.

1454 {
1455 checkContextMatch(t1);
1456 checkContextMatch(t2);
1457 return new BoolExpr(this, Native.mkBvule(nCtx(), t1.getNativeObject(),
1458 t2.getNativeObject()));
1459 }

◆ mkBVULT()

BoolExpr mkBVULT ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned less-than Remarks: The arguments must have the same bit-vector sort.

Definition at line 1427 of file Context.java.

1428 {
1429 checkContextMatch(t1);
1430 checkContextMatch(t2);
1431 return new BoolExpr(this, Native.mkBvult(nCtx(), t1.getNativeObject(),
1432 t2.getNativeObject()));
1433 }

◆ mkBVURem()

BitVecExpr mkBVURem ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Unsigned remainder. Remarks: It is defined as t1 - (t1 /u t2) * t2, where /u represents unsigned division. If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.

Definition at line 1382 of file Context.java.

1383 {
1384 checkContextMatch(t1);
1385 checkContextMatch(t2);
1386 return new BitVecExpr(this, Native.mkBvurem(nCtx(),
1387 t1.getNativeObject(), t2.getNativeObject()));
1388 }

◆ mkBVXNOR()

BitVecExpr mkBVXNOR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise XNOR. Remarks: The arguments must have a bit-vector sort.

Definition at line 1281 of file Context.java.

1282 {
1283 checkContextMatch(t1);
1284 checkContextMatch(t2);
1285 return new BitVecExpr(this, Native.mkBvxnor(nCtx(),
1286 t1.getNativeObject(), t2.getNativeObject()));
1287 }

◆ mkBVXOR()

BitVecExpr mkBVXOR ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bitwise XOR. Remarks: The arguments must have a bit-vector sort.

Definition at line 1242 of file Context.java.

1243 {
1244 checkContextMatch(t1);
1245 checkContextMatch(t2);
1246 return new BitVecExpr(this, Native.mkBvxor(nCtx(),
1247 t1.getNativeObject(), t2.getNativeObject()));
1248 }

◆ mkCharLe()

BoolExpr mkCharLe ( Expr< CharSort ch1,
Expr< CharSort ch2 
)
inline

Create less than or equal to between two characters.

Definition at line 2729 of file Context.java.

2730 {
2731 checkContextMatch(ch1, ch2);
2732 return (BoolExpr) Expr.create(this, Native.mkCharLe(nCtx(), ch1.getNativeObject(), ch2.getNativeObject()));
2733 }

◆ mkCharSort()

CharSort mkCharSort ( )
inline

Creates character sort object.

Definition at line 170 of file Context.java.

171 {
172 return new CharSort(this);
173 }
CharSort(ctx=None)
Definition z3py.py:11567

◆ mkComplement()

final< R extends Sort > ReExpr< R > mkComplement ( Expr< ReSort< R > >  re)
inline

Create the complement regular expression.

Definition at line 2643 of file Context.java.

2644 {
2645 checkContextMatch(re);
2646 return (ReExpr<R>) Expr.create(this, Native.mkReComplement(nCtx(), re.getNativeObject()));
2647 }

◆ mkConcat() [1/3]

BitVecExpr mkConcat ( Expr< BitVecSort t1,
Expr< BitVecSort t2 
)
inline

Bit-vector concatenation. Remarks: The arguments must have a bit-vector sort.

Returns
The result is a bit-vector of size n1+n2, where n1 (n2) is the size of t1 (t2).

Definition at line 1536 of file Context.java.

1537 {
1538 checkContextMatch(t1);
1539 checkContextMatch(t2);
1540 return new BitVecExpr(this, Native.mkConcat(nCtx(),
1541 t1.getNativeObject(), t2.getNativeObject()));
1542 }

◆ mkConcat() [2/3]

final< R extends Sort > SeqExpr< R > mkConcat ( Expr< SeqSort< R > >...  t)
inline

Concatenate sequences.

Definition at line 2384 of file Context.java.

2385 {
2386 checkContextMatch(t);
2387 return (SeqExpr<R>) Expr.create(this, Native.mkSeqConcat(nCtx(), t.length, AST.arrayToNative(t)));
2388 }

◆ mkConcat() [3/3]

final< R extends Sort > ReExpr< R > mkConcat ( ReExpr< R >...  t)
inline

Create the concatenation of regular languages.

Definition at line 2653 of file Context.java.

2654 {
2655 checkContextMatch(t);
2656 return (ReExpr<R>) Expr.create(this, Native.mkReConcat(nCtx(), t.length, AST.arrayToNative(t)));
2657 }

◆ mkConst() [1/3]

final< R extends Sort > Expr< R > mkConst ( FuncDecl< R >  f)
inline

Creates a fresh constant from the FuncDecl f.

Parameters
fA decl of a 0-arity function

Definition at line 773 of file Context.java.

774 {
775 return mkApp(f, (Expr<?>[]) null);
776 }
final< R extends Sort > Expr< R > mkApp(FuncDecl< R > f, Expr<?>... args)
Definition Context.java:846

◆ mkConst() [2/3]

final< R extends Sort > Expr< R > mkConst ( String  name,
range 
)
inline

Creates a new Constant of sort range and named name.

Definition at line 753 of file Context.java.

754 {
755 return mkConst(mkSymbol(name), range);
756 }

◆ mkConst() [3/3]

final< R extends Sort > Expr< R > mkConst ( Symbol  name,
range 
)
inline

Creates a new Constant of sort range and named name.

Definition at line 738 of file Context.java.

739 {
740 checkContextMatch(name);
741 checkContextMatch(range);
742
743 return (Expr<R>) Expr.create(
744 this,
745 Native.mkConst(nCtx(), name.getNativeObject(),
746 range.getNativeObject()));
747 }
expr range(expr const &lo, expr const &hi)
Definition z3++.h:4436

◆ mkConstArray()

final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkConstArray ( domain,
Expr< R >  v 
)
inline

Create a constant array. Remarks: The resulting term is an array, such that a select on an arbitrary index produces the value v.

See also
#mkArraySort(Sort[], R)
#mkSelect(Expr<ArraySort<D, R>> a, Expr<D> i)

Definition at line 1979 of file Context.java.

1980 {
1981 checkContextMatch(domain);
1982 checkContextMatch(v);
1983 return new ArrayExpr<>(this, Native.mkConstArray(nCtx(),
1984 domain.getNativeObject(), v.getNativeObject()));
1985 }

◆ mkConstDecl() [1/2]

final< R extends Sort > FuncDecl< R > mkConstDecl ( String  name,
range 
)
inline

Creates a new constant function declaration.

Definition at line 690 of file Context.java.

691 {
692 checkContextMatch(range);
693 return new FuncDecl<>(this, mkSymbol(name), null, range);
694 }

◆ mkConstDecl() [2/2]

final< R extends Sort > FuncDecl< R > mkConstDecl ( Symbol  name,
range 
)
inline

Creates a new constant function declaration.

Definition at line 680 of file Context.java.

681 {
682 checkContextMatch(name);
683 checkContextMatch(range);
684 return new FuncDecl<>(this, name, null, range);
685 }

◆ mkConstructor() [1/2]

final< R > Constructor< R > mkConstructor ( String  name,
String  recognizer,
String[]  fieldNames,
Sort[]  sorts,
int[]  sortRefs 
)
inline

Create a datatype constructor.

Definition at line 365 of file Context.java.

367 {
368 return of(this, mkSymbol(name), mkSymbol(recognizer), mkSymbols(fieldNames), sorts, sortRefs);
369 }

◆ mkConstructor() [2/2]

final< R > Constructor< R > mkConstructor ( Symbol  name,
Symbol  recognizer,
Symbol[]  fieldNames,
Sort[]  sorts,
int[]  sortRefs 
)
inline

Create a datatype constructor.

Parameters
nameconstructor name
recognizername of recognizer function.
fieldNamesnames of the constructor fields.
sortsfield sorts, 0 if the field sort refers to a recursive sort.
sortRefsreference 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.

Definition at line 355 of file Context.java.

358 {
359 return of(this, name, recognizer, fieldNames, sorts, sortRefs);
360 }

◆ mkContains()

final< R extends Sort > BoolExpr mkContains ( Expr< SeqSort< R > >  s1,
Expr< SeqSort< R > >  s2 
)
inline

Check for sequence containment of s2 in s1.

Definition at line 2421 of file Context.java.

2422 {
2423 checkContextMatch(s1, s2);
2424 return (BoolExpr) Expr.create(this, Native.mkSeqContains(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2425 }

◆ mkDatatypeSort() [1/2]

final< R > DatatypeSort< R > mkDatatypeSort ( String  name,
Constructor< R >[]  constructors 
)
inline

Create a new datatype sort.

Definition at line 384 of file Context.java.

386 {
387 checkContextMatch(constructors);
388 return new DatatypeSort<>(this, mkSymbol(name), constructors);
389 }

◆ mkDatatypeSort() [2/2]

final< R > DatatypeSort< R > mkDatatypeSort ( Symbol  name,
Constructor< R >[]  constructors 
)
inline

Create a new datatype sort.

Definition at line 374 of file Context.java.

375 {
376 checkContextMatch(name);
377 checkContextMatch(constructors);
378 return new DatatypeSort<>(this, name, constructors);
379 }

◆ mkDatatypeSorts() [1/2]

DatatypeSort< Object >[] mkDatatypeSorts ( String[]  names,
Constructor< Object >  c[][] 
)
inline

Create mutually recursive data-types.

Definition at line 470 of file Context.java.

472 {
473 return mkDatatypeSorts(mkSymbols(names), c);
474 }
DatatypeSort< Object >[] mkDatatypeSorts(Symbol[] names, Constructor< Object >[][] c)
Definition Context.java:444

◆ mkDatatypeSorts() [2/2]

DatatypeSort< Object >[] mkDatatypeSorts ( Symbol[]  names,
Constructor< Object >  c[][] 
)
inline

Create mutually recursive datatypes.

Parameters
namesnames of datatype sorts
clist of constructors, one list per sort.

Definition at line 444 of file Context.java.

445 {
446 checkContextMatch(names);
447 int n = names.length;
448 ConstructorList<Object>[] cla = new ConstructorList[n];
449 long[] n_constr = new long[n];
450 for (int i = 0; i < n; i++)
451 {
452 Constructor<Object>[] constructor = c[i];
453
454 checkContextMatch(constructor);
455 cla[i] = new ConstructorList<>(this, constructor);
456 n_constr[i] = cla[i].getNativeObject();
457 }
458 long[] n_res = new long[n];
459 Native.mkDatatypes(nCtx(), n, Symbol.arrayToNative(names), n_res,
460 n_constr);
461 DatatypeSort<Object>[] res = new DatatypeSort[n];
462 for (int i = 0; i < n; i++)
463 res[i] = new DatatypeSort<>(this, n_res[i]);
464 return res;
465 }
DatatypeSort(name, params=None, ctx=None)
Definition z3py.py:5950

◆ mkDiff()

final< R extends Sort > ReExpr< R > mkDiff ( Expr< ReSort< R > >  a,
Expr< ReSort< R > >  b 
)
inline

Create a difference regular expression.

Definition at line 2682 of file Context.java.

2683 {
2684 checkContextMatch(a, b);
2685 return (ReExpr<R>) Expr.create(this, Native.mkReDiff(nCtx(), a.getNativeObject(), b.getNativeObject()));
2686 }

◆ mkDistinct()

final BoolExpr mkDistinct ( Expr<?>...  args)
inline

Creates a distinct term.

Definition at line 892 of file Context.java.

893 {
894 checkContextMatch(args);
895 return new BoolExpr(this, Native.mkDistinct(nCtx(), args.length,
896 AST.arrayToNative(args)));
897 }

◆ mkDiv()

final< R extends ArithSort > ArithExpr< R > mkDiv ( Expr<? extends R >  t1,
Expr<? extends R >  t2 
)
inline

Create an expression representing t1 / t2.

Definition at line 1025 of file Context.java.

1026 {
1027 checkContextMatch(t1);
1028 checkContextMatch(t2);
1029 return (ArithExpr<R>) Expr.create(this, Native.mkDiv(nCtx(),
1030 t1.getNativeObject(), t2.getNativeObject()));
1031 }

◆ mkDivides()

BoolExpr mkDivides ( Expr< IntSort t1,
Expr< IntSort t2 
)
inline

Creates an integer divisibility predicate (t1 divides t2). Remarks: Both arguments must have integer sort.

Definition at line 1169 of file Context.java.

1170 {
1171 checkContextMatch(t1);
1172 checkContextMatch(t2);
1173 return new BoolExpr(this, Native.mkDivides(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
1174 }

◆ mkEmptyRe()

final< R extends Sort > ReExpr< R > mkEmptyRe ( ReSort< R >  s)
inline

Create the empty regular expression. Corresponds to re.none

Definition at line 2693 of file Context.java.

2694 {
2695 return (ReExpr<R>) Expr.create(this, Native.mkReEmpty(nCtx(), s.getNativeObject()));
2696 }

◆ mkEmptySeq()

final< R extends Sort > SeqExpr< R > mkEmptySeq ( s)
inline

Sequences, Strings and regular expressions. Create the empty sequence.

Definition at line 2317 of file Context.java.

2318 {
2319 checkContextMatch(s);
2320 return (SeqExpr<R>) Expr.create(this, Native.mkSeqEmpty(nCtx(), s.getNativeObject()));
2321 }

◆ mkEmptySet()

final< D extends Sort > ArrayExpr< D, BoolSort > mkEmptySet ( domain)
inline

Create an empty set.

Definition at line 2059 of file Context.java.

2060 {
2061 checkContextMatch(domain);
2062 return (ArrayExpr<D, BoolSort>) Expr.create(this,
2063 Native.mkEmptySet(nCtx(), domain.getNativeObject()));
2064 }

◆ mkEnumSort() [1/2]

final< R > EnumSort< R > mkEnumSort ( String  name,
String...  enumNames 
)
inline

Create a new enumeration sort.

Definition at line 300 of file Context.java.

302 {
303 return new EnumSort<>(this, mkSymbol(name), mkSymbols(enumNames));
304 }

◆ mkEnumSort() [2/2]

final< R > EnumSort< R > mkEnumSort ( Symbol  name,
Symbol...  enumNames 
)
inline

Create a new enumeration sort.

Definition at line 289 of file Context.java.

291 {
292 checkContextMatch(name);
293 checkContextMatch(enumNames);
294 return new EnumSort<>(this, name, enumNames);
295 }

◆ mkEq()

BoolExpr mkEq ( Expr<?>  x,
Expr<?>  y 
)
inline

Creates the equality x = y

Definition at line 880 of file Context.java.

881 {
882 checkContextMatch(x);
883 checkContextMatch(y);
884 return new BoolExpr(this, Native.mkEq(nCtx(), x.getNativeObject(),
885 y.getNativeObject()));
886 }

◆ mkExists() [1/2]

Quantifier mkExists ( Expr<?>[]  boundConstants,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Creates an existential quantifier using a list of constants that will form the set of bound variables.

See also
#mkForall(Sort[],Symbol[],Expr<BoolSort>,int,Pattern[],Expr<?>[],Symbol,Symbol)

Definition at line 3054 of file Context.java.

3057 {
3058
3059 return Quantifier.of(this, false, boundConstants, body, weight,
3060 patterns, noPatterns, quantifierID, skolemID);
3061 }

◆ mkExists() [2/2]

Quantifier mkExists ( Sort[]  sorts,
Symbol[]  names,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Creates an existential quantifier using de-Bruijn indexed variables.

See also
#mkForall(Sort[],Symbol[],Expr<BoolSort>,int,Pattern[],Expr<?>[],Symbol,Symbol)

Definition at line 3041 of file Context.java.

3044 {
3045
3046 return Quantifier.of(this, false, sorts, names, body, weight,
3047 patterns, noPatterns, quantifierID, skolemID);
3048 }

◆ mkExtract() [1/2]

final< R extends Sort > SeqExpr< R > mkExtract ( Expr< SeqSort< R > >  s,
Expr< IntSort offset,
Expr< IntSort length 
)
inline

Extract subsequence.

Definition at line 2469 of file Context.java.

2470 {
2471 checkContextMatch(s, offset, length);
2472 return (SeqExpr<R>) Expr.create(this, Native.mkSeqExtract(nCtx(), s.getNativeObject(), offset.getNativeObject(), length.getNativeObject()));
2473 }

◆ mkExtract() [2/2]

BitVecExpr mkExtract ( int  high,
int  low,
Expr< BitVecSort t 
)
inline

Bit-vector extraction. Remarks: Extract the bits high down to low from a bitvector of size m to yield a new bitvector of size n, where n = high - low + 1. The argument t must have a bit-vector sort.

Definition at line 1552 of file Context.java.

1554 {
1555 checkContextMatch(t);
1556 return new BitVecExpr(this, Native.mkExtract(nCtx(), high, low,
1557 t.getNativeObject()));
1558 }

◆ mkFalse()

BoolExpr mkFalse ( )
inline

The false Term.

Definition at line 864 of file Context.java.

865 {
866 return new BoolExpr(this, Native.mkFalse(nCtx()));
867 }

◆ mkFiniteDomainSort() [1/2]

final< R > FiniteDomainSort< R > mkFiniteDomainSort ( String  name,
long  size 
)
inline

Create a new finite domain sort.

Definition at line 338 of file Context.java.

340 {
341 return new FiniteDomainSort<>(this, mkSymbol(name), size);
342 }

◆ mkFiniteDomainSort() [2/2]

final< R > FiniteDomainSort< R > mkFiniteDomainSort ( Symbol  name,
long  size 
)
inline

Create a new finite domain sort.

Definition at line 328 of file Context.java.

330 {
331 checkContextMatch(name);
332 return new FiniteDomainSort<>(this, name, size);
333 }

◆ mkFiniteSetDifference()

final Expr mkFiniteSetDifference ( Expr  s1,
Expr  s2 
)
inline

Create the difference of two finite sets.

Definition at line 2243 of file Context.java.

2244 {
2245 checkContextMatch(s1);
2246 checkContextMatch(s2);
2247 return Expr.create(this, Native.mkFiniteSetDifference(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2248 }

◆ mkFiniteSetEmpty()

final Expr mkFiniteSetEmpty ( Sort  setSort)
inline

Create an empty finite set.

Definition at line 2205 of file Context.java.

2206 {
2207 checkContextMatch(setSort);
2208 return Expr.create(this, Native.mkFiniteSetEmpty(nCtx(), setSort.getNativeObject()));
2209 }

◆ mkFiniteSetFilter()

final Expr mkFiniteSetFilter ( Expr  f,
Expr  set 
)
inline

Filter a finite set with a predicate.

Definition at line 2292 of file Context.java.

2293 {
2294 checkContextMatch(f);
2295 checkContextMatch(set);
2296 return Expr.create(this, Native.mkFiniteSetFilter(nCtx(), f.getNativeObject(), set.getNativeObject()));
2297 }

◆ mkFiniteSetIntersect()

final Expr mkFiniteSetIntersect ( Expr  s1,
Expr  s2 
)
inline

Create the intersection of two finite sets.

Definition at line 2233 of file Context.java.

2234 {
2235 checkContextMatch(s1);
2236 checkContextMatch(s2);
2237 return Expr.create(this, Native.mkFiniteSetIntersect(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2238 }

◆ mkFiniteSetMap()

final Expr mkFiniteSetMap ( Expr  f,
Expr  set 
)
inline

Map a function over all elements in a finite set.

Definition at line 2282 of file Context.java.

2283 {
2284 checkContextMatch(f);
2285 checkContextMatch(set);
2286 return Expr.create(this, Native.mkFiniteSetMap(nCtx(), f.getNativeObject(), set.getNativeObject()));
2287 }

◆ mkFiniteSetMember()

final BoolExpr mkFiniteSetMember ( Expr  elem,
Expr  set 
)
inline

Check for membership in a finite set.

Definition at line 2253 of file Context.java.

2254 {
2255 checkContextMatch(elem);
2256 checkContextMatch(set);
2257 return (BoolExpr) Expr.create(this, Native.mkFiniteSetMember(nCtx(), elem.getNativeObject(), set.getNativeObject()));
2258 }

◆ mkFiniteSetRange()

final Expr mkFiniteSetRange ( Expr  low,
Expr  high 
)
inline

Create a finite set containing integers in the range [low, high].

Definition at line 2302 of file Context.java.

2303 {
2304 checkContextMatch(low);
2305 checkContextMatch(high);
2306 return Expr.create(this, Native.mkFiniteSetRange(nCtx(), low.getNativeObject(), high.getNativeObject()));
2307 }

◆ mkFiniteSetSingleton()

final Expr mkFiniteSetSingleton ( Expr  elem)
inline

Create a singleton finite set.

Definition at line 2214 of file Context.java.

2215 {
2216 checkContextMatch(elem);
2217 return Expr.create(this, Native.mkFiniteSetSingleton(nCtx(), elem.getNativeObject()));
2218 }

◆ mkFiniteSetSize()

final Expr mkFiniteSetSize ( Expr  set)
inline

Get the cardinality of a finite set.

Definition at line 2263 of file Context.java.

2264 {
2265 checkContextMatch(set);
2266 return Expr.create(this, Native.mkFiniteSetSize(nCtx(), set.getNativeObject()));
2267 }

◆ mkFiniteSetSort()

final FiniteSetSort mkFiniteSetSort ( Sort  elemSort)
inline

Finite Sets Create a finite set sort over the given element sort.

Definition at line 2178 of file Context.java.

2179 {
2180 checkContextMatch(elemSort);
2181 return new FiniteSetSort(this, elemSort);
2182 }
FiniteSetSort(elem_sort)
Definition z3py.py:5384

◆ mkFiniteSetSubset()

final BoolExpr mkFiniteSetSubset ( Expr  s1,
Expr  s2 
)
inline

Check if one finite set is a subset of another.

Definition at line 2272 of file Context.java.

2273 {
2274 checkContextMatch(s1);
2275 checkContextMatch(s2);
2276 return (BoolExpr) Expr.create(this, Native.mkFiniteSetSubset(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2277 }

◆ mkFiniteSetUnion()

final Expr mkFiniteSetUnion ( Expr  s1,
Expr  s2 
)
inline

Create the union of two finite sets.

Definition at line 2223 of file Context.java.

2224 {
2225 checkContextMatch(s1);
2226 checkContextMatch(s2);
2227 return Expr.create(this, Native.mkFiniteSetUnion(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2228 }

◆ mkFixedpoint()

Fixedpoint mkFixedpoint ( )
inline

Create a Fixedpoint context.

Definition at line 3788 of file Context.java.

3789 {
3790 return new Fixedpoint(this);
3791 }

◆ mkForall() [1/2]

Quantifier mkForall ( Expr<?>[]  boundConstants,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Creates a universal quantifier using a list of constants that will form the set of bound variables.

See also
#mkForall(Sort[],Symbol[],Expr<BoolSort>,int,Pattern[],Expr<?>[],Symbol,Symbol)

Definition at line 3028 of file Context.java.

3031 {
3032
3033 return Quantifier.of(this, true, boundConstants, body, weight,
3034 patterns, noPatterns, quantifierID, skolemID);
3035 }

◆ mkForall() [2/2]

Quantifier mkForall ( Sort[]  sorts,
Symbol[]  names,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Create a universal Quantifier.

Parameters
sortsthe sorts of the bound variables.
namesnames of the bound variables
bodythe body of the quantifier.
weightquantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.
patternsarray containing the patterns created using MkPattern.
noPatternsarray containing the anti-patterns created using MkPattern.
quantifierIDoptional symbol to track quantifier.
skolemIDoptional symbol to track skolem constants.
Returns
Creates a forall formula, where weight is the weight, patterns is an array of patterns, sorts is an array with the sorts of the bound variables, names is an array with the 'names' of the bound variables, and body is 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 using {#mkBound}. Z3 applies the convention that the last element in names and sorts refers to the variable with index 0, the second to last element of names and sorts refers to the variable with index 1, etc.

Definition at line 3016 of file Context.java.

3019 {
3020 return Quantifier.of(this, true, sorts, names, body, weight, patterns,
3021 noPatterns, quantifierID, skolemID);
3022 }

◆ mkFP() [1/6]

FPNum mkFP ( boolean  sgn,
int  exp,
int  sig,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a sign bit and two integers.

Parameters
sgnthe sign.
expthe exponent.
sigthe significand.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4118 of file Context.java.

4119 {
4120 return mkFPNumeral(sgn, exp, sig, s);
4121 }
FPNum mkFPNumeral(float v, FPSort s)

◆ mkFP() [2/6]

FPNum mkFP ( boolean  sgn,
long  exp,
long  sig,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.

Parameters
sgnthe sign.
expthe exponent.
sigthe significand.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4131 of file Context.java.

4132 {
4133 return mkFPNumeral(sgn, exp, sig, s);
4134 }

◆ mkFP() [3/6]

FPNum mkFP ( double  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a double.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4093 of file Context.java.

4094 {
4095 return mkFPNumeral(v, s);
4096 }

◆ mkFP() [4/6]

FPExpr mkFP ( Expr< BitVecSort sgn,
Expr< BitVecSort sig,
Expr< BitVecSort exp 
)
inline

Create an expression of FloatingPoint sort from three bit-vector expressions.

Parameters
sgnbit-vector term (of size 1) representing the sign.
sigbit-vector term representing the significand.
expbit-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.
Exceptions
Z3Exception

Definition at line 4416 of file Context.java.

4417 {
4418 return new FPExpr(this, Native.mkFpaFp(nCtx(), sgn.getNativeObject(), sig.getNativeObject(), exp.getNativeObject()));
4419 }

◆ mkFP() [5/6]

FPNum mkFP ( float  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a float.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4082 of file Context.java.

4083 {
4084 return mkFPNumeral(v, s);
4085 }

◆ mkFP() [6/6]

FPNum mkFP ( int  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from an int.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4105 of file Context.java.

4106 {
4107 return mkFPNumeral(v, s);
4108 }

◆ mkFPAbs()

FPExpr mkFPAbs ( Expr< FPSort t)
inline

Floating-point absolute value

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4142 of file Context.java.

4143 {
4144 return new FPExpr(this, Native.mkFpaAbs(nCtx(), t.getNativeObject()));
4145 }

◆ mkFPAdd()

FPExpr mkFPAdd ( Expr< FPRMSort rm,
Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point addition

Parameters
rmrounding mode term
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4164 of file Context.java.

4165 {
4166 return new FPExpr(this, Native.mkFpaAdd(nCtx(), rm.getNativeObject(), t1.getNativeObject(), t2.getNativeObject()));
4167 }

◆ mkFPDiv()

FPExpr mkFPDiv ( Expr< FPRMSort rm,
Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point division

Parameters
rmrounding mode term
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4200 of file Context.java.

4201 {
4202 return new FPExpr(this, Native.mkFpaDiv(nCtx(), rm.getNativeObject(), t1.getNativeObject(), t2.getNativeObject()));
4203 }

◆ mkFPEq()

BoolExpr mkFPEq ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point equality.

Parameters
t1floating-point term
t2floating-point term Remarks: Note that this is IEEE 754 equality (as opposed to standard =).
Exceptions
Z3Exception

Definition at line 4328 of file Context.java.

4329 {
4330 return new BoolExpr(this, Native.mkFpaEq(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4331 }

◆ mkFPFMA()

FPExpr mkFPFMA ( Expr< FPRMSort rm,
Expr< FPSort t1,
Expr< FPSort t2,
Expr< FPSort t3 
)
inline

Floating-point fused multiply-add

Parameters
rmrounding mode term
t1floating-point term
t2floating-point term
t3floating-point term Remarks: The result is round((t1 * t2) + t3)
Exceptions
Z3Exception

Definition at line 4215 of file Context.java.

4216 {
4217 return new FPExpr(this, Native.mkFpaFma(nCtx(), rm.getNativeObject(), t1.getNativeObject(), t2.getNativeObject(), t3.getNativeObject()));
4218 }

◆ mkFPGEq()

BoolExpr mkFPGEq ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point greater than or equal.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4304 of file Context.java.

4305 {
4306 return new BoolExpr(this, Native.mkFpaGeq(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4307 }

◆ mkFPGt()

BoolExpr mkFPGt ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point greater than.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4315 of file Context.java.

4316 {
4317 return new BoolExpr(this, Native.mkFpaGt(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4318 }

◆ mkFPInf()

FPNum mkFPInf ( FPSort  s,
boolean  negative 
)
inline

Create a floating-point infinity of sort s.

Parameters
sFloatingPoint sort.
negativeindicates whether the result should be negative.
Exceptions
Z3Exception

Definition at line 4001 of file Context.java.

4002 {
4003 return new FPNum(this, Native.mkFpaInf(nCtx(), s.getNativeObject(), negative));
4004 }

◆ mkFPIsInfinite()

BoolExpr mkFPIsInfinite ( Expr< FPSort t)
inline

Predicate indicating whether t is a floating-point number representing +oo or -oo.

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4368 of file Context.java.

4369 {
4370 return new BoolExpr(this, Native.mkFpaIsInfinite(nCtx(), t.getNativeObject()));
4371 }

◆ mkFPIsNaN()

BoolExpr mkFPIsNaN ( Expr< FPSort t)
inline

Predicate indicating whether t is a NaN.

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4378 of file Context.java.

4379 {
4380 return new BoolExpr(this, Native.mkFpaIsNan(nCtx(), t.getNativeObject()));
4381 }

◆ mkFPIsNegative()

BoolExpr mkFPIsNegative ( Expr< FPSort t)
inline

Predicate indicating whether t is a negative floating-point number.

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4388 of file Context.java.

4389 {
4390 return new BoolExpr(this, Native.mkFpaIsNegative(nCtx(), t.getNativeObject()));
4391 }

◆ mkFPIsNormal()

BoolExpr mkFPIsNormal ( Expr< FPSort t)
inline

Predicate indicating whether t is a normal floating-point number.\

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4338 of file Context.java.

4339 {
4340 return new BoolExpr(this, Native.mkFpaIsNormal(nCtx(), t.getNativeObject()));
4341 }

◆ mkFPIsPositive()

BoolExpr mkFPIsPositive ( Expr< FPSort t)
inline

Predicate indicating whether t is a positive floating-point number.

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4398 of file Context.java.

4399 {
4400 return new BoolExpr(this, Native.mkFpaIsPositive(nCtx(), t.getNativeObject()));
4401 }

◆ mkFPIsSubnormal()

BoolExpr mkFPIsSubnormal ( Expr< FPSort t)
inline

Predicate indicating whether t is a subnormal floating-point number.\

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4348 of file Context.java.

4349 {
4350 return new BoolExpr(this, Native.mkFpaIsSubnormal(nCtx(), t.getNativeObject()));
4351 }

◆ mkFPIsZero()

BoolExpr mkFPIsZero ( Expr< FPSort t)
inline

Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4358 of file Context.java.

4359 {
4360 return new BoolExpr(this, Native.mkFpaIsZero(nCtx(), t.getNativeObject()));
4361 }

◆ mkFPLEq()

BoolExpr mkFPLEq ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point less than or equal.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4282 of file Context.java.

4283 {
4284 return new BoolExpr(this, Native.mkFpaLeq(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4285 }

◆ mkFPLt()

BoolExpr mkFPLt ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point less than.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4293 of file Context.java.

4294 {
4295 return new BoolExpr(this, Native.mkFpaLt(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4296 }

◆ mkFPMax()

FPExpr mkFPMax ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Maximum of floating-point numbers.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4271 of file Context.java.

4272 {
4273 return new FPExpr(this, Native.mkFpaMax(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4274 }

◆ mkFPMin()

FPExpr mkFPMin ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Minimum of floating-point numbers.

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4260 of file Context.java.

4261 {
4262 return new FPExpr(this, Native.mkFpaMin(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4263 }

◆ mkFPMul()

FPExpr mkFPMul ( Expr< FPRMSort rm,
Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point multiplication

Parameters
rmrounding mode term
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4188 of file Context.java.

4189 {
4190 return new FPExpr(this, Native.mkFpaMul(nCtx(), rm.getNativeObject(), t1.getNativeObject(), t2.getNativeObject()));
4191 }

◆ mkFPNaN()

FPNum mkFPNaN ( FPSort  s)
inline

Create a NaN of sort s.

Parameters
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 3990 of file Context.java.

3991 {
3992 return new FPNum(this, Native.mkFpaNan(nCtx(), s.getNativeObject()));
3993 }

◆ mkFPNeg()

FPExpr mkFPNeg ( Expr< FPSort t)
inline

Floating-point negation

Parameters
tfloating-point term
Exceptions
Z3Exception

Definition at line 4152 of file Context.java.

4153 {
4154 return new FPExpr(this, Native.mkFpaNeg(nCtx(), t.getNativeObject()));
4155 }

◆ mkFPNumeral() [1/5]

FPNum mkFPNumeral ( boolean  sgn,
int  exp,
int  sig,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a sign bit and two integers.

Parameters
sgnthe sign.
expthe exponent.
sigthe significand.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4058 of file Context.java.

4059 {
4060 return new FPNum(this, Native.mkFpaNumeralIntUint(nCtx(), sgn, exp, sig, s.getNativeObject()));
4061 }

◆ mkFPNumeral() [2/5]

FPNum mkFPNumeral ( boolean  sgn,
long  exp,
long  sig,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.

Parameters
sgnthe sign.
expthe exponent.
sigthe significand.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4071 of file Context.java.

4072 {
4073 return new FPNum(this, Native.mkFpaNumeralInt64Uint64(nCtx(), sgn, exp, sig, s.getNativeObject()));
4074 }

◆ mkFPNumeral() [3/5]

FPNum mkFPNumeral ( double  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a double.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4034 of file Context.java.

4035 {
4036 return new FPNum(this, Native.mkFpaNumeralDouble(nCtx(), v, s.getNativeObject()));
4037 }

◆ mkFPNumeral() [4/5]

FPNum mkFPNumeral ( float  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from a float.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4023 of file Context.java.

4024 {
4025 return new FPNum(this, Native.mkFpaNumeralFloat(nCtx(), v, s.getNativeObject()));
4026 }

◆ mkFPNumeral() [5/5]

FPNum mkFPNumeral ( int  v,
FPSort  s 
)
inline

Create a numeral of FloatingPoint sort from an int.

Parameters
vnumeral value.
sFloatingPoint sort.
Exceptions
Z3Exception

Definition at line 4045 of file Context.java.

4046 {
4047 return new FPNum(this, Native.mkFpaNumeralInt(nCtx(), v, s.getNativeObject()));
4048 }

◆ mkFPRem()

FPExpr mkFPRem ( Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point remainder

Parameters
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4237 of file Context.java.

4238 {
4239 return new FPExpr(this, Native.mkFpaRem(nCtx(), t1.getNativeObject(), t2.getNativeObject()));
4240 }

◆ mkFPRNA()

FPRMNum mkFPRNA ( )
inline

Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.

Exceptions
Z3Exception

Definition at line 3842 of file Context.java.

3843 {
3844 return new FPRMNum(this, Native.mkFpaRna(nCtx()));
3845 }

◆ mkFPRNE()

FPRMNum mkFPRNE ( )
inline

Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.

Exceptions
Z3Exception

Definition at line 3824 of file Context.java.

3825 {
3826 return new FPRMNum(this, Native.mkFpaRne(nCtx()));
3827 }

◆ mkFPRoundingModeSort()

FPRMSort mkFPRoundingModeSort ( )
inline

Create the floating-point RoundingMode sort.

Exceptions
Z3Exception

Definition at line 3806 of file Context.java.

3807 {
3808 return new FPRMSort(this);
3809 }

◆ mkFPRoundNearestTiesToAway()

FPRMNum mkFPRoundNearestTiesToAway ( )
inline

Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.

Exceptions
Z3Exception

Definition at line 3833 of file Context.java.

3834 {
3835 return new FPRMNum(this, Native.mkFpaRoundNearestTiesToAway(nCtx()));
3836 }

◆ mkFPRoundNearestTiesToEven()

FPRMExpr mkFPRoundNearestTiesToEven ( )
inline

Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.

Exceptions
Z3Exception

Definition at line 3815 of file Context.java.

3816 {
3817 return new FPRMExpr(this, Native.mkFpaRoundNearestTiesToEven(nCtx()));
3818 }

◆ mkFPRoundToIntegral()

FPExpr mkFPRoundToIntegral ( Expr< FPRMSort rm,
Expr< FPSort t 
)
inline

Floating-point roundToIntegral. Rounds a floating-point number to the closest integer, again represented as a floating-point number.

Parameters
rmterm of RoundingMode sort
tfloating-point term
Exceptions
Z3Exception

Definition at line 4249 of file Context.java.

4250 {
4251 return new FPExpr(this, Native.mkFpaRoundToIntegral(nCtx(), rm.getNativeObject(), t.getNativeObject()));
4252 }

◆ mkFPRoundTowardNegative()

FPRMNum mkFPRoundTowardNegative ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.

Exceptions
Z3Exception

Definition at line 3869 of file Context.java.

3870 {
3871 return new FPRMNum(this, Native.mkFpaRoundTowardNegative(nCtx()));
3872 }

◆ mkFPRoundTowardPositive()

FPRMNum mkFPRoundTowardPositive ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.

Exceptions
Z3Exception

Definition at line 3851 of file Context.java.

3852 {
3853 return new FPRMNum(this, Native.mkFpaRoundTowardPositive(nCtx()));
3854 }

◆ mkFPRoundTowardZero()

FPRMNum mkFPRoundTowardZero ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.

Exceptions
Z3Exception

Definition at line 3887 of file Context.java.

3888 {
3889 return new FPRMNum(this, Native.mkFpaRoundTowardZero(nCtx()));
3890 }

◆ mkFPRTN()

FPRMNum mkFPRTN ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.

Exceptions
Z3Exception

Definition at line 3878 of file Context.java.

3879 {
3880 return new FPRMNum(this, Native.mkFpaRtn(nCtx()));
3881 }

◆ mkFPRTP()

FPRMNum mkFPRTP ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.

Exceptions
Z3Exception

Definition at line 3860 of file Context.java.

3861 {
3862 return new FPRMNum(this, Native.mkFpaRtp(nCtx()));
3863 }

◆ mkFPRTZ()

FPRMNum mkFPRTZ ( )
inline

Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.

Exceptions
Z3Exception

Definition at line 3896 of file Context.java.

3897 {
3898 return new FPRMNum(this, Native.mkFpaRtz(nCtx()));
3899 }

◆ mkFPSort()

FPSort mkFPSort ( int  ebits,
int  sbits 
)
inline

Create a FloatingPoint sort.

Parameters
ebitsexponent bits in the FloatingPoint sort.
sbitssignificand bits in the FloatingPoint sort.
Exceptions
Z3Exception

Definition at line 3907 of file Context.java.

3908 {
3909 return new FPSort(this, ebits, sbits);
3910 }
FPSort(ebits, sbits, ctx=None)
Definition z3py.py:10713

◆ mkFPSort128()

FPSort mkFPSort128 ( )
inline

Create the quadruple-precision (128-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3979 of file Context.java.

3980 {
3981 return new FPSort(this, Native.mkFpaSort128(nCtx()));
3982 }

◆ mkFPSort16()

FPSort mkFPSort16 ( )
inline

Create the half-precision (16-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3925 of file Context.java.

3926 {
3927 return new FPSort(this, Native.mkFpaSort16(nCtx()));
3928 }

◆ mkFPSort32()

FPSort mkFPSort32 ( )
inline

Create the single-precision (32-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3943 of file Context.java.

3944 {
3945 return new FPSort(this, Native.mkFpaSort32(nCtx()));
3946 }

◆ mkFPSort64()

FPSort mkFPSort64 ( )
inline

Create the double-precision (64-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3961 of file Context.java.

3962 {
3963 return new FPSort(this, Native.mkFpaSort64(nCtx()));
3964 }

◆ mkFPSortDouble()

FPSort mkFPSortDouble ( )
inline

Create the double-precision (64-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3952 of file Context.java.

3953 {
3954 return new FPSort(this, Native.mkFpaSortDouble(nCtx()));
3955 }

◆ mkFPSortHalf()

FPSort mkFPSortHalf ( )
inline

Create the half-precision (16-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3916 of file Context.java.

3917 {
3918 return new FPSort(this, Native.mkFpaSortHalf(nCtx()));
3919 }

◆ mkFPSortQuadruple()

FPSort mkFPSortQuadruple ( )
inline

Create the quadruple-precision (128-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3970 of file Context.java.

3971 {
3972 return new FPSort(this, Native.mkFpaSortQuadruple(nCtx()));
3973 }

◆ mkFPSortSingle()

FPSort mkFPSortSingle ( )
inline

Create the single-precision (32-bit) FloatingPoint sort.

Exceptions
Z3Exception

Definition at line 3934 of file Context.java.

3935 {
3936 return new FPSort(this, Native.mkFpaSortSingle(nCtx()));
3937 }

◆ mkFPSqrt()

FPExpr mkFPSqrt ( Expr< FPRMSort rm,
Expr< FPSort t 
)
inline

Floating-point square root

Parameters
rmrounding mode term
tfloating-point term
Exceptions
Z3Exception

Definition at line 4226 of file Context.java.

4227 {
4228 return new FPExpr(this, Native.mkFpaSqrt(nCtx(), rm.getNativeObject(), t.getNativeObject()));
4229 }

◆ mkFPSub()

FPExpr mkFPSub ( Expr< FPRMSort rm,
Expr< FPSort t1,
Expr< FPSort t2 
)
inline

Floating-point subtraction

Parameters
rmrounding mode term
t1floating-point term
t2floating-point term
Exceptions
Z3Exception

Definition at line 4176 of file Context.java.

4177 {
4178 return new FPExpr(this, Native.mkFpaSub(nCtx(), rm.getNativeObject(), t1.getNativeObject(), t2.getNativeObject()));
4179 }

◆ mkFPToBV()

BitVecExpr mkFPToBV ( Expr< FPRMSort rm,
Expr< FPSort t,
int  sz,
boolean signed   
)
inline

Conversion of a floating-point term into a bit-vector.

Parameters
rmRoundingMode term.
tFloatingPoint term
szSize of the resulting bit-vector.
signedIndicates 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.
Exceptions
Z3Exception

Definition at line 4517 of file Context.java.

4518 {
4519 if (signed)
4520 return new BitVecExpr(this, Native.mkFpaToSbv(nCtx(), rm.getNativeObject(), t.getNativeObject(), sz));
4521 else
4522 return new BitVecExpr(this, Native.mkFpaToUbv(nCtx(), rm.getNativeObject(), t.getNativeObject(), sz));
4523 }

◆ mkFPToFP() [1/6]

FPExpr mkFPToFP ( Expr< BitVecSort bv,
FPSort  s 
)
inline

Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.

Parameters
bvbit-vector value (of size m).
sFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4432 of file Context.java.

4433 {
4434 return new FPExpr(this, Native.mkFpaToFpBv(nCtx(), bv.getNativeObject(), s.getNativeObject()));
4435 }

◆ mkFPToFP() [2/6]

FPExpr mkFPToFP ( Expr< FPRMSort rm,
Expr< BitVecSort t,
FPSort  s,
boolean signed   
)
inline

Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.

Parameters
rmRoundingMode term.
tterm of bit-vector sort.
sFloatingPoint sort.
signedflag 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.
Exceptions
Z3Exception

Definition at line 4482 of file Context.java.

4483 {
4484 if (signed)
4485 return new FPExpr(this, Native.mkFpaToFpSigned(nCtx(), rm.getNativeObject(), t.getNativeObject(), s.getNativeObject()));
4486 else
4487 return new FPExpr(this, Native.mkFpaToFpUnsigned(nCtx(), rm.getNativeObject(), t.getNativeObject(), s.getNativeObject()));
4488 }

◆ mkFPToFP() [3/6]

BitVecExpr mkFPToFP ( Expr< FPRMSort rm,
Expr< IntSort exp,
Expr< RealSort sig,
FPSort  s 
)
inline

Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.

Parameters
rmRoundingMode term.
expExponent term of Int sort.
sigSignificand term of Real sort.
sFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4567 of file Context.java.

4568 {
4569 return new BitVecExpr(this, Native.mkFpaToFpIntReal(nCtx(), rm.getNativeObject(), exp.getNativeObject(), sig.getNativeObject(), s.getNativeObject()));
4570 }

◆ mkFPToFP() [4/6]

FPExpr mkFPToFP ( Expr< FPRMSort rm,
FPExpr  t,
FPSort  s 
)
inline

Conversion of a FloatingPoint term into another term of different FloatingPoint sort.

Parameters
rmRoundingMode term.
tFloatingPoint term.
sFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4448 of file Context.java.

4449 {
4450 return new FPExpr(this, Native.mkFpaToFpFloat(nCtx(), rm.getNativeObject(), t.getNativeObject(), s.getNativeObject()));
4451 }

◆ mkFPToFP() [5/6]

FPExpr mkFPToFP ( Expr< FPRMSort rm,
RealExpr  t,
FPSort  s 
)
inline

Conversion of a term of real sort into a term of FloatingPoint sort.

Parameters
rmRoundingMode term.
tterm of Real sort.
sFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4464 of file Context.java.

4465 {
4466 return new FPExpr(this, Native.mkFpaToFpReal(nCtx(), rm.getNativeObject(), t.getNativeObject(), s.getNativeObject()));
4467 }

◆ mkFPToFP() [6/6]

FPExpr mkFPToFP ( FPSort  s,
Expr< FPRMSort rm,
Expr< FPSort t 
)
inline

Conversion of a floating-point number to another FloatingPoint sort s.

Parameters
sFloatingPoint sort
rmfloating-point rounding mode term
tfloating-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.
Exceptions
Z3Exception

Definition at line 4500 of file Context.java.

4501 {
4502 return new FPExpr(this, Native.mkFpaToFpFloat(nCtx(), s.getNativeObject(), rm.getNativeObject(), t.getNativeObject()));
4503 }

◆ mkFPToIEEEBV()

BitVecExpr mkFPToIEEEBV ( Expr< FPSort t)
inline

Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.

Parameters
tFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4549 of file Context.java.

4550 {
4551 return new BitVecExpr(this, Native.mkFpaToIeeeBv(nCtx(), t.getNativeObject()));
4552 }

◆ mkFPToReal()

RealExpr mkFPToReal ( Expr< FPSort t)
inline

Conversion of a floating-point term into a real-numbered term.

Parameters
tFloatingPoint 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.
Exceptions
Z3Exception

Definition at line 4534 of file Context.java.

4535 {
4536 return new RealExpr(this, Native.mkFpaToReal(nCtx(), t.getNativeObject()));
4537 }

◆ mkFPZero()

FPNum mkFPZero ( FPSort  s,
boolean  negative 
)
inline

Create a floating-point zero of sort s.

Parameters
sFloatingPoint sort.
negativeindicates whether the result should be negative.
Exceptions
Z3Exception

Definition at line 4012 of file Context.java.

4013 {
4014 return new FPNum(this, Native.mkFpaZero(nCtx(), s.getNativeObject(), negative));
4015 }

◆ mkFreshConst()

final< R extends Sort > Expr< R > mkFreshConst ( String  prefix,
range 
)
inline

Creates a fresh Constant of sort range and a name prefixed with prefix.

Definition at line 762 of file Context.java.

763 {
764 checkContextMatch(range);
765 return (Expr<R>) Expr.create(this,
766 Native.mkFreshConst(nCtx(), prefix, range.getNativeObject()));
767 }

◆ mkFreshConstDecl()

final< R extends Sort > FuncDecl< R > mkFreshConstDecl ( String  prefix,
range 
)
inline

Creates a fresh constant function declaration with a name prefixed with prefix.

See also
#mkFuncDecl(String,Sort,Sort)
#mkFuncDecl(String,Sort[],Sort)

Definition at line 702 of file Context.java.

704 {
705 checkContextMatch(range);
706 return new FuncDecl<>(this, prefix, null, range);
707 }

◆ mkFreshFuncDecl()

final< R extends Sort > FuncDecl< R > mkFreshFuncDecl ( String  prefix,
Sort[]  domain,
range 
)
inline

Creates a fresh function declaration with a name prefixed with prefix.

See also
#mkFuncDecl(String,Sort,Sort)
#mkFuncDecl(String,Sort[],Sort)

Definition at line 669 of file Context.java.

671 {
672 checkContextMatch(domain);
673 checkContextMatch(range);
674 return new FuncDecl<>(this, prefix, domain, range);
675 }

◆ mkFullRe()

final< R extends Sort > ReExpr< R > mkFullRe ( ReSort< R >  s)
inline

Create the full regular expression. Corresponds to re.all

Definition at line 2702 of file Context.java.

2703 {
2704 return (ReExpr<R>) Expr.create(this, Native.mkReFull(nCtx(), s.getNativeObject()));
2705 }

◆ mkFullSet()

final< D extends Sort > ArrayExpr< D, BoolSort > mkFullSet ( domain)
inline

Create the full set.

Definition at line 2069 of file Context.java.

2070 {
2071 checkContextMatch(domain);
2072 return (ArrayExpr<D, BoolSort>) Expr.create(this,
2073 Native.mkFullSet(nCtx(), domain.getNativeObject()));
2074 }

◆ mkFuncDecl() [1/4]

final< R extends Sort > FuncDecl< R > mkFuncDecl ( String  name,
Sort  domain,
range 
)
inline

Creates a new function declaration.

Definition at line 627 of file Context.java.

629 {
630 checkContextMatch(domain);
631 checkContextMatch(range);
632 Sort[] q = new Sort[] { domain };
633 return new FuncDecl<>(this, mkSymbol(name), q, range);
634 }

◆ mkFuncDecl() [2/4]

final< R extends Sort > FuncDecl< R > mkFuncDecl ( String  name,
Sort[]  domain,
range 
)
inline

Creates a new function declaration.

Definition at line 616 of file Context.java.

618 {
619 checkContextMatch(domain);
620 checkContextMatch(range);
621 return new FuncDecl<>(this, mkSymbol(name), domain, range);
622 }

◆ mkFuncDecl() [3/4]

final< R extends Sort > FuncDecl< R > mkFuncDecl ( Symbol  name,
Sort  domain,
range 
)
inline

Creates a new function declaration.

Definition at line 603 of file Context.java.

605 {
606 checkContextMatch(name);
607 checkContextMatch(domain);
608 checkContextMatch(range);
609 Sort[] q = new Sort[] { domain };
610 return new FuncDecl<>(this, name, q, range);
611 }

◆ mkFuncDecl() [4/4]

final< R extends Sort > FuncDecl< R > mkFuncDecl ( Symbol  name,
Sort[]  domain,
range 
)
inline

Creates a new function declaration.

Definition at line 577 of file Context.java.

578 {
579 checkContextMatch(name);
580 checkContextMatch(domain);
581 checkContextMatch(range);
582 return new FuncDecl<>(this, name, domain, range);
583 }

◆ mkGe()

BoolExpr mkGe ( Expr<? extends ArithSort t1,
Expr<? extends ArithSort t2 
)
inline

Create an expression representing t1 &gt;= t2

Definition at line 1109 of file Context.java.

1110 {
1111 checkContextMatch(t1);
1112 checkContextMatch(t2);
1113 return new BoolExpr(this, Native.mkGe(nCtx(), t1.getNativeObject(),
1114 t2.getNativeObject()));
1115 }

◆ mkGoal()

Goal mkGoal ( boolean  models,
boolean  unsatCores,
boolean  proofs 
)
inline

Creates a new Goal. Remarks: Note that the Context must have been created with proof generation support if proofs is set to true here.

Parameters
modelsIndicates whether model generation should be enabled.
unsatCoresIndicates whether unsat core generation should be enabled.
proofsIndicates whether proof generation should be enabled.

Definition at line 3231 of file Context.java.

3232 {
3233 return new Goal(this, models, unsatCores, proofs);
3234 }

◆ mkGt()

BoolExpr mkGt ( Expr<? extends ArithSort t1,
Expr<? extends ArithSort t2 
)
inline

Create an expression representing t1 &gt; t2

Definition at line 1098 of file Context.java.

1099 {
1100 checkContextMatch(t1);
1101 checkContextMatch(t2);
1102 return new BoolExpr(this, Native.mkGt(nCtx(), t1.getNativeObject(),
1103 t2.getNativeObject()));
1104 }

◆ mkIff()

BoolExpr mkIff ( Expr< BoolSort t1,
Expr< BoolSort t2 
)
inline

Create an expression representing t1 iff t2.

Definition at line 927 of file Context.java.

928 {
929 checkContextMatch(t1);
930 checkContextMatch(t2);
931 return new BoolExpr(this, Native.mkIff(nCtx(), t1.getNativeObject(),
932 t2.getNativeObject()));
933 }

◆ mkImplies()

BoolExpr mkImplies ( Expr< BoolSort t1,
Expr< BoolSort t2 
)
inline

Create an expression representing t1 -> t2.

Definition at line 938 of file Context.java.

939 {
940 checkContextMatch(t1);
941 checkContextMatch(t2);
942 return new BoolExpr(this, Native.mkImplies(nCtx(),
943 t1.getNativeObject(), t2.getNativeObject()));
944 }

◆ mkIndexOf()

final< R extends Sort > IntExpr mkIndexOf ( Expr< SeqSort< R > >  s,
Expr< SeqSort< R > >  substr,
Expr< IntSort offset 
)
inline

Extract index of sub-string starting at offset.

Definition at line 2478 of file Context.java.

2479 {
2480 checkContextMatch(s, substr, offset);
2481 return (IntExpr)Expr.create(this, Native.mkSeqIndex(nCtx(), s.getNativeObject(), substr.getNativeObject(), offset.getNativeObject()));
2482 }

◆ mkInRe()

final< R extends Sort > BoolExpr mkInRe ( Expr< SeqSort< R > >  s,
ReExpr< SeqSort< R > >  re 
)
inline

Check for regular expression membership.

Definition at line 2582 of file Context.java.

2583 {
2584 checkContextMatch(s, re);
2585 return (BoolExpr) Expr.create(this, Native.mkSeqInRe(nCtx(), s.getNativeObject(), re.getNativeObject()));
2586 }

◆ mkInt() [1/3]

IntNum mkInt ( int  v)
inline

Create an integer numeral.

Parameters
vvalue of the numeral.
Returns
A Term with value v and sort Integer

Definition at line 2941 of file Context.java.

2942 {
2943
2944 return new IntNum(this, Native.mkInt(nCtx(), v, getIntSort()
2945 .getNativeObject()));
2946 }

◆ mkInt() [2/3]

IntNum mkInt ( long  v)
inline

Create an integer numeral.

Parameters
vvalue of the numeral.
Returns
A Term with value v and sort Integer

Definition at line 2954 of file Context.java.

2955 {
2956
2957 return new IntNum(this, Native.mkInt64(nCtx(), v, getIntSort()
2958 .getNativeObject()));
2959 }

◆ mkInt() [3/3]

IntNum mkInt ( String  v)
inline

Create an integer numeral.

Parameters
vA string representing the Term value in decimal notation.

Definition at line 2928 of file Context.java.

2929 {
2930
2931 return new IntNum(this, Native.mkNumeral(nCtx(), v, getIntSort()
2932 .getNativeObject()));
2933 }

◆ mkInt2BV()

BitVecExpr mkInt2BV ( int  n,
Expr< IntSort t 
)
inline

Create an n bit bit-vector from the integer argument t. 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.

Definition at line 1721 of file Context.java.

1722 {
1723 checkContextMatch(t);
1724 return new BitVecExpr(this, Native.mkInt2bv(nCtx(), n,
1725 t.getNativeObject()));
1726 }

◆ mkInt2Real()

RealExpr mkInt2Real ( Expr< IntSort t)
inline

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 Term k and asserting MakeInt2Real(k) &lt;= t1 &lt; MkInt2Real(k)+1. The argument must be of integer sort.

Definition at line 1127 of file Context.java.

1128 {
1129 checkContextMatch(t);
1130 return new RealExpr(this,
1131 Native.mkInt2real(nCtx(), t.getNativeObject()));
1132 }

◆ mkIntConst() [1/2]

IntExpr mkIntConst ( String  name)
inline

Creates an integer constant.

Definition at line 805 of file Context.java.

806 {
807 return (IntExpr) mkConst(name, getIntSort());
808 }

◆ mkIntConst() [2/2]

IntExpr mkIntConst ( Symbol  name)
inline

Creates an integer constant.

Definition at line 797 of file Context.java.

798 {
799 return (IntExpr) mkConst(name, getIntSort());
800 }

◆ mkIntersect()

final< R extends Sort > ReExpr< R > mkIntersect ( Expr< ReSort< R > >...  t)
inline

Create the intersection of regular languages.

Definition at line 2673 of file Context.java.

2674 {
2675 checkContextMatch(t);
2676 return (ReExpr<R>) Expr.create(this, Native.mkReIntersect(nCtx(), t.length, AST.arrayToNative(t)));
2677 }

◆ mkIntSort()

IntSort mkIntSort ( )
inline

Create a new integer sort.

Definition at line 206 of file Context.java.

207 {
208 return new IntSort(this);
209 }

◆ mkIsDigit()

BoolExpr mkIsDigit ( Expr< CharSort ch)
inline

Create a check if the character is a digit.

Definition at line 2765 of file Context.java.

2766 {
2767 checkContextMatch(ch);
2768 return (BoolExpr) Expr.create(this, Native.mkCharIsDigit(nCtx(), ch.getNativeObject()));
2769 }

◆ mkIsInteger()

BoolExpr mkIsInteger ( Expr< RealSort t)
inline

Creates an expression that checks whether a real number is an integer.

Definition at line 1149 of file Context.java.

1150 {
1151 checkContextMatch(t);
1152 return new BoolExpr(this, Native.mkIsInt(nCtx(), t.getNativeObject()));
1153 }

◆ mkITE()

final< R extends Sort > Expr< R > mkITE ( Expr< BoolSort t1,
Expr<? extends R >  t2,
Expr<? extends R >  t3 
)
inline

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

Parameters
t1An expression with Boolean sort
t2An expression
t3An expression with the same sort as t2

Definition at line 915 of file Context.java.

916 {
917 checkContextMatch(t1);
918 checkContextMatch(t2);
919 checkContextMatch(t3);
920 return (Expr<R>) Expr.create(this, Native.mkIte(nCtx(), t1.getNativeObject(),
921 t2.getNativeObject(), t3.getNativeObject()));
922 }

◆ mkLambda() [1/2]

final< R extends Sort > Lambda< R > mkLambda ( Expr<?>[]  boundConstants,
Expr< R >  body 
)
inline

Create a lambda expression.

Creates a lambda expression using a list of constants that will form the set of bound variables.

Definition at line 3126 of file Context.java.

3127 {
3128 return Lambda.of(this, boundConstants, body);
3129 }
Lambda(vs, body)
Definition z3py.py:2410

◆ mkLambda() [2/2]

final< R extends Sort > Lambda< R > mkLambda ( Sort[]  sorts,
Symbol[]  names,
Expr< R >  body 
)
inline

Create a lambda expression.

sorts is an array with the sorts of the bound variables, names is an array with the 'names' of the bound variables, and body is the body of the lambda. Note that the bound variables are de-Bruijn indices created using {#mkBound} Z3 applies the convention that the last element in names and sorts refers to the variable with index 0, the second to last element of names and sorts refers to the variable with index 1, etc.

Parameters
sortsthe sorts of the bound variables.
namesnames of the bound variables.
bodythe body of the quantifier.

Definition at line 3115 of file Context.java.

3116 {
3117 return Lambda.of(this, sorts, names, body);
3118 }

◆ mkLastIndexOf()

final< R extends Sort > IntExpr mkLastIndexOf ( Expr< SeqSort< R > >  s,
Expr< SeqSort< R > >  substr 
)
inline

Extract the last index of sub-string.

Definition at line 2487 of file Context.java.

2488 {
2489 checkContextMatch(s, substr);
2490 return (IntExpr)Expr.create(this, Native.mkSeqLastIndex(nCtx(), s.getNativeObject(), substr.getNativeObject()));
2491 }

◆ mkLe()

BoolExpr mkLe ( Expr<? extends ArithSort t1,
Expr<? extends ArithSort t2 
)
inline

Create an expression representing t1 &lt;= t2

Definition at line 1087 of file Context.java.

1088 {
1089 checkContextMatch(t1);
1090 checkContextMatch(t2);
1091 return new BoolExpr(this, Native.mkLe(nCtx(), t1.getNativeObject(),
1092 t2.getNativeObject()));
1093 }

◆ mkLength()

final< R extends Sort > IntExpr mkLength ( Expr< SeqSort< R > >  s)
inline

Retrieve the length of a given sequence.

Definition at line 2394 of file Context.java.

2395 {
2396 checkContextMatch(s);
2397 return (IntExpr) Expr.create(this, Native.mkSeqLength(nCtx(), s.getNativeObject()));
2398 }

◆ mkLinearOrder()

final< R extends Sort > FuncDecl< BoolSort > mkLinearOrder ( sort,
int  index 
)
inline

Creates or a linear order.

Parameters
indexThe index of the order.
sortThe sort of the order.

Definition at line 4577 of file Context.java.

4577 {
4578 return (FuncDecl<BoolSort>) FuncDecl.create(
4579 this,
4580 Native.mkLinearOrder(
4581 nCtx(),
4582 sort.getNativeObject(),
4583 index
4584 )
4585 );
4586 }

◆ mkListSort() [1/2]

final< R extends Sort > ListSort< R > mkListSort ( String  name,
elemSort 
)
inline

Create a new list sort.

Definition at line 319 of file Context.java.

320 {
321 checkContextMatch(elemSort);
322 return new ListSort<>(this, mkSymbol(name), elemSort);
323 }

◆ mkListSort() [2/2]

final< R extends Sort > ListSort< R > mkListSort ( Symbol  name,
elemSort 
)
inline

Create a new list sort.

Definition at line 309 of file Context.java.

310 {
311 checkContextMatch(name);
312 checkContextMatch(elemSort);
313 return new ListSort<>(this, name, elemSort);
314 }

◆ mkLoop() [1/2]

final< R extends Sort > ReExpr< R > mkLoop ( Expr< ReSort< R > >  re,
int  lo 
)
inline

Take the lower-bounded Kleene star of a regular expression.

Definition at line 2616 of file Context.java.

2617 {
2618 return (ReExpr<R>) Expr.create(this, Native.mkReLoop(nCtx(), re.getNativeObject(), lo, 0));
2619 }

◆ mkLoop() [2/2]

final< R extends Sort > ReExpr< R > mkLoop ( Expr< ReSort< R > >  re,
int  lo,
int  hi 
)
inline

Take the lower and upper-bounded Kleene star of a regular expression.

Definition at line 2608 of file Context.java.

2609 {
2610 return (ReExpr<R>) Expr.create(this, Native.mkReLoop(nCtx(), re.getNativeObject(), lo, hi));
2611 }

◆ mkLt()

BoolExpr mkLt ( Expr<? extends ArithSort t1,
Expr<? extends ArithSort t2 
)
inline

Create an expression representing t1 &lt; t2

Definition at line 1076 of file Context.java.

1077 {
1078 checkContextMatch(t1);
1079 checkContextMatch(t2);
1080 return new BoolExpr(this, Native.mkLt(nCtx(), t1.getNativeObject(),
1081 t2.getNativeObject()));
1082 }

◆ mkMap()

final< D extends Sort, R1 extends Sort, R2 extends Sort > ArrayExpr< D, R2 > mkMap ( FuncDecl< R2 >  f,
Expr< ArraySort< D, R1 > >...  args 
)
inline

Maps f on the argument arrays. Remarks: Each element of args must be of an array sort [domain_i -> range_i]. The function declaration f must have type range_1 .. range_n -> range. v must have sort range. The sort of the result is [domain_i -> range].

See also
#mkArraySort(Sort[], R)
#mkSelect(Expr<ArraySort<D, R>> a, Expr<D> i)
#mkStore(Expr<ArraySort<D, R>> a, Expr<D> i, Expr<R> v)

Definition at line 2001 of file Context.java.

2002 {
2003 checkContextMatch(f);
2004 checkContextMatch(args);
2005 return (ArrayExpr<D, R2>) Expr.create(this, Native.mkMap(nCtx(),
2006 f.getNativeObject(), AST.arrayLength(args),
2007 AST.arrayToNative(args)));
2008 }

◆ mkMod()

IntExpr mkMod ( Expr< IntSort t1,
Expr< IntSort t2 
)
inline

Create an expression representing t1 mod t2. Remarks: The arguments must have int type.

Definition at line 1038 of file Context.java.

1039 {
1040 checkContextMatch(t1);
1041 checkContextMatch(t2);
1042 return new IntExpr(this, Native.mkMod(nCtx(), t1.getNativeObject(),
1043 t2.getNativeObject()));
1044 }

◆ mkMul()

final< R extends ArithSort > ArithExpr< R > mkMul ( Expr<? extends R >...  t)
inline

Create an expression representing t[0] * t[1] * ....

Definition at line 994 of file Context.java.

995 {
996 checkContextMatch(t);
997 return (ArithExpr<R>) Expr.create(this,
998 Native.mkMul(nCtx(), t.length, AST.arrayToNative(t)));
999 }

◆ mkNot()

final BoolExpr mkNot ( Expr< BoolSort a)
inline

Create an expression representing not(a).

Definition at line 902 of file Context.java.

903 {
904 checkContextMatch(a);
905 return new BoolExpr(this, Native.mkNot(nCtx(), a.getNativeObject()));
906 }

◆ mkNth()

final< R extends Sort > Expr< R > mkNth ( Expr< SeqSort< R > >  s,
Expr< IntSort index 
)
inline

Retrieve element at index.

Definition at line 2459 of file Context.java.

2460 {
2461 checkContextMatch(s, index);
2462 return (Expr<R>) Expr.create(this, Native.mkSeqNth(nCtx(), s.getNativeObject(), index.getNativeObject()));
2463 }

◆ mkNumeral() [1/3]

final< R extends Sort > Expr< R > mkNumeral ( int  v,
ty 
)
inline

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 than MakeNumeral since it is not necessary to parse a string.

Parameters
vValue of the numeral
tySort of the numeral
Returns
A Term with value v and type ty

Definition at line 2844 of file Context.java.

2845 {
2846 checkContextMatch(ty);
2847 return (Expr<R>) Expr.create(this, Native.mkInt(nCtx(), v, ty.getNativeObject()));
2848 }

◆ mkNumeral() [2/3]

final< R extends Sort > Expr< R > mkNumeral ( long  v,
ty 
)
inline

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 than MakeNumeral since it is not necessary to parse a string.

Parameters
vValue of the numeral
tySort of the numeral
Returns
A Term with value v and type ty

Definition at line 2860 of file Context.java.

2861 {
2862 checkContextMatch(ty);
2863 return (Expr<R>) Expr.create(this,
2864 Native.mkInt64(nCtx(), v, ty.getNativeObject()));
2865 }

◆ mkNumeral() [3/3]

final< R extends Sort > Expr< R > mkNumeral ( String  v,
ty 
)
inline

Create a Term of a given sort.

Parameters
vA 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]*.
tyThe 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 v and sort ty

Definition at line 2827 of file Context.java.

2828 {
2829 checkContextMatch(ty);
2830 return (Expr<R>) Expr.create(this,
2831 Native.mkNumeral(nCtx(), v, ty.getNativeObject()));
2832 }

◆ mkOptimize()

Optimize mkOptimize ( )
inline

Create a Optimize context.

Definition at line 3796 of file Context.java.

3797 {
3798 return new Optimize(this);
3799 }

◆ mkOption()

final< R extends Sort > ReExpr< R > mkOption ( Expr< ReSort< R > >  re)
inline

Create the optional regular expression.

Definition at line 2634 of file Context.java.

2635 {
2636 checkContextMatch(re);
2637 return (ReExpr<R>) Expr.create(this, Native.mkReOption(nCtx(), re.getNativeObject()));
2638 }

◆ mkOr()

final BoolExpr mkOr ( Expr< BoolSort >...  t)
inline

Create an expression representing t[0] or t[1] or ....

Definition at line 972 of file Context.java.

973 {
974 checkContextMatch(t);
975 return new BoolExpr(this, Native.mkOr(nCtx(), t.length,
976 AST.arrayToNative(t)));
977 }

◆ mkParams()

Params mkParams ( )
inline

Creates a new ParameterSet.

Definition at line 3239 of file Context.java.

3240 {
3241 return new Params(this);
3242 }

◆ mkPartialOrder()

final< R extends Sort > FuncDecl< BoolSort > mkPartialOrder ( sort,
int  index 
)
inline

Creates a partial order.

Parameters
indexThe index of the order.
sortThe sort of the order.

Definition at line 4593 of file Context.java.

4593 {
4594 return (FuncDecl<BoolSort>) FuncDecl.create(
4595 this,
4596 Native.mkPartialOrder(
4597 nCtx(),
4598 sort.getNativeObject(),
4599 index
4600 )
4601 );
4602 }

◆ mkPattern()

final Pattern mkPattern ( Expr<?>...  terms)
inline

Create a quantifier pattern.

Definition at line 724 of file Context.java.

725 {
726 if (terms.length == 0)
727 throw new Z3Exception("Cannot create a pattern from zero terms");
728
729 long[] termsNative = AST.arrayToNative(terms);
730 return new Pattern(this, Native.mkPattern(nCtx(), terms.length,
731 termsNative));
732 }

◆ mkPBEq()

BoolExpr mkPBEq ( int[]  coeffs,
Expr< BoolSort >[]  args,
int  k 
)
inline

Create a pseudo-Boolean equal constraint.

Definition at line 2810 of file Context.java.

2811 {
2812 checkContextMatch(args);
2813 return (BoolExpr) Expr.create(this, Native.mkPbeq(nCtx(), args.length, AST.arrayToNative(args), coeffs, k));
2814 }

◆ mkPBGe()

BoolExpr mkPBGe ( int[]  coeffs,
Expr< BoolSort >[]  args,
int  k 
)
inline

Create a pseudo-Boolean greater-or-equal constraint.

Definition at line 2801 of file Context.java.

2802 {
2803 checkContextMatch(args);
2804 return (BoolExpr) Expr.create(this, Native.mkPbge(nCtx(), args.length, AST.arrayToNative(args), coeffs, k));
2805 }

◆ mkPBLe()

BoolExpr mkPBLe ( int[]  coeffs,
Expr< BoolSort >[]  args,
int  k 
)
inline

Create a pseudo-Boolean less-or-equal constraint.

Definition at line 2792 of file Context.java.

2793 {
2794 checkContextMatch(args);
2795 return (BoolExpr) Expr.create(this, Native.mkPble(nCtx(), args.length, AST.arrayToNative(args), coeffs, k));
2796 }

◆ mkPiecewiseLinearOrder()

final< R extends Sort > FuncDecl< BoolSort > mkPiecewiseLinearOrder ( sort,
int  index 
)
inline

Creates a piecewise linear order.

Parameters
indexThe index of the order.
sortThe sort of the order.

Definition at line 4624 of file Context.java.

4624 {
4625 return (FuncDecl<BoolSort>) FuncDecl.create(
4626 this,
4627 Native.mkPiecewiseLinearOrder(
4628 nCtx(),
4629 sort.getNativeObject(),
4630 index
4631 )
4632 );
4633 }

◆ mkPlus()

final< R extends Sort > ReExpr< R > mkPlus ( Expr< ReSort< R > >  re)
inline

Take the Kleene plus of a regular expression.

Definition at line 2625 of file Context.java.

2626 {
2627 checkContextMatch(re);
2628 return (ReExpr<R>) Expr.create(this, Native.mkRePlus(nCtx(), re.getNativeObject()));
2629 }

◆ mkPower() [1/2]

final< R extends Sort > ReExpr< R > mkPower ( Expr< ReSort< R > >  re,
int  n 
)
inline

Create power regular expression.

Definition at line 2600 of file Context.java.

2601 {
2602 return (ReExpr<R>) Expr.create(this, Native.mkRePower(nCtx(), re.getNativeObject(), n));
2603 }

◆ mkPower() [2/2]

final< R extends ArithSort > ArithExpr< R > mkPower ( Expr<? extends R >  t1,
Expr<? extends R >  t2 
)
inline

Create an expression representing t1 ^ t2.

Definition at line 1062 of file Context.java.

1064 {
1065 checkContextMatch(t1);
1066 checkContextMatch(t2);
1067 return (ArithExpr<R>) Expr.create(
1068 this,
1069 Native.mkPower(nCtx(), t1.getNativeObject(),
1070 t2.getNativeObject()));
1071 }

◆ mkPrefixOf()

final< R extends Sort > BoolExpr mkPrefixOf ( Expr< SeqSort< R > >  s1,
Expr< SeqSort< R > >  s2 
)
inline

Check for sequence prefix.

Definition at line 2403 of file Context.java.

2404 {
2405 checkContextMatch(s1, s2);
2406 return (BoolExpr) Expr.create(this, Native.mkSeqPrefix(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2407 }

◆ mkProbe()

Probe mkProbe ( String  name)
inline

Creates a new Probe.

Definition at line 3612 of file Context.java.

3613 {
3614 return new Probe(this, name);
3615 }

◆ mkPropagateFunction()

final< R extends Sort > FuncDecl< R > mkPropagateFunction ( Symbol  name,
Sort[]  domain,
range 
)
inline

Definition at line 585 of file Context.java.

586 {
587 checkContextMatch(name);
588 checkContextMatch(domain);
589 checkContextMatch(range);
590 long f = Native.solverPropagateDeclare(
591 this.nCtx(),
592 name.getNativeObject(),
593 AST.arrayLength(domain),
594 AST.arrayToNative(domain),
595 range.getNativeObject());
596 return new FuncDecl<>(this, f);
597 }

◆ mkQuantifier() [1/2]

Quantifier mkQuantifier ( boolean  universal,
Expr<?>[]  boundConstants,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Create a Quantifier

See also
#mkForall(Sort[],Symbol[],Expr<BoolSort>,int,Pattern[],Expr<?>[],Symbol,Symbol)

Definition at line 3085 of file Context.java.

3088 {
3089
3090 if (universal)
3091 return mkForall(boundConstants, body, weight, patterns, noPatterns,
3092 quantifierID, skolemID);
3093 else
3094 return mkExists(boundConstants, body, weight, patterns, noPatterns,
3095 quantifierID, skolemID);
3096 }
Quantifier mkForall(Sort[] sorts, Symbol[] names, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)
Quantifier mkExists(Sort[] sorts, Symbol[] names, Expr< BoolSort > body, int weight, Pattern[] patterns, Expr<?>[] noPatterns, Symbol quantifierID, Symbol skolemID)

◆ mkQuantifier() [2/2]

Quantifier mkQuantifier ( boolean  universal,
Sort[]  sorts,
Symbol[]  names,
Expr< BoolSort body,
int  weight,
Pattern[]  patterns,
Expr<?>[]  noPatterns,
Symbol  quantifierID,
Symbol  skolemID 
)
inline

Create a Quantifier.

See also
#mkForall(Sort[],Symbol[],Expr<BoolSort>,int,Pattern[],Expr<?>[],Symbol,Symbol)

Definition at line 3067 of file Context.java.

3071 {
3072
3073 if (universal)
3074 return mkForall(sorts, names, body, weight, patterns, noPatterns,
3075 quantifierID, skolemID);
3076 else
3077 return mkExists(sorts, names, body, weight, patterns, noPatterns,
3078 quantifierID, skolemID);
3079 }

◆ mkRange()

final ReExpr< SeqSort< CharSort > > mkRange ( Expr< SeqSort< CharSort > >  lo,
Expr< SeqSort< CharSort > >  hi 
)
inline

Create a range expression.

Definition at line 2720 of file Context.java.

2721 {
2722 checkContextMatch(lo, hi);
2723 return (ReExpr<SeqSort<CharSort>>) Expr.create(this, Native.mkReRange(nCtx(), lo.getNativeObject(), hi.getNativeObject()));
2724 }

◆ mkReal() [1/4]

RatNum mkReal ( int  num,
int  den 
)
inline

Create a real from a fraction.

Parameters
numnumerator of rational.
dendenominator of rational.
Returns
A Term with value num/den and sort Real
See also
#mkNumeral(String v, R ty)

Definition at line 2876 of file Context.java.

2877 {
2878 if (den == 0) {
2879 throw new Z3Exception("Denominator is zero");
2880 }
2881
2882 return new RatNum(this, Native.mkReal(nCtx(), num, den));
2883 }

◆ mkReal() [2/4]

RatNum mkReal ( int  v)
inline

Create a real numeral.

Parameters
vvalue of the numeral.
Returns
A Term with value v and sort Real

Definition at line 2904 of file Context.java.

2905 {
2906
2907 return new RatNum(this, Native.mkInt(nCtx(), v, getRealSort()
2908 .getNativeObject()));
2909 }

◆ mkReal() [3/4]

RatNum mkReal ( long  v)
inline

Create a real numeral.

Parameters
vvalue of the numeral.
Returns
A Term with value v and sort Real

Definition at line 2917 of file Context.java.

2918 {
2919
2920 return new RatNum(this, Native.mkInt64(nCtx(), v, getRealSort()
2921 .getNativeObject()));
2922 }

◆ mkReal() [4/4]

RatNum mkReal ( String  v)
inline

Create a real numeral.

Parameters
vA string representing the Term value in decimal notation.
Returns
A Term with value v and sort Real

Definition at line 2891 of file Context.java.

2892 {
2893
2894 return new RatNum(this, Native.mkNumeral(nCtx(), v, getRealSort()
2895 .getNativeObject()));
2896 }

◆ mkReal2Int()

IntExpr mkReal2Int ( Expr< RealSort t)
inline

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.

Definition at line 1140 of file Context.java.

1141 {
1142 checkContextMatch(t);
1143 return new IntExpr(this, Native.mkReal2int(nCtx(), t.getNativeObject()));
1144 }

◆ mkRealConst() [1/2]

RealExpr mkRealConst ( String  name)
inline

Creates a real constant.

Definition at line 821 of file Context.java.

822 {
823 return (RealExpr) mkConst(name, getRealSort());
824 }

◆ mkRealConst() [2/2]

RealExpr mkRealConst ( Symbol  name)
inline

Creates a real constant.

Definition at line 813 of file Context.java.

814 {
815 return (RealExpr) mkConst(name, getRealSort());
816 }

◆ mkRealSort()

RealSort mkRealSort ( )
inline

Create a real sort.

Definition at line 214 of file Context.java.

215 {
216 return new RealSort(this);
217 }

◆ mkRecFuncDecl()

final< R extends Sort > FuncDecl< R > mkRecFuncDecl ( Symbol  name,
Sort[]  domain,
range 
)
inline

Creates a new recursive function declaration.

Definition at line 639 of file Context.java.

640 {
641 checkContextMatch(name);
642 checkContextMatch(domain);
643 checkContextMatch(range);
644 return new FuncDecl<>(this, name, domain, range, true);
645 }

◆ mkRem()

IntExpr mkRem ( Expr< IntSort t1,
Expr< IntSort t2 
)
inline

Create an expression representing t1 rem t2. Remarks: The arguments must have int type.

Definition at line 1051 of file Context.java.

1052 {
1053 checkContextMatch(t1);
1054 checkContextMatch(t2);
1055 return new IntExpr(this, Native.mkRem(nCtx(), t1.getNativeObject(),
1056 t2.getNativeObject()));
1057 }

◆ mkRepeat()

BitVecExpr mkRepeat ( int  i,
Expr< BitVecSort t 
)
inline

Bit-vector repetition. Remarks: The argument t must have a bit-vector sort.

Definition at line 1593 of file Context.java.

1594 {
1595 checkContextMatch(t);
1596 return new BitVecExpr(this, Native.mkRepeat(nCtx(), i,
1597 t.getNativeObject()));
1598 }

◆ mkReplace()

final< R extends Sort > SeqExpr< R > mkReplace ( Expr< SeqSort< R > >  s,
Expr< SeqSort< R > >  src,
Expr< SeqSort< R > >  dst 
)
inline

Replace the first occurrence of src by dst in s.

Definition at line 2536 of file Context.java.

2537 {
2538 checkContextMatch(s, src, dst);
2539 return (SeqExpr<R>) Expr.create(this, Native.mkSeqReplace(nCtx(), s.getNativeObject(), src.getNativeObject(), dst.getNativeObject()));
2540 }

◆ mkReplaceAll()

final< R extends Sort > SeqExpr< R > mkReplaceAll ( Expr< SeqSort< R > >  s,
Expr< SeqSort< R > >  src,
Expr< SeqSort< R > >  dst 
)
inline

Replace all occurrences of src by dst in s.

Definition at line 2545 of file Context.java.

2546 {
2547 checkContextMatch(s, src, dst);
2548 return (SeqExpr<R>) Expr.create(this, Native.mkSeqReplaceAll(nCtx(), s.getNativeObject(), src.getNativeObject(), dst.getNativeObject()));
2549 }

◆ mkReplaceRe()

final< R extends Sort > SeqExpr< R > mkReplaceRe ( Expr< SeqSort< R > >  s,
ReExpr< SeqSort< R > >  re,
Expr< SeqSort< R > >  dst 
)
inline

Replace the first occurrence of regular expression re with dst in s.

Definition at line 2554 of file Context.java.

2555 {
2556 checkContextMatch(s, re, dst);
2557 return (SeqExpr<R>) Expr.create(this, Native.mkSeqReplaceRe(nCtx(), s.getNativeObject(), re.getNativeObject(), dst.getNativeObject()));
2558 }

◆ mkReplaceReAll()

final< R extends Sort > SeqExpr< R > mkReplaceReAll ( Expr< SeqSort< R > >  s,
ReExpr< SeqSort< R > >  re,
Expr< SeqSort< R > >  dst 
)
inline

Replace all occurrences of regular expression re with dst in s.

Definition at line 2563 of file Context.java.

2564 {
2565 checkContextMatch(s, re, dst);
2566 return (SeqExpr<R>) Expr.create(this, Native.mkSeqReplaceReAll(nCtx(), s.getNativeObject(), re.getNativeObject(), dst.getNativeObject()));
2567 }

◆ mkReSort()

final< R extends Sort > ReSort< R > mkReSort ( s)
inline

Create a new regular expression sort

Definition at line 267 of file Context.java.

268 {
269 return new ReSort<>(this, Native.mkReSort(nCtx(), s.getNativeObject()));
270 }

◆ mkSelect() [1/2]

final< D extends Sort, R extends Sort > Expr< R > mkSelect ( Expr< ArraySort< D, R > >  a,
Expr< D >  i 
)
inline

Array read. Remarks: The argument a is the array and i is the index of the array that gets read.

The node a must have an array sort [domain -> range], and i must have the sort domain. The sort of the result is range.

See also
#mkArraySort(Sort[], R)
#mkStore(Expr<ArraySort<D, R>> a, Expr<D> i, Expr<R> v)

Definition at line 1889 of file Context.java.

1890 {
1891 checkContextMatch(a);
1892 checkContextMatch(i);
1893 return (Expr<R>) Expr.create(
1894 this,
1895 Native.mkSelect(nCtx(), a.getNativeObject(),
1896 i.getNativeObject()));
1897 }

◆ mkSelect() [2/2]

final< R extends Sort > Expr< R > mkSelect ( Expr< ArraySort< Sort, R > >  a,
Expr<?>[]  args 
)
inline

Array read. Remarks: The argument a is the array and args are the indices of the array that gets read.

The node a must have an array sort [domains -> range], and args must have the sorts domains. The sort of the result is range.

See also
#mkArraySort(Sort[], R)
#mkStore(Expr<ArraySort<D, R>> a, Expr<D> i, Expr<R> v)

Definition at line 1911 of file Context.java.

1912 {
1913 checkContextMatch(a);
1914 checkContextMatch(args);
1915 return (Expr<R>) Expr.create(
1916 this,
1917 Native.mkSelectN(nCtx(), a.getNativeObject(), args.length, AST.arrayToNative(args)));
1918 }

◆ mkSeqFoldl()

final< R extends Sort, A extends Sort > Expr< A > mkSeqFoldl ( Expr<?>  f,
Expr< A >  a,
Expr< SeqSort< R > >  s 
)
inline

Left fold of function f over sequence s with accumulator a. Applies f to accumulate values from left to right over the sequence.

Definition at line 2517 of file Context.java.

2518 {
2519 checkContextMatch(f, a, s);
2520 return (Expr<A>) Expr.create(this, Native.mkSeqFoldl(nCtx(), f.getNativeObject(), a.getNativeObject(), s.getNativeObject()));
2521 }

◆ mkSeqFoldli()

final< R extends Sort, A extends Sort > Expr< A > mkSeqFoldli ( Expr<?>  f,
Expr< IntSort i,
Expr< A >  a,
Expr< SeqSort< R > >  s 
)
inline

Left fold of function f over sequence s with accumulator a starting at index i. Applies f to accumulate values from left to right over the sequence, tracking the index starting from i.

Definition at line 2527 of file Context.java.

2528 {
2529 checkContextMatch(f, i, a, s);
2530 return (Expr<A>) Expr.create(this, Native.mkSeqFoldli(nCtx(), f.getNativeObject(), i.getNativeObject(), a.getNativeObject(), s.getNativeObject()));
2531 }

◆ mkSeqMap()

final< R extends Sort > SeqExpr< R > mkSeqMap ( Expr<?>  f,
Expr< SeqSort< R > >  s 
)
inline

Map function f over sequence s. Returns a new sequence where f is applied to each element of s.

Definition at line 2497 of file Context.java.

2498 {
2499 checkContextMatch(f, s);
2500 return (SeqExpr<R>) Expr.create(this, Native.mkSeqMap(nCtx(), f.getNativeObject(), s.getNativeObject()));
2501 }

◆ mkSeqMapi()

final< R extends Sort > SeqExpr< R > mkSeqMapi ( Expr<?>  f,
Expr< IntSort i,
Expr< SeqSort< R > >  s 
)
inline

Map function f over sequence s starting at index i. Returns a new sequence where f is applied to each element of s along with its index starting from i.

Definition at line 2507 of file Context.java.

2508 {
2509 checkContextMatch(f, i, s);
2510 return (SeqExpr<R>) Expr.create(this, Native.mkSeqMapi(nCtx(), f.getNativeObject(), i.getNativeObject(), s.getNativeObject()));
2511 }

◆ mkSeqSort()

final< R extends Sort > SeqSort< R > mkSeqSort ( s)
inline

Create a new sequence sort

Definition at line 259 of file Context.java.

260 {
261 return new SeqSort<>(this, Native.mkSeqSort(nCtx(), s.getNativeObject()));
262 }

◆ mkSetAdd()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetAdd ( Expr< ArraySort< D, BoolSort > >  set,
Expr< D >  element 
)
inline

Add an element to the set.

Definition at line 2079 of file Context.java.

2080 {
2081 checkContextMatch(set);
2082 checkContextMatch(element);
2083 return (ArrayExpr<D, BoolSort>) Expr.create(this,
2084 Native.mkSetAdd(nCtx(), set.getNativeObject(),
2085 element.getNativeObject()));
2086 }

◆ mkSetComplement()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetComplement ( Expr< ArraySort< D, BoolSort > >  arg)
inline

Take the complement of a set.

Definition at line 2139 of file Context.java.

2140 {
2141 checkContextMatch(arg);
2142 return (ArrayExpr<D, BoolSort>)Expr.create(this,
2143 Native.mkSetComplement(nCtx(), arg.getNativeObject()));
2144 }

◆ mkSetDel()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetDel ( Expr< ArraySort< D, BoolSort > >  set,
Expr< D >  element 
)
inline

Remove an element from a set.

Definition at line 2091 of file Context.java.

2092 {
2093 checkContextMatch(set);
2094 checkContextMatch(element);
2095 return (ArrayExpr<D, BoolSort>)Expr.create(this,
2096 Native.mkSetDel(nCtx(), set.getNativeObject(),
2097 element.getNativeObject()));
2098 }

◆ mkSetDifference()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetDifference ( Expr< ArraySort< D, BoolSort > >  arg1,
Expr< ArraySort< D, BoolSort > >  arg2 
)
inline

Take the difference between two sets.

Definition at line 2127 of file Context.java.

2128 {
2129 checkContextMatch(arg1);
2130 checkContextMatch(arg2);
2131 return (ArrayExpr<D, BoolSort>) Expr.create(this,
2132 Native.mkSetDifference(nCtx(), arg1.getNativeObject(),
2133 arg2.getNativeObject()));
2134 }

◆ mkSetIntersection()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetIntersection ( Expr< ArraySort< D, BoolSort > >...  args)
inline

Take the intersection of a list of sets.

Definition at line 2116 of file Context.java.

2117 {
2118 checkContextMatch(args);
2119 return (ArrayExpr<D, BoolSort>) Expr.create(this,
2120 Native.mkSetIntersect(nCtx(), args.length,
2121 AST.arrayToNative(args)));
2122 }

◆ mkSetMembership()

final< D extends Sort > BoolExpr mkSetMembership ( Expr< D >  elem,
Expr< ArraySort< D, BoolSort > >  set 
)
inline

Check for set membership.

Definition at line 2149 of file Context.java.

2150 {
2151 checkContextMatch(elem);
2152 checkContextMatch(set);
2153 return (BoolExpr) Expr.create(this,
2154 Native.mkSetMember(nCtx(), elem.getNativeObject(),
2155 set.getNativeObject()));
2156 }

◆ mkSetSort()

final< D extends Sort > SetSort< D > mkSetSort ( ty)
inline

Create a set type.

Definition at line 2050 of file Context.java.

2051 {
2052 checkContextMatch(ty);
2053 return new SetSort<>(this, ty);
2054 }

◆ mkSetSubset()

final< D extends Sort > BoolExpr mkSetSubset ( Expr< ArraySort< D, BoolSort > >  arg1,
Expr< ArraySort< D, BoolSort > >  arg2 
)
inline

Check for subsetness of sets.

Definition at line 2161 of file Context.java.

2162 {
2163 checkContextMatch(arg1);
2164 checkContextMatch(arg2);
2165 return (BoolExpr) Expr.create(this,
2166 Native.mkSetSubset(nCtx(), arg1.getNativeObject(),
2167 arg2.getNativeObject()));
2168 }

◆ mkSetUnion()

final< D extends Sort > ArrayExpr< D, BoolSort > mkSetUnion ( Expr< ArraySort< D, BoolSort > >...  args)
inline

Take the union of a list of sets.

Definition at line 2104 of file Context.java.

2105 {
2106 checkContextMatch(args);
2107 return (ArrayExpr<D, BoolSort>)Expr.create(this,
2108 Native.mkSetUnion(nCtx(), args.length,
2109 AST.arrayToNative(args)));
2110 }

◆ mkSignExt()

BitVecExpr mkSignExt ( int  i,
Expr< BitVecSort t 
)
inline

Bit-vector sign extension. Remarks: Sign-extends the given bit-vector to the (signed) equivalent bitvector of size m+i, where m is the size of the given bit-vector. The argument t must have a bit-vector sort.

Definition at line 1567 of file Context.java.

1568 {
1569 checkContextMatch(t);
1570 return new BitVecExpr(this, Native.mkSignExt(nCtx(), i,
1571 t.getNativeObject()));
1572 }

◆ mkSimpleSolver()

Solver mkSimpleSolver ( )
inline

Creates a new (incremental) solver.

Definition at line 3759 of file Context.java.

3760 {
3761 return new Solver(this, Native.mkSimpleSolver(nCtx()));
3762 }

◆ mkSimplifier()

Simplifier mkSimplifier ( String  name)
inline

Creates a new Simplifier.

Definition at line 3512 of file Context.java.

3513 {
3514 return new Simplifier(this, name);
3515 }

◆ mkSolver() [1/5]

Solver mkSolver ( )
inline

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.

Definition at line 3725 of file Context.java.

3726 {
3727 return mkSolver((Symbol) null);
3728 }

Referenced by Tactic.getSolver().

◆ mkSolver() [2/5]

Solver mkSolver ( Solver  s,
Simplifier  simp 
)
inline

Creates a solver that is uses the simplifier pre-processing.

Definition at line 3780 of file Context.java.

3781 {
3782 return new Solver(this, Native.solverAddSimplifier(nCtx(), s.getNativeObject(), simp.getNativeObject()));
3783 }

◆ mkSolver() [3/5]

Solver mkSolver ( String  logic)
inline

Creates a new (incremental) solver.

See also
#mkSolver(Symbol)

Definition at line 3751 of file Context.java.

3752 {
3753 return mkSolver(mkSymbol(logic));
3754 }

◆ mkSolver() [4/5]

Solver mkSolver ( Symbol  logic)
inline

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.

Definition at line 3737 of file Context.java.

3738 {
3739
3740 if (logic == null)
3741 return new Solver(this, Native.mkSolver(nCtx()));
3742 else
3743 return new Solver(this, Native.mkSolverForLogic(nCtx(),
3744 logic.getNativeObject()));
3745 }

◆ mkSolver() [5/5]

Solver mkSolver ( Tactic  t)
inline

Creates a solver that is implemented using the given tactic. Remarks: The solver supports the commands Push and Pop, but it will always solve each check from scratch.

Definition at line 3770 of file Context.java.

3771 {
3772
3773 return new Solver(this, Native.mkSolverFromTactic(nCtx(),
3774 t.getNativeObject()));
3775 }

◆ mkStar()

final< R extends Sort > ReExpr< R > mkStar ( Expr< ReSort< R > >  re)
inline

Take the Kleene star of a regular expression.

Definition at line 2591 of file Context.java.

2592 {
2593 checkContextMatch(re);
2594 return (ReExpr<R>) Expr.create(this, Native.mkReStar(nCtx(), re.getNativeObject()));
2595 }

◆ mkStore() [1/2]

final< D extends Sort, R extends Sort > ArrayExpr< D, R > mkStore ( Expr< ArraySort< D, R > >  a,
Expr< D >  i,
Expr< R >  v 
)
inline

Array update. Remarks: The node a must have an array sort [domain -> range], i must have sort domain, v must 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 to a (with respect to select) on all indices except for i, where it maps to v (and the select of a with respect to i may be a different value).

See also
#mkArraySort(Sort[], R)
#mkSelect(Expr<ArraySort<D, R>> a, Expr<D> i)

Definition at line 1936 of file Context.java.

1937 {
1938 checkContextMatch(a);
1939 checkContextMatch(i);
1940 checkContextMatch(v);
1941 return new ArrayExpr<>(this, Native.mkStore(nCtx(), a.getNativeObject(),
1942 i.getNativeObject(), v.getNativeObject()));
1943 }

◆ mkStore() [2/2]

final< R extends Sort > ArrayExpr< Sort, R > mkStore ( Expr< ArraySort< Sort, R > >  a,
Expr<?>[]  args,
Expr< R >  v 
)
inline

Array update. Remarks: The node a must have an array sort [domains -> range], i must have sort domain, v must 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 to a (with respect to select) on all indices except for args, where it maps to v (and the select of a with respect to args may be a different value).

See also
#mkArraySort(Sort[], R)
#mkSelect(Expr<ArraySort<D, R>> a, Expr<D> i)

Definition at line 1961 of file Context.java.

1962 {
1963 checkContextMatch(a);
1964 checkContextMatch(args);
1965 checkContextMatch(v);
1966 return new ArrayExpr<>(this, Native.mkStoreN(nCtx(), a.getNativeObject(),
1967 args.length, AST.arrayToNative(args), v.getNativeObject()));
1968 }

◆ mkString()

SeqExpr< CharSort > mkString ( String  s)
inline

Create a string constant.

Definition at line 2335 of file Context.java.

2336 {
2337 StringBuilder buf = new StringBuilder();
2338 for (int i = 0; i < s.length(); i += Character.charCount(s.codePointAt(i))) {
2339 int code = s.codePointAt(i);
2340 if (code <= 32 || 127 < code)
2341 buf.append(String.format("\\u{%x}", code));
2342 else
2343 buf.append(s.charAt(i));
2344 }
2345 return (SeqExpr<CharSort>) Expr.create(this, Native.mkString(nCtx(), buf.toString()));
2346 }

◆ MkStringLe()

BoolExpr MkStringLe ( Expr< SeqSort< CharSort > >  s1,
Expr< SeqSort< CharSort > >  s2 
)
inline

Check if the string s1 is lexicographically less or equal to s2.

Definition at line 2440 of file Context.java.

2441 {
2442 checkContextMatch(s1, s2);
2443 return new BoolExpr(this, Native.mkStrLe(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2444 }

◆ MkStringLt()

BoolExpr MkStringLt ( Expr< SeqSort< CharSort > >  s1,
Expr< SeqSort< CharSort > >  s2 
)
inline

Check if the string s1 is lexicographically strictly less than s2.

Definition at line 2431 of file Context.java.

2432 {
2433 checkContextMatch(s1, s2);
2434 return new BoolExpr(this, Native.mkStrLt(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2435 }

◆ mkStringSort()

SeqSort< CharSort > mkStringSort ( )
inline

Create a new string sort

Definition at line 251 of file Context.java.

252 {
253 return new SeqSort<>(this, Native.mkStringSort(nCtx()));
254 }

◆ mkSub()

final< R extends ArithSort > ArithExpr< R > mkSub ( Expr<? extends R >...  t)
inline

Create an expression representing t[0] - t[1] - ....

Definition at line 1005 of file Context.java.

1006 {
1007 checkContextMatch(t);
1008 return (ArithExpr<R>) Expr.create(this,
1009 Native.mkSub(nCtx(), t.length, AST.arrayToNative(t)));
1010 }

◆ mkSuffixOf()

final< R extends Sort > BoolExpr mkSuffixOf ( Expr< SeqSort< R > >  s1,
Expr< SeqSort< R > >  s2 
)
inline

Check for sequence suffix.

Definition at line 2412 of file Context.java.

2413 {
2414 checkContextMatch(s1, s2);
2415 return (BoolExpr)Expr.create(this, Native.mkSeqSuffix(nCtx(), s1.getNativeObject(), s2.getNativeObject()));
2416 }

◆ mkSymbol() [1/2]

IntSymbol mkSymbol ( int  i)
inline

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.

Definition at line 94 of file Context.java.

95 {
96 return new IntSymbol(this, i);
97 }

◆ mkSymbol() [2/2]

StringSymbol mkSymbol ( String  name)
inline

Create a symbol using a string.

Definition at line 102 of file Context.java.

103 {
104 return new StringSymbol(this, name);
105 }

◆ mkTactic()

Tactic mkTactic ( String  name)
inline

Creates a new Tactic.

Definition at line 3277 of file Context.java.

3278 {
3279 return new Tactic(this, name);
3280 }

Referenced by Goal.simplify(), and Goal.simplify().

◆ mkTermArray()

final< D extends Sort, R extends Sort > Expr< R > mkTermArray ( Expr< ArraySort< D, R > >  array)
inline

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.

Definition at line 2016 of file Context.java.

2017 {
2018 checkContextMatch(array);
2019 return (Expr<R>) Expr.create(this,
2020 Native.mkArrayDefault(nCtx(), array.getNativeObject()));
2021 }

◆ mkToRe()

final< R extends Sort > ReExpr< SeqSort< R > > mkToRe ( Expr< SeqSort< R > >  s)
inline

Convert a regular expression that accepts sequence s.

Definition at line 2572 of file Context.java.

2573 {
2574 checkContextMatch(s);
2575 return (ReExpr<SeqSort<R>>) Expr.create(this, Native.mkSeqToRe(nCtx(), s.getNativeObject()));
2576 }

◆ mkTransitiveClosure()

final< R extends Sort > FuncDecl< BoolSort > mkTransitiveClosure ( FuncDecl< BoolSort f)
inline

Create the transitive closure of a binary relation. The resulting relation is recursive.

Parameters
ffunction declaration of a binary relation

Definition at line 4609 of file Context.java.

4609 {
4610 return (FuncDecl<BoolSort>) FuncDecl.create(
4611 this,
4612 Native.mkTransitiveClosure(
4613 nCtx(),
4614 f.getNativeObject()
4615 )
4616 );
4617 }

◆ mkTreeOrder()

final< R extends Sort > FuncDecl< BoolSort > mkTreeOrder ( sort,
int  index 
)
inline

Creates a tree order.

Parameters
indexThe index of the order.
sortThe sort of the order.

Definition at line 4640 of file Context.java.

4640 {
4641 return (FuncDecl<BoolSort>) FuncDecl.create(
4642 this,
4643 Native.mkTreeOrder(
4644 nCtx(),
4645 sort.getNativeObject(),
4646 index
4647 )
4648 );
4649 }

◆ mkTrue()

BoolExpr mkTrue ( )
inline

The true Term.

Definition at line 856 of file Context.java.

857 {
858 return new BoolExpr(this, Native.mkTrue(nCtx()));
859 }

Referenced by Goal.AsBoolExpr().

◆ mkTupleSort()

TupleSort mkTupleSort ( Symbol  name,
Symbol[]  fieldNames,
Sort[]  fieldSorts 
)
inline

Create a new tuple sort.

Definition at line 276 of file Context.java.

278 {
279 checkContextMatch(name);
280 checkContextMatch(fieldNames);
281 checkContextMatch(fieldSorts);
282 return new TupleSort(this, name, fieldNames.length, fieldNames,
283 fieldSorts);
284 }
TupleSort(name, sorts, ctx=None)
Definition z3py.py:5975

◆ mkTypeVariable() [1/2]

TypeVarSort mkTypeVariable ( String  name)
inline

Create a type variable for use in polymorphic functions and datatypes. Type variables can be used as sort parameters in polymorphic datatypes.

Parameters
namename of the type variable
Returns
a new type variable sort

Definition at line 494 of file Context.java.

495 {
496 return mkTypeVariable(mkSymbol(name));
497 }
TypeVarSort mkTypeVariable(Symbol name)
Definition Context.java:482

◆ mkTypeVariable() [2/2]

TypeVarSort mkTypeVariable ( Symbol  name)
inline

Create a type variable for use in polymorphic functions and datatypes. Type variables can be used as sort parameters in polymorphic datatypes.

Parameters
namename of the type variable
Returns
a new type variable sort

Definition at line 482 of file Context.java.

483 {
484 checkContextMatch(name);
485 return new TypeVarSort(this, name);
486 }

◆ mkUnaryMinus()

final< R extends ArithSort > ArithExpr< R > mkUnaryMinus ( Expr< R >  t)
inline

Create an expression representing -t.

Definition at line 1015 of file Context.java.

1016 {
1017 checkContextMatch(t);
1018 return (ArithExpr<R>) Expr.create(this,
1019 Native.mkUnaryMinus(nCtx(), t.getNativeObject()));
1020 }

◆ mkUninterpretedSort() [1/2]

UninterpretedSort mkUninterpretedSort ( String  str)
inline

Create a new uninterpreted sort.

Definition at line 198 of file Context.java.

199 {
200 return mkUninterpretedSort(mkSymbol(str));
201 }
UninterpretedSort mkUninterpretedSort(Symbol s)
Definition Context.java:189

◆ mkUninterpretedSort() [2/2]

UninterpretedSort mkUninterpretedSort ( Symbol  s)
inline

Create a new uninterpreted sort.

Definition at line 189 of file Context.java.

190 {
191 checkContextMatch(s);
192 return new UninterpretedSort(this, s);
193 }

◆ mkUnion()

final< R extends Sort > ReExpr< R > mkUnion ( Expr< ReSort< R > >...  t)
inline

Create the union of regular languages.

Definition at line 2663 of file Context.java.

2664 {
2665 checkContextMatch(t);
2666 return (ReExpr<R>) Expr.create(this, Native.mkReUnion(nCtx(), t.length, AST.arrayToNative(t)));
2667 }

◆ mkUnit()

final< R extends Sort > SeqExpr< R > mkUnit ( Expr< R >  elem)
inline

Create the singleton sequence.

Definition at line 2326 of file Context.java.

2327 {
2328 checkContextMatch(elem);
2329 return (SeqExpr<R>) Expr.create(this, Native.mkSeqUnit(nCtx(), elem.getNativeObject()));
2330 }

◆ mkUpdateField()

final< F extends Sort, R extends Sort > Expr< R > mkUpdateField ( FuncDecl< F >  field,
Expr< R >  t,
Expr< F >  v 
) throws Z3Exception
inline

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.

Definition at line 564 of file Context.java.

566 {
567 return (Expr<R>) Expr.create(this,
568 Native.datatypeUpdateField
569 (nCtx(), field.getNativeObject(),
570 t.getNativeObject(), v.getNativeObject()));
571 }

◆ mkXor()

BoolExpr mkXor ( Expr< BoolSort t1,
Expr< BoolSort t2 
)
inline

Create an expression representing t1 xor t2.

Definition at line 949 of file Context.java.

950 {
951 checkContextMatch(t1);
952 checkContextMatch(t2);
953 return new BoolExpr(this, Native.mkXor(nCtx(), t1.getNativeObject(),
954 t2.getNativeObject()));
955 }

◆ mkZeroExt()

BitVecExpr mkZeroExt ( int  i,
Expr< BitVecSort t 
)
inline

Bit-vector zero extension. Remarks: Extend the given bit-vector with zeros to the (unsigned) equivalent bitvector of size m+i, where m is the size of the given bit-vector. The argument t must have a bit-vector sort.

Definition at line 1581 of file Context.java.

1582 {
1583 checkContextMatch(t);
1584 return new BitVecExpr(this, Native.mkZeroExt(nCtx(), i,
1585 t.getNativeObject()));
1586 }

◆ nCtx()

long nCtx ( )
inline

◆ not()

Probe not ( Probe  p)
inline

Create a probe that evaluates to true when the value p does not evaluate to true.

Definition at line 3712 of file Context.java.

3713 {
3714 checkContextMatch(p);
3715 return new Probe(this, Native.probeNot(nCtx(), p.getNativeObject()));
3716 }

◆ or()

Probe or ( Probe  p1,
Probe  p2 
)
inline

Create a probe that evaluates to true when the value p1 or p2 evaluate to true.

Definition at line 3701 of file Context.java.

3702 {
3703 checkContextMatch(p1);
3704 checkContextMatch(p2);
3705 return new Probe(this, Native.probeOr(nCtx(), p1.getNativeObject(),
3706 p2.getNativeObject()));
3707 }

◆ orElse()

Tactic orElse ( Tactic  t1,
Tactic  t2 
)
inline

Create a tactic that first applies t1 to a Goal and if it fails then returns the result of t2 applied to the Goal.

Definition at line 3328 of file Context.java.

3329 {
3330 checkContextMatch(t1);
3331 checkContextMatch(t2);
3332 return new Tactic(this, Native.tacticOrElse(nCtx(),
3333 t1.getNativeObject(), t2.getNativeObject()));
3334 }

◆ parAndThen()

Tactic parAndThen ( Tactic  t1,
Tactic  t2 
)
inline

Create a tactic that applies t1 to a given goal and then t2 to every subgoal produced by t1. The subgoals are processed in parallel.

Definition at line 3461 of file Context.java.

3462 {
3463 checkContextMatch(t1);
3464 checkContextMatch(t2);
3465 return new Tactic(this, Native.tacticParAndThen(nCtx(),
3466 t1.getNativeObject(), t2.getNativeObject()));
3467 }

◆ parOr()

Tactic parOr ( Tactic...  t)
inline

Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail).

Definition at line 3450 of file Context.java.

3451 {
3452 checkContextMatch(t);
3453 return new Tactic(this, Native.tacticParOr(nCtx(),
3454 Tactic.arrayLength(t), Tactic.arrayToNative(t)));
3455 }

◆ parseSMTLIB2File()

BoolExpr[] parseSMTLIB2File ( String  fileName,
Symbol[]  sortNames,
Sort[]  sorts,
Symbol[]  declNames,
FuncDecl<?>[]  decls 
)
inline

Parse the given file using the SMT-LIB2 parser.

See also
#parseSMTLIB2String

Definition at line 3204 of file Context.java.

3206 {
3207 int csn = Symbol.arrayLength(sortNames);
3208 int cs = Sort.arrayLength(sorts);
3209 int cdn = Symbol.arrayLength(declNames);
3210 int cd = AST.arrayLength(decls);
3211 if (csn != cs || cdn != cd)
3212 throw new Z3Exception("Argument size mismatch");
3213 ASTVector v = new ASTVector(this, Native.parseSmtlib2File(nCtx(),
3214 fileName, AST.arrayLength(sorts),
3215 Symbol.arrayToNative(sortNames), AST.arrayToNative(sorts),
3216 AST.arrayLength(decls), Symbol.arrayToNative(declNames),
3217 AST.arrayToNative(decls)));
3218 return v.ToBoolExprArray();
3219 }

◆ parseSMTLIB2String()

BoolExpr[] parseSMTLIB2String ( String  str,
Symbol[]  sortNames,
Sort[]  sorts,
Symbol[]  declNames,
FuncDecl<?>[]  decls 
)
inline

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.

Definition at line 3183 of file Context.java.

3185 {
3186 int csn = Symbol.arrayLength(sortNames);
3187 int cs = Sort.arrayLength(sorts);
3188 int cdn = Symbol.arrayLength(declNames);
3189 int cd = AST.arrayLength(decls);
3190 if (csn != cs || cdn != cd) {
3191 throw new Z3Exception("Argument size mismatch");
3192 }
3193 ASTVector v = new ASTVector(this, Native.parseSmtlib2String(nCtx(),
3194 str, AST.arrayLength(sorts), Symbol.arrayToNative(sortNames),
3195 AST.arrayToNative(sorts), AST.arrayLength(decls),
3196 Symbol.arrayToNative(declNames), AST.arrayToNative(decls)));
3197 return v.ToBoolExprArray();
3198 }

◆ polynomialSubresultants()

final< R extends Sort > ASTVector polynomialSubresultants ( Expr< R >  p,
Expr< R >  q,
Expr< R >  x 
)
inline

Return the nonzero subresultants of p and q with respect to the "variable" x. Note that any subterm that cannot be viewed as a polynomial is assumed to be a variable.

Parameters
parithmetic term
qarithmetic term
xvariable

Definition at line 4658 of file Context.java.

4658 {
4659 return new ASTVector(
4660 this,
4661 Native.polynomialSubresultants(
4662 nCtx(),
4663 p.getNativeObject(),
4664 q.getNativeObject(),
4665 x.getNativeObject()
4666 )
4667 );
4668 }

◆ repeat()

Tactic repeat ( Tactic  t,
int  max 
)
inline

Create a tactic that keeps applying t until the goal is not modified anymore or the maximum number of iterations max is reached.

Definition at line 3381 of file Context.java.

3382 {
3383 checkContextMatch(t);
3384 return new Tactic(this, Native.tacticRepeat(nCtx(),
3385 t.getNativeObject(), max));
3386 }

◆ sbvToString()

SeqExpr< CharSort > sbvToString ( Expr< BitVecSort e)
inline

Convert an signed bitvector expression to a string.

Definition at line 2367 of file Context.java.

2368 {
2369 return (SeqExpr<CharSort>) Expr.create(this, Native.mkSbvToStr(nCtx(), e.getNativeObject()));
2370 }

◆ setPrintMode()

void setPrintMode ( Z3_ast_print_mode  value)
inline

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.

See also
AST::toString
Pattern::toString
FuncDecl::toString
Sort::toString

Definition at line 3146 of file Context.java.

3147 {
3148 Native.setAstPrintMode(nCtx(), value.toInt());
3149 }

◆ SimplifyHelp()

String SimplifyHelp ( )
inline

Return a string describing all available parameters to Expr.Simplify.

Definition at line 4706 of file Context.java.

4707 {
4708 return Native.simplifyGetHelp(nCtx());
4709 }

◆ skip()

Tactic skip ( )
inline

Create a tactic that just returns the given goal.

Definition at line 3391 of file Context.java.

3392 {
3393 return new Tactic(this, Native.tacticSkip(nCtx()));
3394 }

◆ stringToInt()

IntExpr stringToInt ( Expr< SeqSort< CharSort > >  e)
inline

Convert an integer expression to a string.

Definition at line 2375 of file Context.java.

2376 {
2377 return (IntExpr) Expr.create(this, Native.mkStrToInt(nCtx(), e.getNativeObject()));
2378 }

◆ then() [1/2]

Simplifier then ( Simplifier  t1,
Simplifier  t2,
Simplifier...  ts 
)
inline

Create a simplifier that applies t1 and then t2

Remarks: Shorthand for AndThen.

Definition at line 3551 of file Context.java.

3552 {
3553 return andThen(t1, t2, ts);
3554 }
Tactic andThen(Tactic t1, Tactic t2, Tactic... ts)

◆ then() [2/2]

Tactic then ( Tactic  t1,
Tactic  t2,
Tactic...  ts 
)
inline

Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1

Remarks: Shorthand for AndThen.

Definition at line 3318 of file Context.java.

3319 {
3320 return andThen(t1, t2, ts);
3321 }

◆ tryFor()

Tactic tryFor ( Tactic  t,
int  ms 
)
inline

Create a tactic that applies t to a goal for ms milliseconds. Remarks: If t does not terminate within ms milliseconds, then it fails.

Definition at line 3342 of file Context.java.

3343 {
3344 checkContextMatch(t);
3345 return new Tactic(this, Native.tacticTryFor(nCtx(),
3346 t.getNativeObject(), ms));
3347 }

◆ ubvToString()

SeqExpr< CharSort > ubvToString ( Expr< BitVecSort e)
inline

Convert an unsigned bitvector expression to a string.

Definition at line 2359 of file Context.java.

2360 {
2361 return (SeqExpr<CharSort>) Expr.create(this, Native.mkUbvToStr(nCtx(), e.getNativeObject()));
2362 }

◆ unwrapAST()

long unwrapAST ( AST  a)
inline

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.,

See also
Native::incRef
#wrapAST
Parameters
aThe AST to unwrap.

Definition at line 4697 of file Context.java.

4698 {
4699 return a.getNativeObject();
4700 }

◆ updateParamValue()

void updateParamValue ( String  id,
String  value 
)
inline

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.

Definition at line 4727 of file Context.java.

4728 {
4729 Native.updateParamValue(nCtx(), id, value);
4730 }

◆ usingParams() [1/2]

Simplifier usingParams ( Simplifier  t,
Params  p 
)
inline

Create a simplifier that applies t using the given set of parameters p.

Definition at line 3560 of file Context.java.

3561 {
3562 checkContextMatch(t);
3563 checkContextMatch(p);
3564 return new Simplifier(this, Native.simplifierUsingParams(nCtx(),
3565 t.getNativeObject(), p.getNativeObject()));
3566 }

◆ usingParams() [2/2]

Tactic usingParams ( Tactic  t,
Params  p 
)
inline

Create a tactic that applies t using the given set of parameters p.

Definition at line 3428 of file Context.java.

3429 {
3430 checkContextMatch(t);
3431 checkContextMatch(p);
3432 return new Tactic(this, Native.tacticUsingParams(nCtx(),
3433 t.getNativeObject(), p.getNativeObject()));
3434 }

◆ when()

Tactic when ( Probe  p,
Tactic  t 
)
inline

Create a tactic that applies t to a given goal if the probe p evaluates to true. Remarks: If p evaluates to false, then the new tactic behaves like the skip tactic.

Definition at line 3355 of file Context.java.

3356 {
3357 checkContextMatch(t);
3358 checkContextMatch(p);
3359 return new Tactic(this, Native.tacticWhen(nCtx(), p.getNativeObject(),
3360 t.getNativeObject()));
3361 }

◆ with() [1/2]

Simplifier with ( Simplifier  t,
Params  p 
)
inline

Create a simplifier that applies t using the given set of parameters p. Remarks: Alias for UsingParams

Definition at line 3574 of file Context.java.

3575 {
3576 return usingParams(t, p);
3577 }
Tactic usingParams(Tactic t, Params p)

◆ with() [2/2]

Tactic with ( Tactic  t,
Params  p 
)
inline

Create a tactic that applies t using the given set of parameters p. Remarks: Alias for UsingParams

Definition at line 3442 of file Context.java.

3443 {
3444 return usingParams(t, p);
3445 }

◆ wrapAST()

AST wrapAST ( long  nativeObject)
inline

Wraps an AST. Remarks: This function is used for transitions between native and managed objects. Note that nativeObject must be a native object obtained from Z3 (e.g., through UnwrapAST) and that it must have a correct reference count.

See also
Native::incRef
#unwrapAST
Parameters
nativeObjectThe native pointer to wrap.

Definition at line 4680 of file Context.java.

4681 {
4682 return AST.create(this, nativeObject);
4683 }