mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-29 18:52:29 +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
					
				
					 2 changed files with 23 additions and 0 deletions
				
			
		|  | @ -337,6 +337,15 @@ void ite_example() { | ||||||
|     std::cout << "term: " << ite << "\n"; |     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. |    \brief Small example using quantifiers. | ||||||
| */ | */ | ||||||
|  | @ -889,6 +898,7 @@ int main() { | ||||||
|         error_example(); std::cout << "\n"; |         error_example(); std::cout << "\n"; | ||||||
|         numeral_example(); std::cout << "\n"; |         numeral_example(); std::cout << "\n"; | ||||||
|         ite_example(); std::cout << "\n"; |         ite_example(); std::cout << "\n"; | ||||||
|  |         ite_example2(); std::cout << "\n"; | ||||||
|         quantifier_example(); std::cout << "\n"; |         quantifier_example(); std::cout << "\n"; | ||||||
|         unsat_core_example1(); std::cout << "\n"; |         unsat_core_example1(); std::cout << "\n"; | ||||||
|         unsat_core_example2(); std::cout << "\n"; |         unsat_core_example2(); std::cout << "\n"; | ||||||
|  |  | ||||||
|  | @ -620,6 +620,19 @@ namespace z3 { | ||||||
|             return expr(a.ctx(), r); |             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) { |         friend expr operator==(expr const & a, expr const & b) { | ||||||
|             check_context(a, b); |             check_context(a, b); | ||||||
|             Z3_ast r = Z3_mk_eq(a.ctx(), a, b); |             Z3_ast r = Z3_mk_eq(a.ctx(), a, b); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue