Skip to content

Conversation

@uulm-janbaudisch
Copy link
Collaborator

True and false nodes are now prevented from deletion when they are root nodes. Additionally, the tseitin transformation now allows for boolean root nodes.

Fixes #86.
Fixes #63.

A true or false d-DNNF could previously result in an empty graph, leading to panics during processing.
Now, chain deletions replace a chain instead of fully removing it.
Additionally, root nodes are not removed, even when they are true or false.
Boolean nodes previously led to panics, although they are valid for root nodes (only).
These are now handled by a simple cnf with model count 0 (false) or 1 (true).
@uulm-janbaudisch uulm-janbaudisch self-assigned this Jan 7, 2026
@uulm-janbaudisch uulm-janbaudisch changed the title Fix parser Fix Parsing d-DNNFs Resulting in Boolean Root Nodes Jan 7, 2026
As boolean nodes are removed as a node type.
Instead, the attribute `kind` specifies whether the d-DNNF is a normal one without boolean nodes or a special case.
A special d-DNNF is either a tautology (true root node) or contradiction (false root node).
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.

Fix parsing of d-DNNF containing a single false node Tseitin: Handle true and false nodes

2 participants