Source code for logic1.theories.Sets.bnf
from ... import abc
from .atomic import AtomicFormula, Variable
from .simplify import simplify as _simplify
from .typing import Formula, Never
[docs]
class BooleanNormalForm(
abc.bnf.BooleanNormalForm[AtomicFormula, Variable, Variable, Never]):
"""Implements the abstract method :meth:`simplify
<.abc.bnf.BooleanNormalForm.simplify>` of its super class
:class:`.abc.bnf.BooleanNormalForm`. In addition, this class inherits
:meth:`cnf <.abc.bnf.BooleanNormalForm.cnf>` and :meth:`dnf
<.abc.bnf.BooleanNormalForm.dnf>`, which should be called via
:func:`.cnf` and :func:`.dnf` as described below, respectively.
"""
def simplify(self, f: Formula) -> Formula:
"""Implements the abstract method
:meth:`.abc.bnf.BooleanNormalForm.simplify`.
"""
return _simplify(f)
cnf = BooleanNormalForm().cnf
"""User interface for the computation of a conjunctive normal form.
"""
dnf = BooleanNormalForm().dnf
"""User interface for the computation of a disjunctive normal form.
"""