mirror of
https://github.com/Z3Prover/z3
synced 2025-04-27 02:45:51 +00:00
Add note on potential replay problem
This commit is contained in:
parent
0313f91dc2
commit
f51d5c2fe9
1 changed files with 9 additions and 0 deletions
|
@ -496,6 +496,15 @@ namespace polysat {
|
|||
// when substituting polynomials, it will now take into account the replayed variables, which may itself depend on previous propagations.
|
||||
// will we get into trouble with cyclic dependencies?
|
||||
// But we do want to take into account variables that are assigned but not yet propagated.
|
||||
// Possible solutions:
|
||||
// - keep the replay queue outside of this method?
|
||||
// prioritize putting stuff on the stack from the replay queue.
|
||||
// this might however introduce new propagations in between? maybe that is ok?
|
||||
// - when evaluating/narrowing instead of passing the full assignment,
|
||||
// we pass a "dependency level" which is basically an index into the search stack.
|
||||
// then we get an assignment up to that dependency level.
|
||||
// each literal can only depend on entries with lower dependency level
|
||||
// (that is the invariant that propagations are justified by a prefix of the search stack.)
|
||||
}
|
||||
else
|
||||
static_assert(always_false<T>::value, "non-exhaustive visitor");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue