Bilinear parts of ordered evaluations on every atom flavor
Lax342547.BinaryMixer · concepts/Lax342547/BinaryMixer.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
The mixed coefficient matrix is defined directly by evaluating the two point inputs. Its free and sharp submatrices are the corresponding ambient matrix restrictions, independently of the tags and flavors. Thus the rank estimates on the always retained blocks imply the required rank bounds on each full flavor parameter space.
Concept map
Evidence
This concept declares 6 statements. Each proof establishes one of them relative to its assumptions.
1 ambientParity_eval proven
2 bilinearPart_eq proven
3 block_rank_le proven
4 parity_free_block proven
5 pointInput_affine proven
6 selfGram_parity_sharp_block proven
Lean source view on GitHub
| 1 | import Lax342547.Atoms |
| 2 | import Lax342547.OrderedMixerLaw |
| 3 | import Lax342547.SharpMixerLaw |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Bilinear parts of ordered evaluations on every atom flavor |
| 8 | type: lemma |
| 9 | --- |
| 10 | The mixed coefficient matrix is defined directly by evaluating the two |
| 11 | point inputs. Its free and sharp submatrices are the corresponding |
| 12 | ambient matrix restrictions, independently of the tags and flavors. |
| 13 | Thus the rank estimates on the always retained blocks imply the required |
| 14 | rank bounds on each full flavor parameter space. |
| 15 | -/ |
| 16 | |
| 17 | namespace Lax342547.BinaryMixer |
| 18 | |
| 19 | open Lax342547.MomentSpace Lax342547.TagGeometry Lax342547.ConcreteGeometry |
| 20 | open Lax342547.Atoms Lax342547.AtomDirections |
| 21 | |
| 22 | abbrev ParameterIndex {k : ℕ} (n : ℕ) (l : Tag k) (f : Flavor k) := |
| 23 | {i : Base k n // i ∈ retained l f} |
| 24 | |
| 25 | noncomputable def directions {k n b degree : ℕ} (s : Fin b → Binary) |
| 26 | (l : Tag k) (f : Flavor k) : Matrix (Coordinate k n b degree) (ParameterIndex n l f) Binary := by |
| 27 | classical |
| 28 | exact fun i j => if i.2 = some j.val then selectorEval s i.1 else 0 |
| 29 | |
| 30 | noncomputable def pointInput {k n b degree : ℕ} (s : Fin b → Binary) |
| 31 | {l : Tag k} {f : Flavor k} (p : Parameters n l f) : Vector k n b degree := |
| 32 | point selectorEval s (parameterValue p) |
| 33 | |
| 34 | noncomputable def mixedMatrix {P Q : Type} [DecidableEq P] [DecidableEq Q] |
| 35 | (f : (P → Binary) → (Q → Binary) → Binary) : Matrix P Q Binary := |
| 36 | fun i j => f (Pi.single i 1) (Pi.single j 1) + f (Pi.single i 1) 0 + |
| 37 | f 0 (Pi.single j 1) + f 0 0 |
| 38 | |
| 39 | noncomputable def bilinearPart {k n b degree : ℕ} (A : Moment k n b degree) |
| 40 | (s t : Fin b → Binary) (l m : Tag k) (f g : Flavor k) : |
| 41 | Matrix (ParameterIndex n l f) (ParameterIndex n m g) Binary := by |
| 42 | classical |
| 43 | exact mixedMatrix (fun p q => A.toBilin' (pointInput s p) (pointInput t q)) |
| 44 | |
| 45 | def ambientParity {I F : Type} [Fintype F] (L : F → Matrix I I Binary) |
| 46 | (a b : F → Binary) (E : Matrix I I Binary) (c d : Binary) : Matrix I I Binary := |
| 47 | (∑ j, (a j • L j + b j • (L j).transpose)) + c • E + d • E.transpose |
| 48 | |
| 49 | axiom ambientParity_eval {I F : Type} [Fintype I] [DecidableEq I] [Fintype F] |
| 50 | (L : F → Matrix I I Binary) (a b : F → Binary) (E : Matrix I I Binary) (c d : Binary) |
| 51 | (x y : I → Binary) : |
| 52 | (ambientParity L a b E c d).toBilin' x y = |
| 53 | (∑ j, (a j * (L j).toBilin' x y + b j * (L j).toBilin' y x)) + |
| 54 | c * E.toBilin' x y + d * E.toBilin' y x |
| 55 | |
| 56 | axiom pointInput_affine {k n b degree : ℕ} (s : Fin b → Binary) |
| 57 | {l : Tag k} {f : Flavor k} (p : Parameters n l f) : |
| 58 | pointInput (degree := degree) s p = pointInput s (0 : Parameters n l f) + |
| 59 | (directions s l f).mulVec p |
| 60 | |
| 61 | axiom bilinearPart_eq {k n b degree : ℕ} (A : Moment k n b degree) |
| 62 | (s t : Fin b → Binary) (l m : Tag k) (f g : Flavor k) : |
| 63 | bilinearPart A s t l m f g = (directions s l f).transpose * A * directions t m g |
| 64 | |
| 65 | axiom block_rank_le {k n b degree : ℕ} (A : Moment k n b degree) |
| 66 | (s t : Fin b → Binary) (l m : Tag k) (f g : Flavor k) |
| 67 | (c : Fin n → Base k n) |
| 68 | (hc : ∀ i, c i ∈ retained l f) (hd : ∀ i, c i ∈ retained m g) : |
| 69 | ((blockDirections s c).transpose * A * blockDirections t c).rank ≤ |
| 70 | (bilinearPart A s t l m f g).rank |
| 71 | |
| 72 | axiom parity_free_block {k n b degree r : ℕ} {F : Type} [Fintype F] |
| 73 | (hr : 2 * r ≤ n) (hd : 1 ≤ degree) |
| 74 | (L : F → Moment k n b degree) (a b' : F → Binary) |
| 75 | (M : Fin b → Matrix (Fin n) (Fin n) Binary) (c d : Binary) (s t : Fin b → Binary) : |
| 76 | (blockDirections s free).transpose * ambientParity L a b' (selfGram hr hd M) c d * |
| 77 | blockDirections t free = |
| 78 | OrderedMixerLaw.familyParity (blockDirections s free) (blockDirections t free) a b' L |
| 79 | |
| 80 | axiom selfGram_parity_sharp_block {k n b degree r : ℕ} |
| 81 | (hr : 2 * r ≤ n) (hd : 1 ≤ degree) |
| 82 | (M : Fin b → Matrix (Fin n) (Fin n) Binary) (c d : Binary) (s t : Fin b → Binary) : |
| 83 | (blockDirections (k := k) s sharp).transpose * |
| 84 | (c • selfGram hr hd M + d • (selfGram hr hd M).transpose) * blockDirections t sharp = |
| 85 | c • SharpMixerLaw.weighted (fun a => s a + t a) M + |
| 86 | d • (SharpMixerLaw.weighted (fun a => s a + t a) M).transpose |
| 87 | |
| 88 | end Lax342547.BinaryMixer |
| 89 |
Used by
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments