The main interaction with Z3 happens via the Context. More...
Inheritance diagram for Context:Public Member Functions | |
| Context () | |
| Constructor. | |
| Context (Dictionary< string, string > settings) | |
| Constructor. | |
| IntSymbol | MkSymbol (int i) |
| Creates a new symbol using an integer. | |
| StringSymbol | MkSymbol (string name) |
| Create a symbol using a string. | |
| BoolSort | MkBoolSort () |
| Create a new Boolean sort. | |
| UninterpretedSort | MkUninterpretedSort (Symbol s) |
| Create a new uninterpreted sort. | |
| UninterpretedSort | MkUninterpretedSort (string str) |
| Create a new uninterpreted sort. | |
| IntSort | MkIntSort () |
| Create a new integer sort. | |
| RealSort | MkRealSort () |
| Create a real sort. | |
| BitVecSort | MkBitVecSort (uint size) |
| Create a new bit-vector sort. | |
| SeqSort | MkSeqSort (Sort s) |
| Create a new sequence sort. | |
| ReSort | MkReSort (SeqSort s) |
| Create a new regular expression sort. | |
| ArraySort | MkArraySort (Sort domain, Sort range) |
| Create a new array sort. | |
| ArraySort | MkArraySort (Sort[] domain, Sort range) |
| Create a new n-ary array sort. | |
| TupleSort | MkTupleSort (Symbol name, Symbol[] fieldNames, Sort[] fieldSorts) |
| Create a new tuple sort. | |
| EnumSort | MkEnumSort (Symbol name, params Symbol[] enumNames) |
| Create a new enumeration sort. | |
| EnumSort | MkEnumSort (string name, params string[] enumNames) |
| Create a new enumeration sort. | |
| ListSort | MkListSort (Symbol name, Sort elemSort) |
| Create a new list sort. | |
| ListSort | MkListSort (string name, Sort elemSort) |
| Create a new list sort. | |
| FiniteDomainSort | MkFiniteDomainSort (Symbol name, ulong size) |
Create a new finite domain sort.
| |
| FiniteDomainSort | MkFiniteDomainSort (string name, ulong size) |
Create a new finite domain sort.
Elements of the sort are created using
, and the elements range from 0 to | |
| Constructor | MkConstructor (Symbol name, Symbol recognizer, Symbol[] fieldNames=null, Sort[] sorts=null, uint[] sortRefs=null) |
| Create a datatype constructor. | |
| Constructor | MkConstructor (string name, string recognizer, string[] fieldNames=null, Sort[] sorts=null, uint[] sortRefs=null) |
| Create a datatype constructor. | |
| DatatypeSort | MkDatatypeSort (Symbol name, Constructor[] constructors) |
| Create a new datatype sort. | |
| DatatypeSort | MkDatatypeSort (string name, Constructor[] constructors) |
| Create a new datatype sort. | |
| DatatypeSort | MkDatatypeSortRef (Symbol name, Sort[] parameters=null) |
| Create a forward reference to a datatype sort. This is useful for creating recursive datatypes or parametric datatypes. | |
| DatatypeSort | MkDatatypeSortRef (string name, Sort[] parameters=null) |
| Create a forward reference to a datatype sort. This is useful for creating recursive datatypes or parametric datatypes. | |
| DatatypeSort[] | MkDatatypeSorts (Symbol[] names, Constructor[][] c) |
| Create mutually recursive datatypes. | |
| DatatypeSort[] | MkDatatypeSorts (string[] names, Constructor[][] c) |
| Create mutually recursive data-types. | |
| Sort | MkTypeVariable (Symbol name) |
| Create a type variable sort for use as a parameter in polymorphic datatypes. | |
| Sort | MkTypeVariable (string name) |
| Create a type variable sort for use as a parameter in polymorphic datatypes. | |
| DatatypeSort | MkPolymorphicDatatypeSort (Symbol name, Sort[] typeParams, Constructor[] constructors) |
| Create a polymorphic datatype sort with explicit type parameters. Type parameters should be sorts created with MkTypeVariable(string). | |
| DatatypeSort | MkPolymorphicDatatypeSort (string name, Sort[] typeParams, Constructor[] constructors) |
| Create a polymorphic datatype sort with explicit type parameters. Type parameters should be sorts created with MkTypeVariable(string). | |
| Expr | MkUpdateField (FuncDecl field, Expr t, Expr v) |
| 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. | |
| FuncDecl | MkFuncDecl (Symbol name, Sort[] domain, Sort range) |
| Creates a new function declaration. | |
| FuncDecl | MkFuncDecl (Symbol name, Sort domain, Sort range) |
| Creates a new function declaration. | |
| FuncDecl | MkFuncDecl (string name, Sort[] domain, Sort range) |
| Creates a new function declaration. | |
| FuncDecl | MkRecFuncDecl (string name, Sort[] domain, Sort range) |
| Creates a new recursive function declaration. | |
| void | AddRecDef (FuncDecl f, Expr[] args, Expr body) |
| Bind a definition to a recursive function declaration. The function must have previously been created using MkRecFuncDecl. The body may contain recursive uses of the function or other mutually recursive functions. | |
| FuncDecl | MkFuncDecl (string name, Sort domain, Sort range) |
| Creates a new function declaration. | |
| FuncDecl | MkFreshFuncDecl (string prefix, Sort[] domain, Sort range) |
| Creates a fresh function declaration with a name prefixed with prefix . | |
| FuncDecl | MkConstDecl (Symbol name, Sort range) |
| Creates a new constant function declaration. | |
| FuncDecl | MkConstDecl (string name, Sort range) |
| Creates a new constant function declaration. | |
| FuncDecl | MkFreshConstDecl (string prefix, Sort range) |
| Creates a fresh constant function declaration with a name prefixed with prefix . | |
| FuncDecl | MkUserPropagatorFuncDecl (string name, Sort[] domain, Sort range) |
| Declare a function to be processed by the user propagator plugin. | |
| Expr | MkBound (uint index, Sort ty) |
| Creates a new bound variable. | |
| Pattern | MkPattern (params Expr[] terms) |
| Create a quantifier pattern. | |
| Expr | MkConst (Symbol name, Sort range) |
| Creates a new Constant of sort range and named name . | |
| Expr | MkConst (string name, Sort range) |
| Creates a new Constant of sort range and named name . | |
| Expr | MkFreshConst (string prefix, Sort range) |
| Creates a fresh Constant of sort range and a name prefixed with prefix . | |
| Expr | MkConst (FuncDecl f) |
| Creates a fresh constant from the FuncDecl f . | |
| BoolExpr | MkBoolConst (Symbol name) |
| Create a Boolean constant. | |
| BoolExpr | MkBoolConst (string name) |
| Create a Boolean constant. | |
| IntExpr | MkIntConst (Symbol name) |
| Creates an integer constant. | |
| IntExpr | MkIntConst (string name) |
| Creates an integer constant. | |
| RealExpr | MkRealConst (Symbol name) |
| Creates a real constant. | |
| RealExpr | MkRealConst (string name) |
| Creates a real constant. | |
| BitVecExpr | MkBVConst (Symbol name, uint size) |
| Creates a bit-vector constant. | |
| BitVecExpr | MkBVConst (string name, uint size) |
| Creates a bit-vector constant. | |
| Expr | MkApp (FuncDecl f, params Expr[] args) |
| Create a new function application. | |
| Expr | MkApp (FuncDecl f, IEnumerable< Expr > args) |
| Create a new function application. | |
| BoolExpr | MkTrue () |
| The true Term. | |
| BoolExpr | MkFalse () |
| The false Term. | |
| BoolExpr | MkBool (bool value) |
| Creates a Boolean value. | |
| BoolExpr | MkEq (Expr x, Expr y) |
| Creates the equality x = y . | |
| BoolExpr | MkDistinct (params Expr[] args) |
Creates a distinct term. | |
| BoolExpr | MkDistinct (IEnumerable< Expr > args) |
Creates a distinct term. | |
| BoolExpr | MkNot (BoolExpr a) |
Mk an expression representing not(a). | |
| Expr | MkITE (BoolExpr t1, Expr t2, Expr t3) |
Create an expression representing an if-then-else: ite(t1, t2, t3). | |
| BoolExpr | MkIff (BoolExpr t1, BoolExpr t2) |
Create an expression representing t1 iff t2. | |
| BoolExpr | MkImplies (BoolExpr t1, BoolExpr t2) |
Create an expression representing t1 -> t2. | |
| BoolExpr | MkXor (BoolExpr t1, BoolExpr t2) |
Create an expression representing t1 xor t2. | |
| BoolExpr | MkXor (IEnumerable< BoolExpr > args) |
Create an expression representing t1 xor t2 xor t3 ... . | |
| BoolExpr | MkAnd (params BoolExpr[] ts) |
Create an expression representing t[0] and t[1] and .... | |
| BoolExpr | MkAnd (IEnumerable< BoolExpr > t) |
Create an expression representing t[0] and t[1] and .... | |
| BoolExpr | MkOr (params BoolExpr[] ts) |
Create an expression representing t[0] or t[1] or .... | |
| BoolExpr | MkOr (IEnumerable< BoolExpr > ts) |
Create an expression representing t[0] or t[1] or .... | |
| ArithExpr | MkAdd (params ArithExpr[] ts) |
Create an expression representing t[0] + t[1] + .... | |
| ArithExpr | MkAdd (IEnumerable< ArithExpr > ts) |
Create an expression representing t[0] + t[1] + .... | |
| ArithExpr | MkMul (params ArithExpr[] ts) |
Create an expression representing t[0] * t[1] * .... | |
| ArithExpr | MkMul (IEnumerable< ArithExpr > ts) |
Create an expression representing t[0] * t[1] * .... | |
| ArithExpr | MkSub (params ArithExpr[] ts) |
Create an expression representing t[0] - t[1] - .... | |
| ArithExpr | MkUnaryMinus (ArithExpr t) |
Create an expression representing -t. | |
| ArithExpr | MkDiv (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 / t2. | |
| IntExpr | MkMod (IntExpr t1, IntExpr t2) |
Create an expression representing t1 mod t2. | |
| IntExpr | MkRem (IntExpr t1, IntExpr t2) |
Create an expression representing t1 rem t2. | |
| ArithExpr | MkPower (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 ^ t2. | |
| BoolExpr | MkLt (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 < t2 | |
| BoolExpr | MkLe (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 <= t2 | |
| BoolExpr | MkGt (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 > t2 | |
| BoolExpr | MkGe (ArithExpr t1, ArithExpr t2) |
Create an expression representing t1 >= t2 | |
| RealExpr | MkInt2Real (IntExpr t) |
| Coerce an integer to a real. | |
| IntExpr | MkReal2Int (RealExpr t) |
| Coerce a real to an integer. | |
| BoolExpr | MkIsInteger (RealExpr t) |
| Creates an expression that checks whether a real number is an integer. | |
| BitVecExpr | MkBVNot (BitVecExpr t) |
| Bitwise negation. | |
| BitVecExpr | MkBVRedAND (BitVecExpr t) |
| Take conjunction of bits in a vector, return vector of length 1. | |
| BitVecExpr | MkBVRedOR (BitVecExpr t) |
| Take disjunction of bits in a vector, return vector of length 1. | |
| BitVecExpr | MkBVAND (BitVecExpr t1, BitVecExpr t2) |
| Bitwise conjunction. | |
| BitVecExpr | MkBVOR (BitVecExpr t1, BitVecExpr t2) |
| Bitwise disjunction. | |
| BitVecExpr | MkBVXOR (BitVecExpr t1, BitVecExpr t2) |
| Bitwise XOR. | |
| BitVecExpr | MkBVNAND (BitVecExpr t1, BitVecExpr t2) |
| Bitwise NAND. | |
| BitVecExpr | MkBVNOR (BitVecExpr t1, BitVecExpr t2) |
| Bitwise NOR. | |
| BitVecExpr | MkBVXNOR (BitVecExpr t1, BitVecExpr t2) |
| Bitwise XNOR. | |
| BitVecExpr | MkBVNeg (BitVecExpr t) |
| Standard two's complement unary minus. | |
| BitVecExpr | MkBVAdd (BitVecExpr t1, BitVecExpr t2) |
| Two's complement addition. | |
| BitVecExpr | MkBVSub (BitVecExpr t1, BitVecExpr t2) |
| Two's complement subtraction. | |
| BitVecExpr | MkBVMul (BitVecExpr t1, BitVecExpr t2) |
| Two's complement multiplication. | |
| BitVecExpr | MkBVUDiv (BitVecExpr t1, BitVecExpr t2) |
| Unsigned division. | |
| BitVecExpr | MkBVSDiv (BitVecExpr t1, BitVecExpr t2) |
| Signed division. | |
| BitVecExpr | MkBVURem (BitVecExpr t1, BitVecExpr t2) |
| Unsigned remainder. | |
| BitVecExpr | MkBVSRem (BitVecExpr t1, BitVecExpr t2) |
| Signed remainder. | |
| BitVecExpr | MkBVSMod (BitVecExpr t1, BitVecExpr t2) |
| Two's complement signed remainder (sign follows divisor). | |
| BoolExpr | MkBVULT (BitVecExpr t1, BitVecExpr t2) |
| Unsigned less-than. | |
| BoolExpr | MkBVSLT (BitVecExpr t1, BitVecExpr t2) |
| Two's complement signed less-than. | |
| BoolExpr | MkBVULE (BitVecExpr t1, BitVecExpr t2) |
| Unsigned less-than or equal to. | |
| BoolExpr | MkBVSLE (BitVecExpr t1, BitVecExpr t2) |
| Two's complement signed less-than or equal to. | |
| BoolExpr | MkBVUGE (BitVecExpr t1, BitVecExpr t2) |
| Unsigned greater than or equal to. | |
| BoolExpr | MkBVSGE (BitVecExpr t1, BitVecExpr t2) |
| Two's complement signed greater than or equal to. | |
| BoolExpr | MkBVUGT (BitVecExpr t1, BitVecExpr t2) |
| Unsigned greater-than. | |
| BoolExpr | MkBVSGT (BitVecExpr t1, BitVecExpr t2) |
| Two's complement signed greater-than. | |
| BitVecExpr | MkConcat (BitVecExpr t1, BitVecExpr t2) |
| Bit-vector concatenation. | |
| BitVecExpr | MkExtract (uint high, uint low, BitVecExpr t) |
| Bit-vector extraction. | |
| BitVecExpr | MkSignExt (uint i, BitVecExpr t) |
| Bit-vector sign extension. | |
| BitVecExpr | MkZeroExt (uint i, BitVecExpr t) |
| Bit-vector zero extension. | |
| BitVecExpr | MkRepeat (uint i, BitVecExpr t) |
| Bit-vector repetition. | |
| BitVecExpr | MkBVSHL (BitVecExpr t1, BitVecExpr t2) |
| Shift left. | |
| BitVecExpr | MkBVLSHR (BitVecExpr t1, BitVecExpr t2) |
| Logical shift right. | |
| BitVecExpr | MkBVASHR (BitVecExpr t1, BitVecExpr t2) |
| Arithmetic shift right. | |
| BitVecExpr | MkBVRotateLeft (uint i, BitVecExpr t) |
| Rotate Left. | |
| BitVecExpr | MkBVRotateRight (uint i, BitVecExpr t) |
| Rotate Right. | |
| BitVecExpr | MkBVRotateLeft (BitVecExpr t1, BitVecExpr t2) |
| Rotate Left. | |
| BitVecExpr | MkBVRotateRight (BitVecExpr t1, BitVecExpr t2) |
| Rotate Right. | |
| BitVecExpr | MkInt2BV (uint n, IntExpr t) |
| Create an n bit bit-vector from the integer argument t . | |
| IntExpr | MkBV2Int (BitVecExpr t, bool signed) |
| Create an integer from the bit-vector argument t . | |
| BoolExpr | MkBVAddNoOverflow (BitVecExpr t1, BitVecExpr t2, bool isSigned) |
| Create a predicate that checks that the bit-wise addition does not overflow. | |
| BoolExpr | MkBVAddNoUnderflow (BitVecExpr t1, BitVecExpr t2) |
| Create a predicate that checks that the bit-wise addition does not underflow. | |
| BoolExpr | MkBVSubNoOverflow (BitVecExpr t1, BitVecExpr t2) |
| Create a predicate that checks that the bit-wise subtraction does not overflow. | |
| BoolExpr | MkBVSubNoUnderflow (BitVecExpr t1, BitVecExpr t2, bool isSigned) |
| Create a predicate that checks that the bit-wise subtraction does not underflow. | |
| BoolExpr | MkBVSDivNoOverflow (BitVecExpr t1, BitVecExpr t2) |
| Create a predicate that checks that the bit-wise signed division does not overflow. | |
| BoolExpr | MkBVNegNoOverflow (BitVecExpr t) |
| Create a predicate that checks that the bit-wise negation does not overflow. | |
| BoolExpr | MkBVMulNoOverflow (BitVecExpr t1, BitVecExpr t2, bool isSigned) |
| Create a predicate that checks that the bit-wise multiplication does not overflow. | |
| BoolExpr | MkBVMulNoUnderflow (BitVecExpr t1, BitVecExpr t2) |
| Create a predicate that checks that the bit-wise multiplication does not underflow. | |
| ArrayExpr | MkArrayConst (Symbol name, Sort domain, Sort range) |
| Create an array constant. | |
| ArrayExpr | MkArrayConst (string name, Sort domain, Sort range) |
| Create an array constant. | |
| Expr | MkSelect (ArrayExpr a, Expr i) |
| Array read. | |
| Expr | MkSelect (ArrayExpr a, params Expr[] args) |
| Array read. | |
| ArrayExpr | MkStore (ArrayExpr a, Expr i, Expr v) |
| Array update. | |
| ArrayExpr | MkStore (ArrayExpr a, Expr[] args, Expr v) |
| Array update. | |
| ArrayExpr | MkConstArray (Sort domain, Expr v) |
| Create a constant array. | |
| ArrayExpr | MkMap (FuncDecl f, params ArrayExpr[] args) |
| Maps f on the argument arrays. | |
| Expr | MkTermArray (ArrayExpr array) |
| Access the array default value. | |
| Expr | MkArrayExt (ArrayExpr arg1, ArrayExpr arg2) |
| Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt. | |
| SetSort | MkSetSort (Sort ty) |
| Create a set type. | |
| ArrayExpr | MkEmptySet (Sort domain) |
| Create an empty set. | |
| ArrayExpr | MkFullSet (Sort domain) |
| Create the full set. | |
| ArrayExpr | MkSetAdd (ArrayExpr set, Expr element) |
| Add an element to the set. | |
| ArrayExpr | MkSetDel (ArrayExpr set, Expr element) |
| Remove an element from a set. | |
| ArrayExpr | MkSetUnion (params ArrayExpr[] args) |
| Take the union of a list of sets. | |
| ArrayExpr | MkSetIntersection (params ArrayExpr[] args) |
| Take the intersection of a list of sets. | |
| ArrayExpr | MkSetDifference (ArrayExpr arg1, ArrayExpr arg2) |
| Take the difference between two sets. | |
| ArrayExpr | MkSetComplement (ArrayExpr arg) |
| Take the complement of a set. | |
| BoolExpr | MkSetMembership (Expr elem, ArrayExpr set) |
| Check for set membership. | |
| BoolExpr | MkSetSubset (ArrayExpr arg1, ArrayExpr arg2) |
| Check for subsetness of sets. | |
| FiniteSetSort | MkFiniteSetSort (Sort elemSort) |
| Create a finite set sort over the given element sort. | |
| bool | IsFiniteSetSort (Sort s) |
| Check if a sort is a finite set sort. | |
| Sort | GetFiniteSetSortBasis (Sort s) |
| Get the element sort (basis) of a finite set sort. | |
| Expr | MkFiniteSetEmpty (Sort setSort) |
| Create an empty finite set. | |
| Expr | MkFiniteSetSingleton (Expr elem) |
| Create a singleton finite set. | |
| Expr | MkFiniteSetUnion (Expr s1, Expr s2) |
| Create the union of two finite sets. | |
| Expr | MkFiniteSetIntersect (Expr s1, Expr s2) |
| Create the intersection of two finite sets. | |
| Expr | MkFiniteSetDifference (Expr s1, Expr s2) |
| Create the difference of two finite sets. | |
| BoolExpr | MkFiniteSetMember (Expr elem, Expr set) |
| Check for membership in a finite set. | |
| Expr | MkFiniteSetSize (Expr set) |
| Get the cardinality of a finite set. | |
| BoolExpr | MkFiniteSetSubset (Expr s1, Expr s2) |
| Check if one finite set is a subset of another. | |
| Expr | MkFiniteSetMap (Expr f, Expr set) |
| Map a function over all elements in a finite set. | |
| Expr | MkFiniteSetFilter (Expr f, Expr set) |
| Filter a finite set with a predicate. | |
| Expr | MkFiniteSetRange (Expr low, Expr high) |
| Create a finite set containing integers in the range [low, high]. | |
| SeqExpr | MkEmptySeq (Sort s) |
| Create the empty sequence. | |
| SeqExpr | MkUnit (Expr elem) |
| Create the singleton sequence. | |
| SeqExpr | MkString (string s) |
| Create a string constant. | |
| SeqExpr | IntToString (Expr e) |
| Convert an integer expression to a string. | |
| SeqExpr | UbvToString (Expr e) |
| Convert a bit-vector expression, represented as an unsigned number, to a string. | |
| SeqExpr | SbvToString (Expr e) |
| Convert a bit-vector expression, represented as an signed number, to a string. | |
| IntExpr | StringToInt (Expr e) |
| Convert an integer expression to a string. | |
| SeqExpr | MkConcat (params SeqExpr[] t) |
| Concatenate sequences. | |
| IntExpr | MkLength (SeqExpr s) |
| Retrieve the length of a given sequence. | |
| BoolExpr | MkPrefixOf (SeqExpr s1, SeqExpr s2) |
| Check for sequence prefix. | |
| BoolExpr | MkSuffixOf (SeqExpr s1, SeqExpr s2) |
| Check for sequence suffix. | |
| BoolExpr | MkContains (SeqExpr s1, SeqExpr s2) |
| Check for sequence containment of s2 in s1. | |
| BoolExpr | MkStringLt (SeqExpr s1, SeqExpr s2) |
| Check if the string s1 is lexicographically strictly less than s2. | |
| BoolExpr | MkStringLe (SeqExpr s1, SeqExpr s2) |
| Check if the string s1 is lexicographically less or equal to s2. | |
| SeqExpr | MkAt (SeqExpr s, Expr index) |
| Retrieve sequence of length one at index. | |
| Expr | MkNth (SeqExpr s, Expr index) |
| Retrieve element at index. | |
| SeqExpr | MkExtract (SeqExpr s, IntExpr offset, IntExpr length) |
| Extract subsequence. | |
| IntExpr | MkIndexOf (SeqExpr s, SeqExpr substr, ArithExpr offset) |
| Extract index of sub-string starting at offset. | |
| SeqExpr | MkReplace (SeqExpr s, SeqExpr src, SeqExpr dst) |
| Replace the first occurrence of src by dst in s. | |
| Expr | MkSeqMap (Expr f, SeqExpr s) |
| Map function f over the sequence s. | |
| Expr | MkSeqMapi (Expr f, Expr i, SeqExpr s) |
| Map function f over the sequence s at index i. | |
| Expr | MkSeqFoldLeft (Expr f, Expr a, SeqExpr s) |
| Fold left the function f over the sequence s with initial value a. | |
| Expr | MkSeqFoldLeftI (Expr f, Expr i, Expr a, SeqExpr s) |
| Fold left with index the function f over the sequence s with initial value a starting at index i. | |
| ReExpr | MkToRe (SeqExpr s) |
| Convert a regular expression that accepts sequence s. | |
| BoolExpr | MkInRe (SeqExpr s, ReExpr re) |
| Check for regular expression membership. | |
| ReExpr | MkStar (ReExpr re) |
| Take the Kleene star of a regular expression. | |
| ReExpr | MkLoop (ReExpr re, uint lo, uint hi=0) |
| Take the bounded Kleene star of a regular expression. | |
| ReExpr | MkPlus (ReExpr re) |
| Take the Kleene plus of a regular expression. | |
| ReExpr | MkOption (ReExpr re) |
| Create the optional regular expression. | |
| ReExpr | MkComplement (ReExpr re) |
| Create the complement regular expression. | |
| ReExpr | MkConcat (params ReExpr[] t) |
| Create the concatenation of regular languages. | |
| ReExpr | MkUnion (params ReExpr[] t) |
| Create the union of regular languages. | |
| ReExpr | MkIntersect (params ReExpr[] t) |
| Create the intersection of regular languages. | |
| ReExpr | MkDiff (ReExpr a, ReExpr b) |
| Create a difference regular expression. | |
| ReExpr | MkEmptyRe (Sort s) |
| Create the empty regular expression. The sort s should be a regular expression. | |
| ReExpr | MkFullRe (Sort s) |
| Create the full regular expression. The sort s should be a regular expression. | |
| ReExpr | MkRange (SeqExpr lo, SeqExpr hi) |
| Create a range expression. | |
| BoolExpr | MkCharLe (Expr ch1, Expr ch2) |
| Create less than or equal to between two characters. | |
| IntExpr | CharToInt (Expr ch) |
| Create an integer (code point) from character. | |
| BitVecExpr | CharToBV (Expr ch) |
| Create a bit-vector (code point) from character. | |
| Expr | CharFromBV (BitVecExpr bv) |
| Create a character from a bit-vector (code point). | |
| BoolExpr | MkIsDigit (Expr ch) |
| Create a check if the character is a digit. | |
| BoolExpr | MkAtMost (IEnumerable< BoolExpr > args, uint k) |
| Create an at-most-k constraint. | |
| BoolExpr | MkAtLeast (IEnumerable< BoolExpr > args, uint k) |
| Create an at-least-k constraint. | |
| BoolExpr | MkPBLe (int[] coeffs, BoolExpr[] args, int k) |
| Create a pseudo-Boolean less-or-equal constraint. | |
| BoolExpr | MkPBGe (int[] coeffs, BoolExpr[] args, int k) |
| Create a pseudo-Boolean greater-or-equal constraint. | |
| BoolExpr | MkPBEq (int[] coeffs, BoolExpr[] args, int k) |
| Create a pseudo-Boolean equal constraint. | |
| Expr | MkNumeral (string v, Sort ty) |
| Create a Term of a given sort. | |
| Expr | MkNumeral (int v, Sort ty) |
Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster than MakeNumeral since it is not necessary to parse a string. | |
| Expr | MkNumeral (uint v, Sort ty) |
Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster than MakeNumeral since it is not necessary to parse a string. | |
| Expr | MkNumeral (long v, Sort ty) |
Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster than MakeNumeral since it is not necessary to parse a string. | |
| Expr | MkNumeral (ulong v, Sort ty) |
Create a Term of a given sort. This function can be used to create numerals that fit in a machine integer. It is slightly faster than MakeNumeral since it is not necessary to parse a string. | |
| RatNum | MkReal (int num, int den) |
| Create a real from a fraction. | |
| RatNum | MkReal (string v) |
| Create a real numeral. | |
| RatNum | MkReal (int v) |
| Create a real numeral. | |
| RatNum | MkReal (uint v) |
| Create a real numeral. | |
| RatNum | MkReal (long v) |
| Create a real numeral. | |
| RatNum | MkReal (ulong v) |
| Create a real numeral. | |
| IntNum | MkInt (string v) |
| Create an integer numeral. | |
| IntNum | MkInt (int v) |
| Create an integer numeral. | |
| IntNum | MkInt (uint v) |
| Create an integer numeral. | |
| IntNum | MkInt (long v) |
| Create an integer numeral. | |
| IntNum | MkInt (ulong v) |
| Create an integer numeral. | |
| BitVecNum | MkBV (string v, uint size) |
| Create a bit-vector numeral. | |
| BitVecNum | MkBV (int v, uint size) |
| Create a bit-vector numeral. | |
| BitVecNum | MkBV (uint v, uint size) |
| Create a bit-vector numeral. | |
| BitVecNum | MkBV (long v, uint size) |
| Create a bit-vector numeral. | |
| BitVecNum | MkBV (ulong v, uint size) |
| Create a bit-vector numeral. | |
| BitVecNum | MkBV (bool[] bits) |
| Create a bit-vector numeral. | |
| Quantifier | MkForall (Sort[] sorts, Symbol[] names, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create a universal Quantifier. | |
| Quantifier | MkForall (Expr[] boundConstants, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create a universal Quantifier. | |
| Quantifier | MkExists (Sort[] sorts, Symbol[] names, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create an existential Quantifier. | |
| Quantifier | MkExists (Expr[] boundConstants, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create an existential Quantifier. | |
| Quantifier | MkQuantifier (bool universal, Sort[] sorts, Symbol[] names, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create a Quantifier. | |
| Quantifier | MkQuantifier (bool universal, Expr[] boundConstants, Expr body, uint weight=1, Pattern[] patterns=null, Expr[] noPatterns=null, Symbol quantifierID=null, Symbol skolemID=null) |
| Create a Quantifier. | |
| Lambda | MkLambda (Sort[] sorts, Symbol[] names, Expr body) |
| Create a lambda expression. | |
| Lambda | MkLambda (Expr[] boundConstants, Expr body) |
| Create a lambda expression. | |
| BoolExpr[] | ParseSMTLIB2String (string str, Symbol[] sortNames=null, Sort[] sorts=null, Symbol[] declNames=null, FuncDecl[] decls=null) |
| Parse the given string using the SMT-LIB2 parser. | |
| BoolExpr[] | ParseSMTLIB2File (string fileName, Symbol[] sortNames=null, Sort[] sorts=null, Symbol[] declNames=null, FuncDecl[] decls=null) |
| Parse the given file using the SMT-LIB2 parser. | |
| string | BenchmarkToSmtlibString (string name, string logic, string status, string attributes, BoolExpr[] assumptions, BoolExpr formula) |
| Convert a benchmark into SMT-LIB2 formatted string. | |
| Goal | MkGoal (bool models=true, bool unsatCores=false, bool proofs=false) |
| Creates a new Goal. | |
| Params | MkParams () |
| Creates a new ParameterSet. | |
| string | TacticDescription (string name) |
| Returns a string containing a description of the tactic with the given name. | |
| Tactic | MkTactic (string name) |
| Creates a new Tactic. | |
| Tactic | AndThen (Tactic t1, Tactic t2, params Tactic[] ts) |
| Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1 . | |
| Tactic | Then (Tactic t1, Tactic t2, params Tactic[] ts) |
| Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1 . | |
| Tactic | OrElse (Tactic t1, Tactic t2) |
| Create a tactic that first applies t1 to a Goal and if it fails then returns the result of t2 applied to the Goal. | |
| Tactic | TryFor (Tactic t, uint ms) |
| Create a tactic that applies t to a goal for ms milliseconds. | |
| Tactic | When (Probe p, Tactic t) |
| Create a tactic that applies t to a given goal if the probe p evaluates to true. | |
| Tactic | Cond (Probe p, Tactic t1, Tactic t2) |
| Create a tactic that applies t1 to a given goal if the probe p evaluates to true and t2 otherwise. | |
| Tactic | Repeat (Tactic t, uint max=uint.MaxValue) |
| Create a tactic that keeps applying t until the goal is not modified anymore or the maximum number of iterations max is reached. | |
| Tactic | Skip () |
| Create a tactic that just returns the given goal. | |
| Tactic | Fail () |
| Create a tactic always fails. | |
| Tactic | FailIf (Probe p) |
| Create a tactic that fails if the probe p evaluates to false. | |
| Tactic | FailIfNotDecided () |
| Create a tactic that fails if the goal is not trivially satisfiable (i.e., empty) or trivially unsatisfiable (i.e., contains ‘false’). | |
| Tactic | UsingParams (Tactic t, Params p) |
| Create a tactic that applies t using the given set of parameters p . | |
| Tactic | With (Tactic t, Params p) |
| Create a tactic that applies t using the given set of parameters p . | |
| Tactic | ParOr (params Tactic[] t) |
| Create a tactic that applies the given tactics in parallel until one of them succeeds (i.e., the first that doesn't fail). | |
| Tactic | ParAndThen (Tactic t1, Tactic t2) |
| 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. | |
| void | Interrupt () |
| Interrupt the execution of a Z3 procedure. | |
| string | SimplifierDescription (string name) |
| Returns a string containing a description of the simplifier with the given name. | |
| Simplifier | MkSimplifier (string name) |
| Creates a new Tactic. | |
| Simplifier | AndThen (Simplifier t1, Simplifier t2, params Simplifier[] ts) |
| Create a simplifier that applies t1 and then t2 . | |
| Simplifier | Then (Simplifier t1, Simplifier t2, params Simplifier[] ts) |
| Create a simplifier that applies t1 and then then t2 . | |
| Simplifier | UsingParams (Simplifier t, Params p) |
| Create a tactic that applies t using the given set of parameters p . | |
| string | ProbeDescription (string name) |
| Returns a string containing a description of the probe with the given name. | |
| Probe | MkProbe (string name) |
| Creates a new Probe. | |
| Probe | ConstProbe (double val) |
| Create a probe that always evaluates to val . | |
| Probe | Lt (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value returned by p1 is less than the value returned by p2 | |
| Probe | Gt (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value returned by p1 is greater than the value returned by p2 | |
| Probe | Le (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value returned by p1 is less than or equal the value returned by p2 | |
| Probe | Ge (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value returned by p1 is greater than or equal the value returned by p2 | |
| Probe | Eq (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value returned by p1 is equal to the value returned by p2 | |
| Probe | And (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value p1 and p2 evaluate to "true". | |
| Probe | Or (Probe p1, Probe p2) |
| Create a probe that evaluates to "true" when the value p1 or p2 evaluate to "true". | |
| Probe | Not (Probe p) |
| Create a probe that evaluates to "true" when the value p does not evaluate to "true". | |
| Solver | MkSolver (Symbol logic=null) |
| Creates a new (incremental) solver. | |
| Solver | MkSolver (string logic) |
| Creates a new (incremental) solver. | |
| Solver | MkSimpleSolver () |
| Creates a new (incremental) solver. | |
| Solver | MkSolver (Solver s, Simplifier t) |
| Creates a solver that uses an incremental simplifier. | |
| Solver | MkSolver (Tactic t) |
| Creates a solver that is implemented using the given tactic. | |
| Fixedpoint | MkFixedpoint () |
| Create a Fixedpoint context. | |
| Optimize | MkOptimize () |
| Create an Optimization context. | |
| FPRMSort | MkFPRoundingModeSort () |
| Create the floating-point RoundingMode sort. | |
| FPRMExpr | MkFPRoundNearestTiesToEven () |
| Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. | |
| FPRMNum | MkFPRNE () |
| Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode. | |
| FPRMNum | MkFPRoundNearestTiesToAway () |
| Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. | |
| FPRMNum | MkFPRNA () |
| Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode. | |
| FPRMNum | MkFPRoundTowardPositive () |
| Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. | |
| FPRMNum | MkFPRTP () |
| Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode. | |
| FPRMNum | MkFPRoundTowardNegative () |
| Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. | |
| FPRMNum | MkFPRTN () |
| Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode. | |
| FPRMNum | MkFPRoundTowardZero () |
| Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. | |
| FPRMNum | MkFPRTZ () |
| Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode. | |
| FPSort | MkFPSort (uint ebits, uint sbits) |
| Create a FloatingPoint sort. | |
| FPSort | MkFPSortHalf () |
| Create the half-precision (16-bit) FloatingPoint sort. | |
| FPSort | MkFPSort16 () |
| Create the half-precision (16-bit) FloatingPoint sort. | |
| FPSort | MkFPSortSingle () |
| Create the single-precision (32-bit) FloatingPoint sort. | |
| FPSort | MkFPSort32 () |
| Create the single-precision (32-bit) FloatingPoint sort. | |
| FPSort | MkFPSortDouble () |
| Create the double-precision (64-bit) FloatingPoint sort. | |
| FPSort | MkFPSort64 () |
| Create the double-precision (64-bit) FloatingPoint sort. | |
| FPSort | MkFPSortQuadruple () |
| Create the quadruple-precision (128-bit) FloatingPoint sort. | |
| FPSort | MkFPSort128 () |
| Create the quadruple-precision (128-bit) FloatingPoint sort. | |
| FPNum | MkFPNaN (FPSort s) |
| Create a NaN of sort s. | |
| FPNum | MkFPInf (FPSort s, bool negative) |
| Create a floating-point infinity of sort s. | |
| FPNum | MkFPZero (FPSort s, bool negative) |
| Create a floating-point zero of sort s. | |
| FPNum | MkFPNumeral (float v, FPSort s) |
| Create a numeral of FloatingPoint sort from a float. | |
| FPNum | MkFPNumeral (double v, FPSort s) |
| Create a numeral of FloatingPoint sort from a float. | |
| FPNum | MkFPNumeral (int v, FPSort s) |
| Create a numeral of FloatingPoint sort from an int. | |
| FPNum | MkFPNumeral (bool sgn, uint sig, int exp, FPSort s) |
| Create a numeral of FloatingPoint sort from a sign bit and two integers. | |
| FPNum | MkFPNumeral (bool sgn, Int64 exp, UInt64 sig, FPSort s) |
| Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. | |
| FPNum | MkFP (float v, FPSort s) |
| Create a numeral of FloatingPoint sort from a float. | |
| FPNum | MkFP (double v, FPSort s) |
| Create a numeral of FloatingPoint sort from a float. | |
| FPNum | MkFP (int v, FPSort s) |
| Create a numeral of FloatingPoint sort from an int. | |
| FPNum | MkFP (bool sgn, int exp, uint sig, FPSort s) |
| Create a numeral of FloatingPoint sort from a sign bit and two integers. | |
| FPNum | MkFP (bool sgn, Int64 exp, UInt64 sig, FPSort s) |
| Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers. | |
| FPExpr | MkFPAbs (FPExpr t) |
| Floating-point absolute value. | |
| FPExpr | MkFPNeg (FPExpr t) |
| Floating-point negation. | |
| FPExpr | MkFPAdd (FPRMExpr rm, FPExpr t1, FPExpr t2) |
| Floating-point addition. | |
| FPExpr | MkFPSub (FPRMExpr rm, FPExpr t1, FPExpr t2) |
| Floating-point subtraction. | |
| FPExpr | MkFPMul (FPRMExpr rm, FPExpr t1, FPExpr t2) |
| Floating-point multiplication. | |
| FPExpr | MkFPDiv (FPRMExpr rm, FPExpr t1, FPExpr t2) |
| Floating-point division. | |
| FPExpr | MkFPFMA (FPRMExpr rm, FPExpr t1, FPExpr t2, FPExpr t3) |
| Floating-point fused multiply-add. | |
| FPExpr | MkFPSqrt (FPRMExpr rm, FPExpr t) |
| Floating-point square root. | |
| FPExpr | MkFPRem (FPExpr t1, FPExpr t2) |
| Floating-point remainder. | |
| FPExpr | MkFPRoundToIntegral (FPRMExpr rm, FPExpr t) |
| Floating-point roundToIntegral. Rounds a floating-point number to the closest integer, again represented as a floating-point number. | |
| FPExpr | MkFPMin (FPExpr t1, FPExpr t2) |
| Minimum of floating-point numbers. | |
| FPExpr | MkFPMax (FPExpr t1, FPExpr t2) |
| Maximum of floating-point numbers. | |
| BoolExpr | MkFPLEq (FPExpr t1, FPExpr t2) |
| Floating-point less than or equal. | |
| BoolExpr | MkFPLt (FPExpr t1, FPExpr t2) |
| Floating-point less than. | |
| BoolExpr | MkFPGEq (FPExpr t1, FPExpr t2) |
| Floating-point greater than or equal. | |
| BoolExpr | MkFPGt (FPExpr t1, FPExpr t2) |
| Floating-point greater than. | |
| BoolExpr | MkFPEq (FPExpr t1, FPExpr t2) |
| Floating-point equality. | |
| BoolExpr | MkFPIsNormal (FPExpr t) |
| Predicate indicating whether t is a normal floating-point number. | |
| BoolExpr | MkFPIsSubnormal (FPExpr t) |
| Predicate indicating whether t is a subnormal floating-point number. | |
| BoolExpr | MkFPIsZero (FPExpr t) |
| Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0. | |
| BoolExpr | MkFPIsInfinite (FPExpr t) |
| Predicate indicating whether t is a floating-point number representing +oo or -oo. | |
| BoolExpr | MkFPIsNaN (FPExpr t) |
| Predicate indicating whether t is a NaN. | |
| BoolExpr | MkFPIsNegative (FPExpr t) |
| Predicate indicating whether t is a negative floating-point number. | |
| BoolExpr | MkFPIsPositive (FPExpr t) |
| Predicate indicating whether t is a positive floating-point number. | |
| FPExpr | MkFP (BitVecExpr sgn, BitVecExpr sig, BitVecExpr exp) |
| Create an expression of FloatingPoint sort from three bit-vector expressions. | |
| FPExpr | MkFPToFP (BitVecExpr bv, FPSort s) |
| Conversion of a single IEEE 754-2008 bit-vector into a floating-point number. | |
| FPExpr | MkFPToFP (FPRMExpr rm, FPExpr t, FPSort s) |
| Conversion of a FloatingPoint term into another term of different FloatingPoint sort. | |
| FPExpr | MkFPToFP (FPRMExpr rm, RealExpr t, FPSort s) |
| Conversion of a term of real sort into a term of FloatingPoint sort. | |
| FPExpr | MkFPToFP (FPRMExpr rm, BitVecExpr t, FPSort s, bool signed) |
| Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort. | |
| FPExpr | MkFPToFP (FPSort s, FPRMExpr rm, FPExpr t) |
| Conversion of a floating-point number to another FloatingPoint sort s. | |
| BitVecExpr | MkFPToBV (FPRMExpr rm, FPExpr t, uint sz, bool sign) |
| Conversion of a floating-point term into a bit-vector. | |
| RealExpr | MkFPToReal (FPExpr t) |
| Conversion of a floating-point term into a real-numbered term. | |
| BitVecExpr | MkFPToIEEEBV (FPExpr t) |
| Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format. | |
| BitVecExpr | MkFPToFP (FPRMExpr rm, IntExpr exp, RealExpr sig, FPSort s) |
| Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort. | |
| AST | WrapAST (IntPtr nativeObject) |
| Wraps an AST. | |
| IntPtr | UnwrapAST (AST a) |
| Unwraps an AST. | |
| FuncDecl | MkPartialOrder (Sort a, uint index) |
| Create a partial order relation over a sort. | |
| FuncDecl | MkTransitiveClosure (FuncDecl f) |
| Create the transitive closure of a binary relation. | |
| ASTVector | PolynomialSubresultants (Expr p, Expr q, Expr x) |
| Return the nonzero subresultants of p and q with respect to the "variable" x. | |
| string | SimplifyHelp () |
Return a string describing all available parameters to Expr.Simplify. | |
| void | UpdateParamValue (string id, string value) |
| Update a mutable configuration parameter. | |
| void | Dispose () |
| Disposes of the context. | |
Properties | |
| BoolSort | BoolSort [get] |
| Retrieves the Boolean sort of the context. | |
| IntSort | IntSort [get] |
| Retrieves the Integer sort of the context. | |
| RealSort | RealSort [get] |
| Retrieves the Real sort of the context. | |
| CharSort | CharSort [get] |
| Retrieves the String sort of the context. | |
| SeqSort | StringSort [get] |
| Retrieves the String sort of the context. | |
| Z3_ast_print_mode | PrintMode [get, set] |
| Selects the format used for pretty-printing expressions. | |
| uint | NumTactics [get] |
| The number of supported tactics. | |
| string[] | TacticNames [get] |
| The names of all supported tactics. | |
| uint | NumSimplifiers [get] |
| The number of supported simplifiers. | |
| string[] | SimplifierNames [get] |
| The names of all supported tactics. | |
| uint | NumProbes [get] |
| The number of supported Probes. | |
| string[] | ProbeNames [get] |
| The names of all supported Probes. | |
| ParamDescrs | SimplifyParameterDescriptions [get] |
| Retrieves parameter descriptions for simplifier. | |
The main interaction with Z3 happens via the Context.
Definition at line 33 of file Context.cs.
|
inline |
Constructor.
Definition at line 39 of file Context.cs.
|
inline |
Constructor.
The following parameters can be set:
Definition at line 68 of file Context.cs.
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 704 of file Context.cs.
Create a probe that evaluates to "true" when the value p1 and p2 evaluate to "true".
Definition at line 4275 of file Context.cs.
|
inline |
Create a simplifier that applies t1 and then t2 .
Definition at line 4092 of file Context.cs.
Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1 .
Definition at line 3830 of file Context.cs.
Referenced by Context.Then(), and Context.Then().
|
inline |
Convert a benchmark into SMT-LIB2 formatted string.
| name | Name of the benchmark. May be null. |
| logic | The benchmark logic. May be null. |
| status | Status string, such as "sat", "unsat", or "unknown". |
| attributes | Other attributes, such as source, difficulty or category. May be null. |
| assumptions | Auxiliary assumptions. |
| formula | Formula to be checked for consistency in conjunction with assumptions. |
Definition at line 3737 of file Context.cs.
Referenced by Solver.ToSmt2().
|
inline |
Create a character from a bit-vector (code point).
Definition at line 3106 of file Context.cs.
|
inline |
Create a bit-vector (code point) from character.
Definition at line 3097 of file Context.cs.
Create an integer (code point) from character.
Definition at line 3088 of file Context.cs.
Create a tactic that applies t1 to a given goal if the probe p evaluates to true and t2 otherwise.
Definition at line 3922 of file Context.cs.
|
inline |
Create a probe that always evaluates to val .
Definition at line 4195 of file Context.cs.
|
inline |
Disposes of the context.
Definition at line 5352 of file Context.cs.
Create a probe that evaluates to "true" when the value returned by p1 is equal to the value returned by p2
Definition at line 4261 of file Context.cs.
|
inline |
Create a tactic always fails.
Definition at line 3958 of file Context.cs.
Create a tactic that fails if the probe p evaluates to false.
Definition at line 3967 of file Context.cs.
|
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 3979 of file Context.cs.
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 4247 of file Context.cs.
Get the element sort (basis) of a finite set sort.
Definition at line 2529 of file Context.cs.
Create a probe that evaluates to "true" when the value returned by p1 is greater than the value returned by p2
Definition at line 4219 of file Context.cs.
|
inline |
Interrupt the execution of a Z3 procedure.
This procedure can be used to interrupt: solvers, simplifiers and tactics.
Definition at line 4039 of file Context.cs.
Convert an integer expression to a string.
Definition at line 2708 of file Context.cs.
|
inline |
Check if a sort is a finite set sort.
Definition at line 2518 of file Context.cs.
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 4233 of file Context.cs.
Create a probe that evaluates to "true" when the value returned by p1 is less than the value returned by p2
Definition at line 4205 of file Context.cs.
Create an expression representing t[0] + t[1] + ....
Definition at line 1175 of file Context.cs.
Create an expression representing t[0] + t[1] + ....
Definition at line 1163 of file Context.cs.
Referenced by Context.MkAdd(), and ArithExpr.operator+().
Create an expression representing t[0] and t[1] and ....
Definition at line 1129 of file Context.cs.
Create an expression representing t[0] and t[1] and ....
Definition at line 1117 of file Context.cs.
Referenced by Goal.AsBoolExpr(), Context.MkAnd(), and BoolExpr.operator&().
Create a new function application.
Definition at line 965 of file Context.cs.
Create a new function application.
Definition at line 953 of file Context.cs.
Referenced by EnumSort.Const(), Context.MkApp(), and Context.MkConst().
Create an array constant.
Definition at line 2177 of file Context.cs.
Create an array constant.
Definition at line 2164 of file Context.cs.
Create Extentionality index. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.
Definition at line 2353 of file Context.cs.
Create a new array sort.
Definition at line 276 of file Context.cs.
Referenced by Context.MkArrayConst(), and Context.MkArrayConst().
Create a new n-ary array sort.
Definition at line 289 of file Context.cs.
Retrieve sequence of length one at index.
Definition at line 2826 of file Context.cs.
Create an at-least-k constraint.
Definition at line 3140 of file Context.cs.
Create an at-most-k constraint.
Definition at line 3128 of file Context.cs.
|
inline |
Create a new bit-vector sort.
Definition at line 250 of file Context.cs.
Referenced by Context.MkBV(), Context.MkBV(), Context.MkBV(), Context.MkBV(), Context.MkBV(), Context.MkBVConst(), and Context.MkBVConst().
|
inline |
|
inline |
Create a Boolean constant.
Definition at line 883 of file Context.cs.
Create a Boolean constant.
Definition at line 873 of file Context.cs.
|
inline |
Create a new Boolean sort.
Definition at line 205 of file Context.cs.
Creates a new bound variable.
| index | The de-Bruijn index of the variable |
| ty | The sort of the variable |
Definition at line 798 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| bits | An array of bits representing the bit-vector. Least significant bit is at position 0. |
Definition at line 3457 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| v | value of the numeral. |
| size | the size of the bit-vector |
Definition at line 3414 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| v | value of the numeral. |
| size | the size of the bit-vector |
Definition at line 3436 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| v | A string representing the value in decimal notation. |
| size | the size of the bit-vector |
Definition at line 3403 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| v | value of the numeral. |
| size | the size of the bit-vector |
Definition at line 3425 of file Context.cs.
|
inline |
Create a bit-vector numeral.
| v | value of the numeral. |
| size | the size of the bit-vector |
Definition at line 3447 of file Context.cs.
|
inline |
Create an integer from the bit-vector argument t .
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 2025 of file Context.cs.
|
inline |
Two's complement addition.
The arguments must have the same bit-vector sort.
Definition at line 1513 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise addition does not overflow.
The arguments must be of bit-vector sort.
Definition at line 2039 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise addition does not underflow.
The arguments must be of bit-vector sort.
Definition at line 2055 of file Context.cs.
|
inline |
Bitwise conjunction.
The arguments must have a bit-vector sort.
Definition at line 1417 of file Context.cs.
|
inline |
Arithmetic shift right.
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 1918 of file Context.cs.
|
inline |
Creates a bit-vector constant.
Definition at line 942 of file Context.cs.
|
inline |
Creates a bit-vector constant.
Definition at line 931 of file Context.cs.
|
inline |
Logical shift right.
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 1894 of file Context.cs.
|
inline |
Two's complement multiplication.
The arguments must have the same bit-vector sort.
Definition at line 1541 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise multiplication does not overflow.
The arguments must be of bit-vector sort.
Definition at line 2133 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise multiplication does not underflow.
The arguments must be of bit-vector sort.
Definition at line 2149 of file Context.cs.
|
inline |
Bitwise NAND.
The arguments must have a bit-vector sort.
Definition at line 1459 of file Context.cs.
|
inline |
Standard two's complement unary minus.
The arguments must have a bit-vector sort.
Definition at line 1501 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise negation does not overflow.
The arguments must be of bit-vector sort.
Definition at line 2119 of file Context.cs.
|
inline |
Bitwise NOR.
The arguments must have a bit-vector sort.
Definition at line 1473 of file Context.cs.
|
inline |
Bitwise negation.
The argument must have a bit-vector sort.
Definition at line 1381 of file Context.cs.
|
inline |
Bitwise disjunction.
The arguments must have a bit-vector sort.
Definition at line 1431 of file Context.cs.
|
inline |
Take conjunction of bits in a vector, return vector of length 1.
The argument must have a bit-vector sort.
Definition at line 1393 of file Context.cs.
|
inline |
Take disjunction of bits in a vector, return vector of length 1.
The argument must have a bit-vector sort.
Definition at line 1405 of file Context.cs.
|
inline |
Rotate Left.
Rotate bits of t1 to the left t2 times. The arguments must have the same bit-vector sort.
Definition at line 1965 of file Context.cs.
|
inline |
Rotate Left.
Rotate bits of t to the left i times. The argument t must have a bit-vector sort.
Definition at line 1935 of file Context.cs.
|
inline |
Rotate Right.
Rotate bits of t1 to the rightt2 times. The arguments must have the same bit-vector sort.
Definition at line 1982 of file Context.cs.
|
inline |
Rotate Right.
Rotate bits of t to the right i times. The argument t must have a bit-vector sort.
Definition at line 1950 of file Context.cs.
|
inline |
Signed division.
It is defined in the following way:
floor of t1/t2 if t2 is different from zero, and t1*t2 >= 0.ceiling of t1/t2 if t2 is different from zero, and t1*t2 < 0.If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.
Definition at line 1583 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise signed division does not overflow.
The arguments must be of bit-vector sort.
Definition at line 2103 of file Context.cs.
|
inline |
Two's complement signed greater than or equal to.
The arguments must have the same bit-vector sort.
Definition at line 1734 of file Context.cs.
|
inline |
Two's complement signed greater-than.
The arguments must have the same bit-vector sort.
Definition at line 1766 of file Context.cs.
|
inline |
Shift left.
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 1872 of file Context.cs.
|
inline |
Two's complement signed less-than or equal to.
The arguments must have the same bit-vector sort.
Definition at line 1702 of file Context.cs.
|
inline |
Two's complement signed less-than.
The arguments must have the same bit-vector sort.
Definition at line 1670 of file Context.cs.
|
inline |
Two's complement signed remainder (sign follows divisor).
If t2 is zero, then the result is undefined. The arguments must have the same bit-vector sort.
Definition at line 1638 of file Context.cs.
|
inline |
Signed remainder.
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 1621 of file Context.cs.
|
inline |
Two's complement subtraction.
The arguments must have the same bit-vector sort.
Definition at line 1527 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise subtraction does not overflow.
The arguments must be of bit-vector sort.
Definition at line 2071 of file Context.cs.
|
inline |
Create a predicate that checks that the bit-wise subtraction does not underflow.
The arguments must be of bit-vector sort.
Definition at line 2087 of file Context.cs.
|
inline |
Unsigned division.
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 1560 of file Context.cs.
|
inline |
Unsigned greater than or equal to.
The arguments must have the same bit-vector sort.
Definition at line 1718 of file Context.cs.
|
inline |
Unsigned greater-than.
The arguments must have the same bit-vector sort.
Definition at line 1750 of file Context.cs.
|
inline |
Unsigned less-than or equal to.
The arguments must have the same bit-vector sort.
Definition at line 1686 of file Context.cs.
|
inline |
Unsigned less-than.
The arguments must have the same bit-vector sort.
Definition at line 1654 of file Context.cs.
|
inline |
Unsigned remainder.
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 1601 of file Context.cs.
|
inline |
Bitwise XNOR.
The arguments must have a bit-vector sort.
Definition at line 1487 of file Context.cs.
|
inline |
Bitwise XOR.
The arguments must have a bit-vector sort.
Definition at line 1445 of file Context.cs.
Create less than or equal to between two characters.
Definition at line 3078 of file Context.cs.
Create the complement regular expression.
Definition at line 2990 of file Context.cs.
|
inline |
Bit-vector concatenation.
The arguments must have a bit-vector sort.
n1+n2, where n1 (n2) is the size of t1 (t2). Definition at line 1786 of file Context.cs.
Create the concatenation of regular languages.
Definition at line 2999 of file Context.cs.
Concatenate sequences.
Definition at line 2749 of file Context.cs.
Creates a fresh constant from the FuncDecl f .
| f | A decl of a 0-arity function |
Definition at line 863 of file Context.cs.
Creates a new Constant of sort range and named name .
Definition at line 839 of file Context.cs.
Creates a new Constant of sort range and named name .
Definition at line 825 of file Context.cs.
Referenced by Context.MkArrayConst(), Context.MkArrayConst(), Context.MkBoolConst(), Context.MkBoolConst(), Context.MkBVConst(), Context.MkBVConst(), Context.MkConst(), Context.MkIntConst(), Context.MkIntConst(), Context.MkRealConst(), and Context.MkRealConst().
Create a constant array.
The resulting term is an array, such that a selecton an arbitrary index produces the value v.
Definition at line 2304 of file Context.cs.
Creates a new constant function declaration.
Definition at line 759 of file Context.cs.
Creates a new constant function declaration.
Definition at line 746 of file Context.cs.
|
inline |
Create a datatype constructor.
| name | |
| recognizer | |
| fieldNames | |
| sorts | |
| sortRefs |
Definition at line 432 of file Context.cs.
|
inline |
Create a datatype constructor.
| name | constructor name |
| recognizer | name of recognizer function. |
| fieldNames | names of the constructor fields. |
| sorts | field sorts, 0 if the field sort refers to a recursive sort. |
| sortRefs | reference to datatype sort that is an argument to the constructor; if the corresponding sort reference is 0, then the value in sort_refs should be an index referring to one of the recursive datatypes that is declared. |
Definition at line 415 of file Context.cs.
Check for sequence containment of s2 in s1.
Definition at line 2793 of file Context.cs.
|
inline |
Create a new datatype sort.
Definition at line 467 of file Context.cs.
|
inline |
Create a new datatype sort.
Definition at line 452 of file Context.cs.
|
inline |
Create a forward reference to a datatype sort. This is useful for creating recursive datatypes or parametric datatypes.
| name | name of the datatype sort |
| parameters | optional array of sort parameters for parametric datatypes |
Definition at line 501 of file Context.cs.
|
inline |
Create a forward reference to a datatype sort. This is useful for creating recursive datatypes or parametric datatypes.
| name | name of the datatype sort |
| parameters | optional array of sort parameters for parametric datatypes |
Definition at line 483 of file Context.cs.
Referenced by Context.MkDatatypeSortRef().
|
inline |
Create mutually recursive data-types.
| names | |
| c |
Definition at line 545 of file Context.cs.
|
inline |
Create mutually recursive datatypes.
| names | names of datatype sorts |
| c | list of constructors, one list per sort. |
Definition at line 512 of file Context.cs.
Referenced by Context.MkDatatypeSorts().
Create a difference regular expression.
Definition at line 3035 of file Context.cs.
Creates a distinct term.
Definition at line 1024 of file Context.cs.
Creates a distinct term.
Definition at line 1012 of file Context.cs.
Referenced by Context.MkDistinct().
Create an expression representing t1 / t2.
Definition at line 1228 of file Context.cs.
Referenced by ArithExpr.operator/().
Create the empty regular expression. The sort s should be a regular expression.
Definition at line 3047 of file Context.cs.
Create the empty sequence.
Definition at line 2681 of file Context.cs.
Create an empty set.
Definition at line 2380 of file Context.cs.
|
inline |
Create a new enumeration sort.
Definition at line 333 of file Context.cs.
Create a new enumeration sort.
Definition at line 318 of file Context.cs.
Creates the equality x = y .
Definition at line 999 of file Context.cs.
|
inline |
Create an existential Quantifier.
Creates an existential quantifier using a list of constants that will form the set of bound variables.
Definition at line 3558 of file Context.cs.
|
inline |
Create an existential Quantifier.
Creates an existential quantifier using de-Bruijn indexed variables. (MkForall(Sort[], Symbol[], Expr, uint, Pattern[], Expr[], Symbol, Symbol)).
Definition at line 3536 of file Context.cs.
Referenced by Context.MkQuantifier(), and Context.MkQuantifier().
Extract subsequence.
Definition at line 2848 of file Context.cs.
|
inline |
Bit-vector extraction.
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 1805 of file Context.cs.
|
inline |
The false Term.
Definition at line 983 of file Context.cs.
Referenced by Context.MkBool(), and Context.MkXor().
|
inline |
Create a new finite domain sort.
Elements of the sort are created using
, and the elements range from 0 to size-1.
| name | The name used to identify the sort |
| size | The size of the sort |
Definition at line 397 of file Context.cs.
|
inline |
Create a new finite domain sort.
| name | The name used to identify the sort |
| size | The size of the sort |
Definition at line 381 of file Context.cs.
Create the difference of two finite sets.
Definition at line 2588 of file Context.cs.
Create an empty finite set.
Definition at line 2540 of file Context.cs.
Filter a finite set with a predicate.
Definition at line 2651 of file Context.cs.
Create the intersection of two finite sets.
Definition at line 2575 of file Context.cs.
Map a function over all elements in a finite set.
Definition at line 2638 of file Context.cs.
Check for membership in a finite set.
Definition at line 2601 of file Context.cs.
Create a finite set containing integers in the range [low, high].
Definition at line 2664 of file Context.cs.
Create a singleton finite set.
Definition at line 2551 of file Context.cs.
Get the cardinality of a finite set.
Definition at line 2614 of file Context.cs.
|
inline |
Create a finite set sort over the given element sort.
Definition at line 2507 of file Context.cs.
Check if one finite set is a subset of another.
Definition at line 2625 of file Context.cs.
Create the union of two finite sets.
Definition at line 2562 of file Context.cs.
|
inline |
Create a Fixedpoint context.
Definition at line 4380 of file Context.cs.
|
inline |
Create a universal Quantifier.
Creates a universal quantifier using a list of constants that will form the set of bound variables.
Definition at line 3518 of file Context.cs.
|
inline |
Create a universal Quantifier.
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.
| sorts | the sorts of the bound variables. |
| names | names of the bound variables |
| body | the body of the quantifier. |
| weight | quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0. |
| patterns | array containing the patterns created using MkPattern. |
| noPatterns | array containing the anti-patterns created using MkPattern. |
| quantifierID | optional symbol to track quantifier. |
| skolemID | optional symbol to track skolem constants. |
Definition at line 3494 of file Context.cs.
Referenced by Context.MkQuantifier(), and Context.MkQuantifier().
|
inline |
Create an expression of FloatingPoint sort from three bit-vector expressions.
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.
| sgn | bit-vector term (of size 1) representing the sign. |
| sig | bit-vector term representing the significand. |
| exp | bit-vector term representing the exponent. |
Definition at line 4970 of file Context.cs.
Create a numeral of FloatingPoint sort from a sign bit and two integers.
| sgn | the sign. |
| exp | the exponent. |
| sig | the significand. |
| s | FloatingPoint sort. |
Definition at line 4691 of file Context.cs.
Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
| sgn | the sign. |
| exp | the exponent. |
| sig | the significand. |
| s | FloatingPoint sort. |
Definition at line 4703 of file Context.cs.
Create a numeral of FloatingPoint sort from a float.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4669 of file Context.cs.
Create a numeral of FloatingPoint sort from a float.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4659 of file Context.cs.
Create a numeral of FloatingPoint sort from an int.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4679 of file Context.cs.
Floating-point absolute value.
| t | floating-point term |
Definition at line 4715 of file Context.cs.
Floating-point addition.
| rm | rounding mode term |
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4735 of file Context.cs.
Floating-point division.
| rm | rounding mode term |
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4768 of file Context.cs.
Floating-point equality.
Note that this is IEEE 754 equality (as opposed to standard =).
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4887 of file Context.cs.
Floating-point fused multiply-add.
The result is round((t1 * t2) + t3)
| rm | rounding mode term |
| t1 | floating-point term |
| t2 | floating-point term |
| t3 | floating-point term |
Definition at line 4783 of file Context.cs.
Floating-point greater than or equal.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4864 of file Context.cs.
Floating-point greater than.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4874 of file Context.cs.
Create a floating-point infinity of sort s.
| s | FloatingPoint sort. |
| negative | indicates whether the result should be negative. |
Definition at line 4585 of file Context.cs.
Predicate indicating whether t is a floating-point number representing +oo or -oo.
| t | floating-point term |
Definition at line 4923 of file Context.cs.
Predicate indicating whether t is a NaN.
| t | floating-point term |
Definition at line 4932 of file Context.cs.
Predicate indicating whether t is a negative floating-point number.
| t | floating-point term |
Definition at line 4941 of file Context.cs.
Predicate indicating whether t is a normal floating-point number.
| t | floating-point term |
Definition at line 4896 of file Context.cs.
Predicate indicating whether t is a positive floating-point number.
| t | floating-point term |
Definition at line 4950 of file Context.cs.
Predicate indicating whether t is a subnormal floating-point number.
| t | floating-point term |
Definition at line 4905 of file Context.cs.
Predicate indicating whether t is a floating-point number with zero value, i.e., +0 or -0.
| t | floating-point term |
Definition at line 4914 of file Context.cs.
Floating-point less than or equal.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4844 of file Context.cs.
Floating-point less than.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4854 of file Context.cs.
Maximum of floating-point numbers.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4834 of file Context.cs.
Minimum of floating-point numbers.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4824 of file Context.cs.
Floating-point multiplication.
| rm | rounding mode term |
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4757 of file Context.cs.
Create a NaN of sort s.
| s | FloatingPoint sort. |
Definition at line 4575 of file Context.cs.
Floating-point negation.
| t | floating-point term |
Definition at line 4724 of file Context.cs.
Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
| sgn | the sign. |
| sig | the significand. |
| exp | the exponent. |
| s | FloatingPoint sort. |
Definition at line 4649 of file Context.cs.
Create a numeral of FloatingPoint sort from a sign bit and two integers.
| sgn | the sign. |
| sig | the significand. |
| exp | the exponent. |
| s | FloatingPoint sort. |
Definition at line 4637 of file Context.cs.
Create a numeral of FloatingPoint sort from a float.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4615 of file Context.cs.
Create a numeral of FloatingPoint sort from a float.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4605 of file Context.cs.
Referenced by Context.MkFP(), Context.MkFP(), Context.MkFP(), Context.MkFP(), and Context.MkFP().
Create a numeral of FloatingPoint sort from an int.
| v | numeral value. |
| s | FloatingPoint sort. |
Definition at line 4625 of file Context.cs.
Floating-point remainder.
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4803 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
Definition at line 4439 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
Definition at line 4423 of file Context.cs.
|
inline |
Create the floating-point RoundingMode sort.
Definition at line 4405 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
Definition at line 4431 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
Definition at line 4415 of file Context.cs.
Floating-point roundToIntegral. Rounds a floating-point number to the closest integer, again represented as a floating-point number.
| rm | term of RoundingMode sort |
| t | floating-point term |
Definition at line 4814 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
Definition at line 4463 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
Definition at line 4447 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
Definition at line 4479 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardNegative rounding mode.
Definition at line 4471 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardPositive rounding mode.
Definition at line 4455 of file Context.cs.
|
inline |
Create a numeral of RoundingMode sort which represents the RoundTowardZero rounding mode.
Definition at line 4487 of file Context.cs.
|
inline |
Create a FloatingPoint sort.
| ebits | exponent bits in the FloatingPoint sort. |
| sbits | significand bits in the FloatingPoint sort. |
Definition at line 4500 of file Context.cs.
|
inline |
Create the quadruple-precision (128-bit) FloatingPoint sort.
Definition at line 4564 of file Context.cs.
|
inline |
Create the half-precision (16-bit) FloatingPoint sort.
Definition at line 4516 of file Context.cs.
|
inline |
Create the single-precision (32-bit) FloatingPoint sort.
Definition at line 4532 of file Context.cs.
|
inline |
Create the double-precision (64-bit) FloatingPoint sort.
Definition at line 4548 of file Context.cs.
|
inline |
Create the double-precision (64-bit) FloatingPoint sort.
Definition at line 4540 of file Context.cs.
|
inline |
Create the half-precision (16-bit) FloatingPoint sort.
Definition at line 4508 of file Context.cs.
|
inline |
Create the quadruple-precision (128-bit) FloatingPoint sort.
Definition at line 4556 of file Context.cs.
|
inline |
Create the single-precision (32-bit) FloatingPoint sort.
Definition at line 4524 of file Context.cs.
Floating-point square root.
| rm | rounding mode term |
| t | floating-point term |
Definition at line 4793 of file Context.cs.
Floating-point subtraction.
| rm | rounding mode term |
| t1 | floating-point term |
| t2 | floating-point term |
Definition at line 4746 of file Context.cs.
|
inline |
Conversion of a floating-point term into a bit-vector.
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 sign==true). If necessary, the result will be rounded according to rounding mode rm.
| rm | RoundingMode term. |
| t | FloatingPoint term |
| sz | Size of the resulting bit-vector. |
| sign | Indicates whether the result is a signed or unsigned bit-vector. |
Definition at line 5073 of file Context.cs.
|
inline |
Conversion of a single IEEE 754-2008 bit-vector into a floating-point number.
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.
| bv | bit-vector value (of size m). |
| s | FloatingPoint sort (ebits+sbits == m) |
Definition at line 4986 of file Context.cs.
|
inline |
Conversion of a 2's complement signed bit-vector term into a term of FloatingPoint sort.
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.
| rm | RoundingMode term. |
| t | term of bit-vector sort. |
| s | FloatingPoint sort. |
| signed | flag indicating whether t is interpreted as signed or unsigned bit-vector. |
Definition at line 5036 of file Context.cs.
Conversion of a FloatingPoint term into another term of different FloatingPoint sort.
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.
| rm | RoundingMode term. |
| t | FloatingPoint term. |
| s | FloatingPoint sort. |
Definition at line 5002 of file Context.cs.
|
inline |
Conversion of a real-sorted significand and an integer-sorted exponent into a term of FloatingPoint sort.
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.
| rm | RoundingMode term. |
| exp | Exponent term of Int sort. |
| sig | Significand term of Real sort. |
| s | FloatingPoint sort. |
Definition at line 5124 of file Context.cs.
Conversion of a term of real sort into a term of FloatingPoint sort.
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.
| rm | RoundingMode term. |
| t | term of Real sort. |
| s | FloatingPoint sort. |
Definition at line 5018 of file Context.cs.
Conversion of a floating-point number to another FloatingPoint sort s.
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.
| s | FloatingPoint sort |
| rm | floating-point rounding mode term |
| t | floating-point term |
Definition at line 5054 of file Context.cs.
|
inline |
Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
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.
| t | FloatingPoint term. |
Definition at line 5107 of file Context.cs.
Conversion of a floating-point term into a real-numbered term.
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.
| t | FloatingPoint term |
Definition at line 5090 of file Context.cs.
Create a floating-point zero of sort s.
| s | FloatingPoint sort. |
| negative | indicates whether the result should be negative. |
Definition at line 4595 of file Context.cs.
Creates a fresh Constant of sort range and a name prefixed with prefix .
Definition at line 851 of file Context.cs.
Creates a fresh constant function declaration with a name prefixed with prefix .
Definition at line 773 of file Context.cs.
Creates a fresh function declaration with a name prefixed with prefix .
Definition at line 733 of file Context.cs.
Create the full regular expression. The sort s should be a regular expression.
Definition at line 3057 of file Context.cs.
Create the full set.
Definition at line 2391 of file Context.cs.
Creates a new function declaration.
Definition at line 716 of file Context.cs.
Creates a new function declaration.
Definition at line 673 of file Context.cs.
Creates a new function declaration.
Definition at line 657 of file Context.cs.
Creates a new function declaration.
Definition at line 642 of file Context.cs.
Create an expression representing t1 >= t2
Definition at line 1321 of file Context.cs.
Referenced by ArithExpr.operator>=().
|
inline |
Creates a new Goal.
Note that the Context must have been created with proof generation support if proofs is set to true here.
| models | Indicates whether model generation should be enabled. |
| unsatCores | Indicates whether unsat core generation should be enabled. |
| proofs | Indicates whether proof generation should be enabled. |
Definition at line 3765 of file Context.cs.
Create an expression representing t1 > t2
Definition at line 1308 of file Context.cs.
Referenced by ArithExpr.operator>().
Create an expression representing t1 iff t2.
Definition at line 1061 of file Context.cs.
Create an expression representing t1 -> t2.
Definition at line 1074 of file Context.cs.
Extract index of sub-string starting at offset.
Definition at line 2860 of file Context.cs.
Check for regular expression membership.
Definition at line 2943 of file Context.cs.
|
inline |
Create an integer numeral.
| v | value of the numeral. |
Definition at line 3357 of file Context.cs.
|
inline |
Create an integer numeral.
| v | value of the numeral. |
Definition at line 3379 of file Context.cs.
|
inline |
Create an integer numeral.
| v | A string representing the Term value in decimal notation. |
Definition at line 3346 of file Context.cs.
|
inline |
Create an integer numeral.
| v | value of the numeral. |
Definition at line 3368 of file Context.cs.
|
inline |
Create an integer numeral.
| v | value of the numeral. |
Definition at line 3390 of file Context.cs.
|
inline |
Create an n bit bit-vector from the integer argument t .
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 2002 of file Context.cs.
Coerce an integer to a real.
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 and asserting MakeInt2Real(k) <= t1 < MkInt2Real(k)+1. The argument must be of integer sort.
Definition at line 1341 of file Context.cs.
|
inline |
Creates an integer constant.
Definition at line 902 of file Context.cs.
Creates an integer constant.
Definition at line 892 of file Context.cs.
Create the intersection of regular languages.
Definition at line 3023 of file Context.cs.
|
inline |
Create a new integer sort.
Definition at line 233 of file Context.cs.
Create a check if the character is a digit.
Definition at line 3115 of file Context.cs.
Creates an expression that checks whether a real number is an integer.
Definition at line 1367 of file Context.cs.
Create an expression representing an if-then-else: ite(t1, t2, t3).
| t1 | An expression with Boolean sort |
| t2 | An expression |
| t3 | An expression with the same sort as t2 |
Definition at line 1046 of file Context.cs.
Create a lambda expression.
Creates a lambda expression using a list of constants that will form the set of bound variables.
Definition at line 3647 of file Context.cs.
Create a lambda expression.
Creates 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.
| sorts | the sorts of the bound variables. |
| names | names of the bound variables |
| body | the body of the quantifier. |
Definition at line 3628 of file Context.cs.
Create an expression representing t1 <= t2
Definition at line 1295 of file Context.cs.
Referenced by ArithExpr.operator<=().
Retrieve the length of a given sequence.
Definition at line 2762 of file Context.cs.
Create a new list sort.
Definition at line 366 of file Context.cs.
Create a new list sort.
Definition at line 353 of file Context.cs.
Take the bounded Kleene star of a regular expression.
Definition at line 2963 of file Context.cs.
Create an expression representing t1 < t2
Definition at line 1282 of file Context.cs.
Referenced by ArithExpr.operator<().
Maps f on the argument arrays.
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].
Definition at line 2325 of file Context.cs.
Create an expression representing t1 mod t2.
The arguments must have int type.
Definition at line 1242 of file Context.cs.
Create an expression representing t[0] * t[1] * ....
Definition at line 1196 of file Context.cs.
Create an expression representing t[0] * t[1] * ....
Definition at line 1184 of file Context.cs.
Referenced by Context.MkMul(), and ArithExpr.operator*().
Mk an expression representing not(a).
Definition at line 1033 of file Context.cs.
Referenced by BoolExpr.operator!().
Retrieve element at index.
Definition at line 2837 of file Context.cs.
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.
| v | Value of the numeral |
| ty | Sort of the numeral |
Definition at line 3215 of file Context.cs.
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.
| v | Value of the numeral |
| ty | Sort of the numeral |
Definition at line 3245 of file Context.cs.
Create a Term of a given sort.
| v | A string representing the Term value in decimal notation. If the given sort is a real, then the Term can be a rational, that is, a string of the form [num]* / [num]*. |
| ty | The sort of the numeral. In the current implementation, the given sort can be an int, real, or bit-vectors of arbitrary size. |
Definition at line 3200 of file Context.cs.
Referenced by Context.MkBV(), Context.MkBV(), Context.MkBV(), Context.MkBV(), and Context.MkBV().
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.
| v | Value of the numeral |
| ty | Sort of the numeral |
Definition at line 3230 of file Context.cs.
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.
| v | Value of the numeral |
| ty | Sort of the numeral |
Definition at line 3260 of file Context.cs.
|
inline |
Create an Optimization context.
Definition at line 4391 of file Context.cs.
Create the optional regular expression.
Definition at line 2981 of file Context.cs.
Create an expression representing t[0] or t[1] or ....
Definition at line 1151 of file Context.cs.
Create an expression representing t[0] or t[1] or ....
Definition at line 1138 of file Context.cs.
Referenced by Context.MkOr(), and BoolExpr.operator|().
|
inline |
Creates a new ParameterSet.
Definition at line 3776 of file Context.cs.
Referenced by Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), Solver.Set(), Optimize.Set(), and Solver.Set().
Create a partial order relation over a sort.
| a | The sort of the relation. |
| index | The index of the relation. |
Definition at line 5168 of file Context.cs.
Create a quantifier pattern.
Definition at line 810 of file Context.cs.
Create a pseudo-Boolean equal constraint.
Definition at line 3179 of file Context.cs.
Create a pseudo-Boolean greater-or-equal constraint.
Definition at line 3166 of file Context.cs.
Create a pseudo-Boolean less-or-equal constraint.
Definition at line 3152 of file Context.cs.
Take the Kleene plus of a regular expression.
Definition at line 2972 of file Context.cs.
|
inline |
Create a polymorphic datatype sort with explicit type parameters. Type parameters should be sorts created with MkTypeVariable(string).
| name | name of the datatype sort |
| typeParams | array of type variable sorts |
| constructors | array of constructors |
Definition at line 616 of file Context.cs.
|
inline |
Create a polymorphic datatype sort with explicit type parameters. Type parameters should be sorts created with MkTypeVariable(string).
| name | name of the datatype sort |
| typeParams | array of type variable sorts |
| constructors | array of constructors |
Definition at line 593 of file Context.cs.
Referenced by Context.MkPolymorphicDatatypeSort().
Create an expression representing t1 ^ t2.
Definition at line 1269 of file Context.cs.
Check for sequence prefix.
Definition at line 2771 of file Context.cs.
|
inline |
Creates a new Probe.
Definition at line 4186 of file Context.cs.
|
inline |
Create a Quantifier.
MkForall(Sort[], Symbol[], Expr, uint, Pattern[], Expr[], Symbol, Symbol)
Definition at line 3596 of file Context.cs.
|
inline |
Create a Quantifier.
MkForall(Sort[], Symbol[], Expr, uint, Pattern[], Expr[], Symbol, Symbol)
Definition at line 3573 of file Context.cs.
Create a range expression.
Definition at line 3067 of file Context.cs.
|
inline |
Create a real from a fraction.
| num | numerator of rational. |
| den | denominator of rational. |
Definition at line 3277 of file Context.cs.
|
inline |
Create a real numeral.
| v | value of the numeral. |
Definition at line 3301 of file Context.cs.
|
inline |
Create a real numeral.
| v | value of the numeral. |
Definition at line 3323 of file Context.cs.
|
inline |
Create a real numeral.
| v | A string representing the Term value in decimal notation. |
Definition at line 3290 of file Context.cs.
|
inline |
Create a real numeral.
| v | value of the numeral. |
Definition at line 3312 of file Context.cs.
|
inline |
Create a real numeral.
| v | value of the numeral. |
Definition at line 3334 of file Context.cs.
Coerce a real to an integer.
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 1356 of file Context.cs.
|
inline |
Creates a real constant.
Definition at line 922 of file Context.cs.
Creates a real constant.
Definition at line 912 of file Context.cs.
|
inline |
Create a real sort.
Definition at line 242 of file Context.cs.
Creates a new recursive function declaration.
Definition at line 687 of file Context.cs.
Create an expression representing t1 rem t2.
The arguments must have int type.
Definition at line 1256 of file Context.cs.
|
inline |
Bit-vector repetition.
The argument t must have a bit-vector sort.
Definition at line 1852 of file Context.cs.
Replace the first occurrence of src by dst in s.
Definition at line 2872 of file Context.cs.
Create a new regular expression sort.
Definition at line 267 of file Context.cs.
Array read.
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.
Definition at line 2201 of file Context.cs.
Array read.
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 [domain1,..,domaink -> range], and args must have the sort domain1,..,domaink. The sort of the result is range.
Definition at line 2224 of file Context.cs.
Fold left the function f over the sequence s with initial value a.
Definition at line 2907 of file Context.cs.
Fold left with index the function f over the sequence s with initial value a starting at index i.
Definition at line 2919 of file Context.cs.
Map function f over the sequence s.
Definition at line 2884 of file Context.cs.
Map function f over the sequence s at index i.
Definition at line 2895 of file Context.cs.
Create a new sequence sort.
Definition at line 258 of file Context.cs.
Add an element to the set.
Definition at line 2402 of file Context.cs.
Take the complement of a set.
Definition at line 2466 of file Context.cs.
Remove an element from a set.
Definition at line 2416 of file Context.cs.
Take the difference between two sets.
Definition at line 2453 of file Context.cs.
Take the intersection of a list of sets.
Definition at line 2441 of file Context.cs.
Check for set membership.
Definition at line 2477 of file Context.cs.
Create a set type.
Definition at line 2369 of file Context.cs.
Check for subsetness of sets.
Definition at line 2490 of file Context.cs.
Take the union of a list of sets.
Definition at line 2429 of file Context.cs.
|
inline |
Bit-vector sign extension.
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 1821 of file Context.cs.
|
inline |
Creates a new (incremental) solver.
Definition at line 4343 of file Context.cs.
|
inline |
Creates a new Tactic.
Definition at line 4082 of file Context.cs.
|
inline |
Creates a solver that uses an incremental simplifier.
Definition at line 4352 of file Context.cs.
|
inline |
Creates a new (incremental) solver.
Definition at line 4334 of file Context.cs.
Creates a new (incremental) solver.
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 4321 of file Context.cs.
Referenced by Context.MkSolver().
Creates a solver that is implemented using the given tactic.
The solver supports the commands Push and Pop, but it will always solve each check from scratch.
Definition at line 4366 of file Context.cs.
Take the Kleene star of a regular expression.
Definition at line 2954 of file Context.cs.
Array update.
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).
Definition at line 2253 of file Context.cs.
Array update.
The node a must have an array sort [domain1,..,domaink -> range], args must have sort domain1,..,domaink, 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 args, where it maps to v (and the select of a with respect to args may be a different value).
Definition at line 2283 of file Context.cs.
|
inline |
Create a string constant.
Definition at line 2699 of file Context.cs.
Check if the string s1 is lexicographically less or equal to s2.
Definition at line 2815 of file Context.cs.
Check if the string s1 is lexicographically strictly less than s2.
Definition at line 2804 of file Context.cs.
Create an expression representing t[0] - t[1] - ....
Definition at line 1205 of file Context.cs.
Referenced by ArithExpr.operator-().
Check for sequence suffix.
Definition at line 2782 of file Context.cs.
|
inline |
Creates a new symbol using an integer.
Not all integers can be passed to this function. The legal range of unsigned integers is 0 to 2^30-1.
Definition at line 111 of file Context.cs.
Referenced by Params.Add(), Params.Add(), Params.Add(), Params.Add(), Params.Add(), Params.Add(), Optimize.AssertSoft(), Context.MkArrayConst(), Context.MkBoolConst(), Context.MkConst(), Context.MkConstDecl(), Context.MkConstructor(), Context.MkDatatypeSort(), Context.MkDatatypeSortRef(), Context.MkEnumSort(), Context.MkFiniteDomainSort(), Context.MkFuncDecl(), Context.MkFuncDecl(), Context.MkListSort(), Context.MkPolymorphicDatatypeSort(), Context.MkRecFuncDecl(), Context.MkSolver(), Context.MkTypeVariable(), Context.MkUninterpretedSort(), and Context.MkUserPropagatorFuncDecl().
|
inline |
Create a symbol using a string.
Definition at line 119 of file Context.cs.
|
inline |
Creates a new Tactic.
Definition at line 3820 of file Context.cs.
Referenced by Goal.Simplify().
Access the array default value.
Produces the default range value, for arrays that can be represented as finite maps with a default range value.
Definition at line 2342 of file Context.cs.
Convert a regular expression that accepts sequence s.
Definition at line 2933 of file Context.cs.
Create the transitive closure of a binary relation.
The resulting relation is recursive.
| f | A binary relation represented as a function declaration. |
Definition at line 5178 of file Context.cs.
|
inline |
The true Term.
Definition at line 975 of file Context.cs.
Referenced by Goal.AsBoolExpr(), Context.MkBool(), and Solver.ToSmt2().
Create a new tuple sort.
Definition at line 302 of file Context.cs.
|
inline |
Create a type variable sort for use as a parameter in polymorphic datatypes.
| name | name of the type variable |
Definition at line 580 of file Context.cs.
Create a type variable sort for use as a parameter in polymorphic datatypes.
| name | name of the type variable |
Definition at line 569 of file Context.cs.
Referenced by Context.MkTypeVariable().
Create an expression representing -t.
Definition at line 1217 of file Context.cs.
Referenced by ArithExpr.operator-().
|
inline |
Create a new uninterpreted sort.
Definition at line 224 of file Context.cs.
|
inline |
Create a new uninterpreted sort.
Definition at line 213 of file Context.cs.
Referenced by Context.MkUninterpretedSort().
Create the union of regular languages.
Definition at line 3011 of file Context.cs.
Create the singleton sequence.
Definition at line 2690 of file Context.cs.
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 628 of file Context.cs.
Declare a function to be processed by the user propagator plugin.
Definition at line 784 of file Context.cs.
Create an expression representing t1 xor t2.
Definition at line 1087 of file Context.cs.
Referenced by Context.MkXor(), and BoolExpr.operator^().
Create an expression representing t1 xor t2 xor t3 ... .
Definition at line 1100 of file Context.cs.
|
inline |
Bit-vector zero extension.
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 1838 of file Context.cs.
Create a probe that evaluates to "true" when the value p does not evaluate to "true".
Definition at line 4303 of file Context.cs.
Create a probe that evaluates to "true" when the value p1 or p2 evaluate to "true".
Definition at line 4289 of file Context.cs.
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 3877 of file Context.cs.
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 4025 of file Context.cs.
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 4013 of file Context.cs.
|
inline |
Parse the given file using the SMT-LIB2 parser.
Definition at line 3712 of file Context.cs.
|
inline |
Parse the given string using the SMT-LIB2 parser.
Definition at line 3693 of file Context.cs.
Return the nonzero subresultants of p and q with respect to the "variable" x.
p, q and x are Z3 expressions where p and q are arithmetic terms. Note that any subterm that cannot be viewed as a polynomial is assumed to be a variable.
| p | First arithmetic term. |
| q | Second arithmetic term. |
| x | The variable with respect to which subresultants are computed. |
Definition at line 5193 of file Context.cs.
|
inline |
Returns a string containing a description of the probe with the given name.
Definition at line 4177 of file Context.cs.
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 3938 of file Context.cs.
Convert a bit-vector expression, represented as an signed number, to a string.
Definition at line 2728 of file Context.cs.
|
inline |
Returns a string containing a description of the simplifier with the given name.
Definition at line 4073 of file Context.cs.
|
inline |
Return a string describing all available parameters to Expr.Simplify.
Definition at line 5204 of file Context.cs.
|
inline |
Create a tactic that just returns the given goal.
Definition at line 3949 of file Context.cs.
Convert an integer expression to a string.
Definition at line 2738 of file Context.cs.
|
inline |
Returns a string containing a description of the tactic with the given name.
Definition at line 3811 of file Context.cs.
|
inline |
Create a simplifier that applies t1 and then then t2 .
Shorthand for AndThen.
Definition at line 4126 of file Context.cs.
Create a tactic that applies t1 to a Goal and then t2 to every subgoal produced by t1 .
Shorthand for AndThen.
Definition at line 3864 of file Context.cs.
Create a tactic that applies t to a goal for ms milliseconds.
If t does not terminate within ms milliseconds, then it fails.
Definition at line 3893 of file Context.cs.
Convert a bit-vector expression, represented as an unsigned number, to a string.
Definition at line 2718 of file Context.cs.
|
inline |
Unwraps an AST.
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.,
).
| a | The AST to unwrap. |
Definition at line 5158 of file Context.cs.
|
inline |
Update a mutable configuration parameter.
The list of all configuration parameters can be obtained using the Z3 executable: z3.exe -p 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 5245 of file Context.cs.
|
inline |
Create a tactic that applies t using the given set of parameters p .
Definition at line 4138 of file Context.cs.
Create a tactic that applies t using the given set of parameters p .
Definition at line 3988 of file Context.cs.
Referenced by Context.With().
Create a tactic that applies t to a given goal if the probe p evaluates to true.
If p evaluates to false, then the new tactic behaves like the skip tactic.
Definition at line 3908 of file Context.cs.
Create a tactic that applies t using the given set of parameters p .
Alias for UsingParams
Definition at line 4002 of file Context.cs.
|
inline |
Wraps an AST.
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
) and that it must have a correct reference count (see e.g., .
| nativeObject | The native pointer to wrap. |
Definition at line 5142 of file Context.cs.
Retrieves the Boolean sort of the context.
Definition at line 146 of file Context.cs.
Referenced by Context.MkBoolSort().
Retrieves the String sort of the context.
Definition at line 180 of file Context.cs.
Retrieves the Integer sort of the context.
Definition at line 157 of file Context.cs.
Referenced by Context.MkIntSort().
|
get |
The number of supported Probes.
Definition at line 4153 of file Context.cs.
|
get |
The number of supported simplifiers.
Definition at line 4049 of file Context.cs.
|
get |
The number of supported tactics.
Definition at line 3787 of file Context.cs.
|
getset |
Selects the format used for pretty-printing expressions.
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.
Definition at line 3676 of file Context.cs.
|
get |
The names of all supported Probes.
Definition at line 4161 of file Context.cs.
Retrieves the Real sort of the context.
Definition at line 169 of file Context.cs.
Referenced by Context.MkRealSort().
|
get |
The names of all supported tactics.
Definition at line 4057 of file Context.cs.
|
get |
Retrieves parameter descriptions for simplifier.
Definition at line 5213 of file Context.cs.
|
get |
Retrieves the String sort of the context.
Definition at line 192 of file Context.cs.
|
get |
The names of all supported tactics.
Definition at line 3795 of file Context.cs.