Expressions. More...
Expressions.
Constraints, formulas and terms are expressions in Z3. Expressions are ASTs. Every expression has a sort. There are three main kinds of expressions: function applications, quantifiers and bounded variables. A constant is a function application with 0 arguments. For quantifier free problems, all expressions are function applications.
Definition at line 979 of file z3py.py.
◆ __eq__() def __eq__ ( self, other )Return a Z3 expression that represents the constraint `self == other`. If `other` is `None`, then this method simply returns `False`. >>> a = Int('a') >>> b = Int('b') >>> a == b a == b >>> a is None False
Reimplemented from AstRef.
Definition at line 1019 of file z3py.py.
1019 def__eq__(self, other):
1020 """Return a Z3 expression that represents the constraint `self == other`. 1022 If `other` is `None`, then this method simply returns `False`. 1033a, b = _coerce_exprs(self, other)
1034 returnBoolRef(
Z3_mk_eq(self.ctx_ref(), a.as_ast(), b.as_ast()), self.ctx)
Z3_ast Z3_API Z3_mk_eq(Z3_context c, Z3_ast l, Z3_ast r)
Create an AST node representing l = r.
Referenced by CheckSatResult.__ne__(), and Probe.__ne__().
◆ __hash__()Hash code.
Reimplemented from AstRef.
Definition at line 1036 of file z3py.py.
1038 returnAstRef.__hash__(self)
◆ __ne__() def __ne__ ( self, other )Return a Z3 expression that represents the constraint `self != other`. If `other` is `None`, then this method simply returns `True`. >>> a = Int('a') >>> b = Int('b') >>> a != b a != b >>> a is not None True
Definition at line 1040 of file z3py.py.
1040 def__ne__(self, other):
1041 """Return a Z3 expression that represents the constraint `self != other`. 1043 If `other` is `None`, then this method simply returns `True`. 1054a, b = _coerce_exprs(self, other)
1055_args, sz = _to_ast_array((a, b))
1056 returnBoolRef(
Z3_mk_distinct(self.ctx_ref(), 2, _args), self.ctx)
Z3_ast Z3_API Z3_mk_distinct(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing distinct(args[0], ..., args[num_args-1]).
◆ arg()Return argument `idx` of the application `self`. This method assumes that `self` is a function application with at least `idx+1` arguments. >>> a = Int('a') >>> b = Int('b') >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) >>> t = f(a, b, 0) >>> t.arg(0) a >>> t.arg(1) b >>> t.arg(2) 0
Definition at line 1092 of file z3py.py.
1093 """Return argument `idx` of the application `self`. 1095 This method assumes that `self` is a function application with at least `idx+1` arguments. 1099 >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) 1109_z3_assert(
is_app(self),
"Z3 application expected")
1110_z3_assert(idx < self.num_args(),
"Invalid argument index")
1111 return_to_expr_ref(
Z3_get_app_arg(self.ctx_ref(), self.as_ast(), idx), self.ctx)
Z3_ast Z3_API Z3_get_app_arg(Z3_context c, Z3_app a, unsigned i)
Return the i-th argument of the given application.
Referenced by AstRef.__bool__(), and ExprRef.children().
◆ as_ast()Return a pointer to the corresponding C Z3_ast object.
Reimplemented from AstRef.
Reimplemented in QuantifierRef, and PatternRef.
Definition at line 990 of file z3py.py.
Referenced by AstRef.__del__(), SeqRef.__ge__(), SeqRef.__getitem__(), SeqRef.__gt__(), BitVecRef.__invert__(), SeqRef.__le__(), CharRef.__le__(), SeqRef.__lt__(), ArithRef.__neg__(), BitVecRef.__neg__(), AlgebraicNumRef.approx(), ExprRef.arg(), IntNumRef.as_binary_string(), BitVecNumRef.as_binary_string(), RatNumRef.as_decimal(), AlgebraicNumRef.as_decimal(), IntNumRef.as_string(), RatNumRef.as_string(), BitVecNumRef.as_string(), FiniteDomainRef.as_string(), FiniteDomainNumRef.as_string(), FPRef.as_string(), FPRMRef.as_string(), FPNumRef.as_string(), SeqRef.as_string(), SeqRef.at(), ExprRef.decl(), ArrayRef.default(), RatNumRef.denominator(), AstRef.eq(), FPNumRef.exponent(), FPNumRef.exponent_as_bv(), FPNumRef.exponent_as_long(), AstRef.get_id(), SortRef.get_id(), FuncDeclRef.get_id(), ExprRef.get_id(), PatternRef.get_id(), QuantifierRef.get_id(), AstRef.hash(), AlgebraicNumRef.index(), CharRef.is_digit(), SeqRef.is_string(), SeqRef.is_string_value(), FPNumRef.isInf(), FPNumRef.isNaN(), FPNumRef.isNegative(), FPNumRef.isNormal(), FPNumRef.isPositive(), FPNumRef.isSubnormal(), FPNumRef.isZero(), ExprRef.num_args(), RatNumRef.numerator(), AlgebraicNumRef.poly(), AstRef.sexpr(), FPNumRef.sign(), FPNumRef.sign_as_bv(), FPNumRef.significand(), FPNumRef.significand_as_bv(), FPNumRef.significand_as_long(), ExprRef.sort(), BoolRef.sort(), QuantifierRef.sort(), ArithRef.sort(), BitVecRef.sort(), ArrayRef.sort(), DatatypeRef.sort(), FiniteDomainRef.sort(), FPRef.sort(), SeqRef.sort(), CharRef.to_bv(), CharRef.to_int(), and AstRef.translate().
◆ children()Return a list containing the children of the given expression >>> a = Int('a') >>> b = Int('b') >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) >>> t = f(a, b, 0) >>> t.children() [a, b, 0]
Reimplemented in QuantifierRef.
Definition at line 1113 of file z3py.py.
1114 """Return a list containing the children of the given expression 1118 >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) 1124 return[self.arg(i)
fori
in range(self.num_args())]
expr range(expr const &lo, expr const &hi)
◆ decl()Return the Z3 function declaration associated with a Z3 application. >>> f = Function('f', IntSort(), IntSort()) >>> a = Int('a') >>> t = f(a) >>> eq(t.decl(), f) True >>> (a + 1).decl() +
Definition at line 1061 of file z3py.py.
1062 """Return the Z3 function declaration associated with a Z3 application. 1064 >>> f = Function('f', IntSort(), IntSort()) 1073_z3_assert(
is_app(self),
"Z3 application expected")
1074 returnFuncDeclRef(
Z3_get_app_decl(self.ctx_ref(), self.as_ast()), self.ctx)
Z3_func_decl Z3_API Z3_get_app_decl(Z3_context c, Z3_app a)
Return the declaration of a constant or function application.
Referenced by ExprRef.params().
◆ from_string() def from_string ( self, s )Definition at line 1128 of file z3py.py.
1128 deffrom_string(self, s):
◆ get_id()Return unique identifier for object. It can be used for hash-tables and maps.
Reimplemented from AstRef.
Reimplemented in QuantifierRef, and PatternRef.
Definition at line 993 of file z3py.py.
unsigned Z3_API Z3_get_ast_id(Z3_context c, Z3_ast t)
Return a unique identifier for t. The identifier is unique up to structural equality....
◆ num_args()Return the number of arguments of a Z3 application. >>> a = Int('a') >>> b = Int('b') >>> (a + b).num_args() 2 >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) >>> t = f(a, b, 0) >>> t.num_args() 3
Definition at line 1076 of file z3py.py.
1077 """Return the number of arguments of a Z3 application. 1081 >>> (a + b).num_args() 1083 >>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort()) 1089_z3_assert(
is_app(self),
"Z3 application expected")
unsigned Z3_API Z3_get_app_num_args(Z3_context c, Z3_app a)
Return the number of argument of an application. If t is an constant, then the number of arguments is...
Referenced by AstRef.__bool__(), ExprRef.arg(), FuncEntry.arg_value(), FuncEntry.as_list(), and ExprRef.children().
◆ params() ◆ serialize()Definition at line 1131 of file z3py.py.
1131 defserialize(self):
◆ sort()Return the sort of expression `self`. >>> x = Int('x') >>> (x + 1).sort() Int >>> y = Real('y') >>> (x + y).sort() Real
Reimplemented in SeqRef, FPRef, FiniteDomainRef, DatatypeRef, ArrayRef, BitVecRef, ArithRef, QuantifierRef, and BoolRef.
Definition at line 996 of file z3py.py.
997 """Return the sort of expression `self`. 1006 return_sort(self.ctx, self.as_ast())
Referenced by FPNumRef.as_string(), ArrayRef.domain(), ArrayRef.domain_n(), FPRef.ebits(), ArithRef.is_int(), ArithRef.is_real(), ArrayRef.range(), FPRef.sbits(), BitVecRef.size(), and ExprRef.sort_kind().
◆ sort_kind()Shorthand for `self.sort().kind()`. >>> a = Array('a', IntSort(), IntSort()) >>> a.sort_kind() == Z3_ARRAY_SORT True >>> a.sort_kind() == Z3_INT_SORT False
Definition at line 1008 of file z3py.py.
1008 defsort_kind(self):
1009 """Shorthand for `self.sort().kind()`. 1011 >>> a = Array('a', IntSort(), IntSort()) 1012 >>> a.sort_kind() == Z3_ARRAY_SORT 1014 >>> a.sort_kind() == Z3_INT_SORT 1017 returnself.sort().kind()
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4