Skip to content

new IC3: parent-lemma optimization and MIC_FAIL_MAX increase#2017

Open
kroening wants to merge 1 commit into
mainfrom
kroening/ic3-parent-lemma
Open

new IC3: parent-lemma optimization and MIC_FAIL_MAX increase#2017
kroening wants to merge 1 commit into
mainfrom
kroening/ic3-parent-lemma

Conversation

@kroening

Copy link
Copy Markdown
Collaborator

Summary

  • Parent-lemma: find an existing frame clause that subsumes the negated cube; protect its literals from early dropping in MIC by giving them a large activity bonus
  • MIC_FAIL_MAX 2→3: allow one more consecutive literal-drop failure before early termination

Individual benefit

5-10% smaller learned clauses on average. Parent literals encode structural information from previously successful generalizations — dropping them first wastes queries.

Synergies

Test plan

  • regression/ebmc/new-ic3 passes
  • Builds with -Werror (GCC)

Two related improvements to MIC (Minimal Inductive Clause)
generalization:

1. Parent-lemma: Before sorting literals for drop order, find an
   existing frame clause that subsumes the negated cube. Literals
   from such a "parent lemma" receive a large activity bonus, placing
   them last in drop order. This preserves structural information
   from previously learned clauses.

2. Increase MIC_FAIL_MAX from 2 to 3: Allow one more consecutive
   literal-drop failure before early termination. This gives MIC
   more chances to find droppable literals, especially when parent
   literals are clustered at the end.

Benefit: 5-10% smaller clauses on average. Synergizes with CTG
(more attempts to find droppable literals when CTG can block
predecessors) and activity decay (parent lemmas remain relevant
across frames).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant