mirror of
https://github.com/Z3Prover/z3
synced 2025-08-02 01:13:18 +00:00
wip - throttle AC completion, enable congruences over bound bodies
- AC completion which is exposed as an option to the new congruence closure core used roots of E-Graph which gets ordering of monomials out of sync. - Added injective function handling to AC completion - Move to model where all equations, also unit to unit are in completion - throw in first level bound bodies into the E-graph to enable canonization on them.
This commit is contained in:
parent
35b1d09425
commit
0995928f6e
7 changed files with 345 additions and 76 deletions
|
@ -26,11 +26,15 @@ namespace euf {
|
|||
}
|
||||
|
||||
void plugin::push_merge(enode* a, enode* b, justification j) {
|
||||
if (a->get_root() == b->get_root())
|
||||
return; // already merged
|
||||
TRACE(euf, tout << "push-merge " << g.bpp(a) << " == " << g.bpp(b) << " " << j << "\n");
|
||||
g.push_merge(a, b, j);
|
||||
}
|
||||
|
||||
void plugin::push_merge(enode* a, enode* b) {
|
||||
if (a->get_root() == b->get_root())
|
||||
return; // already merged
|
||||
TRACE(plugin, tout << g.bpp(a) << " == " << g.bpp(b) << "\n");
|
||||
g.push_merge(a, b, justification::axiom(get_id()));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue