Analysis of Boolean Functions in Lean

8.6. Randomized decision tree complexity🔗

Definition8.6.1
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 8.6.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.115 definitions
  • inductive(2 constructors, 4 parameters)defined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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. 
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
  • structure(6 fields)defined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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. 
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition8.6.2
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 10
Reverse dependency previews
Preview
Lemma 8.6.3
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.27 declarations
  • defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Lemma8.6.3
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0L∃∀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.33 declarations
  • defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma8.6.4
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Definition 2.1.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Lemma 8.6.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.443 declarations
  • defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    def FABL.addressRecursiveMajorityThreeTopCoeff (d : ) : 
    def FABL.addressRecursiveMajorityThreeTopCoeff
      (d : ) : 
    Full-parity correlation of address-form recursive majority. 
  • theoremdefined in FABL/Chapter08/RecursiveMajorityDecisionTrees.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Lemma8.6.5
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0XL∃∀N

The displayed recursive-majority bounds are not asymptotically sharp; the optimal order of its randomized decision-tree complexity remains open.

Lemma8.6.6
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.4.14
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.67 declarations
  • defdefined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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)`. 
Theorem8.6.7
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.4.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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).

Theorem8.6.8
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Definition 8.4.14
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀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.82 theorems
  • theoremdefined in FABL/Chapter08/DecisionTreeInequalities.lean
    complete
    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.lean
    complete
    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. 
Theorem8.6.9
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.4.14
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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).

Theorem8.6.10
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.4.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Theorem 8.6.8
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.108 declarations
  • defdefined in FABL/Chapter08/DecisionTreeInequalities.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Theorem8.6.11
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Definition 8.2.7
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 6
Reverse dependency previews
Preview
Theorem 8.6.8
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.114 theorems
  • theoremdefined in FABL/Chapter08/DecisionTreeInequalities.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma8.6.12
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.2.17
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

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.124 declarations
  • defdefined in FABL/Chapter08/DecisionTreeInequalities.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    theorem FABL.maximumProductInfluence_ge_variance_div_deterministicDepth.{u_1,
        u_2}
      {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω}
      ( : 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 Ω}
      ( : 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. 
Lemma8.6.13
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.2.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

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.134 declarations
  • defdefined in FABL/Chapter08/DecisionTreeInequalities.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition8.6.14
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 3
Reverse dependency previews
Preview
Theorem 8.6.11
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.144 definitions
  • structure(3 fields)defined in FABL/Chapter08/RandomizedDecisionTreeComplexity.lean
    complete
    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. 
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`.