Canonical CNFs in the imported depth-three model #
Literal polarity agrees in both models. Clause conversion removes duplicates, so it preserves evaluation and does not increase width. An OR of CNFs is converted with an exact gate count.
Convert a canonical CNF to the imported set-of-literals representation.
Equations
- F.toDepthThree = List.map (fun (C : List (Complexity.Literal n)) => (List.map (fun (l : Complexity.Literal n) => (l.var, l.polarity)) C).toFinset) F.clauses
Instances For
@[reducible, inline]
abbrev
Complexity.DepthThreeLowerBound.Circuit3.BottomIndex
{n : ℕ}
(Fs : List (Complexity.CNF n))
:
A clause occurrence, indexed by its CNF and then its position.
Equations
Instances For
noncomputable def
Complexity.DepthThreeLowerBound.Circuit3.bottomEquiv
{n : ℕ}
(Fs : List (Complexity.CNF n))
:
Enumerate clause occurrences as numbered bottom gates.
Equations
Instances For
def
Complexity.DepthThreeLowerBound.Circuit3.clauseInputs
{n : ℕ}
(C : List (Complexity.Literal n))
:
Convert canonical literals to signed gate inputs.
Equations
- Complexity.DepthThreeLowerBound.Circuit3.clauseInputs C = List.map (fun (l : Complexity.Literal n) => Sum.inl (l.var, l.polarity)) C
Instances For
noncomputable def
Complexity.DepthThreeLowerBound.Circuit3.ofCNFs
{n : ℕ}
(Fs : List (Complexity.CNF n))
:
Realize an OR of canonical CNFs as an unrestricted three-layer circuit.
Equations
- One or more equations did not get rendered due to their size.