mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 09:34:08 +00:00
Add ite operator to the C++ API
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
f8f23382dc
commit
c430fe26aa
|
@ -337,6 +337,15 @@ void ite_example() {
|
|||
std::cout << "term: " << ite << "\n";
|
||||
}
|
||||
|
||||
void ite_example2() {
|
||||
std::cout << "if-then-else example2\n";
|
||||
context c;
|
||||
expr b = c.bool_const("b");
|
||||
expr x = c.int_const("x");
|
||||
expr y = c.int_const("y");
|
||||
std::cout << (ite(b, x, y) > 0) << "\n";
|
||||
}
|
||||
|
||||
/**
|
||||
\brief Small example using quantifiers.
|
||||
*/
|
||||
|
@ -889,6 +898,7 @@ int main() {
|
|||
error_example(); std::cout << "\n";
|
||||
numeral_example(); std::cout << "\n";
|
||||
ite_example(); std::cout << "\n";
|
||||
ite_example2(); std::cout << "\n";
|
||||
quantifier_example(); std::cout << "\n";
|
||||
unsat_core_example1(); std::cout << "\n";
|
||||
unsat_core_example2(); std::cout << "\n";
|
||||
|
|
|
@ -620,6 +620,19 @@ namespace z3 {
|
|||
return expr(a.ctx(), r);
|
||||
}
|
||||
|
||||
/**
|
||||
\brief Create the if-then-else expression <tt>ite(c, t, e)</tt>
|
||||
|
||||
\pre c.is_bool()
|
||||
*/
|
||||
friend expr ite(expr const & c, expr const & t, expr const & e) {
|
||||
check_context(c, t); check_context(c, e);
|
||||
assert(c.is_bool());
|
||||
Z3_ast r = Z3_mk_ite(c.ctx(), c, t, e);
|
||||
c.check_error();
|
||||
return expr(c.ctx(), r);
|
||||
}
|
||||
|
||||
friend expr operator==(expr const & a, expr const & b) {
|
||||
check_context(a, b);
|
||||
Z3_ast r = Z3_mk_eq(a.ctx(), a, b);
|
||||
|
|
Loading…
Reference in a new issue