Allowed channel changes and the actual table injection tests
Lax342547.ChannelChanges · concepts/Lax342547/ChannelChanges.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Channel changes factor through a frozen nominal quotient and take values orthogonal to the opposite protected channel. They preserve the frozen entries and vanish on opposite primal inputs. Orthogonal channel tests and the actual table injection flags force a pinned primal vector to zero. derives these tests from the full derivative response.
Concept map
Evidence
This concept declares 7 statements. Each proof establishes one of them relative to its assumptions.
1 channel_entry proven
2 column_injection_zero proven
3 frozen proven
4 opposite_primal proven
5 perpendicular_detects proven
6 pin_frozen proven
7 row_injection_zero proven
Lean source view on GitHub
| 1 | import Lax342547.PrimalContractions |
| 2 | import Lax342547.TableContractions |
| 3 | import Mathlib.LinearAlgebra.BilinearForm.Orthogonal |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Allowed channel changes and the actual table injection tests |
| 8 | type: lemma |
| 9 | --- |
| 10 | Channel changes factor through a frozen nominal quotient and take values |
| 11 | orthogonal to the opposite protected channel. They preserve the frozen |
| 12 | entries and vanish on opposite primal inputs. Orthogonal channel tests |
| 13 | and the actual table injection flags force a pinned primal vector to zero. |
| 14 | `DerivativeResponses` derives these tests from the full derivative response. |
| 15 | -/ |
| 16 | |
| 17 | namespace Lax342547.ChannelChanges |
| 18 | |
| 19 | open Lax342547.MomentSpace Lax342547.TableSpaces Lax342547.PairedAnnihilators |
| 20 | open Lax342547.PrimalContractions Lax342547.ExactPins Lax342547.ProjectedPins |
| 21 | open Lax342547.SmallTables Lax342547.TableContractions |
| 22 | open Lax342547.TensorAnnihilators |
| 23 | |
| 24 | def perpendicular {H : Type} [Fintype H] (S : Submodule Binary (H → Binary)) : |
| 25 | Submodule Binary (H → Binary) := |
| 26 | LinearMap.BilinForm.orthogonal (dotProductBilin Binary Binary) S |
| 27 | |
| 28 | def channelChange {B H : Type} [Fintype H] |
| 29 | (D : Submodule Binary (Nominal B H)) (S : Submodule Binary (H → Binary)) |
| 30 | (δ : (Nominal B H ⧸ D) →ₗ[Binary] perpendicular S) (z : Fin 2) : |
| 31 | LinearMap.BilinForm Binary (Nominal B H) := |
| 32 | (dotProductBilin Binary Binary).compl₁₂ |
| 33 | (((perpendicular S).subtype.comp δ).comp D.mkQ) (channelProjection z) |
| 34 | |
| 35 | axiom frozen {B H : Type} [Fintype H] |
| 36 | (D : Submodule Binary (Nominal B H)) (S : Submodule Binary (H → Binary)) |
| 37 | (δ : (Nominal B H ⧸ D) →ₗ[Binary] perpendicular S) (z : Fin 2) |
| 38 | (v w : Nominal B H) (h : v ∈ D ∨ channelProjection z w ∈ S) : |
| 39 | channelChange D S δ z v w = 0 |
| 40 | |
| 41 | axiom opposite_primal {B H : Type} [Fintype H] |
| 42 | (D : Submodule Binary (Nominal B H)) (S : Submodule Binary (H → Binary)) |
| 43 | (δ : (Nominal B H ⧸ D) →ₗ[Binary] perpendicular S) (z j : Fin 2) |
| 44 | (v : Nominal B H) (w : B → Binary) : |
| 45 | channelChange D S δ z v (primalEmbedding j w) = 0 |
| 46 | |
| 47 | axiom pin_frozen {Comp B H N : Type} [Fintype H] |
| 48 | (P : Pin (Comp × Bool) (Fin 2 × (B ⊕ H)) N) |
| 49 | (D : Submodule Binary (Nominal B H)) (a : Comp × Bool) (z : Fin 2) |
| 50 | (δ : (Nominal B H ⧸ D) →ₗ[Binary] perpendicular (protectedChannel P z a)) |
| 51 | (v w : Nominal B H) (hw : w ∈ P.space a) : |
| 52 | channelChange D (protectedChannel P z a) δ z v w = 0 |
| 53 | |
| 54 | axiom perpendicular_detects {H : Type} [Fintype H] |
| 55 | (S : Submodule Binary (H → Binary)) (v : H → Binary) |
| 56 | (h : ∀ c ∈ perpendicular S, dotProduct v c = 0) : v ∈ S |
| 57 | |
| 58 | axiom row_injection_zero {Comp B H N : Type} [Fintype H] |
| 59 | {P Q : Pin (Comp × Bool) (Fin 2 × (B ⊕ H)) N} |
| 60 | (T : Table P Q) (hT : Injecting T) (F : CrossForms Comp B H) (hF : Extends F T) |
| 61 | (e : Comp) (i z : Fin 2) (d : pinnedPrimal P i (e, true)) |
| 62 | (h : ∀ c ∈ perpendicular (protectedChannel Q z (e, true)), |
| 63 | dotProduct (fullPlus F e i z d.val) c = 0) : d.val = 0 |
| 64 | |
| 65 | axiom column_injection_zero {Comp B H N : Type} [Fintype H] |
| 66 | {P Q : Pin (Comp × Bool) (Fin 2 × (B ⊕ H)) N} |
| 67 | (T : Table P Q) (hT : Injecting T) (F : CrossForms Comp B H) (hF : Extends F T) |
| 68 | (e : Comp) (i z : Fin 2) (d : pinnedPrimal P i (e, false)) |
| 69 | (h : ∀ c ∈ perpendicular (protectedChannel Q z (e, false)), |
| 70 | dotProduct (fullMinus F e i z d.val) c = 0) : d.val = 0 |
| 71 | |
| 72 | axiom channel_entry {B H : Type} [Fintype H] |
| 73 | (D : Submodule Binary (Nominal B H)) (S : Submodule Binary (H → Binary)) |
| 74 | (δ : (Nominal B H ⧸ D) →ₗ[Binary] perpendicular S) (z : Fin 2) |
| 75 | (v : Nominal B H) (h : H) : by |
| 76 | classical |
| 77 | exact channelChange D S δ z v (channelEmbedding z (Pi.single h 1)) = |
| 78 | (δ (D.mkQ v)).val h |
| 79 | |
| 80 | end Lax342547.ChannelChanges |
| 81 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments