New IC3/PDR engine#1817
Draft
kroening wants to merge 1 commit into
Draft
Conversation
f3eb41c to
b813b81
Compare
2f663c1 to
1d2fe93
Compare
Word-level IC3/PDR engine using CBMC's decision procedures. Per-frame SAT solvers via cnf_clause_listt copy_to(). Lifting solver uses IC3's MiniSAT with releaseVar for clean activation literal management. Key features: - Per-frame SAT solvers via CNF replay - Lifting with IC3's MiniSAT (releaseVar for activation cleanup) - Compositional shortening for large cubes - down + CTG generalization with predecessor intersection - Sound conflict-based cube reduction with init-safety repair - Duplicate obligation detection + re-queuing at level+1 - Skip already-pushed clauses in propagation - Literal activity heuristic + clause subsumption Inspired by rIC3 (arXiv:2502.13605). Performance: pdtvispeterson 466ms (old: 67ms), bobcount 691ms (old: 82ms)
1d2fe93 to
1a019e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Word-level IC3/PDR engine using CBMC's decision procedures. Uses
unwind()to encode the transition relation into aboolbvtsolver, operating on word-level state variables rather than individual AIG bits. Inspired by rIC3 (arXiv:2502.13605).Includes regression tests for proved properties, refuted properties (initial state and multi-step), and unsupported property rejection.