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...
|
| | 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. More...
|
| |
| bool | is_bool () const |
| | Return true if this is a Boolean expression. More...
|
| |
| bool | is_int () const |
| | Return true if this is an integer expression. More...
|
| |
| bool | is_real () const |
| | Return true if this is a real expression. More...
|
| |
| bool | is_arith () const |
| | Return true if this is an integer or real expression. More...
|
| |
| bool | is_bv () const |
| | Return true if this is a Bit-vector expression. More...
|
| |
| bool | is_array () const |
| | Return true if this is a Array expression. More...
|
| |
| bool | is_datatype () const |
| | Return true if this is a Datatype expression. More...
|
| |
| bool | is_relation () const |
| | Return true if this is a Relation expression. More...
|
| |
| bool | is_seq () const |
| | Return true if this is a sequence expression. More...
|
| |
| bool | is_re () const |
| | Return true if this is a regular expression. More...
|
| |
| bool | is_finite_domain () const |
| | Return true if this is a Finite-domain expression. More...
|
| |
| bool | is_fpa () const |
| | Return true if this is a FloatingPoint expression. . More...
|
| |
| bool | is_numeral () const |
| | Return true if this expression is a numeral. Specialized functions also return representations for the numerals as small integers, 64 bit integers or rational or decimal strings. More...
|
| |
| bool | is_numeral_i64 (int64_t &i) const |
| |
| bool | is_numeral_u64 (uint64_t &i) const |
| |
| bool | is_numeral_i (int &i) const |
| |
| bool | is_numeral_u (unsigned &i) const |
| |
| bool | is_numeral (std::string &s) const |
| |
| bool | is_numeral (std::string &s, unsigned precision) const |
| |
| bool | is_numeral (double &d) const |
| |
| bool | as_binary (std::string &s) const |
| |
| bool | is_app () const |
| | Return true if this expression is an application. More...
|
| |
| bool | is_const () const |
| | Return true if this expression is a constant (i.e., an application with 0 arguments). More...
|
| |
| bool | is_quantifier () const |
| | Return true if this expression is a quantifier. More...
|
| |
| bool | is_forall () const |
| | Return true if this expression is a universal quantifier. More...
|
| |
| bool | is_exists () const |
| | Return true if this expression is an existential quantifier. More...
|
| |
| bool | is_lambda () const |
| | Return true if this expression is a lambda expression. More...
|
| |
| bool | is_var () const |
| | Return true if this expression is a variable. More...
|
| |
| bool | is_algebraic () const |
| | Return true if expression is an algebraic number. More...
|
| |
| bool | is_well_sorted () const |
| | Return true if this expression is well sorted (aka type correct). More...
|
| |
| std::string | get_decimal_string (int precision) const |
| | Return string representation of numeral or algebraic number This method assumes the expression is numeral or algebraic. More...
|
| |
| expr | algebraic_lower (unsigned precision) const |
| |
| expr | algebraic_upper (unsigned precision) const |
| |
| expr_vector | algebraic_poly () const |
| | Return coefficients for p of an algebraic number (root-obj p i) More...
|
| |
| unsigned | algebraic_i () const |
| | Return i of an algebraic number (root-obj p i) More...
|
| |
| unsigned | id () const |
| | retrieve unique identifier for expression. More...
|
| |
| int | get_numeral_int () const |
| | Return int value of numeral, throw if result cannot fit in machine int. More...
|
| |
| unsigned | get_numeral_uint () const |
| | Return uint value of numeral, throw if result cannot fit in machine uint. More...
|
| |
| int64_t | get_numeral_int64 () const |
| | Return int64_t value of numeral, throw if result cannot fit in int64_t. More...
|
| |
| uint64_t | get_numeral_uint64 () const |
| | Return uint64_t value of numeral, throw if result cannot fit in uint64_t. More...
|
| |
| Z3_lbool | bool_value () const |
| |
| expr | numerator () const |
| |
| expr | denominator () const |
| |
| bool | is_string_value () const |
| | Return true if this expression is a string literal. The string can be accessed using get_string() and get_escaped_string() More...
|
| |
| std::string | get_escaped_string () const |
| | for a string value expression return an escaped or unescaped string value. More...
|
| |
| std::string | get_string () const |
| |
| | operator Z3_app () const |
| |
| sort | fpa_rounding_mode () |
| | Return a RoundingMode sort. More...
|
| |
| func_decl | decl () const |
| | Return the declaration associated with this application. This method assumes the expression is an application. More...
|
| |
| unsigned | num_args () const |
| | Return the number of arguments in this application. This method assumes the expression is an application. More...
|
| |
| expr | arg (unsigned i) const |
| | Return the i-th argument of this application. This method assumes the expression is an application. More...
|
| |
| expr | body () const |
| | Return the 'body' of this quantifier. More...
|
| |
| bool | is_true () const |
| |
| bool | is_false () const |
| |
| bool | is_not () const |
| |
| bool | is_and () const |
| |
| bool | is_or () const |
| |
| bool | is_xor () const |
| |
| bool | is_implies () const |
| |
| bool | is_eq () const |
| |
| bool | is_ite () const |
| |
| bool | is_distinct () const |
| |
| expr | rotate_left (unsigned i) |
| |
| expr | rotate_right (unsigned i) |
| |
| expr | repeat (unsigned i) |
| |
| expr | extract (unsigned hi, unsigned lo) const |
| |
| unsigned | lo () const |
| |
| unsigned | hi () const |
| |
| expr | extract (expr const &offset, expr const &length) const |
| | sequence and regular expression operations. More...
|
| |
| expr | replace (expr const &src, expr const &dst) const |
| |
| expr | unit () const |
| |
| expr | contains (expr const &s) |
| |
| expr | at (expr const &index) const |
| |
| expr | nth (expr const &index) const |
| |
| expr | length () const |
| |
| expr | stoi () const |
| |
| expr | itos () const |
| |
| expr | loop (unsigned lo) |
| | create a looping regular expression. More...
|
| |
| expr | loop (unsigned lo, unsigned hi) |
| |
| expr | operator[] (expr const &index) const |
| |
| expr | operator[] (expr_vector const &index) const |
| |
| expr | simplify () const |
| | Return a simplified version of this expression. More...
|
| |
| 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. More...
|
| |
| expr | substitute (expr_vector const &src, expr_vector const &dst) |
| | Apply substitution. Replace src expressions by dst. More...
|
| |
| expr | substitute (expr_vector const &dst) |
| | Apply substitution. Replace bound variables by expressions. More...
|
| |
| | 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 |
| |
| std::string | to_string () const |
| |
| | object (context &c) |
| |
| | object (object const &s) |
| |
| context & | ctx () const |
| |
| Z3_error_code | check_error () const |
| |
|
| expr | operator! (expr const &a) |
| | Return an expression representing not(a). More...
|
| |
| expr | operator && (expr const &a, expr const &b) |
| | Return an expression representing a and b. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| expr | operator|| (expr const &a, expr const &b) |
| | Return an expression representing a or b. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| expr | implies (expr const &a, expr const &b) |
| |
| expr | implies (expr const &a, bool b) |
| |
| expr | implies (bool a, expr const &b) |
| |
| expr | mk_or (expr_vector const &args) |
| |
| expr | mk_and (expr_vector const &args) |
| |
| expr | ite (expr const &c, expr const &t, expr const &e) |
| | Create the if-then-else expression ite(c, t, e) More...
|
| |
| expr | distinct (expr_vector const &args) |
| |
| expr | concat (expr const &a, expr const &b) |
| |
| expr | concat (expr_vector const &args) |
| |
| 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 | sum (expr_vector const &args) |
| |
| 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) |
| |
| expr | pw (expr const &a, int b) |
| |
| expr | pw (int a, expr const &b) |
| |
| expr | mod (expr const &a, expr const &b) |
| |
| expr | mod (expr const &a, int b) |
| |
| expr | mod (int a, expr const &b) |
| |
| expr | rem (expr const &a, expr const &b) |
| |
| expr | rem (expr const &a, int b) |
| |
| expr | rem (int a, expr const &b) |
| |
| expr | is_int (expr const &e) |
| |
| 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 | pble (expr_vector const &es, int const *coeffs, int bound) |
| |
| expr | pbge (expr_vector const &es, int const *coeffs, int bound) |
| |
| expr | pbeq (expr_vector const &es, int const *coeffs, int bound) |
| |
| expr | atmost (expr_vector const &es, unsigned bound) |
| |
| expr | atleast (expr_vector const &es, unsigned bound) |
| |
| 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 | nand (expr const &a, expr const &b) |
| |
| expr | nor (expr const &a, expr const &b) |
| |
| expr | xnor (expr const &a, expr const &b) |
| |
| expr | min (expr const &a, expr const &b) |
| |
| expr | max (expr const &a, expr const &b) |
| |
| expr | bv2int (expr const &a, bool is_signed) |
| | bit-vector and integer conversions. More...
|
| |
| expr | int2bv (unsigned n, expr const &a) |
| |
| expr | bvadd_no_overflow (expr const &a, expr const &b, bool is_signed) |
| | bit-vector overflow/underflow checks More...
|
| |
| expr | bvadd_no_underflow (expr const &a, expr const &b) |
| |
| expr | bvsub_no_overflow (expr const &a, expr const &b) |
| |
| expr | bvsub_no_underflow (expr const &a, expr const &b, bool is_signed) |
| |
| expr | bvsdiv_no_overflow (expr const &a, expr const &b) |
| |
| expr | bvneg_no_overflow (expr const &a) |
| |
| expr | bvmul_no_overflow (expr const &a, expr const &b, bool is_signed) |
| |
| expr | bvmul_no_underflow (expr const &a, expr const &b) |
| |
| expr | abs (expr const &a) |
| |
| expr | sqrt (expr const &a, expr const &rm) |
| |
| expr | operator~ (expr const &a) |
| |
| expr | fma (expr const &a, expr const &b, expr const &c, expr const &rm) |
| | FloatingPoint fused multiply-add. More...
|
| |
| expr | range (expr const &lo, expr const &hi) |
| |
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 746 of file z3++.h.