3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

fix axioms for extract, add extensionality checking for shared variables, convert exceptions to unknown status per #419

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-01-18 11:09:41 +05:30
parent 88362a1c3a
commit 85d44c5d66
17 changed files with 110 additions and 13 deletions

View file

@ -51,6 +51,7 @@ public:
virtual void get_model(model_ref & m) = 0;
virtual proof * get_proof() = 0;
virtual std::string reason_unknown() const = 0;
virtual void set_reason_unknown(char const* msg) = 0;
virtual void get_labels(svector<symbol> & r) = 0;
virtual ast_manager& get_manager() = 0;
};
@ -75,6 +76,7 @@ struct simple_check_sat_result : public check_sat_result {
virtual proof * get_proof();
virtual std::string reason_unknown() const;
virtual void get_labels(svector<symbol> & r);
virtual void set_reason_unknown(char const* msg) { m_unknown = msg; }
};
#endif

View file

@ -297,6 +297,11 @@ public:
return m_solver2->reason_unknown();
}
virtual void set_reason_unknown(char const* msg) {
m_solver1->set_reason_unknown(msg);
m_solver2->set_reason_unknown(msg);
}
virtual void get_labels(svector<symbol> & r) {
if (m_use_solver1_results)
return m_solver1->get_labels(r);

View file

@ -65,6 +65,7 @@ public:
virtual void get_model(model_ref & m);
virtual proof * get_proof();
virtual std::string reason_unknown() const;
virtual void set_reason_unknown(char const* msg);
virtual void get_labels(svector<symbol> & r) {}
virtual void set_progress_callback(progress_callback * callback) {}
@ -225,6 +226,12 @@ std::string tactic2solver::reason_unknown() const {
return std::string("unknown");
}
void tactic2solver::set_reason_unknown(char const* msg) {
if (m_result.get()) {
m_result->set_reason_unknown(msg);
}
}
unsigned tactic2solver::get_num_assertions() const {
return m_assertions.size();
}