OAI/Probability/CubeShuffle/CycleColoring.lean
45 declarations, 0 contain sorry, 0 declared as axioms
- abbrev
OAI.CubeShuffle.CycleColoring.Coloringline 15Source documentation
A coloring of the selected vertices constant along every retained edge of an oriented permutation graph. Off the selected set its value is fixed.
abbrev Coloring (p : Equiv.Perm α) (S : Finset α) := …
- instance
OAI.CubeShuffle.CycleColoring.(instance at line 19)line 19 - def
OAI.CubeShuffle.CycleColoring.boundaryline 22 - def
OAI.CubeShuffle.CycleColoring.rootline 25 - lemma
OAI.CubeShuffle.CycleColoring.root_memline 28 - abbrev
OAI.CubeShuffle.CycleColoring.Seedline 31 - def
OAI.CubeShuffle.CycleColoring.recordline 34 - lemma
OAI.CubeShuffle.CycleColoring.orbit_subset_of_predecessor_closedline 38 - lemma
OAI.CubeShuffle.CycleColoring.record_injectiveline 49 - lemma
OAI.CubeShuffle.CycleColoring.card_coloring_leline 82Source documentation
Every open chain has a boundary seed and every complete cycle has one free bit. In particular a parallel pair of matching edges is treated as a cycle.
lemma card_coloring_le (p : Equiv.Perm α) (S : Finset α) : Fintype.card (Coloring p S) ≤ 2 ^ ((boundary p S).card + Fintype.card (RoutingNetwork.SelectedCycle p S)) := by …Mentions: OAI.CubeShuffle.CycleColoring.Coloring, OAI.CubeShuffle.CycleColoring.boundary, OAI.CubeShuffle.RoutingNetwork.SelectedCycle
- lemma
OAI.CubeShuffle.CycleColoring.boundary_cardline 89 - lemma
OAI.CubeShuffle.CycleColoring.card_coloring_le_edgesline 96 - abbrev
OAI.CubeShuffle.CycleColoring.OppositeColoringline 108Source documentation
A binary assignment with opposite values on each marked matching edge.
abbrev OppositeColoring (p : Equiv.Perm α) (S : Finset α) := …
- instance
OAI.CubeShuffle.CycleColoring.(instance at line 112)line 112 - def
OAI.CubeShuffle.CycleColoring.bipartitionFlipline 117Source documentation
Flipping one bipartition converts opposite matching assignments into constant colorings. The construction includes the unmarked-value convention.
noncomputable def bipartitionFlip (p : Equiv.Perm α) (S : Finset α) (χ : α → Bool) (hχ : ∀ x, χ (p x) = !(χ x)) (f : OppositeColoring p S) : Coloring p S := by …Mentions: OAI.CubeShuffle.CycleColoring.OppositeColoring, OAI.CubeShuffle.CycleColoring.Coloring
- lemma
OAI.CubeShuffle.CycleColoring.bipartitionFlip_injectiveline 129 - lemma
OAI.CubeShuffle.CycleColoring.card_opposite_leline 144 - def
OAI.CubeShuffle.CycleColoring.alternatingPermline 153Source documentation
Alternating traversal of the identity matching and the p-matching on two halves. A fixed point of p is precisely a parallel-edge alternating cycle.
def alternatingPerm (p : Equiv.Perm α) : Equiv.Perm (Bool × α) where …
- lemma
OAI.CubeShuffle.CycleColoring.alternatingPerm_flipline 160 - lemma
OAI.CubeShuffle.CycleColoring.alternating_step_sameCycleline 166 - lemma
OAI.CubeShuffle.CycleColoring.alternating_sameCycle_sndline 174 - lemma
OAI.CubeShuffle.CycleColoring.alternating_zero_sameCycleline 186 - lemma
OAI.CubeShuffle.CycleColoring.alternating_sameCycle_zeroline 199 - lemma
OAI.CubeShuffle.CycleColoring.alternating_sameCycle_iffline 207 - lemma
OAI.CubeShuffle.CycleColoring.orbit_alternatingline 215 - lemma
OAI.CubeShuffle.CycleColoring.boolFiber_childJoinline 221 - def
OAI.CubeShuffle.CycleColoring.projectCycleline 226 - lemma
OAI.CubeShuffle.CycleColoring.selected_alternating_eqline 237 - lemma
OAI.CubeShuffle.CycleColoring.projectCycle_injectiveline 245 - lemma
OAI.CubeShuffle.CycleColoring.card_alternating_cycles_leline 251 - lemma
OAI.CubeShuffle.mem_image_perm_iffline 262 - lemma
OAI.CubeShuffle.card_childJoinline 272 - lemma
OAI.CubeShuffle.alternating_internalline 285 - lemma
OAI.CubeShuffle.alternating_boundary_cardline 294 - lemma
OAI.CubeShuffle.compatible_assignment_boundline 308Source documentation
Literal component-count exponent in FAC.1, after identifying the two perfect matchings with the identity and p matchings on their two halves. The complete alternating cycles are bounded by the projection-side cycles.
lemma compatible_assignment_bound (p : Equiv.Perm α) (A B : Finset α) : Fintype.card (CycleColoring.OppositeColoring (CycleColoring.alternatingPerm p) (childJoin A B)) ≤ 2 ^ ((A ∪ B).card + (A ∪ B.image p).card - (A.card+B.card) + Fintype.card (RoutingNetwork.SelectedCycle p A)) := by …Mentions: OAI.CubeShuffle.CycleColoring.OppositeColoring, OAI.CubeShuffle.CycleColoring.alternatingPerm, OAI.CubeShuffle.childJoin, OAI.CubeShuffle.RoutingNetwork.SelectedCycle
- lemma
OAI.CubeShuffle.finiteMean_nonnegline 321 - lemma
OAI.CubeShuffle.boolFiber_headTailline 325 - lemma
OAI.CubeShuffle.prod_childMarksline 340 - def
OAI.CubeShuffle.headAverageline 351 - lemma
OAI.CubeShuffle.finiteMean_headAverageline 354 - lemma
OAI.CubeShuffle.pairSwitch_product_boundline 362 - lemma
OAI.CubeShuffle.butterflyPerm_stepline 387 - lemma
OAI.CubeShuffle.butterfly_product_boundline 404Source documentation
A weighted form of the inverse-image cylinder bound. Its orientation is specified by the actual butterfly action on each selected input.
lemma butterfly_product_bound (d : ℕ) (S : Finset (Card d)) (p : Card d → ℝ) (hp : ∀ x, 0 ≤ p x) : finiteMean (fun ω : SwitchIndex d → Bool => ∏ x ∈ S, p (butterflyPerm d (decodeButterfly d ω) x)) ≤ (finiteMean p)^S.card := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.SwitchIndex, OAI.CubeShuffle.butterflyPerm, OAI.CubeShuffle.decodeButterfly
- def
OAI.CubeShuffle.inverseButterflyMarksline 457 - lemma
OAI.CubeShuffle.inverseButterflyMarks_inclusionline 463Source documentation
The central-mark inclusion estimate in the orientation required by the recursive Beneš network, derived rather than assumed from reversibility.
lemma inverseButterflyMarks_inclusion (d : ℕ) (A S : Finset (Card d)) : inclusionMoment (inverseButterflyMarks d A) S ≤ ((A.card : ℝ)/(2:ℝ)^d)^S.card := by …Mentions: OAI.CubeShuffle.Card, OAI.CubeShuffle.inclusionMoment, OAI.CubeShuffle.inverseButterflyMarks