Z3 C++ namespace. More...
Data Structures | |
| class | apply_result |
| class | array |
| class | ast |
| class | ast_vector_tpl |
| class | cast_ast |
| class | cast_ast< ast > |
| class | cast_ast< expr > |
| class | cast_ast< func_decl > |
| class | cast_ast< sort > |
| class | config |
| Z3 global configuration object. More... | |
| class | context |
| A Context manages all other Z3 objects, global configuration options, etc. More... | |
| class | exception |
| Exception used to sign API usage errors. More... | |
| class | expr |
| 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... | |
| class | func_decl |
| Function declaration (aka function definition). It is the signature of interpreted and uninterpreted functions in Z3. The basic building block in Z3 is the function application. More... | |
| class | func_entry |
| class | func_interp |
| class | goal |
| class | model |
| class | object |
| class | optimize |
| class | param_descrs |
| class | params |
| class | probe |
| class | solver |
| class | sort |
| A Z3 sort (aka type). Every expression (i.e., formula or term) in Z3 has a sort. More... | |
| class | stats |
| class | symbol |
| class | tactic |
Typedefs | |
| typedef ast_vector_tpl< ast > | ast_vector |
| typedef ast_vector_tpl< expr > | expr_vector |
| typedef ast_vector_tpl< sort > | sort_vector |
| typedef ast_vector_tpl< func_decl > | func_decl_vector |
Enumerations | |
| enum | check_result { unsat, sat, unknown } |
Functions | |
| void | set_param (char const *param, char const *value) |
| void | set_param (char const *param, bool value) |
| void | set_param (char const *param, int value) |
| void | reset_params () |
| std::ostream & | operator<< (std::ostream &out, exception const &e) |
| check_result | to_check_result (Z3_lbool l) |
| void | check_context (object const &a, object const &b) |
| std::ostream & | operator<< (std::ostream &out, symbol const &s) |
| std::ostream & | operator<< (std::ostream &out, param_descrs const &d) |
| std::ostream & | operator<< (std::ostream &out, params const &p) |
| std::ostream & | operator<< (std::ostream &out, ast const &n) |
| bool | eq (ast const &a, ast const &b) |
| expr | implies (expr const &a, expr const &b) |
| expr | implies (expr const &a, bool b) |
| expr | implies (bool 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 | operator! (expr const &a) |
| expr | operator && (expr const &a, expr const &b) |
| expr | operator && (expr const &a, bool b) |
| expr | operator && (bool a, expr const &b) |
| expr | operator|| (expr const &a, expr const &b) |
| expr | operator|| (expr const &a, bool b) |
| expr | operator|| (bool 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, 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, 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 | ite (expr const &c, expr const &t, expr const &e) |
Create the if-then-else expression ite(c, t, e) More... | |
| expr | to_expr (context &c, Z3_ast a) |
| Wraps a Z3_ast as an expr object. It also checks for errors. This function allows the user to use the whole C API with the C++ layer defined in this file. More... | |
| sort | to_sort (context &c, Z3_sort s) |
| func_decl | to_func_decl (context &c, Z3_func_decl f) |
| expr | ule (expr const &a, expr const &b) |
| unsigned less than or equal to operator for bitvectors. More... | |
| expr | ule (expr const &a, int b) |
| expr | ule (int a, expr const &b) |
| expr | ult (expr const &a, expr const &b) |
| unsigned less than operator for bitvectors. More... | |
| expr | ult (expr const &a, int b) |
| expr | ult (int a, expr const &b) |
| expr | uge (expr const &a, expr const &b) |
| unsigned greater than or equal to operator for bitvectors. More... | |
| expr | uge (expr const &a, int b) |
| expr | uge (int a, expr const &b) |
| expr | ugt (expr const &a, expr const &b) |
| unsigned greater than operator for bitvectors. More... | |
| expr | ugt (expr const &a, int b) |
| expr | ugt (int a, expr const &b) |
| expr | udiv (expr const &a, expr const &b) |
| unsigned division operator for bitvectors. More... | |
| expr | udiv (expr const &a, int b) |
| expr | udiv (int a, expr const &b) |
| expr | srem (expr const &a, expr const &b) |
| signed reminder operator for bitvectors More... | |
| expr | srem (expr const &a, int b) |
| expr | srem (int a, expr const &b) |
| expr | urem (expr const &a, expr const &b) |
| unsigned reminder operator for bitvectors More... | |
| expr | urem (expr const &a, int b) |
| expr | urem (int a, expr const &b) |
| expr | shl (expr const &a, expr const &b) |
| shift left operator for bitvectors More... | |
| expr | shl (expr const &a, int b) |
| expr | shl (int a, expr const &b) |
| expr | lshr (expr const &a, expr const &b) |
| logic shift right operator for bitvectors More... | |
| expr | lshr (expr const &a, int b) |
| expr | lshr (int a, expr const &b) |
| expr | ashr (expr const &a, expr const &b) |
| arithmetic shift right operator for bitvectors More... | |
| expr | ashr (expr const &a, int b) |
| expr | ashr (int a, expr const &b) |
| expr | zext (expr const &a, unsigned i) |
| 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. More... | |
| expr | sext (expr const &a, unsigned i) |
| Sign-extend of the given bit-vector to the (signed) equivalent bitvector of size m+i, where m is the size of the given bit-vector. More... | |
| expr | forall (expr const &x, expr const &b) |
| expr | forall (expr const &x1, expr const &x2, expr const &b) |
| expr | forall (expr const &x1, expr const &x2, expr const &x3, expr const &b) |
| expr | forall (expr const &x1, expr const &x2, expr const &x3, expr const &x4, expr const &b) |
| expr | forall (expr_vector const &xs, expr const &b) |
| expr | exists (expr const &x, expr const &b) |
| expr | exists (expr const &x1, expr const &x2, expr const &b) |
| expr | exists (expr const &x1, expr const &x2, expr const &x3, expr const &b) |
| expr | exists (expr const &x1, expr const &x2, expr const &x3, expr const &x4, expr const &b) |
| expr | exists (expr_vector const &xs, expr const &b) |
| expr | distinct (expr_vector const &args) |
| expr | concat (expr const &a, expr const &b) |
| expr | concat (expr_vector const &args) |
| expr | mk_or (expr_vector const &args) |
| expr | mk_and (expr_vector const &args) |
| std::ostream & | operator<< (std::ostream &out, model const &m) |
| std::ostream & | operator<< (std::ostream &out, stats const &s) |
| std::ostream & | operator<< (std::ostream &out, check_result r) |
| std::ostream & | operator<< (std::ostream &out, solver const &s) |
| std::ostream & | operator<< (std::ostream &out, goal const &g) |
| std::ostream & | operator<< (std::ostream &out, apply_result const &r) |
| tactic | operator & (tactic const &t1, tactic const &t2) |
| tactic | operator| (tactic const &t1, tactic const &t2) |
| tactic | repeat (tactic const &t, unsigned max=UINT_MAX) |
| tactic | with (tactic const &t, params const &p) |
| tactic | try_for (tactic const &t, unsigned ms) |
| probe | operator<= (probe const &p1, probe const &p2) |
| probe | operator<= (probe const &p1, double p2) |
| probe | operator<= (double p1, probe const &p2) |
| probe | operator>= (probe const &p1, probe const &p2) |
| probe | operator>= (probe const &p1, double p2) |
| probe | operator>= (double p1, probe const &p2) |
| probe | operator< (probe const &p1, probe const &p2) |
| probe | operator< (probe const &p1, double p2) |
| probe | operator< (double p1, probe const &p2) |
| probe | operator> (probe const &p1, probe const &p2) |
| probe | operator> (probe const &p1, double p2) |
| probe | operator> (double p1, probe const &p2) |
| probe | operator== (probe const &p1, probe const &p2) |
| probe | operator== (probe const &p1, double p2) |
| probe | operator== (double p1, probe const &p2) |
| probe | operator && (probe const &p1, probe const &p2) |
| probe | operator|| (probe const &p1, probe const &p2) |
| probe | operator! (probe const &p) |
| std::ostream & | operator<< (std::ostream &out, optimize const &s) |
| tactic | fail_if (probe const &p) |
| tactic | when (probe const &p, tactic const &t) |
| tactic | cond (probe const &p, tactic const &t1, tactic const &t2) |
| expr | to_real (expr const &a) |
| func_decl | function (symbol const &name, unsigned arity, sort const *domain, sort const &range) |
| func_decl | function (char const *name, unsigned arity, sort const *domain, sort const &range) |
| func_decl | function (char const *name, sort const &domain, sort const &range) |
| func_decl | function (char const *name, sort const &d1, sort const &d2, sort const &range) |
| func_decl | function (char const *name, sort const &d1, sort const &d2, sort const &d3, sort const &range) |
| func_decl | function (char const *name, sort const &d1, sort const &d2, sort const &d3, sort const &d4, sort const &range) |
| func_decl | function (char const *name, sort const &d1, sort const &d2, sort const &d3, sort const &d4, sort const &d5, sort const &range) |
| expr | select (expr const &a, expr const &i) |
| expr | select (expr const &a, int i) |
| expr | store (expr const &a, expr const &i, expr const &v) |
| expr | store (expr const &a, int i, expr const &v) |
| expr | store (expr const &a, expr i, int v) |
| expr | store (expr const &a, int i, int v) |
| expr | const_array (sort const &d, expr const &v) |
| expr | empty_set (sort const &s) |
| expr | full_set (sort const &s) |
| expr | set_add (expr const &s, expr const &e) |
| expr | set_del (expr const &s, expr const &e) |
| expr | set_union (expr const &a, expr const &b) |
| expr | set_intersect (expr const &a, expr const &b) |
| expr | set_difference (expr const &a, expr const &b) |
| expr | set_complement (expr const &a) |
| expr | set_member (expr const &s, expr const &e) |
| expr | set_subset (expr const &a, expr const &b) |
| expr | empty (sort const &s) |
| expr | suffixof (expr const &a, expr const &b) |
| expr | prefixof (expr const &a, expr const &b) |
| expr | indexof (expr const &s, expr const &substr, expr const &offset) |
| expr | to_re (expr const &s) |
| expr | in_re (expr const &s, expr const &re) |
| expr | plus (expr const &re) |
| expr | option (expr const &re) |
| expr | star (expr const &re) |
| expr | interpolant (expr const &a) |
Z3 C++ namespace.
| typedef ast_vector_tpl<ast> ast_vector |
| typedef ast_vector_tpl<expr> expr_vector |
| typedef ast_vector_tpl<func_decl> func_decl_vector |
| typedef ast_vector_tpl<sort> sort_vector |
| enum check_result |
| Enumerator | |
|---|---|
| unsat | |
| sat | |
| unknown | |
arithmetic shift right operator for bitvectors
Definition at line 1331 of file z3++.h.
Referenced by ashr().
Definition at line 336 of file z3++.h.
Referenced by goal::add(), tactic::apply(), expr::at(), solver::check(), object::check_error(), concat(), cond(), expr::contains(), apply_result::convert_model(), model::eval(), exists(), expr::extract(), forall(), context::function(), model::get_const_interp(), model::get_func_interp(), model::has_interp(), implies(), in_re(), indexof(), ite(), operator &(), operator &&(), operator!=(), func_decl::operator()(), operator*(), operator+(), operator-(), operator/(), operator<(), operator<=(), operator==(), operator>(), operator>=(), operator^(), operator|(), operator||(), prefixof(), pw(), expr::replace(), select(), set_intersect(), set_union(), store(), suffixof(), and when().
Definition at line 1478 of file z3++.h.
Referenced by expr::body(), and operator+().
|
inline |
|
inline |
Definition at line 1469 of file z3++.h.
Referenced by expr::body().
Definition at line 433 of file z3++.h.
Referenced by ast::hash().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 961 of file z3++.h.
Referenced by expr::body(), and implies().
Create the if-then-else expression ite(c, t, e)
Definition at line 1237 of file z3++.h.
Referenced by expr::body().
logic shift right operator for bitvectors
Definition at line 1324 of file z3++.h.
Referenced by lshr().
|
inline |
Definition at line 1528 of file z3++.h.
Referenced by expr::body().
|
inline |
Definition at line 1522 of file z3++.h.
Referenced by expr::body().
Definition at line 990 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1995 of file z3++.h.
Definition at line 983 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
|
inline |
Definition at line 1024 of file z3++.h.
Referenced by expr::body().
|
inline |
|
inline |
Definition at line 1061 of file z3++.h.
Referenced by expr::body().
Definition at line 1034 of file z3++.h.
Referenced by expr::body().
Definition at line 1118 of file z3++.h.
Referenced by expr::body().
Definition at line 1099 of file z3++.h.
Referenced by expr::body().
Definition at line 1176 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1980 of file z3++.h.
|
inline |
|
inline |
Definition at line 351 of file z3++.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 1678 of file z3++.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 1154 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1970 of file z3++.h.
Definition at line 1015 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1990 of file z3++.h.
Definition at line 1195 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1985 of file z3++.h.
Definition at line 1082 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1975 of file z3++.h.
Definition at line 1002 of file z3++.h.
Referenced by expr::body(), and probe::operator()().
Definition at line 1998 of file z3++.h.
Definition at line 972 of file z3++.h.
Referenced by expr::body(), and pw().
Definition at line 1910 of file z3++.h.
Referenced by tactic::help().
|
inline |
|
inline |
|
inline |
|
inline |
Sign-extend of the given bit-vector to the (signed) equivalent bitvector of size m+i, where m is the size of the given bit-vector.
Definition at line 1343 of file z3++.h.
shift left operator for bitvectors
Definition at line 1317 of file z3++.h.
Referenced by shl().
signed reminder operator for bitvectors
Definition at line 1303 of file z3++.h.
Referenced by srem().
|
inline |
Definition at line 124 of file z3++.h.
Referenced by solver::check(), optimize::check(), context::compute_interpolant(), and solver::consequences().
Wraps a Z3_ast as an expr object. It also checks for errors. This function allows the user to use the whole C API with the C++ layer defined in this file.
Definition at line 1250 of file z3++.h.
Referenced by ashr(), lshr(), sext(), shl(), srem(), udiv(), uge(), ugt(), ule(), ult(), urem(), and zext().
Definition at line 1259 of file z3++.h.
Referenced by context::enumeration_sort(), and context::uninterpreted_sort().
Definition at line 1921 of file z3++.h.
Referenced by tactic::help().
unsigned division operator for bitvectors.
Definition at line 1296 of file z3++.h.
Referenced by udiv().
unsigned greater than or equal to operator for bitvectors.
Definition at line 1284 of file z3++.h.
Referenced by uge().
unsigned greater than operator for bitvectors.
Definition at line 1290 of file z3++.h.
Referenced by ugt().
unsigned less than or equal to operator for bitvectors.
Definition at line 1272 of file z3++.h.
Referenced by ule().
unsigned less than operator for bitvectors.
Definition at line 1278 of file z3++.h.
Referenced by ult().
unsigned reminder operator for bitvectors
Definition at line 1310 of file z3++.h.
Referenced by urem().
Definition at line 1916 of file z3++.h.
Referenced by tactic::help().
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.
Definition at line 1338 of file z3++.h.
1.8.12