De Morgan duality for bounded normal forms #
Negating every literal turns a term into its complementary clause and a clause into its complementary term. Mapping this operation across the outer list gives exact DNF/CNF duals. This module proves semantic complementation, width preservation, compatibility with restriction, and invariance of semantic decision-tree depth under output negation.
Flip the satisfying value of every literal in a literal set.
Equations
- set.negate = { requirements := fun (index : Fin n) => Option.map (fun (value : Bool) => !value) (set.requirements index) }
Instances For
A fixed value satisfies a negated literal exactly when it conflicts with the source literal.
A fixed value conflicts with a negated literal exactly when it satisfies the source literal.
Removing fixed coordinates commutes with literal negation.
Clause restriction of a negated term is the negation of term restriction.
Term restriction of a negated clause is the negation of clause restriction.
De Morgan duality preserves a width bound.
De Morgan duality preserves a width bound.
DNF restriction commutes exactly with De Morgan duality.
CNF restriction commutes exactly with De Morgan duality.
Negating all leaves preserves an upper bound on semantic decision-tree depth.
Semantic upper decision-tree depth is invariant under output negation.
Negating all leaves preserves a lower bound on semantic decision-tree depth.
Semantic lower decision-tree depth is invariant under output negation.