mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
Add merge_level
This commit is contained in:
parent
70785a095e
commit
5e545c8f86
2 changed files with 10 additions and 0 deletions
|
@ -23,6 +23,15 @@ Author:
|
|||
|
||||
namespace polysat {
|
||||
|
||||
unsigned solver::merge_level(euf::enode* a, euf::enode* b) {
|
||||
sat::literal_vector r;
|
||||
ctx.get_eq_antecedents(a, b, r);
|
||||
unsigned level = 0;
|
||||
for (sat::literal lit : r)
|
||||
level = std::max(level, s().lvl(lit));
|
||||
return level;
|
||||
}
|
||||
|
||||
// walk the egraph starting with pvar for suffix overlaps.
|
||||
void solver::get_bitvector_suffixes(pvar pv, offset_slices& out) {
|
||||
uint_set seen;
|
||||
|
|
|
@ -111,6 +111,7 @@ namespace polysat {
|
|||
|
||||
sat::check_result intblast();
|
||||
|
||||
unsigned merge_level(euf::enode* a, euf::enode* b);
|
||||
void explain_slice(pvar v, pvar w, unsigned offset, std::function<void(euf::enode*, euf::enode*)> const& consume);
|
||||
void explain_fixed(pvar v, fixed_slice const& s, std::function<void(euf::enode*, euf::enode*)> const& consume_eq);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue