Skip to content
Discussion options

You must be logged in to vote

There could be two ways:

You can change the propagator to deal directly with 3 cases:

si_at_j_id and ~si_at_prev_step and ~a1_at_j => a3_at_j
si_at_j_id and ~si_at_prev_step and ~a3_at_j => a1_at_j
si_at_j_id and ~a3_at_j and ~a1_at_j => si_at_prev_step

You may need to re-propagate the clause multiple times in separate branches. It should not be the case that the clause is false in the same backtracking context. That is, you should observe a pop before you get anything that contracts the clause. If you do, I am not sure what is going on without digging into details.

It might be possible to re-assert the propagated clause during a callback to pop as well. This interaction is not yet tested.

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@wbthomason
Comment options

@NikolajBjorner
Comment options

@NikolajBjorner
Comment options

@wbthomason
Comment options

Answer selected by wbthomason
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants