c-cube / batsat

A (parametrized) Rust SAT solver originally based on MiniSat
https://docs.rs/batsat/
Other
31 stars 4 forks source link

Add `Theory::explain_propagation_final` for use in `analyze_final` #20

Open dewert99 opened 6 months ago

dewert99 commented 6 months ago

This allows theories to produce different explanations in analyze, and analyze_final. For example, if a theory knows (a && b) => c and c => d and is asked to explain d, it may prefer to explain using [c] in analyze to generate a better clause, but may as well explain using [a, b] in analyze_final since otherwise it would just be asked to explain c anyway.