Gate-count corollaries of the capacity theorem #
A run with r input-reading gates changes at most 2 ^ r - 1 times, so it costs at most
4 ^ r, and at most 4 · 2 ^ r. Splitting the gates into single-gate runs bounds the product of
the run costs by 4 ^ s_in; a split into B runs bounds it by 4 ^ B · 2 ^ s_in. A multilevel
threshold function F(⟨w, x⟩) is a decomposition with one block.
theorem
Algebraic.Threshold.Program.DirectionRuns.sum_size
{n s : ℕ}
{C : Program n s}
{B : ℕ}
(R : C.DirectionRuns B)
:
noncomputable def
Algebraic.Threshold.Program.gateRuns
{n s : ℕ}
(C : Program n s)
:
C.DirectionRuns s
The split of the gates into single-gate runs, each along its own input weight vector.
Equations
Instances For
def
Algebraic.Threshold.Program.singleRun
{n s : ℕ}
(C : Program n s)
(w : Fin n → ℝ)
(along : ∀ (j : Fin s), ∃ (c : ℝ), C.inputWeight j = c • w)
:
C.DirectionRuns 1
The single run of a program whose input weight vectors are all multiples of w.
Equations
Instances For
theorem
Algebraic.Threshold.Program.DirectionRuns.prod_cost_le_four_pow
{n s : ℕ}
{C : Program n s}
{B : ℕ}
(R : C.DirectionRuns B)
:
theorem
Algebraic.Threshold.Program.DirectionRuns.prod_cost_le_four_pow_mul
{n s : ℕ}
{C : Program n s}
{B : ℕ}
(R : C.DirectionRuns B)
:
theorem
Algebraic.Threshold.two_pow_lt_of_directionRuns_internal
{n s : ℕ}
{f : Cslib.BooleanFunction n}
{K : ℕ}
(hf : TwoSidedRectangleFree f K)
{C : Program n s}
(hC : C.Computes f)
{B : ℕ}
(R : C.DirectionRuns B)
:
noncomputable def
Algebraic.Threshold.multilevelDecomposition
{n : ℕ}
{f : Cslib.BooleanFunction n}
(w : Fin n → ℝ)
(F : ℝ → Bool)
{T : ℕ}
(hF : ChangesAtMost F T)
(hfF : ∀ (x : Cslib.BitString n), f x = F (weightedSum w x))
:
The one-block decomposition of a multilevel threshold function F(⟨w, x⟩).
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Algebraic.Threshold.two_pow_lt_of_multilevel_internal
{n : ℕ}
{f : Cslib.BooleanFunction n}
{K : ℕ}
(hf : TwoSidedRectangleFree f K)
(w : Fin n → ℝ)
(F : ℝ → Bool)
{T : ℕ}
(hF : ChangesAtMost F T)
(hfF : ∀ (x : Cslib.BitString n), f x = F (weightedSum w x))
:
theorem
Algebraic.Threshold.two_pow_sub_lt_of_multilevel_internal
{n : ℕ}
{f : Cslib.BooleanFunction n}
{K : ℕ}
(hf : TwoSidedRectangleFree f K)
{k : ℕ}
(hK : K ≤ 2 ^ k)
(w : Fin n → ℝ)
(F : ℝ → Bool)
{T : ℕ}
(hF : ChangesAtMost F T)
(hfF : ∀ (x : Cslib.BitString n), f x = F (weightedSum w x))
(hn : 2 * k + 4 ≤ n)
: