mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-11 05:28:34 -05:00
Previously a fix was introduced to mitigate the fact that some atoms couldn't be propagated at level 0 because of local assumptions. However that fix didn't take into account propagation that implicated the already propagated atom: for instance consider an atom [a] propagted at level 1 because of some local hyp, and then atoms [b] propagated at level 1 because [a] is true in a clause [C = not a \/ b]. If we propagte 0 and modify its level in-place as done in the previous fix, then we should also propagate [b] at level 0, which is hard. Instead of modifying levels in place, we simply store unit clauses at level 0 in a stack, which we transfer to the clauses to add when we pop local hyps. |
||
|---|---|---|
| .. | ||
| expr_intf.ml | ||
| external.ml | ||
| external.mli | ||
| formula_intf.ml | ||
| internal.ml | ||
| internal.mli | ||
| plugin_intf.ml | ||
| res.ml | ||
| res.mli | ||
| res_intf.ml | ||
| solver_intf.ml | ||
| solver_types.ml | ||
| solver_types.mli | ||
| solver_types_intf.ml | ||
| theory_intf.ml | ||