3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 18:00:23 +00:00

refined difference logic check, consolidate scoped modes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-20 10:47:30 -07:00
parent 14aff67684
commit 090ca2e46c
2 changed files with 23 additions and 20 deletions

View file

@ -171,19 +171,32 @@ namespace datalog {
*/
void display_fact(context & ctx, app * f, std::ostream & out);
class scoped_coarse_proof {
ast_manager& m;
class scoped_proof_mode {
ast_manager& m;
proof_gen_mode m_mode;
public:
scoped_coarse_proof(ast_manager& m): m(m) {
scoped_proof_mode(ast_manager& m, proof_gen_mode mode): m(m) {
m_mode = m.proof_mode();
m.toggle_proof_mode(PGM_COARSE);
m.toggle_proof_mode(mode);
}
~scoped_coarse_proof() {
~scoped_proof_mode() {
m.toggle_proof_mode(m_mode);
}
};
class scoped_coarse_proof : public scoped_proof_mode {
public:
scoped_coarse_proof(ast_manager& m): scoped_proof_mode(m, PGM_COARSE) {}
};
class scoped_no_proof : public scoped_proof_mode {
public:
scoped_no_proof(ast_manager& m): scoped_proof_mode(m, PGM_DISABLED) {}
};
class variable_intersection
{
bool values_match(const expr * v1, const expr * v2);