mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Merge pull request #218 from cgcgbcbc/fix/implies
fix implies(expr const &, expr const &) in z3++.h
This commit is contained in:
		
						commit
						1364f39f61
					
				
					 1 changed files with 8 additions and 7 deletions
				
			
		| 
						 | 
					@ -647,13 +647,7 @@ namespace z3 {
 | 
				
			||||||
        */
 | 
					        */
 | 
				
			||||||
        friend expr operator||(bool a, expr const & b) { return b.ctx().bool_val(a) || b; }
 | 
					        friend expr operator||(bool a, expr const & b) { return b.ctx().bool_val(a) || b; }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        friend expr implies(expr const & a, expr const & b) {
 | 
					        friend expr implies(expr const & a, expr const & b);
 | 
				
			||||||
            check_context(a, b);
 | 
					 | 
				
			||||||
            assert(a.is_bool() && b.is_bool());
 | 
					 | 
				
			||||||
            Z3_ast r = Z3_mk_implies(a.ctx(), a, b);
 | 
					 | 
				
			||||||
            a.check_error();
 | 
					 | 
				
			||||||
            return expr(a.ctx(), r);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        friend expr implies(expr const & a, bool b);
 | 
					        friend expr implies(expr const & a, bool b);
 | 
				
			||||||
        friend expr implies(bool a, expr const & b);
 | 
					        friend expr implies(bool a, expr const & b);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -897,6 +891,13 @@ namespace z3 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   };
 | 
					   };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inline expr implies(expr const & a, expr const & b) {
 | 
				
			||||||
 | 
					        check_context(a, b);
 | 
				
			||||||
 | 
					        assert(a.is_bool() && b.is_bool());
 | 
				
			||||||
 | 
					        Z3_ast r = Z3_mk_implies(a.ctx(), a, b);
 | 
				
			||||||
 | 
					        a.check_error();
 | 
				
			||||||
 | 
					        return expr(a.ctx(), r);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    inline expr implies(expr const & a, bool b) { return implies(a, a.ctx().bool_val(b)); }
 | 
					    inline expr implies(expr const & a, bool b) { return implies(a, a.ctx().bool_val(b)); }
 | 
				
			||||||
    inline expr implies(bool a, expr const & b) { return implies(b.ctx().bool_val(a), b); }
 | 
					    inline expr implies(bool a, expr const & b) { return implies(b.ctx().bool_val(a), b); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue