Skip to content

New IC3/PDR engine#1817

Draft
kroening wants to merge 1 commit into
mainfrom
new-ic3-engine
Draft

New IC3/PDR engine#1817
kroening wants to merge 1 commit into
mainfrom
new-ic3-engine

Conversation

@kroening
Copy link
Copy Markdown
Collaborator

@kroening kroening commented Apr 21, 2026

Word-level IC3/PDR engine using CBMC's decision procedures. Uses unwind() to encode the transition relation into a boolbvt solver, 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.

@kroening kroening force-pushed the new-ic3-engine branch 5 times, most recently from f3eb41c to b813b81 Compare April 21, 2026 05:37
@kroening kroening changed the title New IC3: AIG-based IC3/PDR engine New IC3/PDR engine Apr 21, 2026
@kroening kroening force-pushed the new-ic3-engine branch 23 times, most recently from 2f663c1 to 1d2fe93 Compare April 22, 2026 17:32
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant