OAI/Probability/CubeShuffle/DensityMoments.lean
90 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.CubeShuffle.parallelFreshPreline 9 - def
OAI.CubeShuffle.parallelFreshPostline 16 - def
OAI.CubeShuffle.parallelAssembledline 20 - lemma
OAI.CubeShuffle.parallel_exposed_permline 24 - theorem
OAI.CubeShuffle.parallel_partially_exposed_log_mgfline 40Source documentation
Uniform conditional FAC.4 for an actual parallel network, after fixed exposure of every low layer and with arbitrary fixed endpoint relabelings.
theorem parallel_partially_exposed_log_mgf [Fintype α] [DecidableEq α] [Fintype B] [DecidableEq B] (pre : α ≃ B × Card (s+r)) (post : B × Card (s+r) ≃ α) (lo : B → Card r × SwitchIndex s → Bool) (S : Finset α) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : Real.log (finiteMean (fun hi : (B × Card s) × SwitchIndex r → Bool => q^(Fintype.card (RoutingNetwork.SelectedCycle (relabeledPerm pre post (parallelAssembled lo hi)) S)))) ≤ (S.card:ℝ)/J*Real.log q + 2*q*S.card*Real.sqrt J/Real.sqrt ((2:ℝ)^r) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.SelectedCycle, OAI.CubeShuffle.relabeledPerm, OAI.CubeShuffle.parallelAssembled
- lemma
OAI.CubeShuffle.orbitSet_inverseline 57 - lemma
OAI.CubeShuffle.selectedCycle_inverseline 61 - lemma
OAI.CubeShuffle.orbitSet_conjugateline 74 - def
OAI.CubeShuffle.conjugateCycleline 87 - lemma
OAI.CubeShuffle.conjugateCycle_injectiveline 94 - lemma
OAI.CubeShuffle.selectedCycle_conjugateline 100 - lemma
OAI.CubeShuffle.alternatingCycles_le_projectionline 122 - lemma
OAI.CubeShuffle.projectionCycles_forwardline 133Source documentation
Cycle orientation is explicitly reversed after conjugating by the fixed input map. The remaining random zero-side map is a forward butterfly.
lemma projectionCycles_forward (X₀ X₁ Y₀ Y₁ : Equiv.Perm α) (S : Finset α) : Fintype.card (RoutingNetwork.SelectedCycle ((Y₀*X₀⁻¹)⁻¹*(Y₁*X₁⁻¹)) S) = Fintype.card (RoutingNetwork.SelectedCycle (X₀⁻¹*X₁*Y₁⁻¹*Y₀) (S.image X₀.symm)) := by … - def
OAI.CubeShuffle.cycleCoefficientline 156 - lemma
OAI.CubeShuffle.cycleCoefficient_nonnegline 159 - lemma
OAI.CubeShuffle.projectionSide_card_leline 165 - theorem
OAI.CubeShuffle.node_partial_mgfline 174Source documentation
Conditional moment for one actual pair-routing node. The input-side maps are fixed; only the unexposed zero-side output butterfly is averaged.
theorem node_partial_mgf (r s : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Bool × Card (s+r)) (X₀ X₁ Y₁ : Equiv.Perm (Card (s+r))) (lo : Card r × SwitchIndex s → Bool) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : finiteMean (fun hi : Card s × SwitchIndex r → Bool => q^(PairRouting.alternatingCycles e (fun b => if b then Y₁*X₁⁻¹ else butterflyPerm (s+r) (decodeButterfly (s+r) (assembleBits r s lo hi))*X₀⁻¹))) ≤ Real.exp (Fintype.card ι * cycleCoefficient r J q) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.PairRouting.alternatingCycles, OAI.CubeShuffle.butterflyPerm, OAI.CubeShuffle.decodeButterfly, OAI.CubeShuffle.assembleBits, OAI.CubeShuffle.cycleCoefficient
- def
OAI.CubeShuffle.highStepEquivline 222Source documentation
Expose the last fresh layer, retaining the two independent lower fresh halves. This is a bijection of the original fair coin spaces.
def highStepEquiv (r s : ℕ) : (Card s × SwitchIndex (r+1) → Bool) ≃ (((Card s × SwitchIndex r → Bool) × (Card s × SwitchIndex r → Bool)) × (Card s × Card r → Bool)) where …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex
- lemma
OAI.CubeShuffle.assembleBits_stepline 239 - def
OAI.CubeShuffle.palindromeLevelCostline 254Source documentation
The exact level cost in the actual palindrome recursion. It stops at the specified height, and sums across all independent child nodes.
noncomputable def palindromeLevelCost (t : ℕ) : (d : ℕ) → {ι : Type*} → [Fintype ι] → (ι ↪ Card d) → BenesCoins d → ℕ | 0, _, _, _, _ => 0 | d+1, _, _, e, ω => let σ := benesStepEquiv d ω …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.BenesCoins, OAI.CubeShuffle.benesStepEquiv
- lemma
OAI.CubeShuffle.palindromeLevelCost_stepline 267 - lemma
OAI.CubeShuffle.palindromeLevelCost_gtline 282 - theorem
OAI.CubeShuffle.palindrome_level_partial_mgfline 296Source documentation
Uniform conditional FAC.4 for the actual sum of node cycles at one height. All input coins and all output layers through s are fixed. The only average is over the disjoint, still-fresh output layers.
theorem palindrome_level_partial_mgf (r s u : ℕ) (hu : u < r) {ι : Type*} [Fintype ι] (e : ι ↪ Card (s+r)) (X : SwitchIndex (s+r) → Bool) (lo : Card r × SwitchIndex s → Bool) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : finiteMean (fun hi : Card s × SwitchIndex r → Bool => q^(palindromeLevelCost (s+u+1) (s+r) e (assembleBits r s lo hi,X))) ≤ Real.exp (Fintype.card ι * cycleCoefficient u J q) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.palindromeLevelCost, OAI.CubeShuffle.assembleBits, OAI.CubeShuffle.cycleCoefficient
- def
OAI.CubeShuffle.switchHeightline 376Source documentation
Physical outward height of a switch in a butterfly.
def switchHeight : (d : ℕ) → SwitchIndex d → ℕ | 0, i => nomatch i | d+1, Sum.inl _ => d+1 | d+1, Sum.inr (_,i) => switchHeight d i
Mentions: OAI.CubeShuffle.SwitchIndex
- lemma
OAI.CubeShuffle.switchHeight_leline 381 - def
OAI.CubeShuffle.AgreeThroughline 390Source documentation
Equality of the already exposed outward layers.
def AgreeThrough (d s : ℕ) (Y Y' : SwitchIndex d → Bool) : Prop := …
Mentions: OAI.CubeShuffle.SwitchIndex
- def
OAI.CubeShuffle.LayerAdaptedline 394Source documentation
A function of the revealed layers only.
def LayerAdapted (d s : ℕ) {β : Type*} (f : (SwitchIndex d → Bool) → β) : Prop := …Mentions: OAI.CubeShuffle.SwitchIndex
- lemma
OAI.CubeShuffle.agreeThrough_monoline 397 - lemma
OAI.CubeShuffle.layerAdapted_monoline 401 - lemma
OAI.CubeShuffle.layerAdapted_compline 405 - lemma
OAI.CubeShuffle.layerAdapted_sumline 409 - lemma
OAI.CubeShuffle.assembleBits_agreeline 416 - lemma
OAI.CubeShuffle.palindromeLevelCost_adaptedline 429 - lemma
OAI.CubeShuffle.adapted_mul_mean_leline 463Source documentation
A conditional estimate on the still-fresh layers can be multiplied by any nonnegative function of the revealed layers. This finite product-space identity is the tower argument used between non-adjacent height slabs.
lemma adapted_mul_mean_le (r s : ℕ) (F G : (SwitchIndex (s+r) → Bool) → ℝ) (hF : ∀ Y, 0 ≤ F Y) (hA : LayerAdapted (s+r) s F) (B : ℝ) (hG : ∀ lo : Card r × SwitchIndex s → Bool, finiteMean (fun hi : Card s × SwitchIndex r → Bool => G (assembleBits r s lo hi)) ≤ B) : finiteMean (fun Y => F Y*G Y) ≤ finiteMean F * B := by …Mentions: OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.LayerAdapted, OAI.CubeShuffle.Card, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.assembleBits
- theorem
OAI.CubeShuffle.cycleCoefficient_decayline 486Source documentation
A completely explicit FAC.5 bound. The ceiling is part of the actual finite-cycle cutoff; there is no unverified numerical certificate.
theorem cycleCoefficient_decay (l r : ℕ) (hr : (l:ℝ)/2 ≤ r) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ (l:ℝ)/250) : cycleCoefficient r ⌈Real.exp ((l:ℝ)/32)⌉₊ q ≤ 68 * Real.exp (-(l:ℝ)/64) := by …Mentions: OAI.CubeShuffle.cycleCoefficient
- lemma
OAI.CubeShuffle.cycleCutoff_posline 552 - lemma
OAI.CubeShuffle.pow_sum_le_mean_powersline 561 - def
OAI.CubeShuffle.palindromeSlabCostline 574Source documentation
Sum over a slab, padded by its actual zero costs when its levels exceed d.
noncomputable def palindromeSlabCost (l d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (ω : BenesCoins d) : ℕ := …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.BenesCoins
- lemma
OAI.CubeShuffle.palindromeSlabCost_adaptedline 578 - theorem
OAI.CubeShuffle.palindrome_slab_partial_mgfline 587Source documentation
The genuine conditional slab estimate: no independence is asserted among node cycles or among levels in the slab. Jensen costs l on the exponent.
theorem palindrome_slab_partial_mgf (r s l : ℕ) (hl : 0 < l) (hs : 2*s ≤ l) {ι : Type*} [Fintype ι] (e : ι ↪ Card (s+r)) (X : SwitchIndex (s+r) → Bool) (lo : Card r × SwitchIndex s → Bool) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ 1/250) : finiteMean (fun hi : Card s × SwitchIndex r → Bool => q^(palindromeSlabCost l (s+r) e (assembleBits r s lo hi,X))) ≤ Real.exp (Fintype.card ι * (68*Real.exp (-(l:ℝ)/64))) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.palindromeSlabCost, OAI.CubeShuffle.assembleBits
- lemma
OAI.CubeShuffle.palindromeSlabCost_gtline 635 - lemma
OAI.CubeShuffle.palindrome_slab_adapted_mul_leline 641 - def
OAI.CubeShuffle.familyEndline 652 - lemma
OAI.CubeShuffle.familyEnd_twoline 654 - lemma
OAI.CubeShuffle.familyEnd_geline 659 - def
OAI.CubeShuffle.palindromeFamilyCostline 667 - lemma
OAI.CubeShuffle.palindromeFamilyCost_adaptedline 671 - theorem
OAI.CubeShuffle.palindrome_family_mgfline 681Source documentation
Time-ordered multiplication across one family of nonadjacent slabs. The proof uses only the already proved finite conditional estimate.
theorem palindrome_family_mgf (L n d : ℕ) (hL : 0 < L) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (X : SwitchIndex d → Bool) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ 1/250) : finiteMean (fun Y => q^(palindromeFamilyCost L n d e (Y,X))) ≤ Real.exp (Fintype.card ι * (68*∑ j ∈ Finset.range n, Real.exp (-((L*4^j:ℕ):ℝ)/64))) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.palindromeFamilyCost
- lemma
OAI.CubeShuffle.pow_four_geline 717 - lemma
OAI.CubeShuffle.sum_family_decayline 722 - lemma
OAI.CubeShuffle.palindromeLevelCost_step_addline 749 - lemma
OAI.CubeShuffle.palindromeLowCost_sumline 768Source documentation
The recursive low cost is literally the sum of its physical node levels.
lemma palindromeLowCost_sum (H d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (ω : BenesCoins d) : palindromeLowCost H d e ω = ∑ i ∈ Finset.range H, palindromeLevelCost (i+1) d e ω := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.BenesCoins, OAI.CubeShuffle.palindromeLowCost, OAI.CubeShuffle.palindromeLevelCost
- lemma
OAI.CubeShuffle.palindromeLowCost_slabline 781 - lemma
OAI.CubeShuffle.palindromeCost_familyline 788 - lemma
OAI.CubeShuffle.finiteMean_mul_sq_leline 805 - lemma
OAI.CubeShuffle.finiteMean_mul_exp_leline 811 - def
OAI.CubeShuffle.heightDecayline 831 - lemma
OAI.CubeShuffle.heightDecay_nonnegline 834 - lemma
OAI.CubeShuffle.heightDecay_antitoneline 838 - lemma
OAI.CubeShuffle.palindrome_family_mgf_decayline 849 - theorem
OAI.CubeShuffle.palindrome_high_mgfline 862Source documentation
The two interlaced slab families have a uniform conditional high-level moment bound. This is FAC.6, including all dependence between families.
theorem palindrome_high_mgf (H n d : ℕ) (hH : 0 < H) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (X : SwitchIndex d → Bool) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ 1/500) : finiteMean (fun Y => q^(palindromeFamilyCost H n d e (Y,X)+ palindromeFamilyCost (2*H) n d e (Y,X))) ≤ Real.exp (Fintype.card ι*heightDecay H) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.palindromeFamilyCost, OAI.CubeShuffle.heightDecay
- lemma
OAI.CubeShuffle.palindrome_high_full_mgfline 879 - theorem
OAI.CubeShuffle.palindrome_cost_mgf_cutoffline 893Source documentation
Combination with the genuine sparse low-block estimate. The factor 2 in that estimate and both Cauchy steps are retained explicitly.
theorem palindrome_cost_mgf_cutoff (r H : ℕ) (hH : 0 < H) {ι : Type*} [Fintype ι] (e : ι ↪ Card (H+r)) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ 1/1000) (hr : (2:ℝ)^H*((Fintype.card ι/(2:ℝ)^(H+r))*(q^2)^H) ≤ 1/2) : finiteMean (fun ω : BenesCoins (H+r) => q^(palindromeCost (H+r) e ω)) ≤ Real.exp (((2:ℝ)^r*(2*((2:ℝ)^H*((Fintype.card ι/(2:ℝ)^(H+r))*(q^2)^H))^2)+ Fintype.card ι*heightDecay H)/2) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.BenesCoins, OAI.CubeShuffle.palindromeCost, OAI.CubeShuffle.heightDecay
- lemma
OAI.CubeShuffle.cutoffMass_leline 921 - lemma
OAI.CubeShuffle.palindromeLowCost_leline 932 - theorem
OAI.CubeShuffle.palindrome_cost_mgf_coarseline 938Source documentation
Dense rows are included. The cutoff-one estimate gives a uniform O(k) log moment without any small-density or dimension hypothesis.
theorem palindrome_cost_mgf_coarse (d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (q : ℝ) (hq : 1 ≤ q) (hlog : Real.log q ≤ 1/1000) : finiteMean (fun ω : BenesCoins d => q^(palindromeCost d e ω)) ≤ Real.exp (Fintype.card ι*(1+heightDecay 1)) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.BenesCoins, OAI.CubeShuffle.palindromeCost, OAI.CubeShuffle.heightDecay
- def
OAI.CubeShuffle.momentBaseline 976Source documentation
The exponent remains the literal 1/1000 fixed by the manuscript.
noncomputable def momentBase : ℝ := (2:ℝ)^(1/1000:ℝ)
- lemma
OAI.CubeShuffle.momentBase_one_leline 978 - lemma
OAI.CubeShuffle.momentBase_logline 981 - lemma
OAI.CubeShuffle.momentBase_powline 987 - lemma
OAI.CubeShuffle.palindromeRowMoment_le_costline 993Source documentation
Remove only the source's non-increasing falling-factorial normalization; no change is made to the tuple law or the (1+a)-moment.
lemma palindromeRowMoment_le_cost (d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) : palindromeRowMoment d e (1/1000) ≤ finiteMean (fun ω : BenesCoins d => momentBase^(palindromeCost d e ω)) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.palindromeRowMoment, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.BenesCoins, OAI.CubeShuffle.momentBase, OAI.CubeShuffle.palindromeCost
- theorem
OAI.CubeShuffle.palindrome_row_moment_coarseline 1010 - def
OAI.CubeShuffle.densityCutoffline 1018 - lemma
OAI.CubeShuffle.log_small_densityline 1020 - lemma
OAI.CubeShuffle.densityCutoff_boundsline 1028 - lemma
OAI.CubeShuffle.densityCutoff_decayline 1042 - lemma
OAI.CubeShuffle.densityCutoff_powerline 1054 - lemma
OAI.CubeShuffle.densityCutoff_sparseline 1075 - lemma
OAI.CubeShuffle.momentBase_log_exactline 1092 - lemma
OAI.CubeShuffle.densityCutoff_le_heightline 1096 - def
OAI.CubeShuffle.densityTailConstantline 1113 - lemma
OAI.CubeShuffle.densityTailConstant_nonnegline 1116 - lemma
OAI.CubeShuffle.heightDecay_cutoffline 1120 - lemma
OAI.CubeShuffle.sparse_low_algebraline 1129 - lemma
OAI.CubeShuffle.palindrome_row_moment_smallline 1138 - def
OAI.CubeShuffle.densityConstantline 1175 - lemma
OAI.CubeShuffle.densityConstant_posline 1178 - theorem
OAI.CubeShuffle.palindrome_row_moment_boundline 1186Source documentation
The absolute power improvement in the first clause of fac:density, for the actual full palindrome and all labelled distinct input tuples.
theorem palindrome_row_moment_bound (d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (hk : 0 < Fintype.card ι) : palindromeRowMoment d e (1/1000) ≤ Real.exp (densityConstant*Fintype.card ι* ((Fintype.card ι:ℝ)/(2:ℝ)^d)^(1/512:ℝ)) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.palindromeRowMoment, OAI.CubeShuffle.densityConstant
- lemma
OAI.CubeShuffle.palindromeRowMoment_nonnegline 1221 - theorem
OAI.CubeShuffle.palindrome_log_row_momentline 1230Source documentation
Literal logarithmic row-density estimate with a=1/1000, eta=1/512, and one explicit absolute positive constant.
theorem palindrome_log_row_moment (d : ℕ) {ι : Type*} [Fintype ι] (e : ι ↪ Card d) (hk : 0 < Fintype.card ι) : Real.log (palindromeRowMoment d e (1/1000)) ≤ densityConstant*Fintype.card ι* ((Fintype.card ι:ℝ)/(2:ℝ)^d)^(1/512:ℝ) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.palindromeRowMoment, OAI.CubeShuffle.densityConstant