mirror of
https://github.com/Z3Prover/z3
synced 2025-04-27 10:55:50 +00:00
model refactor (#4723)
* refactor model fixing Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * missing cond macro Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * file Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * file Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * add macros dependency Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * deps and debug Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * add dependency to normal forms Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * build issues Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * compile Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix leal regression * complete model fixer Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fold back private functionality to model_finder Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * avoid duplicate fixed callbacks Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6cc52e04c3
commit
fa58a36b9f
42 changed files with 2060 additions and 1494 deletions
|
@ -24,8 +24,6 @@ namespace euf {
|
|||
|
||||
// one table per function symbol
|
||||
|
||||
static func_decl* decl(enode* n) { return n->get_decl(); }
|
||||
|
||||
|
||||
/**
|
||||
\brief Congruence table.
|
||||
|
@ -45,7 +43,7 @@ namespace euf {
|
|||
bool operator()(enode * n1, enode * n2) const {
|
||||
SASSERT(n1->num_args() == 1);
|
||||
SASSERT(n2->num_args() == 1);
|
||||
SASSERT(decl(n1) == decl(n2));
|
||||
SASSERT(n1->get_decl() == n2->get_decl());
|
||||
return get_root(n1, 0) == get_root(n2, 0);
|
||||
}
|
||||
};
|
||||
|
@ -63,7 +61,7 @@ namespace euf {
|
|||
bool operator()(enode * n1, enode * n2) const {
|
||||
SASSERT(n1->num_args() == 2);
|
||||
SASSERT(n2->num_args() == 2);
|
||||
SASSERT(decl(n1) == decl(n2));
|
||||
SASSERT(n1->get_decl() == n2->get_decl());
|
||||
return
|
||||
get_root(n1, 0) == get_root(n2, 0) &&
|
||||
get_root(n1, 1) == get_root(n2, 1);
|
||||
|
@ -90,7 +88,7 @@ namespace euf {
|
|||
SASSERT(n1->num_args() == 2);
|
||||
SASSERT(n2->num_args() == 2);
|
||||
|
||||
SASSERT(decl(n1) == decl(n2));
|
||||
SASSERT(n1->get_decl() == n2->get_decl());
|
||||
enode* c1_1 = get_root(n1, 0);
|
||||
enode* c1_2 = get_root(n1, 1);
|
||||
enode* c2_1 = get_root(n2, 0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue