Three-layer normalization of depth-three formulas #
Flatten like-polarity gates and pad leaves. Every depth-three formula, or its complement, is an OR of CNFs with total clause-and-conjunction count at most twice its tree size.
theorem
Complexity.AC0Formula.and_depth_two_cnf
{n : ℕ}
(fs : AC0Forest n)
(hd : forestDepth fs ≤ 1)
:
∃ (F : CNF n), F.complexity ≤ forestSize fs ∧ ∀ (x : BitString n), F.eval x = evalAll x fs
Total number of clause and conjunction gates in a list of CNFs.
Equations
- Complexity.AC0Formula.cnfCost Fs = (List.map (fun (F : Complexity.CNF n) => F.complexity + 1) Fs).sum
Instances For
theorem
Complexity.AC0Formula.depth_three_source_proof
{n : ℕ}
(f : AC0Formula n)
(hd : f.depth ≤ 3)
: