OAI/Probability/CubeShuffle/ParallelLayers.lean
81 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.CubeShuffle.parallelPermline 13 - def
OAI.CubeShuffle.relabeledPermline 19 - def
OAI.CubeShuffle.parallelPathline 23 - def
OAI.CubeShuffle.parallelUsersline 29 - lemma
OAI.CubeShuffle.parallelUsers_neline 35 - lemma
OAI.CubeShuffle.mem_parallelPathline 41 - lemma
OAI.CubeShuffle.card_parallelPathline 74 - def
OAI.CubeShuffle.blockMarksline 79 - lemma
OAI.CubeShuffle.mem_blockMarksline 83 - lemma
OAI.CubeShuffle.sum_card_blockMarksline 89 - lemma
OAI.CubeShuffle.card_blockMarks_leline 100 - lemma
OAI.CubeShuffle.parallel_entropyline 106 - def
OAI.CubeShuffle.parallelFollowline 129 - lemma
OAI.CubeShuffle.parallelFollow_succeedsline 134 - lemma
OAI.CubeShuffle.parallelFollow_raw_chargeline 140 - lemma
OAI.CubeShuffle.parallelFollow_stale_chargeline 146 - def
OAI.CubeShuffle.closingDomainline 153 - def
OAI.CubeShuffle.closingValueline 157 - lemma
OAI.CubeShuffle.relabeled_endpoint_pairline 161 - lemma
OAI.CubeShuffle.relabeled_endpoint_iffline 170 - lemma
OAI.CubeShuffle.closingDomain_eqline 180 - def
OAI.CubeShuffle.parallelCloseline 185 - lemma
OAI.CubeShuffle.parallelClose_succeedsline 192 - lemma
OAI.CubeShuffle.parallelClose_raw_chargeline 204 - lemma
OAI.CubeShuffle.parallelClose_fresh_chargeline 214 - lemma
OAI.CubeShuffle.parallelClose_stale_chargeline 225 - def
OAI.CubeShuffle.parallelNetworkline 240Source documentation
Independent fair butterflies in parallel with completely arbitrary fixed bijections at either end. All certificate fields are proved from the explicit Boolean query algorithms and deterministic butterfly geometry.
noncomputable def parallelNetwork (pre : α ≃ B × Card d) (post : B × Card d ≃ α) : RoutingNetwork α (B × SwitchIndex d) d where …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.RoutingNetwork, OAI.CubeShuffle.SwitchIndex
- lemma
OAI.CubeShuffle.parallel_cycle_log_mgfline 260Source documentation
The source FAC.4 estimate for independent parallel butterflies, allowing arbitrary fixed identifications on both sides.
lemma parallel_cycle_log_mgf (pre : α ≃ B × Card d) (post : B × Card d ≃ α) (S : Finset α) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : Real.log (finiteMean (fun ω : B × SwitchIndex d → Bool => q^(Fintype.card (RoutingNetwork.SelectedCycle (relabeledPerm pre post ω) S)))) ≤ (S.card : ℝ)/J * Real.log q + 2*q*S.card*Real.sqrt J / Real.sqrt ((2:ℝ)^d) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.RoutingNetwork.SelectedCycle, OAI.CubeShuffle.relabeledPerm
- def
OAI.CubeShuffle.cardSplitline 272Source documentation
Separate the first r coordinates from the remaining s coordinates. The sum is written s+r so its recursion agrees literally with the network.
def cardSplit : (r s : ℕ) → Card (s+r) ≃ Card r × Card s | 0, s => { toFun := fun x => ((fun i => Fin.elim0 i), x) …Mentions: OAI.CubeShuffle.Card
- def
OAI.CubeShuffle.assembleBitsline 294Source documentation
Assemble the previously exposed low layers and the still-fresh high layers without identifying or resampling any switch coin.
def assembleBits : (r s : ℕ) → (Card r × SwitchIndex s → Bool) → (Card s × SwitchIndex r → Bool) → SwitchIndex (s+r) → Bool | 0, _, lo, _, i => lo ((fun j => Fin.elim0 j), i) | r+1, s, _, hi, Sum.inl y => hi ((cardSplit r s y).2,Sum.inl (cardSplit r s y).1) | r+1, s, lo, hi, Sum.inr (b,i) => assembleBits r s (fun j => lo (Fin.cons b j.1,j.2)) (fun j => hi (j.1,Sum.inr (b,j.2))) iMentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.cardSplit
- lemma
OAI.CubeShuffle.butterfly_splitline 301 - def
OAI.CubeShuffle.splitSwitchline 329Source documentation
Disjoint partition of all switch locations into the exposed low butterflies and the remaining high butterflies.
def splitSwitch : (r s : ℕ) → SwitchIndex (s+r) ≃ (Card r × SwitchIndex s) ⊕ (Card s × SwitchIndex r) | 0, _ => { toFun := fun i => Sum.inl ((fun j => Fin.elim0 j),i) …Mentions: OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.Card
- lemma
OAI.CubeShuffle.assembleBits_eqline 373 - def
OAI.CubeShuffle.splitCoinEquivline 387Source documentation
The actual uniform coin law splits as a product; this is an equivalence of finite sample spaces, rather than an independence assumption.
def splitCoinEquiv (r s : ℕ) : ((Card r × SwitchIndex s → Bool) × (Card s × SwitchIndex r → Bool)) ≃ (SwitchIndex (s+r) → Bool) := …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.SwitchIndex
- lemma
OAI.CubeShuffle.splitCoinEquiv_applyline 393 - lemma
OAI.CubeShuffle.finiteMean_prodline 399 - lemma
OAI.CubeShuffle.finiteMean_splitline 404 - def
OAI.CubeShuffle.freshPreline 419 - def
OAI.CubeShuffle.freshPostline 423 - lemma
OAI.CubeShuffle.exposed_perm_eqline 426 - lemma
OAI.CubeShuffle.partially_exposed_cycle_log_mgfline 437Source documentation
Single-level FAC.4 after any fixed exposure of the first s outward layers. The expectation is over the genuinely unexposed disjoint high-layer coins.
lemma partially_exposed_cycle_log_mgf [Fintype α] [DecidableEq α] (pre : α ≃ Card (s+r)) (post : Card (s+r) ≃ α) (lo : Card r × SwitchIndex s → Bool) (S : Finset α) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : Real.log (finiteMean (fun hi : Card s × SwitchIndex r → Bool => q^(Fintype.card (RoutingNetwork.SelectedCycle ((pre.trans (butterflyPerm (s+r) (decodeButterfly (s+r) (assembleBits r s lo hi)))).trans post) 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.butterflyPerm, OAI.CubeShuffle.decodeButterfly, OAI.CubeShuffle.assembleBits
- lemma
OAI.CubeShuffle.inclusionMoment_eqline 451 - lemma
OAI.CubeShuffle.finiteMean_boolline 459 - lemma
OAI.CubeShuffle.finiteMean_constline 463 - lemma
OAI.CubeShuffle.finiteMean_pi_prodline 468 - def
OAI.CubeShuffle.pairLayerline 476 - def
OAI.CubeShuffle.pairFiberline 488 - lemma
OAI.CubeShuffle.prod_pairFiberline 491 - lemma
OAI.CubeShuffle.fiber_average_boundline 501 - lemma
OAI.CubeShuffle.CylinderBound.fair_parallelline 514Source documentation
A whole layer of independent fair pair coins preserves the upper-product bound. Dependence in the random marked set is not discarded.
lemma CylinderBound.fair_parallel {m : Finset (Bool × β) → ℝ} {p : Bool × β → ℝ} (h : CylinderBound m p) (hp : ∀ x, 0 ≤ p x) : CylinderBound (fun S => finiteMean (fun ξ : β → Bool => m (S.image (pairLayer ξ)))) (fun x => (p x+p (!x.1,x.2))/2) := by …Mentions: OAI.CubeShuffle.CylinderBound, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.pairLayer
- lemma
OAI.CubeShuffle.subset_pairLayer_image_iffline 540 - def
OAI.CubeShuffle.fairSetLayerline 551 - lemma
OAI.CubeShuffle.finiteMean_commline 554 - lemma
OAI.CubeShuffle.inclusionMoment_fairSetLayerline 559 - lemma
OAI.CubeShuffle.inclusionMoment_fairSetLayer_singletonline 574 - lemma
OAI.CubeShuffle.cylinder_fairSetLayerline 585 - lemma
OAI.CubeShuffle.subset_image_equiv_iffline 602 - lemma
OAI.CubeShuffle.inclusionMoment_image_equivline 613 - lemma
OAI.CubeShuffle.cylinder_image_equivline 622 - lemma
OAI.CubeShuffle.inclusionMoment_comp_equivline 632 - lemma
OAI.CubeShuffle.cylinder_comp_equivline 640 - lemma
OAI.CubeShuffle.finiteMean_prod_mulline 648 - def
OAI.CubeShuffle.childJoinline 658 - lemma
OAI.CubeShuffle.mem_childJoinline 661 - def
OAI.CubeShuffle.boolFiberline 665 - lemma
OAI.CubeShuffle.mem_boolFiberline 668 - lemma
OAI.CubeShuffle.childJoin_boolFiberline 680 - lemma
OAI.CubeShuffle.subset_childJoin_iffline 686 - lemma
OAI.CubeShuffle.prod_childJoinline 701 - lemma
OAI.CubeShuffle.prod_boolFibersline 714 - lemma
OAI.CubeShuffle.inclusionMoment_childJoinline 719 - lemma
OAI.CubeShuffle.cylinder_childJoinline 731 - def
OAI.CubeShuffle.coinStepEquivline 763Source documentation
Exact independent split of a butterfly's last layer and its two children.
def coinStepEquiv (d : ℕ) : (SwitchIndex (d+1) → Bool) ≃ ((SwitchIndex d → Bool) × (SwitchIndex d → Bool)) × (Card d → Bool) where …Mentions: OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.Card
- def
OAI.CubeShuffle.headTailEquivline 777 - lemma
OAI.CubeShuffle.childMarks_joinline 780 - def
OAI.CubeShuffle.butterflyMarksline 801 - lemma
OAI.CubeShuffle.butterflyMarks_succline 805 - lemma
OAI.CubeShuffle.butterflyMarks_cylinderline 834Source documentation
The actual central marked positions obey the product-of-marginals upper bound, not just an independently resampled proxy.
lemma butterflyMarks_cylinder (d : ℕ) (A : Finset (Card d)) : CylinderBound (inclusionMoment (butterflyMarks d A)) (fun x => inclusionMoment (butterflyMarks d A) {x}) := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.CylinderBound, OAI.CubeShuffle.inclusionMoment, OAI.CubeShuffle.butterflyMarks
- lemma
OAI.CubeShuffle.indicator_mem_image_permline 851 - lemma
OAI.CubeShuffle.butterflyMarks_singletonline 870 - lemma
OAI.CubeShuffle.butterflyMarks_inclusionline 880Source documentation
The joint inclusion bound used for the low levels of FAC.1.
lemma butterflyMarks_inclusion (d : ℕ) (A S : Finset (Card d)) : inclusionMoment (butterflyMarks d A) S ≤ ((A.card : ℝ)/(2:ℝ)^d)^S.card := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.inclusionMoment, OAI.CubeShuffle.butterflyMarks