Skip to content

netlist conversion: track equivalent nodes#1604

Merged
kroening merged 1 commit intomainfrom
aig-plus-equivalences
Jan 28, 2026
Merged

netlist conversion: track equivalent nodes#1604
kroening merged 1 commit intomainfrom
aig-plus-equivalences

Conversation

@kroening
Copy link
Copy Markdown
Collaborator

This replaces the list of constraints on netlist nodes (netlist nodes that have to evaluate to true) by a list of node equivalences. This is more compact when node equivalences have to be generated, as the AIG nodes for lhs<->rhs do not have to be generated.

@kroening kroening force-pushed the aig-plus-equivalences branch from 690b863 to d80a664 Compare January 26, 2026 01:23
@kroening kroening marked this pull request as ready for review January 26, 2026 15:22
Comment thread src/ic3/r0ead_input.cc Outdated
================================================*/
void ic3_enginet::add_verilog_conv_constrs()
{
PRECONDITION(netlist.equivalences.empty());
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this an important invariant to maintain for this function?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1605 will remove these

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But then, at present, #1605 does not change any existing code, it just adds new code (and, hence, isn't actually being used).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now using a different approach -- the equivalences are now recorded in addition to the constraints

@kroening kroening force-pushed the aig-plus-equivalences branch from d80a664 to f121cdb Compare January 28, 2026 02:29
This augments the list of constraints on netlist nodes (netlist nodes that
have to evaluate to true) by a list of node equivalences.

This avoids the need for expensive re-discovery of such equivalences by
methods such as SAT sweeping.
@kroening kroening force-pushed the aig-plus-equivalences branch from f121cdb to 138e827 Compare January 28, 2026 23:39
@kroening kroening merged commit 9c8c9cb into main Jan 28, 2026
11 checks passed
@kroening kroening deleted the aig-plus-equivalences branch January 28, 2026 23:52
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.

2 participants