mirror of
https://github.com/Z3Prover/z3
synced 2025-08-14 06:45:25 +00:00
slicing equivalent vars + explain
This commit is contained in:
parent
e09636065b
commit
b4902f374b
2 changed files with 44 additions and 0 deletions
|
@ -375,6 +375,16 @@ namespace polysat {
|
|||
void collect_fixed(pvar v, justified_fixed_bits_vector& out);
|
||||
void explain_fixed(enode* just, std::function<void(sat::literal)> const& on_lit, std::function<void(pvar)> const& on_var);
|
||||
|
||||
/**
|
||||
* Collect variables that are equivalent to v (including v itself)
|
||||
*
|
||||
* NOTE: this might miss some variables that are equal due to equivalent base slices. With 'polysat.slicing.congruence=true' and after propagate(), it should return all equal variables.
|
||||
*/
|
||||
pvar_vector equivalent_vars(pvar v) const;
|
||||
|
||||
/** Explain why variables x and y are equivalent */
|
||||
void explain_equal(pvar x, pvar y, std::function<void(sat::literal)> const& on_lit);
|
||||
|
||||
std::ostream& display(std::ostream& out) const;
|
||||
std::ostream& display_tree(std::ostream& out) const;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue