OAI/Probability/CubeShuffle/RoutingNetwork.lean
100 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.CubeShuffle.RoutingNetworkline 13Source documentation
A finite fair routing network certified by its actual test algorithms and path/meeting geometry. The fields are local routing facts, not probability or mixing assumptions. Below they are constructed for parallel butterflies.
structure RoutingNetwork (α ι : Type*) [Fintype α] [DecidableEq α] [Fintype ι] [DecidableEq ι] (d : ℕ) where … - lemma
OAI.CubeShuffle.RoutingNetwork.card_switches_usingline 40 - lemma
OAI.CubeShuffle.RoutingNetwork.switch_incidence_sumline 49 - lemma
OAI.CubeShuffle.RoutingNetwork.weighted_switch_min_boundline 78Source documentation
The weighted threshold estimate in the rotation argument. It applies to any weights and so in particular to
1/jon selected length-j cycles.lemma weighted_switch_min_bound (b : ι → Bool) (w : α → ℝ) : ∑ i : ι, min (w (R.users b i).1) (w (R.users b i).2) ≤ (d : ℝ) / 2 * ∑ x : α, w x := by … - def
OAI.CubeShuffle.RoutingNetwork.cycleFiberline 95Source documentation
Ownership by distinguishable cycle slots;
nonemeans unselected.def cycleFiber (o : α → Option (Fin A)) (i : Fin A) : Finset (α) := by …
- lemma
OAI.CubeShuffle.RoutingNetwork.mem_cycleFiberline 100 - abbrev
OAI.CubeShuffle.RoutingNetwork.Terminalline 105 - def
OAI.CubeShuffle.RoutingNetwork.slotWeightline 107 - def
OAI.CubeShuffle.RoutingNetwork.pathWeightline 110 - def
OAI.CubeShuffle.RoutingNetwork.withinWeightline 115 - def
OAI.CubeShuffle.RoutingNetwork.rotationMeetingline 123Source documentation
Charge at a meeting after independently rotating the selected cycles. A later slot is the only possible closer, except within a single cycle where either user can be its terminal.
noncomputable def rotationMeeting (o : α → Option (Fin A)) (z : Terminal o) (u v : α) : ℝ := …Mentions: OAI.CubeShuffle.RoutingNetwork.Terminal
- lemma
OAI.CubeShuffle.RoutingNetwork.card_cycleFiberline 132 - lemma
OAI.CubeShuffle.RoutingNetwork.terminal_meanline 137 - lemma
OAI.CubeShuffle.RoutingNetwork.slotWeight_antitoneline 152 - lemma
OAI.CubeShuffle.RoutingNetwork.rotationMeeting_meanline 161 - lemma
OAI.CubeShuffle.RoutingNetwork.pathWeight_sumline 195 - lemma
OAI.CubeShuffle.RoutingNetwork.withinWeight_sum_boundline 212 - def
OAI.CubeShuffle.RoutingNetwork.rotationChargeline 234 - lemma
OAI.CubeShuffle.RoutingNetwork.rotationCharge_mean_boundline 238 - lemma
OAI.CubeShuffle.RoutingNetwork.rotation_exp_boundline 258Source documentation
The Jensen rotation bound, still expressed in exponentials so that all normalizing constants and the factor one half are explicit.
lemma rotation_exp_bound {o : α → Option (Fin A)} [∀ i : Fin A, Nonempty {x : α // o x = some i}] (hm : Monotone (fun i => (cycleFiber o i).card)) (b : ι → Bool) : Real.exp (-Real.log 2 * ((A:ℝ)*d/2 + ∑ i : Fin A, Real.log (cycleFiber o i).card / (2 * Real.log 2))) ≤ finiteMean (fun z : Terminal o => Real.exp (-Real.log 2 * rotationCharge R o b z)) := by …Mentions: OAI.CubeShuffle.RoutingNetwork.cycleFiber, OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.Terminal, OAI.CubeShuffle.RoutingNetwork.rotationCharge
- def
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycleline 281Source documentation
Inspect one proposed length-(r+1) cycle. Every queried input must be in S and must not have appeared in an earlier slot or earlier in this cycle.
noncomputable def seekCycle (R : RoutingNetwork α ι d) (S : Finset (α)) (a : α) : ℕ → α → Finset (α) → (Finset (α) → QueryTree (ι)) → QueryTree (ι) | 0, x, V, k => if x ∈ S ∧ x ∉ V then R.close x a (k (insert x V)) else reject | r + 1, x, V, k => if x ∈ S ∧ x ∉ V then R.follow x (fun y => seekCycle R S a r y (insert x V) k) else rejectMentions: OAI.CubeShuffle.RoutingNetwork, OAI.CubeShuffle.QueryTree
- lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycle_raw_chargeline 288 - def
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCyclesline 310Source documentation
Distinguishable cycle slots, with each requested length encoded as r+1. Later factorial-moment counting divides by precisely these rotation counts.
noncomputable def seekCycles (R : RoutingNetwork α ι d) (S : Finset (α)) : List (α × ℕ) → Finset (α) → QueryTree (ι) | [], _ => accept | (a,r) :: L, V => seekCycle R S a r a V (fun V => seekCycles R S L V)Mentions: OAI.CubeShuffle.RoutingNetwork, OAI.CubeShuffle.QueryTree, OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycle
- lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycles_raw_chargeline 315 - lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.cycles_weighted_successline 332Source documentation
The actual fixed-start weighted exploration inequality in FAC.3. The stale charge counts exposed closing-path switches exactly, not a postulated conditional-independence bound. Failure includes repeats, short cycles and visiting outside the marked subset, and can occur at ANY earlier query.
lemma cycles_weighted_success (S : Finset (α)) (L : List (α × ℕ)) : finiteMean (fun ω : ι → Bool => if (seekCycles R S L ∅).succeeds ω then ((2:ℝ)^d)^L.length / (2:ℝ)^(seekCycles R S L ∅).staleCharge ∅ ω else 0) ≤ 1 := by …Mentions: OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycles
- def
OAI.CubeShuffle.RoutingNetwork.exposedPathsline 356 - lemma
OAI.CubeShuffle.RoutingNetwork.exposedPaths_emptyline 360 - lemma
OAI.CubeShuffle.RoutingNetwork.exposedPaths_insertline 364 - def
OAI.CubeShuffle.RoutingNetwork.terminalChargeline 369 - lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycle_semanticsline 376Source documentation
The cycle-query certificate has exactly its deterministic cycle-trace semantics, including the complete exposure record and terminal encounter charge.
lemma seekCycle_semantics (S : Finset (α)) (a : α) (r : ℕ) (x : α) (V W : Finset (α)) (z : α) (k : Finset (α) → QueryTree (ι)) (ω : ι → Bool) (h : cycleTrace (R.perm ω) S a r x V = some (W,z)) : (seekCycle R S a r x V k).succeeds ω = (k W).succeeds ω ∧ (seekCycle R S a r x V k).staleCharge (exposedPaths R (ω) V) ω = (k W).staleCharge (exposedPaths R (ω) W) ω + terminalCharge R (ω) z (W.erase z) := by …Mentions: OAI.CubeShuffle.QueryTree, OAI.CubeShuffle.cycleTrace, OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycle, OAI.CubeShuffle.RoutingNetwork.exposedPaths, OAI.CubeShuffle.RoutingNetwork.terminalCharge
- lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycle_orbitline 405 - lemma
OAI.CubeShuffle.RoutingNetwork.mem_exposedPathsline 419 - lemma
OAI.CubeShuffle.RoutingNetwork.terminalCharge_sumline 431 - def
OAI.CubeShuffle.RoutingNetwork.priorPathsline 454Source documentation
All slots before time t, including the whole current cycle when t=i+1.
noncomputable def priorPaths {A : ℕ} (o : α → Option (Fin A)) (t : ℕ) : Finset (α) := … - lemma
OAI.CubeShuffle.RoutingNetwork.mem_priorPathsline 458 - lemma
OAI.CubeShuffle.RoutingNetwork.terminalCharge_prior_sumline 463 - lemma
OAI.CubeShuffle.RoutingNetwork.rotationMeeting_eq_slot_sumline 480 - lemma
OAI.CubeShuffle.RoutingNetwork.rotationCharge_eq_terminal_sumline 534Source documentation
The geometric rotation charge equals the actual sum of exposed terminal route meetings, with exactly the earlier slots and own cycle made available.
lemma rotationCharge_eq_terminal_sum {A : ℕ} (o : α → Option (Fin A)) (b : ι → Bool) (z : Terminal o) : rotationCharge R o b z = ∑ i : Fin A, (terminalCharge R b (z i).val ((priorPaths o (i.val+1)).erase (z i).val) : ℝ) := by …Mentions: OAI.CubeShuffle.RoutingNetwork.Terminal, OAI.CubeShuffle.RoutingNetwork.rotationCharge, OAI.CubeShuffle.RoutingNetwork.terminalCharge, OAI.CubeShuffle.RoutingNetwork.priorPaths
- lemma
OAI.CubeShuffle.RoutingNetwork.priorPaths_zeroline 543 - lemma
OAI.CubeShuffle.RoutingNetwork.priorPaths_succline 548 - lemma
OAI.CubeShuffle.RoutingNetwork.priorPaths_disjointline 564 - lemma
OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycles_ownedline 579Source documentation
Success and exact exposed-switch charge for a realized, disjoint collection of full permutation cycles in ordered distinguishable slots.
lemma seekCycles_owned {A : ℕ} (S : Finset (α)) (r : Fin A → ℕ) (o : α → Option (Fin A)) (z : Terminal o) (ω : ι → Bool) (hS : ∀ i, cycleFiber o i ⊆ S) (hO : ∀ i, orbitSet (R.perm ω) (z i).val = cycleFiber o i) (hC : ∀ i, (cycleFiber o i).card = r i+1) : let p := R.perm ω …Mentions: OAI.CubeShuffle.RoutingNetwork.Terminal, OAI.CubeShuffle.RoutingNetwork.cycleFiber, OAI.CubeShuffle.orbitSet
- def
OAI.CubeShuffle.RoutingNetwork.ValidCycleSlotsline 629Source documentation
A permutation-cycle collection in distinguishable slots, including all length-one cycles. No selection has been weakened to a collection of paths.
def ValidCycleSlots (p : Equiv.Perm (α)) (S : Finset (α)) (r : Fin A → ℕ) (o : α → Option (Fin A)) : Prop := … - abbrev
OAI.CubeShuffle.RoutingNetwork.CycleSlotsline 635 - instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 638)line 638 - lemma
OAI.CubeShuffle.RoutingNetwork.CycleSlots.terminal_nonemptyline 641 - lemma
OAI.CubeShuffle.RoutingNetwork.owner_extline 648 - abbrev
OAI.CubeShuffle.RoutingNetwork.RootedSlotsline 660 - def
OAI.CubeShuffle.RoutingNetwork.rootedStartline 663 - lemma
OAI.CubeShuffle.RoutingNetwork.rootedStart_injectiveline 669 - lemma
OAI.CubeShuffle.RoutingNetwork.rooted_weight_sum_leline 684Source documentation
Sum over every rooted realized collection is controlled by the sum over all starts. This injectivity step retains cycle disjointness and all rotations.
lemma rooted_weight_sum_le (S : Finset (α)) (r : Fin A → ℕ) (ω : ι → Bool) : (∑ c : RootedSlots (R.perm ω) S r, ((2:ℝ)^d)^A * Real.exp (-Real.log 2 * rotationCharge R c.1.val (ω) c.2)) ≤ ∑ a : Fin A → S, if (QueryTree.seekCycles R S (List.ofFn (fun i => ((a i).val,r i))) ∅).succeeds ω then ((2:ℝ)^d)^A / (2:ℝ)^(QueryTree.seekCycles R S (List.ofFn (fun i => ((a i).val,r i))) ∅).staleCharge ∅ ω else 0 := by …Mentions: OAI.CubeShuffle.RoutingNetwork.RootedSlots, OAI.CubeShuffle.RoutingNetwork.rotationCharge, OAI.CubeShuffle.RoutingNetwork.QueryTree.seekCycles
- lemma
OAI.CubeShuffle.RoutingNetwork.collection_rotation_lowerline 711 - lemma
OAI.CubeShuffle.RoutingNetwork.cycleSlots_weighted_momentline 741Source documentation
The weighted collection inequality obtained by summing the actual adaptive query certificate over starts. The subsequent simplification yields FAC.3.
lemma cycleSlots_weighted_moment (S : Finset (α)) (r : Fin A → ℕ) (hr : Monotone r) : finiteMean (fun ω : ι → Bool => (Fintype.card (CycleSlots (R.perm ω) S r) : ℝ)) * collectionWeight d r ≤ (S.card : ℝ)^A := by …Mentions: OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.CycleSlots, OAI.CubeShuffle.collectionWeight
- lemma
OAI.CubeShuffle.RoutingNetwork.cycleSlots_momentline 774 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_cycleSlots_momentline 783Source documentation
The exact fixed-distinguished-slot form of FAC.3, with physical butterfly size n=2^d and every slot a whole permutation cycle of the stated length.
lemma butterfly_cycleSlots_moment (S : Finset (α)) (r : Fin A → ℕ) (hr : Monotone r) : finiteMean (fun ω : ι → Bool => (Fintype.card (CycleSlots (R.perm ω) S r) : ℝ)) ≤ ((S.card : ℝ) / Real.sqrt ((2:ℝ)^d))^A * ∏ i : Fin A, (1 / Real.sqrt (r i+1)) := by …Mentions: OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.CycleSlots
- abbrev
OAI.CubeShuffle.RoutingNetwork.SelectedCycleline 800Source documentation
The genuine cycles retained completely in S; fixed points are included.
abbrev SelectedCycle (p : Equiv.Perm (α)) (S : Finset (α)) := …
- instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 803)line 803 - lemma
OAI.CubeShuffle.RoutingNetwork.SelectedCycle.nonemptyline 806 - lemma
OAI.CubeShuffle.RoutingNetwork.SelectedCycle.orbit_eqline 812 - lemma
OAI.CubeShuffle.RoutingNetwork.SelectedCycle.eq_of_memline 818 - abbrev
OAI.CubeShuffle.RoutingNetwork.SlotAssignmentline 823 - instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 826)line 826 - def
OAI.CubeShuffle.RoutingNetwork.slotsToAssignmentline 829 - def
OAI.CubeShuffle.RoutingNetwork.assignmentOwnerline 843 - lemma
OAI.CubeShuffle.RoutingNetwork.assignmentOwner_eq_someline 848 - lemma
OAI.CubeShuffle.RoutingNetwork.assignmentOwner_fiberline 866 - def
OAI.CubeShuffle.RoutingNetwork.assignmentToSlotsline 871 - def
OAI.CubeShuffle.RoutingNetwork.cycleSlotsEquivAssignmentsline 887Source documentation
Ownership and labelled distinct full cycles are equivalent, not merely bounded by one another. This identifies the factorial-moment combinatorics.
noncomputable def cycleSlotsEquivAssignments (p : Equiv.Perm (α)) (S : Finset (α)) (r : Fin A → ℕ) : CycleSlots p S r ≃ SlotAssignment p S r where …Mentions: OAI.CubeShuffle.RoutingNetwork.CycleSlots, OAI.CubeShuffle.RoutingNetwork.SlotAssignment
- abbrev
OAI.CubeShuffle.RoutingNetwork.LengthClassline 908 - def
OAI.CubeShuffle.RoutingNetwork.slotClassline 910 - abbrev
OAI.CubeShuffle.RoutingNetwork.SlotsOfLengthline 913 - abbrev
OAI.CubeShuffle.RoutingNetwork.CyclesOfLengthline 914 - instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 917)line 917 - abbrev
OAI.CubeShuffle.RoutingNetwork.GroupedAssignmentsline 920 - def
OAI.CubeShuffle.RoutingNetwork.assignmentToGroupsline 923 - def
OAI.CubeShuffle.RoutingNetwork.groupsEmbeddingline 928 - def
OAI.CubeShuffle.RoutingNetwork.groupsToAssignmentline 935 - def
OAI.CubeShuffle.RoutingNetwork.assignmentEquivGroupsline 940 - lemma
OAI.CubeShuffle.RoutingNetwork.card_cycleSlots_factorialline 955 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_factorial_momentline 966Source documentation
Factorial moments for independently fair butterflies, including every fixed point. The product is over the distinct positive lengths in the given sorted slot list.
lemma butterfly_factorial_moment (S : Finset (α)) (r : Fin A → ℕ) (hr : Monotone r) : finiteMean (fun ω : ι → Bool => (∏ j : LengthClass r, (Fintype.card (CyclesOfLength (R.perm ω) S j.val)).descFactorial (Fintype.card (SlotsOfLength r j)) : ℕ)) ≤ ((S.card : ℝ) / Real.sqrt ((2:ℝ)^d))^A * ∏ i : Fin A, (1 / Real.sqrt (r i+1)) := by …Mentions: OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.LengthClass, OAI.CubeShuffle.RoutingNetwork.CyclesOfLength, OAI.CubeShuffle.RoutingNetwork.SlotsOfLength
- def
OAI.CubeShuffle.RoutingNetwork.assignmentRelabelline 980 - lemma
OAI.CubeShuffle.RoutingNetwork.card_cycleSlots_relabelline 989 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_cycleSlots_moment_allline 995 - abbrev
OAI.CubeShuffle.RoutingNetwork.ShortCycleline 1005 - instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 1008)line 1008 - def
OAI.CubeShuffle.RoutingNetwork.shortCycleLengthline 1011 - lemma
OAI.CubeShuffle.RoutingNetwork.shortCycleLength_add_oneline 1015 - def
OAI.CubeShuffle.RoutingNetwork.shortEmbeddingEquivline 1021 - lemma
OAI.CubeShuffle.RoutingNetwork.shortCycle_factorial_eqline 1047 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_shortCycle_momentline 1063 - def
OAI.CubeShuffle.RoutingNetwork.cycleMassline 1082 - lemma
OAI.CubeShuffle.RoutingNetwork.cycleMass_leline 1085 - lemma
OAI.CubeShuffle.RoutingNetwork.shortCycle_card_leline 1103 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_shortCycle_mgfline 1112 - abbrev
OAI.CubeShuffle.RoutingNetwork.LongCycleline 1126 - instance
OAI.CubeShuffle.RoutingNetwork.(instance at line 1128)line 1128 - lemma
OAI.CubeShuffle.RoutingNetwork.selectedCycle_card_splitline 1131 - lemma
OAI.CubeShuffle.RoutingNetwork.longCycle_card_boundline 1137 - lemma
OAI.CubeShuffle.RoutingNetwork.longCycle_pow_boundline 1153 - lemma
OAI.CubeShuffle.RoutingNetwork.butterfly_cycle_log_mgfline 1168Source documentation
FAC.4 for a full fair butterfly, with actual whole permutation cycles retained inside the marked set. No asymptotic or numerical oracle enters.
lemma butterfly_cycle_log_mgf (S : Finset (α)) (J : ℕ) (hJ : 0 < J) (q : ℝ) (hq : 1 ≤ q) : Real.log (finiteMean (fun ω : ι → Bool => q^(Fintype.card (SelectedCycle (R.perm ω) S)))) ≤ (S.card : ℝ)/J * Real.log q + 2*q*S.card*Real.sqrt J / Real.sqrt ((2:ℝ)^d) := by …Mentions: OAI.CubeShuffle.finiteMean, OAI.CubeShuffle.RoutingNetwork.SelectedCycle