OAI/Computability/UniqueGames/Analysis/MatrixCharactersLemmas.lean
100 declarations, 0 contain sorry, 0 declared as axioms
Trace characters on actual finite binary matrix spaces.
- abbrev
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2line 25 - def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePairline 28Source documentation
The binary trace pairing between oppositely oriented matrices.
def tracePair {n m : Nat} (X : Matrix (Fin n) (Fin m) F2) (S : Matrix (Fin m) (Fin n) F2) : F2 := Matrix.trace (X * S)Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_eq_sum_entriesline 31 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_swapline 35 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_zero_leftline 39 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_zero_rightline 42 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_add_leftline 45 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_add_rightline 50 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_ext_rightline 55 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair_ext_leftline 59 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.exists_tracePair_eq_oneline 64Source documentation
A nonzero matrix has trace pairing one with a dual matrix.
theorem exists_tracePair_eq_one {n m : Nat} (S : Matrix (Fin m) (Fin n) F2) (hS : S ≠ 0) : ∃ X, tracePair X S = 1 := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2, OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.tracePair
- def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySignline 76Source documentation
The unique nontrivial complex-valued character of the binary field.
def binarySign (a : F2) : ℂ := if a = 0 then 1 else -1
Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_zeroline 78 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_oneline 79 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_eq_neg_one_pow_valline 81 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_addline 86 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_sumline 91 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_injectiveline 98 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_realline 109 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_imline 113 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.binarySign_mul_selfline 117 - def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearFunctionalCharacterline 126Source documentation
A binary linear functional determines a complex additive character.
def linearFunctionalCharacter (φ : E →ₗ[F2] F2) : AddChar E ℂ where …
Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearFunctionalCharacter_applyline 131 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearFunctionalCharacter_zeroline 134 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearFunctionalCharacter_injectiveline 139 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearFunctionalCharacter_eq_zero_iffline 146 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.sum_linearFunctionalCharacterline 150 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.expect_linearFunctionalCharacterline 156 - def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacterline 163 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_applyline 169 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_eq_coordinate_signline 173 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_eq_trace_exponentline 177 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_eq_product_entriesline 182 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_realline 187 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_addline 191 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_zeroline 196 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_injectiveline 201 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.traceCharacter_eq_zero_iffline 209 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.sum_traceCharacterline 213 - def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePairline 226Source documentation
The basis-independent trace pairing in the statement of Lemma 2.1.
def linearTracePair (X : E →ₗ[F2] F) (S : F →ₗ[F2] E) : F2 := …
Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_eq_matrix_tracePairline 229 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_zero_leftline 238 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_zero_rightline 241 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_add_leftline 244 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_add_rightline 248 - def
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacterline 253Source documentation
The trace character on actual linear maps, with no choice of basis.
def linearTraceCharacter (S : F →ₗ[F2] E) : AddChar (E →ₗ[F2] F) ℂ where …
Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_applyline 258 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_realline 261 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_addline 264 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_zeroline 270 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_eq_matrix_traceCharacterline 275 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_swapline 285 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_swapline 289 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_ext_rightline 294Source documentation
The actual trace pairing is nondegenerate in its dual-map argument.
theorem linearTracePair_ext_right {S T : F →ₗ[F2] E} (h : ∀ X, linearTracePair X S = linearTracePair X T) : S = T := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2, OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair_ext_leftline 307Source documentation
Nondegeneracy also holds in the primal-map argument.
theorem linearTracePair_ext_left {X Y : E →ₗ[F2] F} (h : ∀ S, linearTracePair X S = linearTracePair Y S) : X = Y := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.F2, OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTracePair
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.exists_linearTracePair_eq_oneline 319 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_injectiveline 330 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.linearTraceCharacter_eq_zero_iffline 338 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixCharacters.sum_linearTraceCharacterline 342 - def
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.fourierCoeffline 383Source documentation
Uniformly normalized complex Fourier coefficient.
def fourierCoeff (f : G → ℂ) (ψ : AddChar G ℂ) : ℂ := …
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.fourierCoeff_sumline 386 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.fourierCoeff_smulline 392 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.star_expectline 398 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.star_fourierCoeffline 402 - def
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeffline 417Source documentation
Real coefficient on the actual space of binary linear maps.
def linearCoeff (f : (E →ₗ[F2] F) → ℝ) (S : F →ₗ[F2] E) : ℝ := …
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.card_linearMap_reverseline 420 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearTraceCharacter_starline 442 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearMap_add_eq_zero_iffline 452 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_character_kernelline 462Source documentation
Exact trace-character orthogonality with the frequency sum unnormalized.
theorem linear_character_kernel (X Y : E →ₗ[F2] F) : ∑ S : F →ₗ[F2] E, star (linearTraceCharacter S X) * linearTraceCharacter S Y = if X = Y then (Fintype.card (E →ₗ[F2] F) : ℂ) else 0 := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_complexCoeff_characterline 480 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_complex_inversionline 493Source documentation
Fourier inversion obtained directly from the finite trace orthogonality sum.
theorem linear_complex_inversion (f : (E →ₗ[F2] F) → ℂ) (Y : E →ₗ[F2] F) : ∑ S : F →ₗ[F2] E, fourierCoeff f (linearTraceCharacter S) * linearTraceCharacter S Y = f Y := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixFourier.fourierCoeff
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_complex_parsevalline 505Source documentation
Mixed Parseval with normalized primal expectation and unnormalized frequency sum.
theorem linear_complex_parseval (f g : (E →ₗ[F2] F) → ℂ) : ∑ S : F →ₗ[F2] E, star (fourierCoeff f (linearTraceCharacter S)) * fourierCoeff g (linearTraceCharacter S) = 𝔼 X, star (f X) * g X := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixFourier.fourierCoeff
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.complex_ofReal_expectline 523 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeff_complexline 530 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_parseval_innerline 539Source documentation
Parseval for real functions and the real binary trace coefficients.
theorem linear_parseval_inner (f g : (E →ₗ[F2] F) → ℝ) : ∑ S : F →ₗ[F2] E, linearCoeff f S * linearCoeff g S = 𝔼 X, f X * g X := by …Mentions: OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeff
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_parsevalline 559 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linear_fourier_inversionline 563 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeff_sumline 581 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeff_smulline 588 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixFourier.linearCoeff_characterline 594 - theorem
OAI.UniqueGamesTheorem.Appendix.DegreeZero.rank_pos_of_ne_zeroline 624 - theorem
OAI.UniqueGamesTheorem.Appendix.DegreeZero.eq_constant_of_degree_zeroline 637 - theorem
OAI.UniqueGamesTheorem.Appendix.DegreeZero.fourth_moment_eq_energy_sqline 647 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.trace_rankOneline 672Source documentation
The rank-one shift
c τpaired againstSevaluates the functionalτ Satc, exactly the parity appearing in the decoding condition.theorem trace_rankOne {m n : Nat} (c : Vector n) (τ : Vector m) (S : Matrix (Fin m) (Fin n) F2) : Matrix.trace (Matrix.vecMulVec c τ * S) = τ ⬝ᵥ (S *ᵥ c) := by … - def
OAI.UniqueGamesTheorem.Fourier.MatrixParity.MatrixValidline 679Source documentation
Coordinate form of the requirement
τ ∘ T ≠ 0.def MatrixValid {m n : Nat} (τ : Vector m) (S : Matrix (Fin m) (Fin n) F2) : Prop := … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.matrixValid_iff_existsline 682 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.exists_matrixValidline 700 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.comp_ne_zero_iff_existsline 720Source documentation
Abstract linear-map form of the nonzero-parity condition.
theorem comp_ne_zero_iff_exists {E C : Type*} [AddCommGroup E] [Module F2 E] [AddCommGroup C] [Module F2 C] (τ : E →ₗ[F2] F2) (T : C →ₗ[F2] E) : τ.comp T ≠ 0 ↔ ∃ c, τ (T c) = 1 := by … - def
OAI.UniqueGamesTheorem.Fourier.MatrixParity.Validline 744 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.valid_iff_existsline 746 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.exists_validline 751Source documentation
Any nonzero parity functional admits a parity-valid map out of a nontrivial binary vector space. This also proves the candidate family is nonempty.
theorem exists_valid [Nontrivial C] (τ : E →ₗ[F2] F2) (hτ : τ ≠ 0) : ∃ S : C →ₗ[F2] E, Valid τ S := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.trace_smulRight_compline 768Source documentation
Generic trace pairing of a rank-one color shift.
theorem trace_smulRight_comp [FiniteDimensional F2 C] (τ : E →ₗ[F2] F2) (c : C) (S : C →ₗ[F2] E) : LinearMap.trace F2 C ((τ.smulRight c).comp S) = τ (S c) := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.card_linearMapsline 778Source documentation
The exact number of binary linear maps, supplying the count in (5.20). Taking
Eto be the subspaceWcounts precisely maps whose image lies inW.theorem card_linearMaps [FiniteDimensional F2 E] [FiniteDimensional F2 C] [Fintype (C →ₗ[F2] E)] : Fintype.card (C →ₗ[F2] E) = 2 ^ (Module.finrank F2 C * Module.finrank F2 E) := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.card_linearMaps_leline 792 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.folded_indicator_sum_le_oneline 812Source documentation
A folded map hits a fixed color at most once along its
C-shift orbit. The injection models the inclusion of the subspaceC'in the full color space.theorem folded_indicator_sum_le_one (τ : E →ₗ[F2] F2) (inclusion : C →ₗ[F2] D) (inclusion_injective : Function.Injective inclusion) (F : (E →ₗ[F2] C) → D) (folded : ∀ X c, F (X + τ.smulRight c) = F X + inclusion c) (X : E →ₗ[F2] C) (y : D) : (∑ c : C, if F (X + τ.smulRight c) = y then (1 : ℝ) else 0) ≤ 1 := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.folded_indicator_average_leline 835Source documentation
Equation (5.19)'s first bound, with the actual finite folded shift average.
theorem folded_indicator_average_le (τ : E →ₗ[F2] F2) (inclusion : C →ₗ[F2] D) (inclusion_injective : Function.Injective inclusion) (F : (E →ₗ[F2] C) → D) (folded : ∀ X c, F (X + τ.smulRight c) = F X + inclusion c) (X : E →ₗ[F2] C) (y : D) : (∑ c : C, if F (X + τ.smulRight c) = y then (1 : ℝ) else 0) / Fintype.card C ≤ 1 / (Fintype.card C : ℝ) := by … - def
OAI.UniqueGamesTheorem.Fourier.MatrixParity.parityCharacterline 856Source documentation
The character of the color-shift group indexed by the functional
τ S.def parityCharacter (τ : E →ₗ[F2] F2) (S : C →ₗ[F2] E) : AddChar C ℂ where …
- theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.parityCharacter_eq_zero_iffline 861 - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.linearTrace_shift_sumline 876Source documentation
Unnormalized annihilator identity for exactly the
c τshift subgroup.theorem linearTrace_shift_sum [Fintype C] [FiniteDimensional F2 C] (τ : E →ₗ[F2] F2) (S : C →ₗ[F2] E) : (∑ c : C, linearTraceCharacter S (τ.smulRight c)) = if τ.comp S = 0 then (Fintype.card C : ℂ) else 0 := by … - theorem
OAI.UniqueGamesTheorem.Fourier.MatrixParity.linearTrace_shift_averageline 888Source documentation
Averaging the Fourier character in the folding directions kills precisely the indices with nonzero
τ S, the multiplier used in Equation (5.19).theorem linearTrace_shift_average [Fintype C] [FiniteDimensional F2 C] (τ : E →ₗ[F2] F2) (S : C →ₗ[F2] E) : (∑ c : C, linearTraceCharacter S (τ.smulRight c)) / (Fintype.card C : ℂ) = if τ.comp S = 0 then 1 else 0 := by …