A Z3 expression is used to represent formulas and terms. For Z3, a formula is any expression of sort Boolean. Every expression has a sort. More...
Inheritance diagram for expr:Public Member Functions | |
| expr (context &c) | |
| expr (context &c, Z3_ast n) | |
| expr (expr const &n) | |
| expr & | operator= (expr const &n) |
| sort | get_sort () const |
| Return the sort of this expression. | |
| bool | is_bool () const |
| Return true if this is a Boolean expression. | |
| bool | is_int () const |
| Return true if this is an integer expression. | |
| bool | is_real () const |
| Return true if this is a real expression. | |
| bool | is_arith () const |
| Return true if this is an integer or real expression. | |
| bool | is_bv () const |
| Return true if this is a Bit-vector expression. | |
| bool | is_array () const |
| Return true if this is a Array expression. | |
| bool | is_datatype () const |
| Return true if this is a Datatype expression. | |
| bool | is_relation () const |
| Return true if this is a Relation expression. | |
| bool | is_finite_domain () const |
| Return true if this is a Finite-domain expression. | |
| bool | is_numeral () const |
| Return true if this expression is a numeral. | |
| bool | is_app () const |
| Return true if this expression is an application. | |
| bool | is_const () const |
| Return true if this expression is a constant (i.e., an application with 0 arguments). | |
| bool | is_quantifier () const |
| Return true if this expression is a quantifier. | |
| bool | is_var () const |
| Return true if this expression is a variable. | |
| bool | is_well_sorted () const |
| Return true if this expression is well sorted (aka type correct). | |
| operator Z3_app () const | |
| func_decl | decl () const |
| Return the declaration associated with this application. This method assumes the expression is an application. | |
| unsigned | num_args () const |
| Return the number of arguments in this application. This method assumes the expression is an application. | |
| expr | arg (unsigned i) const |
| Return the i-th argument of this application. This method assumes the expression is an application. | |
| expr | body () const |
| Return the 'body' of this quantifier. | |
| expr | simplify () const |
| Return a simplified version of this expression. | |
| expr | simplify (params const &p) const |
Return a simplified version of this expression. The parameter p is a set of parameters for the Z3 simplifier. | |
Public Member Functions inherited from ast | |
| ast (context &c) | |
| ast (context &c, Z3_ast n) | |
| ast (ast const &s) | |
| ~ast () | |
| operator Z3_ast () const | |
| operator bool () const | |
| ast & | operator= (ast const &s) |
| Z3_ast_kind | kind () const |
| unsigned | hash () const |
Public Member Functions inherited from object | |
| object (context &c) | |
| object (object const &s) | |
| context & | ctx () const |
| void | check_error () const |
Friends | |
| expr | operator! (expr const &a) |
Return an expression representing not(a). | |
| expr | operator&& (expr const &a, expr const &b) |
Return an expression representing a and b. | |
| expr | operator&& (expr const &a, bool b) |
Return an expression representing a and b. The C++ Boolean value b is automatically converted into a Z3 Boolean constant. | |
| expr | operator&& (bool a, expr const &b) |
Return an expression representing a and b. The C++ Boolean value a is automatically converted into a Z3 Boolean constant. | |
| expr | operator|| (expr const &a, expr const &b) |
Return an expression representing a or b. | |
| expr | operator|| (expr const &a, bool b) |
Return an expression representing a or b. The C++ Boolean value b is automatically converted into a Z3 Boolean constant. | |
| expr | operator|| (bool a, expr const &b) |
Return an expression representing a or b. The C++ Boolean value a is automatically converted into a Z3 Boolean constant. | |
| expr | implies (expr const &a, expr const &b) |
| expr | operator== (expr const &a, expr const &b) |
| expr | operator== (expr const &a, int b) |
| expr | operator== (int a, expr const &b) |
| expr | operator!= (expr const &a, expr const &b) |
| expr | operator!= (expr const &a, int b) |
| expr | operator!= (int a, expr const &b) |
| expr | operator+ (expr const &a, expr const &b) |
| expr | operator+ (expr const &a, int b) |
| expr | operator+ (int a, expr const &b) |
| expr | operator* (expr const &a, expr const &b) |
| expr | operator* (expr const &a, int b) |
| expr | operator* (int a, expr const &b) |
| expr | pw (expr const &a, expr const &b) |
| Power operator. | |
| expr | pw (expr const &a, int b) |
| expr | pw (int a, expr const &b) |
| expr | operator/ (expr const &a, expr const &b) |
| expr | operator/ (expr const &a, int b) |
| expr | operator/ (int a, expr const &b) |
| expr | operator- (expr const &a) |
| expr | operator- (expr const &a, expr const &b) |
| expr | operator- (expr const &a, int b) |
| expr | operator- (int a, expr const &b) |
| expr | operator<= (expr const &a, expr const &b) |
| expr | operator<= (expr const &a, int b) |
| expr | operator<= (int a, expr const &b) |
| expr | operator>= (expr const &a, expr const &b) |
| expr | operator>= (expr const &a, int b) |
| expr | operator>= (int a, expr const &b) |
| expr | operator< (expr const &a, expr const &b) |
| expr | operator< (expr const &a, int b) |
| expr | operator< (int a, expr const &b) |
| expr | operator> (expr const &a, expr const &b) |
| expr | operator> (expr const &a, int b) |
| expr | operator> (int a, expr const &b) |
| expr | operator& (expr const &a, expr const &b) |
| expr | operator& (expr const &a, int b) |
| expr | operator& (int a, expr const &b) |
| expr | operator^ (expr const &a, expr const &b) |
| expr | operator^ (expr const &a, int b) |
| expr | operator^ (int a, expr const &b) |
| expr | operator| (expr const &a, expr const &b) |
| expr | operator| (expr const &a, int b) |
| expr | operator| (int a, expr const &b) |
| expr | operator~ (expr const &a) |
Additional Inherited Members | |
Protected Attributes inherited from ast | |
| Z3_ast | m_ast |
A Z3 expression is used to represent formulas and terms. For Z3, a formula is any expression of sort Boolean. Every expression has a sort.
Definition at line 429 of file z3++.h.
Referenced by expr::arg(), expr::body(), and expr::simplify().
|
inline |
Return the i-th argument of this application. This method assumes the expression is an application.
Definition at line 530 of file z3++.h.
Referenced by ExprRef::children().
|
inline |
Return the 'body' of this quantifier.
Definition at line 537 of file z3++.h.
Referenced by QuantifierRef::children().
|
inline |
|
inline |
Return the sort of this expression.
Definition at line 437 of file z3++.h.
Referenced by expr::is_arith(), expr::is_array(), expr::is_bool(), expr::is_bv(), expr::is_datatype(), expr::is_finite_domain(), expr::is_int(), expr::is_real(), expr::is_relation(), z3::select(), z3::store(), z3::udiv(), z3::uge(), z3::ugt(), z3::ule(), and z3::ult().
|
inline |
Return true if this expression is an application.
Definition at line 488 of file z3++.h.
Referenced by expr::is_const(), and expr::operator Z3_app().
|
inline |
|
inline |
|
inline |
Return true if this is a Boolean expression.
Definition at line 442 of file z3++.h.
Referenced by solver::add().
|
inline |
|
inline |
Return true if this expression is a constant (i.e., an application with 0 arguments).
Definition at line 492 of file z3++.h.
Referenced by solver::add().
|
inline |
|
inline |
Return true if this is a Finite-domain expression.
Definition at line 479 of file z3++.h.
|
inline |
|
inline |
|
inline |
Return true if this expression is a quantifier.
Definition at line 496 of file z3++.h.
Referenced by expr::body().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return the number of arguments in this application. This method assumes the expression is an application.
Definition at line 522 of file z3++.h.
Referenced by ExprRef::arg(), ExprRef::children(), and expr::is_const().
|
inline |
|
inline |
Definition at line 610 of file z3++.h.
Definition at line 627 of file z3++.h.
Return an expression representing a and b.
Definition at line 557 of file z3++.h.
Return an expression representing a and b. The C++ Boolean value b is automatically converted into a Z3 Boolean constant.
Definition at line 572 of file z3++.h.
Return an expression representing a and b. The C++ Boolean value a is automatically converted into a Z3 Boolean constant.
Definition at line 579 of file z3++.h.
Definition at line 657 of file z3++.h.
Definition at line 637 of file z3++.h.
Definition at line 709 of file z3++.h.
Definition at line 725 of file z3++.h.
Definition at line 690 of file z3++.h.
Definition at line 783 of file z3++.h.
Definition at line 745 of file z3++.h.
Definition at line 802 of file z3++.h.
Definition at line 764 of file z3++.h.
Return an expression representing a or b.
Definition at line 587 of file z3++.h.
Return an expression representing a or b. The C++ Boolean value b is automatically converted into a Z3 Boolean constant.
Definition at line 601 of file z3++.h.
Return an expression representing a or b. The C++ Boolean value a is automatically converted into a Z3 Boolean constant.
Definition at line 608 of file z3++.h.
Power operator.
Definition at line 680 of file z3++.h.
1.8.2