Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix CNF and DNF transformations #128

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Fix CNF and DNF transformations #128

wants to merge 3 commits into from

Conversation

salmans
Copy link
Owner

@salmans salmans commented Dec 5, 2022

CNF and DNF data structures now support quantifiers (universal and existential), followed by a matrix in normal form.
This allows for converting to CNF/DNF without Skolemization, which is needed for implementing certain transformation algorithms to GNF (will be implemented next). Now, any formula in PNF can be converted to CNF/DNF.
New types CnfClauseSet and DnfClauseSet are replacing the old structures Cnf and Dnf, accompanied with new traits ToCnfClauseSet and ToDnfClauseSet, which is used to convert a formula that is already in Snf.
Minor refactoring includes: applying clippy suggestions and renaming formula types to ones that are idiomatic in rust (e.g., CNF -> Cnf, FOF -> Fof, etc.).

Now CNF and DNF formulas can contain quantifiers, followed by a matrix that is in a normal form.
Any PNF can be converted to a CNF and DNF without Skolemization.
CNFClauseSet and DNFClauseSet are replacing the old CNF and DNF for a quantifier-free representation, obtained after Skolemization.
CNF -> Cnf
DNF -> Dnf
FOF -> Fof
SNF -> Snf
PNF -> Pnf
PCF -> Pcf
@salmans salmans self-assigned this Dec 5, 2022
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