mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 20:05:51 +00:00
arith_solver (#4733)
* porting arithmetic solver * integrating arithmetic * lp Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2841796a92
commit
44679d8f5b
33 changed files with 3172 additions and 403 deletions
|
@ -88,6 +88,8 @@ namespace array {
|
|||
m_constraint->initialize(m_constraint.get(), this);
|
||||
}
|
||||
|
||||
solver::~solver() {}
|
||||
|
||||
sat::check_result solver::check() {
|
||||
force_push();
|
||||
// flet<bool> _is_redundant(m_is_redundant, true);
|
||||
|
@ -108,6 +110,8 @@ namespace array {
|
|||
}
|
||||
|
||||
std::ostream& solver::display(std::ostream& out) const {
|
||||
if (get_num_vars() > 0)
|
||||
out << "array\n";
|
||||
for (unsigned i = 0; i < get_num_vars(); ++i) {
|
||||
auto& d = get_var_data(i);
|
||||
out << var2enode(i)->get_expr_id() << " " << mk_bounded_pp(var2expr(i), m, 2) << "\n";
|
||||
|
@ -117,6 +121,7 @@ namespace array {
|
|||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
std::ostream& solver::display_info(std::ostream& out, char const* id, euf::enode_vector const& v) const {
|
||||
if (v.empty())
|
||||
return out;
|
||||
|
@ -163,6 +168,11 @@ namespace array {
|
|||
m_find.merge(eq.v1(), eq.v2());
|
||||
}
|
||||
|
||||
void solver::new_diseq_eh(euf::th_eq const& eq) {
|
||||
force_push();
|
||||
push_axiom(extensionality_axiom(var2enode(eq.v1()), var2enode(eq.v2())));
|
||||
}
|
||||
|
||||
bool solver::unit_propagate() {
|
||||
if (m_qhead == m_axiom_trail.size())
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue