Low-rank tester routing along tag stars
Lax342547.StarRouting · concepts/Lax342547/StarRouting.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Ordered tester matrices have rank at most r. Summing cut moments along a tag star removes its even center multiplicity. Forbidden ordinary centers vanish, and each component receives at most two routed testers.
Concept map
Evidence
This concept declares 12 statements. Each proof establishes one of them relative to its assumptions.
1 incidence_sum proven
2 interval_center_excluded proven
3 matrix_add_rank proven
4 matrix_finset_sum_rank proven
5 matrix_smul_rank proven
6 matrix_sum_rank proven
7 ordered_tester_rank proven
8 ordinary_tester_disallowed_zero proven
9 star_cut_sum proven
10 star_matrix_rank proven
11 star_matrix_representation proven
12 tester_matrix_representation proven
Lean source view on GitHub
| 1 | import Lax342547.ChannelFactorization |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Low-rank tester routing along tag stars |
| 6 | type: lemma |
| 7 | --- |
| 8 | Ordered tester matrices have rank at most r. Summing cut moments along a tag star removes its even center multiplicity. Forbidden ordinary centers vanish, and each component receives at most two routed testers. |
| 9 | -/ |
| 10 | |
| 11 | namespace Lax342547.StarRouting |
| 12 | |
| 13 | open Lax342547.MomentSpace Lax342547.ConcreteGeometry Lax342547.ConcreteCut |
| 14 | open Lax342547.TagGeometry Lax342547.CutProfiles Lax342547.Atoms |
| 15 | |
| 16 | axiom matrix_sum_rank {I B : Type} [Fintype I] [Fintype B] |
| 17 | (M : I → Matrix B B Binary) : |
| 18 | (∑ i, M i).rank ≤ ∑ i, (M i).rank |
| 19 | |
| 20 | noncomputable def orderedTesterMatrix {k n b degree r : ℕ} |
| 21 | (hr : 2 * r ≤ n) (c : Fin n → Lax342547.TagGeometry.Base k n) : Moment k n b degree := by |
| 22 | classical |
| 23 | exact ∑ ρ, Matrix.vecMulVec |
| 24 | (Pi.single (emptySelector b degree, some (c (pairLeft hr ρ))) 1) |
| 25 | (Pi.single (emptySelector b degree, some (c (pairRight hr ρ))) 1) |
| 26 | |
| 27 | axiom ordered_tester_rank {k n b degree r : ℕ} |
| 28 | (hr : 2 * r ≤ n) (c : Fin n → Lax342547.TagGeometry.Base k n) : |
| 29 | (orderedTesterMatrix (b := b) (degree := degree) hr c).rank ≤ r |
| 30 | |
| 31 | axiom tester_matrix_representation {k n b degree r : ℕ} |
| 32 | (hr : 2 * r ≤ n) (c : Fin n → Lax342547.TagGeometry.Base k n) : |
| 33 | matrixPair (orderedTesterMatrix (b := b) (degree := degree) hr c) = blockTester hr c |
| 34 | |
| 35 | axiom interval_center_excluded {k : ℕ} (d : Tag k) : d ∉ interval k d |
| 36 | |
| 37 | axiom ordinary_tester_disallowed_zero {k n b degree r : ℕ} (hr : 2 * r ≤ n) |
| 38 | (d t l : Tag k) (hl : l ∉ interval k d) (w : Representation k n b degree) : |
| 39 | blockTester hr (ordinary d t) (w.val l) = 0 |
| 40 | |
| 41 | noncomputable def incidentEquiv {k : ℕ} (l : Tag k) : |
| 42 | {t : Tag k // t ≠ l} ≃ {e : Component (Tag k) // l ∈ e.val} := by |
| 43 | classical |
| 44 | let f : {t : Tag k // t ≠ l} → {e : Component (Tag k) // l ∈ e.val} := |
| 45 | fun t => ⟨⟨{l, t.val}, Finset.card_pair t.property.symm⟩, by simp⟩ |
| 46 | apply Equiv.ofBijective f |
| 47 | constructor |
| 48 | · intro u v h |
| 49 | apply Subtype.ext |
| 50 | have hs : ({l, u.val} : Finset (Tag k)) = {l, v.val} := |
| 51 | congrArg (fun e : {e : Component (Tag k) // l ∈ e.val} => e.val.val) h |
| 52 | have hu : u.val ∈ ({l, v.val} : Finset (Tag k)) := by rw [← hs]; simp |
| 53 | simpa [u.property] using hu |
| 54 | · intro e |
| 55 | obtain ⟨a, b, hab, he⟩ := Finset.card_eq_two.mp e.val.property |
| 56 | have hl : l = a ∨ l = b := by simpa only [he, Finset.mem_insert, Finset.mem_singleton] using e.property |
| 57 | rcases hl with rfl | rfl |
| 58 | · refine ⟨⟨b, hab.symm⟩, ?_⟩ |
| 59 | apply Subtype.ext |
| 60 | exact Subtype.ext he.symm |
| 61 | · refine ⟨⟨a, hab⟩, ?_⟩ |
| 62 | apply Subtype.ext |
| 63 | apply Subtype.ext |
| 64 | change ({l, a} : Finset (Tag k)) = e.val.val |
| 65 | rw [he, Finset.pair_comm] |
| 66 | |
| 67 | axiom star_cut_sum {k : ℕ} {X : Type} [AddCommGroup X] [Module Binary X] |
| 68 | (w : Tag k → X) (l : Tag k) : |
| 69 | (∑ e : {e : Component (Tag k) // l ∈ e.val}, ∑ t ∈ e.val.val, w t) = |
| 70 | ∑ t : {t : Tag k // t ≠ l}, w t.val |
| 71 | |
| 72 | axiom incidence_sum {k : ℕ} {X : Type} [AddCommMonoid X] |
| 73 | (F : Tag k → Component (Tag k) → X) : |
| 74 | (∑ e, ∑ d ∈ e.val, F d e) = ∑ d, ∑ e : {e : Component (Tag k) // d ∈ e.val}, F d e.val |
| 75 | |
| 76 | noncomputable def starMatrix {k n b degree r : ℕ} (hr : 2 * r ≤ n) |
| 77 | (c : Tag k → Fin n → Base k n) (coeff : Tag k → Binary) (e : Component (Tag k)) : |
| 78 | Moment k n b degree := ∑ d ∈ e.val, coeff d • orderedTesterMatrix hr (c d) |
| 79 | |
| 80 | axiom star_matrix_representation {k n b degree r : ℕ} (hr : 2 * r ≤ n) |
| 81 | (c : Tag k → Fin n → Base k n) (coeff : Tag k → Binary) |
| 82 | (w : Representation k n b degree) : |
| 83 | (∑ e, matrixPair (starMatrix (b := b) (degree := degree) hr c coeff e) |
| 84 | ((representationCut k n b degree w) e)) = |
| 85 | ∑ d, coeff d * ∑ l : {l : Tag k // l ≠ d}, blockTester hr (c d) (w.val l.val) |
| 86 | |
| 87 | axiom matrix_smul_rank {B : Type} [Fintype B] (M : Matrix B B Binary) (a : Binary) : |
| 88 | (a • M).rank ≤ M.rank |
| 89 | |
| 90 | axiom matrix_add_rank {B : Type} [Fintype B] (M Q : Matrix B B Binary) : |
| 91 | (M + Q).rank ≤ M.rank + Q.rank |
| 92 | |
| 93 | axiom matrix_finset_sum_rank {I B : Type} [Fintype B] (s : Finset I) |
| 94 | (M : I → Matrix B B Binary) (R : ℕ) (hM : ∀ i ∈ s, (M i).rank ≤ R) : |
| 95 | (∑ i ∈ s, M i).rank ≤ s.card * R |
| 96 | |
| 97 | axiom star_matrix_rank {k n b degree r : ℕ} (hr : 2 * r ≤ n) |
| 98 | (c : Tag k → Fin n → Base k n) (coeff : Tag k → Binary) (e : Component (Tag k)) : |
| 99 | (starMatrix (b := b) (degree := degree) hr c coeff e).rank ≤ 2 * r |
| 100 | |
| 101 | end Lax342547.StarRouting |
| 102 |
Builds on
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments