8.6. Randomized decision tree complexity
-
FABL.FiniteDecisionTree[complete] -
FABL.FiniteAlphabetDecisionTree[complete] -
FABL.FiniteDecisionTree.eval[complete] -
FABL.FiniteDecisionTree.queryTrace[complete] -
FABL.FiniteDecisionTree.querySet[complete] -
FABL.FiniteDecisionTree.queryCount[complete] -
FABL.FiniteDecisionTree.leafCount[complete] -
FABL.FiniteDecisionTree.depth[complete] -
FABL.FiniteDecisionTree.Computes[complete] -
FABL.FiniteDecisionTree.ofF₂DecisionTree[complete] -
FABL.FiniteDecisionTree.completeTree[complete] -
FABL.RandomizedDecisionTree[complete] -
FABL.RandomizedDecisionTree.inputCost[complete] -
FABL.RandomizedDecisionTree.worstCaseCost[complete] -
FABL.RandomizedDecisionTree.complexity[complete]
Definition 8.61. A zero-error randomized decision tree computing
f:\{-1,1\}^n\to\mathbb R is a probability distribution over
deterministic decision trees that compute f. Its cost on x is the
expected number of queried coordinates, its cost is the maximum of this
quantity over x, and \operatorname{RDT}(f) is the minimum cost over all
such randomized trees.
Lean code for Definition8.6.1●15 definitions
Associated Lean declarations
-
FABL.FiniteDecisionTree[complete]
-
FABL.FiniteAlphabetDecisionTree[complete]
-
FABL.FiniteDecisionTree.eval[complete]
-
FABL.FiniteDecisionTree.queryTrace[complete]
-
FABL.FiniteDecisionTree.querySet[complete]
-
FABL.FiniteDecisionTree.queryCount[complete]
-
FABL.FiniteDecisionTree.leafCount[complete]
-
FABL.FiniteDecisionTree.depth[complete]
-
FABL.FiniteDecisionTree.Computes[complete]
-
FABL.FiniteDecisionTree.ofF₂DecisionTree[complete]
-
FABL.FiniteDecisionTree.completeTree[complete]
-
FABL.RandomizedDecisionTree[complete]
-
FABL.RandomizedDecisionTree.inputCost[complete]
-
FABL.RandomizedDecisionTree.worstCaseCost[complete]
-
FABL.RandomizedDecisionTree.complexity[complete]
-
FABL.FiniteDecisionTree[complete] -
FABL.FiniteAlphabetDecisionTree[complete] -
FABL.FiniteDecisionTree.eval[complete] -
FABL.FiniteDecisionTree.queryTrace[complete] -
FABL.FiniteDecisionTree.querySet[complete] -
FABL.FiniteDecisionTree.queryCount[complete] -
FABL.FiniteDecisionTree.leafCount[complete] -
FABL.FiniteDecisionTree.depth[complete] -
FABL.FiniteDecisionTree.Computes[complete] -
FABL.FiniteDecisionTree.ofF₂DecisionTree[complete] -
FABL.FiniteDecisionTree.completeTree[complete] -
FABL.RandomizedDecisionTree[complete] -
FABL.RandomizedDecisionTree.inputCost[complete] -
FABL.RandomizedDecisionTree.worstCaseCost[complete] -
FABL.RandomizedDecisionTree.complexity[complete]
-
inductivedefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
inductive FABL.FiniteDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) : Finset (Fin n) → Type (max u_1 u_2)
inductive FABL.FiniteDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) : Finset (Fin n) → Type (max u_1 u_2)
A deterministic decision tree over a finite alphabet. The index is the set of coordinates still available for query, enforcing at most one query per coordinate on every path.
Constructors
FABL.FiniteDecisionTree.leaf.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (value : α) : FABL.FiniteDecisionTree Ω α n available
A leaf returns its label.
FABL.FiniteDecisionTree.query.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (coordinate : Fin n) (mem_available : coordinate ∈ available) (child : Ω → FABL.FiniteDecisionTree Ω α n (available.erase coordinate)) : FABL.FiniteDecisionTree Ω α n available
Query an available coordinate and choose the corresponding alphabet-labelled child.
-
abbrevdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
abbrev FABL.FiniteAlphabetDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) : Type (max u_1 u_2)
abbrev FABL.FiniteAlphabetDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) : Type (max u_1 u_2)
A complete finite-alphabet decision tree starts with every coordinate available.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.eval.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → (Fin n → Ω) → α
def FABL.FiniteDecisionTree.eval.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → (Fin n → Ω) → α
Execute a deterministic tree on an input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.queryTrace.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → (Fin n → Ω) → List (Fin n)
def FABL.FiniteDecisionTree.queryTrace.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → (Fin n → Ω) → List (Fin n)
Ordered trace of queried coordinates on one input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.querySet.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (x : Fin n → Ω) : Finset (Fin n)
def FABL.FiniteDecisionTree.querySet.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (x : Fin n → Ω) : Finset (Fin n)
The set of coordinates queried on one input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.queryCount.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (x : Fin n → Ω) : ℕ
def FABL.FiniteDecisionTree.queryCount.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (x : Fin n → Ω) : ℕ
Number of queries made on one input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.leafCount.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → ℕ
def FABL.FiniteDecisionTree.leafCount.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → ℕ
Number of leaves of a finite-alphabet decision tree.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.depth.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → ℕ
def FABL.FiniteDecisionTree.depth.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] {available : Finset (Fin n)} : FABL.FiniteDecisionTree Ω α n available → ℕ
Maximum root-to-leaf query count.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.Computes.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (f : (Fin n → Ω) → α) : Prop
def FABL.FiniteDecisionTree.Computes.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω α n available) (f : (Fin n → Ω) → α) : Prop
A tree computes `f` when its evaluation is extensionally equal to `f`.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.ofF₂DecisionTree.{u_2} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.F₂DecisionTree n α available → FABL.FiniteDecisionTree (ZMod 2) α n available
def FABL.FiniteDecisionTree.ofF₂DecisionTree.{u_2} {α : Type u_2} {n : ℕ} {available : Finset (Fin n)} : FABL.F₂DecisionTree n α available → FABL.FiniteDecisionTree (ZMod 2) α n available
Regard a Chapter 3 binary tree as a finite-alphabet tree over `ZMod 2`.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.completeTree.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Nonempty Ω] (f : (Fin n → Ω) → α) : FABL.FiniteAlphabetDecisionTree Ω α n
def FABL.FiniteDecisionTree.completeTree.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Nonempty Ω] (f : (Fin n → Ω) → α) : FABL.FiniteAlphabetDecisionTree Ω α n
Canonical complete tree representing any function on a finite product alphabet.
-
structuredefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
structure FABL.RandomizedDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) (f : (Fin n → Ω) → α) : Type (max (max 1 u_1) u_2)
structure FABL.RandomizedDecisionTree.{u_1, u_2} (Ω : Type u_1) (α : Type u_2) (n : ℕ) (f : (Fin n → Ω) → α) : Type (max (max 1 u_1) u_2)
O'Donnell, Definition 8.61: a finite presentation of a probability distribution over deterministic trees, all of which compute `f` exactly.
Fields
Seed : Type
Finite random seed selecting a deterministic tree.
seedFintype : Fintype self.Seed
The seed space is finite.
seedNonempty : Nonempty self.Seed
The seed space is nonempty.
seedLaw : PMF self.Seed
Distribution of the random seed.
tree : self.Seed → FABL.FiniteAlphabetDecisionTree Ω α n
Deterministic tree selected by a seed.
computes : ∀ (seed : self.Seed), FABL.FiniteDecisionTree.Computes (self.tree seed) f
Zero-error correctness.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.inputCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (x : Fin n → Ω) : ℝ
def FABL.RandomizedDecisionTree.inputCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (x : Fin n → Ω) : ℝ
Expected query count on a fixed input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) : ℝ
def FABL.RandomizedDecisionTree.worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) : ℝ
Definition 8.61: worst-case expected query cost.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.complexity.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] [Nonempty Ω] (f : (Fin n → Ω) → α) : ℝ
def FABL.RandomizedDecisionTree.complexity.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] [Nonempty Ω] (f : (Fin n → Ω) → α) : ℝ
Definition 8.61: zero-error randomized decision-tree complexity.
-
FABL.RandomizedDecisionTree.queryProbabilityOnInput[complete] -
FABL.RandomizedDecisionTree.queryProbability[complete] -
FABL.RandomizedDecisionTree.averageCost[complete] -
FABL.RandomizedDecisionTree.sum_queryProbabilityOnInput_eq_inputCost[complete] -
FABL.RandomizedDecisionTree.sum_queryProbability_eq_averageCost[complete] -
FABL.RandomizedDecisionTree.averageCost_le_worstCaseCost[complete] -
FABL.RandomizedDecisionTree.averageComplexity[complete]
Definition 8.62. For a randomized tree T, define
\delta_i(T)=
\Pr_{x\text{ uniform},\,T}[T\text{ queries coordinate }i],
\Delta(T)=\sum_i\delta_i(T)
=\mathbb E_{x,T}[\#\text{ queried coordinates}].
Let \Delta(f) be the minimum over randomized trees computing f.
For a general finite product space define
\delta_i^{(\pi)}, \Delta^{(\pi)} analogously. Then
\Delta^{(\pi)}(f)
\le\operatorname{RDT}(f)
\le\operatorname{DT}(f).
Lean code for Definition8.6.2●7 declarations
Associated Lean declarations
-
FABL.RandomizedDecisionTree.queryProbabilityOnInput[complete]
-
FABL.RandomizedDecisionTree.queryProbability[complete]
-
FABL.RandomizedDecisionTree.averageCost[complete]
-
FABL.RandomizedDecisionTree.sum_queryProbabilityOnInput_eq_inputCost[complete]
-
FABL.RandomizedDecisionTree.sum_queryProbability_eq_averageCost[complete]
-
FABL.RandomizedDecisionTree.averageCost_le_worstCaseCost[complete]
-
FABL.RandomizedDecisionTree.averageComplexity[complete]
-
FABL.RandomizedDecisionTree.queryProbabilityOnInput[complete] -
FABL.RandomizedDecisionTree.queryProbability[complete] -
FABL.RandomizedDecisionTree.averageCost[complete] -
FABL.RandomizedDecisionTree.sum_queryProbabilityOnInput_eq_inputCost[complete] -
FABL.RandomizedDecisionTree.sum_queryProbability_eq_averageCost[complete] -
FABL.RandomizedDecisionTree.averageCost_le_worstCaseCost[complete] -
FABL.RandomizedDecisionTree.averageComplexity[complete]
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.queryProbabilityOnInput.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (i : Fin n) (x : Fin n → Ω) : ℝ
def FABL.RandomizedDecisionTree.queryProbabilityOnInput.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (i : Fin n) (x : Fin n → Ω) : ℝ
Probability that coordinate `i` is queried on input `x`.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.queryProbability.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) (i : Fin n) : ℝ
def FABL.RandomizedDecisionTree.queryProbability.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) (i : Fin n) : ℝ
O'Donnell, Definition 8.62: query probability under the product input law.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.averageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ℝ
def FABL.RandomizedDecisionTree.averageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ℝ
Definition 8.62: average number of queried coordinates under `π⊗n`.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.RandomizedDecisionTree.sum_queryProbabilityOnInput_eq_inputCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (x : Fin n → Ω) : ∑ i, T.queryProbabilityOnInput i x = T.inputCost x
theorem FABL.RandomizedDecisionTree.sum_queryProbabilityOnInput_eq_inputCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} (T : FABL.RandomizedDecisionTree Ω α n f) (x : Fin n → Ω) : ∑ i, T.queryProbabilityOnInput i x = T.inputCost x
Equation (8.10) on a fixed input: the sum of coordinate query probabilities is the expected query count.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.RandomizedDecisionTree.sum_queryProbability_eq_averageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ∑ i, T.queryProbability π i = T.averageCost π
theorem FABL.RandomizedDecisionTree.sum_queryProbability_eq_averageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ∑ i, T.queryProbability π i = T.averageCost π
O'Donnell, equation (8.10): `Δ(T) = ∑ᵢ δᵢ(T)` equals the expected number of queried coordinates.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.RandomizedDecisionTree.averageCost_le_worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : T.averageCost π ≤ T.worstCaseCost
theorem FABL.RandomizedDecisionTree.averageCost_le_worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : T.averageCost π ≤ T.worstCaseCost
The distributional average cost is at most the worst-case input cost.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.averageComplexity.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (f : (Fin n → Ω) → α) : ℝ
def FABL.RandomizedDecisionTree.averageComplexity.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (f : (Fin n → Ω) → α) : ℝ
Definition 8.62: minimum average query cost under `π⊗n`.
Remark 8.63. The minimum defining \Delta^{(\pi)}(f) is unchanged if
only deterministic trees are allowed: some deterministic tree in the support
of any randomized tree has average cost no greater than the mixture average.
Lean code for Lemma8.6.3●3 declarations
Associated Lean declarations
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.RandomizedDecisionTree.deterministicAverageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ℝ
def FABL.RandomizedDecisionTree.deterministicAverageCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ℝ
Average query cost of one deterministic tree.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.RandomizedDecisionTree.averageCost_eq_seedExpectation.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : T.averageCost π = FABL.pmfExpectation T.seedLaw fun seed => FABL.RandomizedDecisionTree.deterministicAverageCost π (T.tree seed)
theorem FABL.RandomizedDecisionTree.averageCost_eq_seedExpectation.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : T.averageCost π = FABL.pmfExpectation T.seedLaw fun seed => FABL.RandomizedDecisionTree.deterministicAverageCost π (T.tree seed)
Average cost is equivalently the seed expectation of deterministic average costs.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.RandomizedDecisionTree.exists_deterministic_averageCost_le.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ∃ seed, FABL.RandomizedDecisionTree.deterministicAverageCost π (T.tree seed) ≤ T.averageCost π
theorem FABL.RandomizedDecisionTree.exists_deterministic_averageCost_le.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (π : PMF Ω) : ∃ seed, FABL.RandomizedDecisionTree.deterministicAverageCost π (T.tree seed) ≤ T.averageCost π
Remark 8.63: some deterministic tree in a randomized tree's support has no larger average cost.
-
FABL.majorityThreePairTree[complete] -
FABL.majorityThreeRandomizedTree[complete] -
FABL.majorityThreeRandomizedTree_inputCost[complete] -
FABL.majorityThreeRandomizedTree_worstCaseCost[complete] -
FABL.majorityThreeTree01_uniform_averageCost[complete] -
FABL.randomizedDecisionTreeComplexity_majority_three_le[complete] -
FABL.averageDecisionTreeComplexity_majority_three_le[complete] -
FABL.majorityThreeFixedOneInput[complete] -
FABL.majority_majorityThreeFixedOneInput[complete] -
FABL.majorityThreeFixedTwoInput[complete] -
FABL.majority_majorityThreeFixedTwoInput[complete] -
FABL.FiniteDecisionTree.exists_majorityThree_querySkeleton[complete] -
FABL.FiniteDecisionTree.exists_majorityThree_first_second[complete] -
FABL.expect_majorityThree_skeleton_disagreement[complete] -
FABL.majorityThreeHardInput[complete] -
FABL.expect_majorityThreeHardInput_skeleton_disagreement[complete] -
FABL.RandomizedDecisionTree.averageCostUnder[complete] -
FABL.RandomizedDecisionTree.deterministicAverageCostUnder[complete] -
FABL.RandomizedDecisionTree.averageCostUnder_eq_seedExpectation[complete] -
FABL.RandomizedDecisionTree.averageCostUnder_le_worstCaseCost[complete] -
FABL.majorityThreeHardPMF[complete] -
FABL.deterministicAverageCostUnder_majorityThreeHardPMF[complete] -
FABL.FiniteDecisionTree.majorityThree_uniform_averageCost_ge[complete] -
FABL.FiniteDecisionTree.majorityThree_hard_averageCost_ge[complete] -
FABL.RandomizedDecisionTree.majorityThree_worstCaseCost_ge[complete] -
FABL.randomizedDecisionTreeComplexity_majority_three[complete] -
FABL.RandomizedDecisionTree.majorityThree_averageCost_ge[complete] -
FABL.averageDecisionTreeComplexity_majority_three[complete] -
FABL.addressRecursiveMajorityThree[complete] -
FABL.recursiveMajorityThree_eq_addressRecursiveMajorityThree[complete] -
FABL.splitThreeBlocksEquiv[complete] -
FABL.signValue_majority_three[complete] -
FABL.expect_triple_mul_separate[complete] -
FABL.expect_majorityThreeParity_step[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff[complete] -
FABL.fourierCoeff_recursiveMajorityThree_univ_eq_addressTopCoeff[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff_succ[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff_ne_zero[complete] -
FABL.fourierDegree_recursiveMajority_three[complete] -
FABL.FiniteDecisionTree.recursiveMajorityThree_depth_le[complete] -
FABL.deterministicDepth_recursiveMajority_three[complete] -
FABL.randomizedDecisionTreeComplexity_recursiveMajority_three_le[complete] -
FABL.averageDecisionTreeComplexity_recursiveMajority_three_le[complete]
Example 8.64. For three-bit majority,
\operatorname{RDT}(\operatorname{Maj}_3)\le\frac83,
\qquad
\Delta(\operatorname{Maj}_3)\le\frac52,
and both bounds are equalities. For the depth-d recursive majority on
n=3^d inputs,
\operatorname{DT}(\operatorname{Maj}_3^{\otimes d})=3^d=n,
\operatorname{RDT}(\operatorname{Maj}_3^{\otimes d})
\le(8/3)^d=n^{\log_3(8/3)},
\qquad
\Delta(\operatorname{Maj}_3^{\otimes d})
\le(5/2)^d=n^{\log_3(5/2)}.
Lean code for Lemma8.6.4●43 declarations
Associated Lean declarations
-
FABL.majorityThreePairTree[complete]
-
FABL.majorityThreeRandomizedTree[complete]
-
FABL.majorityThreeRandomizedTree_inputCost[complete]
-
FABL.majorityThreeRandomizedTree_worstCaseCost[complete]
-
FABL.majorityThreeTree01_uniform_averageCost[complete]
-
FABL.randomizedDecisionTreeComplexity_majority_three_le[complete]
-
FABL.averageDecisionTreeComplexity_majority_three_le[complete]
-
FABL.majorityThreeFixedOneInput[complete]
-
FABL.majority_majorityThreeFixedOneInput[complete]
-
FABL.majorityThreeFixedTwoInput[complete]
-
FABL.majority_majorityThreeFixedTwoInput[complete]
-
FABL.FiniteDecisionTree.exists_majorityThree_querySkeleton[complete]
-
FABL.FiniteDecisionTree.exists_majorityThree_first_second[complete]
-
FABL.expect_majorityThree_skeleton_disagreement[complete]
-
FABL.majorityThreeHardInput[complete]
-
FABL.expect_majorityThreeHardInput_skeleton_disagreement[complete]
-
FABL.RandomizedDecisionTree.averageCostUnder[complete]
-
FABL.RandomizedDecisionTree.deterministicAverageCostUnder[complete]
-
FABL.RandomizedDecisionTree.averageCostUnder_eq_seedExpectation[complete]
-
FABL.RandomizedDecisionTree.averageCostUnder_le_worstCaseCost[complete]
-
FABL.majorityThreeHardPMF[complete]
-
FABL.deterministicAverageCostUnder_majorityThreeHardPMF[complete]
-
FABL.FiniteDecisionTree.majorityThree_uniform_averageCost_ge[complete]
-
FABL.FiniteDecisionTree.majorityThree_hard_averageCost_ge[complete]
-
FABL.RandomizedDecisionTree.majorityThree_worstCaseCost_ge[complete]
-
FABL.randomizedDecisionTreeComplexity_majority_three[complete]
-
FABL.RandomizedDecisionTree.majorityThree_averageCost_ge[complete]
-
FABL.averageDecisionTreeComplexity_majority_three[complete]
-
FABL.addressRecursiveMajorityThree[complete]
-
FABL.recursiveMajorityThree_eq_addressRecursiveMajorityThree[complete]
-
FABL.splitThreeBlocksEquiv[complete]
-
FABL.signValue_majority_three[complete]
-
FABL.expect_triple_mul_separate[complete]
-
FABL.expect_majorityThreeParity_step[complete]
-
FABL.addressRecursiveMajorityThreeTopCoeff[complete]
-
FABL.fourierCoeff_recursiveMajorityThree_univ_eq_addressTopCoeff[complete]
-
FABL.addressRecursiveMajorityThreeTopCoeff_succ[complete]
-
FABL.addressRecursiveMajorityThreeTopCoeff_ne_zero[complete]
-
FABL.fourierDegree_recursiveMajority_three[complete]
-
FABL.FiniteDecisionTree.recursiveMajorityThree_depth_le[complete]
-
FABL.deterministicDepth_recursiveMajority_three[complete]
-
FABL.randomizedDecisionTreeComplexity_recursiveMajority_three_le[complete]
-
FABL.averageDecisionTreeComplexity_recursiveMajority_three_le[complete]
-
FABL.majorityThreePairTree[complete] -
FABL.majorityThreeRandomizedTree[complete] -
FABL.majorityThreeRandomizedTree_inputCost[complete] -
FABL.majorityThreeRandomizedTree_worstCaseCost[complete] -
FABL.majorityThreeTree01_uniform_averageCost[complete] -
FABL.randomizedDecisionTreeComplexity_majority_three_le[complete] -
FABL.averageDecisionTreeComplexity_majority_three_le[complete] -
FABL.majorityThreeFixedOneInput[complete] -
FABL.majority_majorityThreeFixedOneInput[complete] -
FABL.majorityThreeFixedTwoInput[complete] -
FABL.majority_majorityThreeFixedTwoInput[complete] -
FABL.FiniteDecisionTree.exists_majorityThree_querySkeleton[complete] -
FABL.FiniteDecisionTree.exists_majorityThree_first_second[complete] -
FABL.expect_majorityThree_skeleton_disagreement[complete] -
FABL.majorityThreeHardInput[complete] -
FABL.expect_majorityThreeHardInput_skeleton_disagreement[complete] -
FABL.RandomizedDecisionTree.averageCostUnder[complete] -
FABL.RandomizedDecisionTree.deterministicAverageCostUnder[complete] -
FABL.RandomizedDecisionTree.averageCostUnder_eq_seedExpectation[complete] -
FABL.RandomizedDecisionTree.averageCostUnder_le_worstCaseCost[complete] -
FABL.majorityThreeHardPMF[complete] -
FABL.deterministicAverageCostUnder_majorityThreeHardPMF[complete] -
FABL.FiniteDecisionTree.majorityThree_uniform_averageCost_ge[complete] -
FABL.FiniteDecisionTree.majorityThree_hard_averageCost_ge[complete] -
FABL.RandomizedDecisionTree.majorityThree_worstCaseCost_ge[complete] -
FABL.randomizedDecisionTreeComplexity_majority_three[complete] -
FABL.RandomizedDecisionTree.majorityThree_averageCost_ge[complete] -
FABL.averageDecisionTreeComplexity_majority_three[complete] -
FABL.addressRecursiveMajorityThree[complete] -
FABL.recursiveMajorityThree_eq_addressRecursiveMajorityThree[complete] -
FABL.splitThreeBlocksEquiv[complete] -
FABL.signValue_majority_three[complete] -
FABL.expect_triple_mul_separate[complete] -
FABL.expect_majorityThreeParity_step[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff[complete] -
FABL.fourierCoeff_recursiveMajorityThree_univ_eq_addressTopCoeff[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff_succ[complete] -
FABL.addressRecursiveMajorityThreeTopCoeff_ne_zero[complete] -
FABL.fourierDegree_recursiveMajority_three[complete] -
FABL.FiniteDecisionTree.recursiveMajorityThree_depth_le[complete] -
FABL.deterministicDepth_recursiveMajority_three[complete] -
FABL.randomizedDecisionTreeComplexity_recursiveMajority_three_le[complete] -
FABL.averageDecisionTreeComplexity_recursiveMajority_three_le[complete]
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.majorityThreePairTree (i j k : Fin 3) (hji : j ≠ i) (hki : k ≠ i) (hkj : k ≠ j) : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3
def FABL.majorityThreePairTree (i j k : Fin 3) (hji : j ≠ i) (hki : k ≠ i) (hkj : k ≠ j) : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3
Query two distinct coordinates; return their common value when equal and otherwise query the third coordinate.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.majorityThreeRandomizedTree : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)
def FABL.majorityThreeRandomizedTree : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)
The zero-error randomized `Maj₃` tree from Example 8.64.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.majorityThreeRandomizedTree_inputCost (x : FABL.SignCube 3) : FABL.majorityThreeRandomizedTree.inputCost x = (((if x 0 = x 1 then 2 else 3) + if x 0 = x 2 then 2 else 3) + if x 1 = x 2 then 2 else 3) / 3
theorem FABL.majorityThreeRandomizedTree_inputCost (x : FABL.SignCube 3) : FABL.majorityThreeRandomizedTree.inputCost x = (((if x 0 = x 1 then 2 else 3) + if x 0 = x 2 then 2 else 3) + if x 1 = x 2 then 2 else 3) / 3
Exact input-cost formula for the randomized `Maj₃` tree.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.majorityThreeRandomizedTree_worstCaseCost : FABL.majorityThreeRandomizedTree.worstCaseCost = 8 / 3
theorem FABL.majorityThreeRandomizedTree_worstCaseCost : FABL.majorityThreeRandomizedTree.worstCaseCost = 8 / 3
Example 8.64: the worst-case cost of the displayed randomized tree is exactly `8/3`.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.majorityThreeTree01_uniform_averageCost : FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.uniformPMF FABL.Sign) FABL.majorityThreeTree01 = 5 / 2
theorem FABL.majorityThreeTree01_uniform_averageCost : FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.uniformPMF FABL.Sign) FABL.majorityThreeTree01 = 5 / 2
Example 8.64: a fixed pair-first `Maj₃` tree uses `5/2` queries on average under the uniform input law.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.randomizedDecisionTreeComplexity_majority_three_le : FABL.RandomizedDecisionTree.complexity (FABL.majority 3) ≤ 8 / 3
theorem FABL.randomizedDecisionTreeComplexity_majority_three_le : FABL.RandomizedDecisionTree.complexity (FABL.majority 3) ≤ 8 / 3
Example 8.64: `RDT(Maj₃) ≤ 8/3`.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.averageDecisionTreeComplexity_majority_three_le : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.majority 3) ≤ 5 / 2
theorem FABL.averageDecisionTreeComplexity_majority_three_le : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.majority 3) ≤ 5 / 2
Example 8.64: `Δ(Maj₃) ≤ 5/2` under the uniform input law.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.majorityThreeFixedOneInput (i : Fin 3) (a s : FABL.Sign) : FABL.SignCube 3
def FABL.majorityThreeFixedOneInput (i : Fin 3) (a s : FABL.Sign) : FABL.SignCube 3
An input with coordinate `i` fixed to `a` and both other coordinates equal to `s`.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.majority_majorityThreeFixedOneInput (i : Fin 3) (a s : FABL.Sign) : FABL.majority 3 (FABL.majorityThreeFixedOneInput i a s) = s
theorem FABL.majority_majorityThreeFixedOneInput (i : Fin 3) (a s : FABL.Sign) : FABL.majority 3 (FABL.majorityThreeFixedOneInput i a s) = s
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.majorityThreeFixedTwoInput (i j : Fin 3) (a b s : FABL.Sign) : FABL.SignCube 3
def FABL.majorityThreeFixedTwoInput (i j : Fin 3) (a b s : FABL.Sign) : FABL.SignCube 3
An input with two distinct coordinates fixed to opposite signs and the remaining coordinate equal to `s`.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.majority_majorityThreeFixedTwoInput (i j : Fin 3) (hij : i ≠ j) (a b s : FABL.Sign) (hab : a ≠ b) : FABL.majority 3 (FABL.majorityThreeFixedTwoInput i j a b s) = s
theorem FABL.majority_majorityThreeFixedTwoInput (i j : Fin 3) (hij : i ≠ j) (a b s : FABL.Sign) (hab : a ≠ b) : FABL.majority 3 (FABL.majorityThreeFixedTwoInput i j a b s) = s
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.FiniteDecisionTree.exists_majorityThree_querySkeleton (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : ∃ i, ∃ (hi : i ∈ Finset.univ), ∃ child, T = FABL.FiniteDecisionTree.query i hi child ∧ ∀ (a : FABL.Sign), ∃ j, ∃ (hj : j ∈ Finset.univ.erase i), ∃ grandchild, child a = FABL.FiniteDecisionTree.query j hj grandchild ∧ ∀ (b : FABL.Sign), b ≠ a → ∃ k, ∃ (hk : k ∈ (Finset.univ.erase i).erase j), ∃ next, grandchild b = FABL.FiniteDecisionTree.query k hk next
theorem FABL.FiniteDecisionTree.exists_majorityThree_querySkeleton (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : ∃ i, ∃ (hi : i ∈ Finset.univ), ∃ child, T = FABL.FiniteDecisionTree.query i hi child ∧ ∀ (a : FABL.Sign), ∃ j, ∃ (hj : j ∈ Finset.univ.erase i), ∃ grandchild, child a = FABL.FiniteDecisionTree.query j hj grandchild ∧ ∀ (b : FABL.Sign), b ≠ a → ∃ k, ∃ (hk : k ∈ (Finset.univ.erase i).erase j), ∃ next, grandchild b = FABL.FiniteDecisionTree.query k hk next
Every deterministic tree computing `Maj₃` has a first query, a second query after either first answer, and a third query whenever the first two answers disagree.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.FiniteDecisionTree.exists_majorityThree_first_second (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : ∃ i j, (∀ (a : FABL.Sign), j a ≠ i) ∧ ∀ (x : FABL.SignCube 3), (2 + if x i = x (j (x i)) then 0 else 1) ≤ FABL.FiniteDecisionTree.queryCount T x
theorem FABL.FiniteDecisionTree.exists_majorityThree_first_second (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : ∃ i j, (∀ (a : FABL.Sign), j a ≠ i) ∧ ∀ (x : FABL.SignCube 3), (2 + if x i = x (j (x i)) then 0 else 1) ≤ FABL.FiniteDecisionTree.queryCount T x
A compact consequence of the query skeleton: after a fixed first coordinate, the second coordinate may depend on the first answer, and a disagreement forces at least three queries.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.expect_majorityThree_skeleton_disagreement (i : Fin 3) (j : FABL.Sign → Fin 3) (hji : ∀ (a : FABL.Sign), j a ≠ i) : (Finset.univ.expect fun x => if x i = x (j (x i)) then 0 else 1) = 1 / 2
theorem FABL.expect_majorityThree_skeleton_disagreement (i : Fin 3) (j : FABL.Sign → Fin 3) (hji : ∀ (a : FABL.Sign), j a ≠ i) : (Finset.univ.expect fun x => if x i = x (j (x i)) then 0 else 1) = 1 / 2
Under the uniform input law, the first two coordinates from any valid query skeleton disagree with probability exactly `1/2`.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.majorityThreeHardInput (seed : FABL.Sign × Fin 3) : FABL.SignCube 3
def FABL.majorityThreeHardInput (seed : FABL.Sign × Fin 3) : FABL.SignCube 3
Six-input hard distribution: choose the majority sign and the unique dissenting coordinate uniformly.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.expect_majorityThreeHardInput_skeleton_disagreement (i : Fin 3) (j : FABL.Sign → Fin 3) (hji : ∀ (a : FABL.Sign), j a ≠ i) : (Finset.univ.expect fun seed => if FABL.majorityThreeHardInput seed i = FABL.majorityThreeHardInput seed (j (FABL.majorityThreeHardInput seed i)) then 0 else 1) = 2 / 3
theorem FABL.expect_majorityThreeHardInput_skeleton_disagreement (i : Fin 3) (j : FABL.Sign → Fin 3) (hji : ∀ (a : FABL.Sign), j a ≠ i) : (Finset.univ.expect fun seed => if FABL.majorityThreeHardInput seed i = FABL.majorityThreeHardInput seed (j (FABL.majorityThreeHardInput seed i)) then 0 else 1) = 2 / 3
On the six hard inputs, every valid first/second query skeleton sees a disagreement with probability exactly `2/3`.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.RandomizedDecisionTree.averageCostUnder.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype (Fin n → Ω)] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : ℝ
def FABL.RandomizedDecisionTree.averageCostUnder.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype (Fin n → Ω)] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : ℝ
Average query cost under an arbitrary finite law on complete inputs.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.RandomizedDecisionTree.deterministicAverageCostUnder.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype (Fin n → Ω)] (μ : PMF (Fin n → Ω)) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ℝ
def FABL.RandomizedDecisionTree.deterministicAverageCostUnder.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype (Fin n → Ω)] (μ : PMF (Fin n → Ω)) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ℝ
Deterministic average query cost under an arbitrary finite input law.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.RandomizedDecisionTree.averageCostUnder_eq_seedExpectation.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype (Fin n → Ω)] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : T.averageCostUnder μ = FABL.pmfExpectation T.seedLaw fun seed => FABL.RandomizedDecisionTree.deterministicAverageCostUnder μ (T.tree seed)
theorem FABL.RandomizedDecisionTree.averageCostUnder_eq_seedExpectation.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype (Fin n → Ω)] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : T.averageCostUnder μ = FABL.pmfExpectation T.seedLaw fun seed => FABL.RandomizedDecisionTree.deterministicAverageCostUnder μ (T.tree seed)
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.RandomizedDecisionTree.averageCostUnder_le_worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : T.averageCostUnder μ ≤ T.worstCaseCost
theorem FABL.RandomizedDecisionTree.averageCostUnder_le_worstCaseCost.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} {f : (Fin n → Ω) → α} [Fintype Ω] [Nonempty Ω] (T : FABL.RandomizedDecisionTree Ω α n f) (μ : PMF (Fin n → Ω)) : T.averageCostUnder μ ≤ T.worstCaseCost
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.majorityThreeHardPMF : PMF (FABL.SignCube 3)
def FABL.majorityThreeHardPMF : PMF (FABL.SignCube 3)
The hard law is the image of the uniform majority-sign/dissent-coordinate seed.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.deterministicAverageCostUnder_majorityThreeHardPMF (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) : FABL.RandomizedDecisionTree.deterministicAverageCostUnder FABL.majorityThreeHardPMF T = Finset.univ.expect fun seed => ↑(FABL.FiniteDecisionTree.queryCount T (FABL.majorityThreeHardInput seed))
theorem FABL.deterministicAverageCostUnder_majorityThreeHardPMF (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) : FABL.RandomizedDecisionTree.deterministicAverageCostUnder FABL.majorityThreeHardPMF T = Finset.univ.expect fun seed => ↑(FABL.FiniteDecisionTree.queryCount T (FABL.majorityThreeHardInput seed))
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.FiniteDecisionTree.majorityThree_uniform_averageCost_ge (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : 5 / 2 ≤ FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.uniformPMF FABL.Sign) T
theorem FABL.FiniteDecisionTree.majorityThree_uniform_averageCost_ge (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : 5 / 2 ≤ FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.uniformPMF FABL.Sign) T
Every deterministic tree computing `Maj₃` uses at least `5/2` queries on average under the uniform input law.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.FiniteDecisionTree.majorityThree_hard_averageCost_ge (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : 8 / 3 ≤ FABL.RandomizedDecisionTree.deterministicAverageCostUnder FABL.majorityThreeHardPMF T
theorem FABL.FiniteDecisionTree.majorityThree_hard_averageCost_ge (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign 3) (hT : FABL.FiniteDecisionTree.Computes T (FABL.majority 3)) : 8 / 3 ≤ FABL.RandomizedDecisionTree.deterministicAverageCostUnder FABL.majorityThreeHardPMF T
Every deterministic tree computing `Maj₃` has average cost at least `8/3` under the six hard inputs.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.RandomizedDecisionTree.majorityThree_worstCaseCost_ge (T : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)) : 8 / 3 ≤ T.worstCaseCost
theorem FABL.RandomizedDecisionTree.majorityThree_worstCaseCost_ge (T : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)) : 8 / 3 ≤ T.worstCaseCost
Every zero-error randomized tree for `Maj₃` has worst-case cost at least `8/3`.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.randomizedDecisionTreeComplexity_majority_three : FABL.RandomizedDecisionTree.complexity (FABL.majority 3) = 8 / 3
theorem FABL.randomizedDecisionTreeComplexity_majority_three : FABL.RandomizedDecisionTree.complexity (FABL.majority 3) = 8 / 3
Example 8.64: `RDT(Maj₃) = 8/3`.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.RandomizedDecisionTree.majorityThree_averageCost_ge (T : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)) : 5 / 2 ≤ T.averageCost (FABL.uniformPMF FABL.Sign)
theorem FABL.RandomizedDecisionTree.majorityThree_averageCost_ge (T : FABL.RandomizedDecisionTree FABL.Sign FABL.Sign 3 (FABL.majority 3)) : 5 / 2 ≤ T.averageCost (FABL.uniformPMF FABL.Sign)
Every randomized tree for `Maj₃` has uniform average cost at least `5/2`.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.averageDecisionTreeComplexity_majority_three : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.majority 3) = 5 / 2
theorem FABL.averageDecisionTreeComplexity_majority_three : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.majority 3) = 5 / 2
Example 8.64: `Delta(Maj₃) = 5/2` under the uniform input law.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.addressRecursiveMajorityThree (d : ℕ) : (FABL.FormulaAddress 3 d → FABL.Sign) → FABL.Sign
def FABL.addressRecursiveMajorityThree (d : ℕ) : (FABL.FormulaAddress 3 d → FABL.Sign) → FABL.Sign
Recursive majority on tree-shaped ternary addresses.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.recursiveMajorityThree_eq_addressRecursiveMajorityThree (d : ℕ) (x : FABL.SignCube (3 ^ d)) : FABL.recursiveMajority 3 d x = FABL.addressRecursiveMajorityThree d fun a => x ((FABL.finFormulaAddressEquiv 3 d).symm a)
theorem FABL.recursiveMajorityThree_eq_addressRecursiveMajorityThree (d : ℕ) (x : FABL.SignCube (3 ^ d)) : FABL.recursiveMajority 3 d x = FABL.addressRecursiveMajorityThree d fun a => x ((FABL.finFormulaAddressEquiv 3 d).symm a)
Flat and address-form recursive majority agree under the canonical coordinate equivalence.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.splitThreeBlocksEquiv.{u_1} (A : Type u_1) : (Fin 3 × A → FABL.Sign) ≃ (A → FABL.Sign) × (A → FABL.Sign) × (A → FABL.Sign)
def FABL.splitThreeBlocksEquiv.{u_1} (A : Type u_1) : (Fin 3 × A → FABL.Sign) ≃ (A → FABL.Sign) × (A → FABL.Sign) × (A → FABL.Sign)
Split a ternary family into its three coordinate blocks.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.signValue_majority_three (x : FABL.SignCube 3) : FABL.signValue (FABL.majority 3 x) = (FABL.signValue (x 0) + FABL.signValue (x 1) + FABL.signValue (x 2) - FABL.signValue (x 0) * FABL.signValue (x 1) * FABL.signValue (x 2)) / 2
theorem FABL.signValue_majority_three (x : FABL.SignCube 3) : FABL.signValue (FABL.majority 3 x) = (FABL.signValue (x 0) + FABL.signValue (x 1) + FABL.signValue (x 2) - FABL.signValue (x 0) * FABL.signValue (x 1) * FABL.signValue (x 2)) / 2
The real multilinear formula for three-bit majority.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.expect_triple_mul_separate.{u_1, u_2, u_3} {A : Type u_1} {B : Type u_2} {C : Type u_3} [Fintype A] [Fintype B] [Fintype C] (f : A → ℝ) (g : B → ℝ) (h : C → ℝ) : (Finset.univ.expect fun p => f p.1 * g p.2.1 * h p.2.2) = ((Finset.univ.expect fun a => f a) * Finset.univ.expect fun b => g b) * Finset.univ.expect fun c => h c
theorem FABL.expect_triple_mul_separate.{u_1, u_2, u_3} {A : Type u_1} {B : Type u_2} {C : Type u_3} [Fintype A] [Fintype B] [Fintype C] (f : A → ℝ) (g : B → ℝ) (h : C → ℝ) : (Finset.univ.expect fun p => f p.1 * g p.2.1 * h p.2.2) = ((Finset.univ.expect fun a => f a) * Finset.univ.expect fun b => g b) * Finset.univ.expect fun c => h c
Uniform expectation of a product of observables on three independent finite factors.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.expect_majorityThreeParity_step.{u_1} {A : Type u_1} [Fintype A] (F P : A → ℝ) (hP : (Finset.univ.expect fun a => P a) = 0) : (Finset.univ.expect fun triple => (F triple.1 + F triple.2.1 + F triple.2.2 - F triple.1 * F triple.2.1 * F triple.2.2) / 2 * (P triple.1 * P triple.2.1 * P triple.2.2)) = -(Finset.univ.expect fun a => F a * P a) ^ 3 / 2
theorem FABL.expect_majorityThreeParity_step.{u_1} {A : Type u_1} [Fintype A] (F P : A → ℝ) (hP : (Finset.univ.expect fun a => P a) = 0) : (Finset.univ.expect fun triple => (F triple.1 + F triple.2.1 + F triple.2.2 - F triple.1 * F triple.2.1 * F triple.2.2) / 2 * (P triple.1 * P triple.2.1 * P triple.2.2)) = -(Finset.univ.expect fun a => F a * P a) ^ 3 / 2
Algebraic expectation step for the full coefficient of recursive majority.
-
defdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
def FABL.addressRecursiveMajorityThreeTopCoeff (d : ℕ) : ℝ
def FABL.addressRecursiveMajorityThreeTopCoeff (d : ℕ) : ℝ
Full-parity correlation of address-form recursive majority.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.fourierCoeff_recursiveMajorityThree_univ_eq_addressTopCoeff (d : ℕ) : FABL.fourierCoeff (FABL.recursiveMajority 3 d).toReal Finset.univ = FABL.addressRecursiveMajorityThreeTopCoeff d
theorem FABL.fourierCoeff_recursiveMajorityThree_univ_eq_addressTopCoeff (d : ℕ) : FABL.fourierCoeff (FABL.recursiveMajority 3 d).toReal Finset.univ = FABL.addressRecursiveMajorityThreeTopCoeff d
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.addressRecursiveMajorityThreeTopCoeff_succ (d : ℕ) : FABL.addressRecursiveMajorityThreeTopCoeff (d + 1) = -FABL.addressRecursiveMajorityThreeTopCoeff d ^ 3 / 2
theorem FABL.addressRecursiveMajorityThreeTopCoeff_succ (d : ℕ) : FABL.addressRecursiveMajorityThreeTopCoeff (d + 1) = -FABL.addressRecursiveMajorityThreeTopCoeff d ^ 3 / 2
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.addressRecursiveMajorityThreeTopCoeff_ne_zero (d : ℕ) : FABL.addressRecursiveMajorityThreeTopCoeff d ≠ 0
theorem FABL.addressRecursiveMajorityThreeTopCoeff_ne_zero (d : ℕ) : FABL.addressRecursiveMajorityThreeTopCoeff d ≠ 0
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.fourierDegree_recursiveMajority_three (d : ℕ) : FABL.fourierDegree (FABL.recursiveMajority 3 d).toReal = 3 ^ d
theorem FABL.fourierDegree_recursiveMajority_three (d : ℕ) : FABL.fourierDegree (FABL.recursiveMajority 3 d).toReal = 3 ^ d
Recursive majority of three has full Fourier degree.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.FiniteDecisionTree.recursiveMajorityThree_depth_le (d : ℕ) (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign (3 ^ d)) (hT : FABL.FiniteDecisionTree.Computes T (FABL.recursiveMajority 3 d)) : 3 ^ d ≤ FABL.FiniteDecisionTree.depth T
theorem FABL.FiniteDecisionTree.recursiveMajorityThree_depth_le (d : ℕ) (T : FABL.FiniteAlphabetDecisionTree FABL.Sign FABL.Sign (3 ^ d)) (hT : FABL.FiniteDecisionTree.Computes T (FABL.recursiveMajority 3 d)) : 3 ^ d ≤ FABL.FiniteDecisionTree.depth T
Every deterministic tree computing depth-`d` recursive majority has full depth.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.deterministicDepth_recursiveMajority_three (d : ℕ) : FABL.FiniteDecisionTree.deterministicDepth (FABL.recursiveMajority 3 d) = 3 ^ d
theorem FABL.deterministicDepth_recursiveMajority_three (d : ℕ) : FABL.FiniteDecisionTree.deterministicDepth (FABL.recursiveMajority 3 d) = 3 ^ d
Exercise 8.38(a): recursive majority is deterministic-evasive.
-
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.randomizedDecisionTreeComplexity_recursiveMajority_three_le (d : ℕ) : FABL.RandomizedDecisionTree.complexity (FABL.recursiveMajority 3 d) ≤ FABL.recursiveMajorityRandomizedCostBound d
theorem FABL.randomizedDecisionTreeComplexity_recursiveMajority_three_le (d : ℕ) : FABL.RandomizedDecisionTree.complexity (FABL.recursiveMajority 3 d) ≤ FABL.recursiveMajorityRandomizedCostBound d
Exercise 8.38(a): the actual recursive tree witnesses `RDT(Maj₃^{tensor d}) <= (8/3)^d`. -
theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.leancomplete
theorem FABL.averageDecisionTreeComplexity_recursiveMajority_three_le (d : ℕ) : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.recursiveMajority 3 d) ≤ FABL.recursiveMajorityAverageCostBound d
theorem FABL.averageDecisionTreeComplexity_recursiveMajority_three_le (d : ℕ) : FABL.RandomizedDecisionTree.averageComplexity (FABL.uniformPMF FABL.Sign) (FABL.recursiveMajority 3 d) ≤ FABL.recursiveMajorityAverageCostBound d
Exercise 8.38(a): the actual recursive tree witnesses `Delta(Maj₃^{tensor d}) <= (5/2)^d`.
The displayed recursive-majority bounds are not asymptotically sharp; the optimal order of its randomized decision-tree complexity remains open.
-
FABL.orAverageQueryCost[complete] -
FABL.orAverageQueryCost_eq[complete] -
FABL.orAverageQueryCost_succ[complete] -
FABL.orAverageQueryCost_at_critical[complete] -
FABL.averageComplexity_orFunction_eq[complete] -
FABL.orCriticalProbability[complete] -
FABL.tendsto_averageComplexity_or_at_critical[complete]
Example 8.65. For logical OR,
\Delta^{(p)}(\operatorname{OR}_n)
=\frac{1-(1-p)^n}{p}.
At its critical probability this is asymptotic to
n/(2\ln2).
Lean code for Lemma8.6.6●7 declarations
Associated Lean declarations
-
FABL.orAverageQueryCost[complete]
-
FABL.orAverageQueryCost_eq[complete]
-
FABL.orAverageQueryCost_succ[complete]
-
FABL.orAverageQueryCost_at_critical[complete]
-
FABL.averageComplexity_orFunction_eq[complete]
-
FABL.orCriticalProbability[complete]
-
FABL.tendsto_averageComplexity_or_at_critical[complete]
-
FABL.orAverageQueryCost[complete] -
FABL.orAverageQueryCost_eq[complete] -
FABL.orAverageQueryCost_succ[complete] -
FABL.orAverageQueryCost_at_critical[complete] -
FABL.averageComplexity_orFunction_eq[complete] -
FABL.orCriticalProbability[complete] -
FABL.tendsto_averageComplexity_or_at_critical[complete]
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.orAverageQueryCost (n : ℕ) (p : ℝ) : ℝ
def FABL.orAverageQueryCost (n : ℕ) (p : ℝ) : ℝ
The tail-sum expression for the expected number of sequential OR queries when each input bit is true independently with probability `p`.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.orAverageQueryCost_eq (n : ℕ) {p : ℝ} (hp : p ≠ 0) : FABL.orAverageQueryCost n p = (1 - (1 - p) ^ n) / p
theorem FABL.orAverageQueryCost_eq (n : ℕ) {p : ℝ} (hp : p ≠ 0) : FABL.orAverageQueryCost n p = (1 - (1 - p) ^ n) / p
Example 8.65 and Exercise 8.39(a): the OR tail sum is the displayed geometric quotient.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.orAverageQueryCost_succ (n : ℕ) (p : ℝ) : FABL.orAverageQueryCost (n + 1) p = 1 + (1 - p) * FABL.orAverageQueryCost n p
theorem FABL.orAverageQueryCost_succ (n : ℕ) (p : ℝ) : FABL.orAverageQueryCost (n + 1) p = 1 + (1 - p) * FABL.orAverageQueryCost n p
The finite recurrence behind the sequential OR decision tree.
-
theoremdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
theorem FABL.orAverageQueryCost_at_critical (n : ℕ) {p : ℝ} (hp : p ≠ 0) (hcritical : (1 - p) ^ n = 1 / 2) : FABL.orAverageQueryCost n p = 1 / (2 * p)
theorem FABL.orAverageQueryCost_at_critical (n : ℕ) {p : ℝ} (hp : p ≠ 0) (hcritical : (1 - p) ^ n = 1 / 2) : FABL.orAverageQueryCost n p = 1 / (2 * p)
At an OR critical probability, where the all-false probability is `1/2`, the expected sequential query cost is exactly `1/(2p)`.
-
theoremdefined in FABL/Chapter08/DecisionTreeExercises.leancomplete
theorem FABL.averageComplexity_orFunction_eq (n : ℕ) (p : ℝ) (hp : p ∈ Set.Ioo 0 1) : FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF p ⋯) (FABL.orFunction n) = FABL.orAverageQueryCost n p
theorem FABL.averageComplexity_orFunction_eq (n : ℕ) (p : ℝ) (hp : p ∈ Set.Ioo 0 1) : FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF p ⋯) (FABL.orFunction n) = FABL.orAverageQueryCost n p
Exercise 8.39(a): the minimum distributional OR cost is the exact geometric quotient.
-
defdefined in FABL/Chapter08/DecisionTreeExercises.leancomplete
def FABL.orCriticalProbability (n : ℕ) : ℝ
def FABL.orCriticalProbability (n : ℕ) : ℝ
An explicit critical probability for `ORₙ`; the value at `n = 0` is irrelevant to the asymptotic statement.
-
theoremdefined in FABL/Chapter08/DecisionTreeExercises.leancomplete
theorem FABL.tendsto_averageComplexity_or_at_critical : Filter.Tendsto (fun n => FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF (FABL.orCriticalProbability n) ⋯) (FABL.orFunction n) / ↑n) Filter.atTop (nhds (1 / (2 * Real.log 2)))
theorem FABL.tendsto_averageComplexity_or_at_critical : Filter.Tendsto (fun n => FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF (FABL.orCriticalProbability n) ⋯) (FABL.orFunction n) / ↑n) Filter.atTop (nhds (1 / (2 * Real.log 2)))
Exercise 8.39(b): at the critical probability, optimal average OR cost divided by `n` tends to `1 / (2 log 2)`.
Yao's Conjecture. Let f be a nonconstant monotone graph property on
v vertices and n=\binom v2 edge variables. Then
\operatorname{RDT}(f)\ge\Omega(n).
Theorem 8.66. If f:\{-1,1\}^n\to\{-1,1\} is nonconstant,
monotone, and transitive-symmetric with critical probability p_c, then
\Delta^{(p_c)}(f)
\ge\left(\frac n{\sigma_c}\right)^{2/3}.
Lean code for Theorem8.6.8●2 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.averageCost_ge_critical_lowerBound {n : ℕ} (f : FABL.BooleanFunction n) (hmono : Monotone f) (hnonconst : FABL.IsNonconstantCubeFunction f) (hsymm : FABL.IsTransitiveSymmetric f) (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f.toReal) : (↑n / FABL.criticalSigma f hmono hnonconst) ^ (2 / 3) ≤ T.averageCost (FABL.biasedSignPMF (FABL.criticalProbability f hmono hnonconst) ⋯)
theorem FABL.RandomizedDecisionTree.averageCost_ge_critical_lowerBound {n : ℕ} (f : FABL.BooleanFunction n) (hmono : Monotone f) (hnonconst : FABL.IsNonconstantCubeFunction f) (hsymm : FABL.IsTransitiveSymmetric f) (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f.toReal) : (↑n / FABL.criticalSigma f hmono hnonconst) ^ (2 / 3) ≤ T.averageCost (FABL.biasedSignPMF (FABL.criticalProbability f hmono hnonconst) ⋯)
Theorem 8.66 for every randomized tree computing the function.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.critical_lowerBound_le_averageComplexity {n : ℕ} (f : FABL.BooleanFunction n) (hmono : Monotone f) (hnonconst : FABL.IsNonconstantCubeFunction f) (hsymm : FABL.IsTransitiveSymmetric f) : (↑n / FABL.criticalSigma f hmono hnonconst) ^ (2 / 3) ≤ FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF (FABL.criticalProbability f hmono hnonconst) ⋯) f.toReal
theorem FABL.critical_lowerBound_le_averageComplexity {n : ℕ} (f : FABL.BooleanFunction n) (hmono : Monotone f) (hnonconst : FABL.IsNonconstantCubeFunction f) (hsymm : FABL.IsTransitiveSymmetric f) : (↑n / FABL.criticalSigma f hmono hnonconst) ^ (2 / 3) ≤ FABL.RandomizedDecisionTree.averageComplexity (FABL.biasedSignPMF (FABL.criticalProbability f hmono hnonconst) ⋯) f.toReal
Theorem 8.66 in function-complexity form.
Theorem 8.67 (BSW05). There is an infinite family of monotone,
transitive-symmetric functions
f_n:\{-1,1\}^n\to\{-1,1\} with
p_c=\frac12,
\qquad
\Delta(f_n)\le O(n^{2/3}\log n).
-
FABL.FiniteDecisionTree.biasedQueryScore[complete] -
FABL.FiniteDecisionTree.productMean_biasedQueryScore[complete] -
FABL.FiniteDecisionTree.productSecondMoment_biasedQueryScore[complete] -
FABL.FiniteDecisionTree.sum_structuralQueryProbability_eq_averageCost[complete] -
FABL.FiniteDecisionTree.os_sq[complete] -
FABL.RandomizedDecisionTree.os_sq[complete] -
FABL.RandomizedDecisionTree.os[complete] -
FABL.RandomizedDecisionTree.totalInfluence_le_sigma_mul_sqrt_averageCost[complete]
OS Inequality. For
f\in L^2(\{-1,1\}^n,\pi_p^{\otimes n}),
\sum_{i=1}^n\widehat f(\{i\})
\le\|f\|_2\sqrt{\Delta^{(p)}(f)}.
If f is monotone and Boolean-valued, then
\mathbf I[f]\le\sigma\sqrt{\Delta^{(p)}(f)}.
Lean code for Theorem8.6.10●8 declarations
Associated Lean declarations
-
FABL.FiniteDecisionTree.biasedQueryScore[complete]
-
FABL.FiniteDecisionTree.productMean_biasedQueryScore[complete]
-
FABL.FiniteDecisionTree.productSecondMoment_biasedQueryScore[complete]
-
FABL.FiniteDecisionTree.sum_structuralQueryProbability_eq_averageCost[complete]
-
FABL.FiniteDecisionTree.os_sq[complete]
-
FABL.RandomizedDecisionTree.os_sq[complete]
-
FABL.RandomizedDecisionTree.os[complete]
-
FABL.RandomizedDecisionTree.totalInfluence_le_sigma_mul_sqrt_averageCost[complete]
-
FABL.FiniteDecisionTree.biasedQueryScore[complete] -
FABL.FiniteDecisionTree.productMean_biasedQueryScore[complete] -
FABL.FiniteDecisionTree.productSecondMoment_biasedQueryScore[complete] -
FABL.FiniteDecisionTree.sum_structuralQueryProbability_eq_averageCost[complete] -
FABL.FiniteDecisionTree.os_sq[complete] -
FABL.RandomizedDecisionTree.os_sq[complete] -
FABL.RandomizedDecisionTree.os[complete] -
FABL.RandomizedDecisionTree.totalInfluence_le_sigma_mul_sqrt_averageCost[complete]
-
defdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
def FABL.FiniteDecisionTree.biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) (x : FABL.SignCube n) : ℝ
def FABL.FiniteDecisionTree.biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) (x : FABL.SignCube n) : ℝ
Sum of standardized queried bits along a deterministic tree path.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.productMean_biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) : FABL.productMean (FABL.biasedSignPMF p ⋯) (FABL.FiniteDecisionTree.biasedQueryScore p T) = 0
theorem FABL.FiniteDecisionTree.productMean_biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) : FABL.productMean (FABL.biasedSignPMF p ⋯) (FABL.FiniteDecisionTree.biasedQueryScore p T) = 0
The OS query score is centered.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.productSecondMoment_biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) : FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) (FABL.FiniteDecisionTree.biasedQueryScore p T) = ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability (FABL.biasedSignPMF p ⋯) T i
theorem FABL.FiniteDecisionTree.productSecondMoment_biasedQueryScore.{u_1} {α : Type u_1} {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree FABL.Sign α n available) : FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) (FABL.FiniteDecisionTree.biasedQueryScore p T) = ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability (FABL.biasedSignPMF p ⋯) T i
The query score's second moment is the sum of structural query probabilities.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.sum_structuralQueryProbability_eq_averageCost.{u_1, u_2, u_3} {Ω : Type u_1} {α : Type u_2} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_3} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability π T i = FABL.RandomizedDecisionTree.deterministicAverageCost π T
theorem FABL.FiniteDecisionTree.sum_structuralQueryProbability_eq_averageCost.{u_1, u_2, u_3} {Ω : Type u_1} {α : Type u_2} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_3} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) : ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability π T i = FABL.RandomizedDecisionTree.deterministicAverageCost π T
Sum of structural query probabilities is deterministic average query cost.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.os_sq {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) (T : FABL.FiniteAlphabetDecisionTree FABL.Sign ℝ n) {f : FABL.ProductL2 FABL.Sign n} (hT : FABL.FiniteDecisionTree.Computes T f) : (∑ i, FABL.biasedFourierCoeff p hp f {i}) ^ 2 ≤ FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f * FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.biasedSignPMF p ⋯) T
theorem FABL.FiniteDecisionTree.os_sq {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) (T : FABL.FiniteAlphabetDecisionTree FABL.Sign ℝ n) {f : FABL.ProductL2 FABL.Sign n} (hT : FABL.FiniteDecisionTree.Computes T f) : (∑ i, FABL.biasedFourierCoeff p hp f {i}) ^ 2 ≤ FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f * FABL.RandomizedDecisionTree.deterministicAverageCost (FABL.biasedSignPMF p ⋯) T
Squared OS inequality for one deterministic computing tree.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.os_sq {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {f : FABL.ProductL2 FABL.Sign n} (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f) : (∑ i, FABL.biasedFourierCoeff p hp f {i}) ^ 2 ≤ FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f * T.averageCost (FABL.biasedSignPMF p ⋯)
theorem FABL.RandomizedDecisionTree.os_sq {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {f : FABL.ProductL2 FABL.Sign n} (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f) : (∑ i, FABL.biasedFourierCoeff p hp f {i}) ^ 2 ≤ FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f * T.averageCost (FABL.biasedSignPMF p ⋯)
OS inequality for every randomized computing tree.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.os {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {f : FABL.ProductL2 FABL.Sign n} (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f) : ∑ i, FABL.biasedFourierCoeff p hp f {i} ≤ √(FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f) * √(T.averageCost (FABL.biasedSignPMF p ⋯))
theorem FABL.RandomizedDecisionTree.os {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) {f : FABL.ProductL2 FABL.Sign n} (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f) : ∑ i, FABL.biasedFourierCoeff p hp f {i} ≤ √(FABL.productSecondMoment (FABL.biasedSignPMF p ⋯) f) * √(T.averageCost (FABL.biasedSignPMF p ⋯))
Unsquared OS inequality in the book's norm form.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.totalInfluence_le_sigma_mul_sqrt_averageCost {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) (f : FABL.BooleanFunction n) (hf : Monotone f) (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f.toReal) : FABL.productTotalInfluence (FABL.biasedSignPMF p ⋯) f.toReal ≤ FABL.biasSigma p * √(T.averageCost (FABL.biasedSignPMF p ⋯))
theorem FABL.RandomizedDecisionTree.totalInfluence_le_sigma_mul_sqrt_averageCost {n : ℕ} (p : ℝ) (hp : p ∈ Set.Ioo 0 1) (f : FABL.BooleanFunction n) (hf : Monotone f) (T : FABL.RandomizedDecisionTree FABL.Sign ℝ n f.toReal) : FABL.productTotalInfluence (FABL.biasedSignPMF p ⋯) f.toReal ≤ FABL.biasSigma p * √(T.averageCost (FABL.biasedSignPMF p ⋯))
OS inequality, monotone corollary.
-
FABL.FiniteDecisionTree.osss_covariance_structural[complete] -
FABL.FiniteDecisionTree.osss_covariance[complete] -
FABL.RandomizedDecisionTree.osss_covariance[complete] -
FABL.RandomizedDecisionTree.osss[complete]
OSSS Inequality. Let
f\in L^2(\Omega^n,\pi^{\otimes n}) take values in \{-1,1\} and let
T be a randomized decision tree computing f. Then
\operatorname{Var}[f]
\le\sum_{i=1}^n
\delta_i^{(\pi)}(T)\operatorname{Inf}_i[f].
Lean code for Theorem8.6.11●4 theorems
Associated Lean declarations
-
FABL.FiniteDecisionTree.osss_covariance_structural[complete]
-
FABL.FiniteDecisionTree.osss_covariance[complete]
-
FABL.RandomizedDecisionTree.osss_covariance[complete]
-
FABL.RandomizedDecisionTree.osss[complete]
-
FABL.FiniteDecisionTree.osss_covariance_structural[complete] -
FABL.FiniteDecisionTree.osss_covariance[complete] -
FABL.RandomizedDecisionTree.osss_covariance[complete] -
FABL.RandomizedDecisionTree.osss[complete]
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.osss_covariance_structural.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω ℝ n available) {f g : FABL.ProductL2 Ω n} (hT : T.Computes f) (hf : FABL.HasSignRange f) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability π T i * FABL.productInfluence π g i
theorem FABL.FiniteDecisionTree.osss_covariance_structural.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {available : Finset (Fin n)} (T : FABL.FiniteDecisionTree Ω ℝ n available) {f g : FABL.ProductL2 Ω n} (hT : T.Computes f) (hf : FABL.HasSignRange f) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, FABL.FiniteDecisionTree.structuralQueryProbability π T i * FABL.productInfluence π g i
Strong covariance form of OSSS for one deterministic tree.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.FiniteDecisionTree.osss_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω ℝ n) {f g : FABL.ProductL2 Ω n} (hT : FABL.FiniteDecisionTree.Computes T f) (hf : FABL.HasSignRange f) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, FABL.FiniteDecisionTree.deterministicQueryProbability π T i * FABL.productInfluence π g i
theorem FABL.FiniteDecisionTree.osss_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω ℝ n) {f g : FABL.ProductL2 Ω n} (hT : FABL.FiniteDecisionTree.Computes T f) (hf : FABL.HasSignRange f) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, FABL.FiniteDecisionTree.deterministicQueryProbability π T i * FABL.productInfluence π g i
Deterministic OSSS covariance bound using the distributional query probabilities.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.osss_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) (g : FABL.ProductL2 Ω n) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, T.queryProbability π i * FABL.productInfluence π g i
theorem FABL.RandomizedDecisionTree.osss_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) (g : FABL.ProductL2 Ω n) (hg : FABL.HasSignRange g) : FABL.productCovariance π f g ≤ ∑ i, T.queryProbability π i * FABL.productInfluence π g i
OSSS in its stronger covariance form for the existing finite randomized-tree model.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.osss.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) : FABL.productVariance π f ≤ ∑ i, T.queryProbability π i * FABL.productInfluence π f i
theorem FABL.RandomizedDecisionTree.osss.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) : FABL.productVariance π f ≤ ∑ i, T.queryProbability π i * FABL.productInfluence π f i
The OSSS inequality.
Remark 8.68. The OSSS inequality implies
\operatorname{MaxInf}[f]
\ge\frac{\operatorname{Var}[f]}{\Delta^{(\pi)}(f)}
\ge\frac{\operatorname{Var}[f]}{\operatorname{DT}(f)}.
On the binary cube, the external Midrijānis bound
\operatorname{DT}(f)\le\deg(f)^3 would further give
\operatorname{MaxInf}[f]
\ge\frac{\operatorname{Var}[f]}{\deg(f)^3}.
The first two inequalities are production dependencies; the final comparison
is recorded without introducing the external theorem as an assumption.
Lean code for Lemma8.6.12●4 declarations
Associated Lean declarations
-
defdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
def FABL.maximumProductInfluence.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) {n : ℕ} (f : FABL.ProductL2 Ω n) : ℝ
def FABL.maximumProductInfluence.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) {n : ℕ} (f : FABL.ProductL2 Ω n) : ℝ
Maximum coordinate influence, with the empty-dimensional value defined as zero.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.variance_le_maxInfluence_mul_averageCost.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) : FABL.productVariance π f ≤ FABL.maximumProductInfluence π f * T.averageCost π
theorem FABL.RandomizedDecisionTree.variance_le_maxInfluence_mul_averageCost.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) : FABL.productVariance π f ≤ FABL.maximumProductInfluence π f * T.averageCost π
OSSS with all influences replaced by their maximum.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.RandomizedDecisionTree.variance_div_averageCost_le_maxInfluence.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) (hcost : 0 < T.averageCost π) : FABL.productVariance π f / T.averageCost π ≤ FABL.maximumProductInfluence π f
theorem FABL.RandomizedDecisionTree.variance_div_averageCost_le_maxInfluence.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (T : FABL.RandomizedDecisionTree Ω ℝ n f) (hf : FABL.HasSignRange f) (hcost : 0 < T.averageCost π) : FABL.productVariance π f / T.averageCost π ≤ FABL.maximumProductInfluence π f
Exercise 8.44(a), for each computing randomized tree.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.maximumProductInfluence_ge_variance_div_deterministicDepth.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (hf : FABL.HasSignRange f) (hnonconst : FABL.IsNonconstantProductFunction f) : FABL.productVariance π f / ↑(FABL.FiniteDecisionTree.deterministicDepth f) ≤ FABL.maximumProductInfluence π f
theorem FABL.maximumProductInfluence_ge_variance_div_deterministicDepth.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} {f : FABL.ProductL2 Ω n} (hf : FABL.HasSignRange f) (hnonconst : FABL.IsNonconstantProductFunction f) : FABL.productVariance π f / ↑(FABL.FiniteDecisionTree.deterministicDepth f) ≤ FABL.maximumProductInfluence π f
Remark 8.68's machine-independent deterministic-depth consequence.
Lemma 8.69. Fix a coordinate j. If f|_\omega and g|_{\omega'}
denote restrictions at independently sampled \omega,\omega'\sim\pi, then
\operatorname{Cov}[f,g]
=\mathbb E_{\omega,\omega'}
[\operatorname{Cov}[f|_\omega,g|_{\omega'}]]
+\langle L_jf,L_jg\rangle.
Lean code for Lemma8.6.13●4 declarations
Associated Lean declarations
-
defdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
def FABL.independentPairExpectation.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (h : Ω → Ω → ℝ) : ℝ
def FABL.independentPairExpectation.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (h : Ω → Ω → ℝ) : ℝ
Average a two-variable finite function under two independent copies of `π`.
-
defdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
def FABL.restrictionCovarianceAverage.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : ℝ
def FABL.restrictionCovarianceAverage.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : ℝ
Covariance averaged over two independent coordinate restrictions.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.restrictionCovarianceAverage_eq_projection_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : FABL.restrictionCovarianceAverage π f g j = FABL.productCovariance π (FABL.coordinateProjection π j f) (FABL.coordinateProjection π j g)
theorem FABL.restrictionCovarianceAverage_eq_projection_covariance.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : FABL.restrictionCovarianceAverage π f g j = FABL.productCovariance π (FABL.coordinateProjection π j f) (FABL.coordinateProjection π j g)
The independent restriction average in Lemma 8.69 equals covariance of coordinate projections.
-
theoremdefined in FABL/Chapter08/DecisionTreeInequalities.leancomplete
theorem FABL.productCovariance_eq_restrictionAverage_add_laplacian.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : FABL.productCovariance π f g = FABL.restrictionCovarianceAverage π f g j + FABL.productInner π n (FABL.productCoordinateLaplacian π j f) (FABL.productCoordinateLaplacian π j g)
theorem FABL.productCovariance_eq_restrictionAverage_add_laplacian.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f g : FABL.ProductL2 Ω n) (j : Fin n) : FABL.productCovariance π f g = FABL.restrictionCovarianceAverage π f g j + FABL.productInner π n (FABL.productCoordinateLaplacian π j f) (FABL.productCoordinateLaplacian π j g)
Lemma 8.69 exactly in the book's independently restricted form.
Definition 8.70. The decision-tree process follows a deterministic tree
from its root. Whenever coordinate j_k is queried, it independently
samples x_{j_k}\sim\pi and follows the matching edge. At the reached
leaf, if J is the queried-coordinate set, the unqueried coordinates are
independently sampled from \pi^{\otimes([n]\setminus J)}. The resulting
full input has law \pi^{\otimes n}.
Lean code for Definition8.6.14●4 definitions
Associated Lean declarations
-
structuredefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
structure FABL.FiniteDecisionTree.ProcessSample.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) : Type u_1
structure FABL.FiniteDecisionTree.ProcessSample.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) : Type u_1
O'Donnell, Definition 8.70: a coupled outcome of the decision-tree process. The entire independent input is sampled up front and then revealed in the tree's adaptive query order; this is the standard eager coupling of the book's lazy process.
Fields
input : Fin n → Ω
Final input string.
trace : List (Fin n)
Adaptive order in which coordinates were revealed.
trace_eq : self.trace = FABL.FiniteDecisionTree.queryTrace T self.input
The trace is exactly the tree execution trace on the final input.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.ProcessSample.ofInput.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) (x : Fin n → Ω) : FABL.FiniteDecisionTree.ProcessSample T
def FABL.FiniteDecisionTree.ProcessSample.ofInput.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) (x : Fin n → Ω) : FABL.FiniteDecisionTree.ProcessSample T
Couple an input with its adaptive query trace.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.ProcessSample.queriedSet.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) (sample : FABL.FiniteDecisionTree.ProcessSample T) : Finset (Fin n)
def FABL.FiniteDecisionTree.ProcessSample.queriedSet.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} (T : FABL.FiniteAlphabetDecisionTree Ω α n) (sample : FABL.FiniteDecisionTree.ProcessSample T) : Finset (Fin n)
Queried coordinate set `J` from Definition 8.70.
-
defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.leancomplete
def FABL.FiniteDecisionTree.decisionTreeProcessPMF.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : PMF (FABL.FiniteDecisionTree.ProcessSample T)
def FABL.FiniteDecisionTree.decisionTreeProcessPMF.{u_1, u_2} {Ω : Type u_1} {α : Type u_2} {n : ℕ} [Fintype Ω] (π : PMF Ω) (T : FABL.FiniteAlphabetDecisionTree Ω α n) : PMF (FABL.FiniteDecisionTree.ProcessSample T)
Distribution of the coupled decision-tree process under the product law `π⊗n`.