Imports
/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.Relativity.Tensors.ComplexTensor.Units.PreMetric for complex Lorentz vectors
@[expose] public section
The metric ηᵃᵃ as an element of (complexContr ⊗ complexContr).V.
def contrMetricVal : (ContrℂModule ⊗[ℂ] ContrℂModule) :=
contrContrToMatrix.symm ((@minkowskiMatrix 3).map ofRealHom)
The expansion of contrMetricVal into basis vectors.
set_option backward.isDefEq.respectTransparency false in⊢ ↑1 • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
(↑0 • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
↑0 • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
↑0 • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) +
(↑0 • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
(↑(-1) • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
↑0 • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
↑0 • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) +
(↑0 • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
(↑0 • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
↑(-1) • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
↑0 • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2))) +
(↑0 • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
(↑0 • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
↑0 • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
↑(-1) • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)))) =
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)
simp only [ofReal_one, Fin.isValue, one_smul, ofReal_zero, zero_smul, add_zero, ofReal_neg,
zero_add] ⊢ complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
(-1 • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
-1 • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
-1 • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) =
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)
module All goals completed! 🐙
The metric ηᵃᵃ as a morphism 𝟙_ (Rep ℂ SL(2,ℂ)) ⟶ complexContr ⊗ complexContr,
making its invariance under the action of SL(2,ℂ).
def contrMetric : (Representation.trivial ℂ SL(2,ℂ) ℂ).IntertwiningMap
(ContrℂModule.SL2CRep.tprod ContrℂModule.SL2CRep) where
toFun := fun a =>
let a' : ℂ := a
a' • contrMetricVal
map_add' := fun x y => by x:ℂy:ℂ⊢ (let a' := x + y;
a' • contrMetricVal) =
(let a' := x;
a' • contrMetricVal) +
let a' := y;
a' • contrMetricVal
simp only [add_smul] All goals completed! 🐙
map_smul' := fun m x => by m:ℂx:ℂ⊢ (let a' := m • x;
a' • contrMetricVal) =
(RingHom.id ℂ) m •
let a' := x;
a' • contrMetricVal
simp only [smul_smul] m:ℂx:ℂ⊢ (m • x) • contrMetricVal = ((RingHom.id ℂ) m * x) • contrMetricVal
rfl All goals completed! 🐙
isIntertwining' M := by M:SL(2, ℂ)⊢ {
toFun := fun a =>
let a' := a;
a' • contrMetricVal,
map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
(Representation.trivial ℂ SL(2, ℂ) ℂ) M =
(ContrℂModule.SL2CRep.tprod ContrℂModule.SL2CRep) M ∘ₗ
{
toFun := fun a =>
let a' := a;
a' • contrMetricVal,
map_add' := ⋯, map_smul' := ⋯ }
refine LinearMap.ext fun x : ℂ => ?_ M:SL(2, ℂ)x:ℂ⊢ ({
toFun := fun a =>
let a' := a;
a' • contrMetricVal,
map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
(Representation.trivial ℂ SL(2, ℂ) ℂ) M)
x =
((ContrℂModule.SL2CRep.tprod ContrℂModule.SL2CRep) M ∘ₗ
{
toFun := fun a =>
let a' := a;
a' • contrMetricVal,
map_add' := ⋯, map_smul' := ⋯ })
x
change x • contrMetricVal =
(TensorProduct.map (ContrℂModule.SL2CRep M) (ContrℂModule.SL2CRep M)) (x • contrMetricVal) M:SL(2, ℂ)x:ℂ⊢ x • contrMetricVal = (TensorProduct.map (ContrℂModule.SL2CRep M) (ContrℂModule.SL2CRep M)) (x • contrMetricVal)
simp only [map_smul] M:SL(2, ℂ)x:ℂ⊢ x • contrMetricVal = x • (TensorProduct.map (ContrℂModule.SL2CRep M) (ContrℂModule.SL2CRep M)) contrMetricVal
apply congrArg M:SL(2, ℂ)x:ℂ⊢ contrMetricVal = (TensorProduct.map (ContrℂModule.SL2CRep M) (ContrℂModule.SL2CRep M)) contrMetricVal
simp only [contrMetricVal] M:SL(2, ℂ)x:ℂ⊢ contrContrToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
(TensorProduct.map (ContrℂModule.SL2CRep M) (ContrℂModule.SL2CRep M))
(contrContrToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom))
rw [contrContrToMatrix_ρ_symm M:SL(2, ℂ)x:ℂ⊢ contrContrToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
contrContrToMatrix.symm
(LorentzGroup.toComplex (SL2C.toLorentzGroup M) * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))ᵀ) M:SL(2, ℂ)x:ℂ⊢ contrContrToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
contrContrToMatrix.symm
(LorentzGroup.toComplex (SL2C.toLorentzGroup M) * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))ᵀ)] M:SL(2, ℂ)x:ℂ⊢ contrContrToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
contrContrToMatrix.symm
(LorentzGroup.toComplex (SL2C.toLorentzGroup M) * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))ᵀ)
apply congrArg M:SL(2, ℂ)x:ℂ⊢ minkowskiMatrix.map ⇑ofRealHom =
LorentzGroup.toComplex (SL2C.toLorentzGroup M) * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))ᵀ
simp only [LorentzGroup.toComplex_mul_minkowskiMatrix_mul_transpose] All goals completed! 🐙lemma contrMetric_apply_one : contrMetric (1 : ℂ) = contrMetricVal := by ⊢ contrMetric 1 = contrMetricVal
change (1 : ℂ) • contrMetricVal = contrMetricVal ⊢ 1 • contrMetricVal = contrMetricVal
simp only [one_smul] All goals completed! 🐙
The metric ηᵢᵢ as an element of (complexCo ⊗ complexCo).V.
def coMetricVal : (CoℂModule ⊗[ℂ] CoℂModule) :=
coCoToMatrix.symm ((@minkowskiMatrix 3).map ofRealHom)
The expansion of coMetricVal into basis vectors.
set_option backward.isDefEq.respectTransparency false in
lemma coMetricVal_expand_tmul : coMetricVal =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)
- complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)
- complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)
- complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) := by ⊢ coMetricVal =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
simp only [coMetricVal, Fin.isValue] ⊢ coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
rw [coCoToMatrix_symm_expand_tmul ⊢ ∑ i, ∑ j, minkowskiMatrix.map (⇑ofRealHom) i j • complexCoBasis i ⊗ₜ[ℂ] complexCoBasis j =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) ⊢ ∑ i, ∑ j, minkowskiMatrix.map (⇑ofRealHom) i j • complexCoBasis i ⊗ₜ[ℂ] complexCoBasis j =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)] ⊢ ∑ i, ∑ j, minkowskiMatrix.map (⇑ofRealHom) i j • complexCoBasis i ⊗ₜ[ℂ] complexCoBasis j =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
simp only [map_apply, ofRealHom_eq_coe, Fintype.sum_sum_type, Finset.univ_unique,
Fin.default_eq_zero, Fin.isValue, Finset.sum_singleton, Fin.sum_univ_three, ne_eq, reduceCtorEq,
not_false_eq_true, minkowskiMatrix.off_diag_zero, Sum.inr.injEq, zero_ne_one, Fin.reduceEq,
one_ne_zero] ⊢ ↑(minkowskiMatrix (Sum.inl 0) (Sum.inl 0)) • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(minkowskiMatrix (Sum.inr 0) (Sum.inr 0)) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(minkowskiMatrix (Sum.inr 1) (Sum.inr 1)) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(minkowskiMatrix (Sum.inr 2) (Sum.inr 2)) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
rw [minkowskiMatrix.inl_0_inl_0, ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(minkowskiMatrix (Sum.inr 0) (Sum.inr 0)) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(minkowskiMatrix (Sum.inr 1) (Sum.inr 1)) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(minkowskiMatrix (Sum.inr 2) (Sum.inr 2)) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) minkowskiMatrix.inr_i_inr_i, ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(minkowskiMatrix (Sum.inr 1) (Sum.inr 1)) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(minkowskiMatrix (Sum.inr 2) (Sum.inr 2)) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
minkowskiMatrix.inr_i_inr_i, ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(minkowskiMatrix (Sum.inr 2) (Sum.inr 2)) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) minkowskiMatrix.inr_i_inr_i ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)] ⊢ ↑1 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑(-1) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑(-1) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑0 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
↑0 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
↑(-1) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)))) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
simp only [ofReal_one, Fin.isValue, one_smul, ofReal_zero, zero_smul, add_zero, ofReal_neg,
zero_add] ⊢ complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
(-1 • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
-1 • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
-1 • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)
module All goals completed! 🐙
The metric ηᵢᵢ as a morphism 𝟙_ (Rep ℂ SL(2,ℂ)) ⟶ complexCo ⊗ complexCo,
making its invariance under the action of SL(2,ℂ).
def coMetric : (Representation.trivial ℂ SL(2,ℂ) ℂ).IntertwiningMap
(CoℂModule.SL2CRep.tprod CoℂModule.SL2CRep) where
toFun := fun a =>
let a' : ℂ := a
a' • coMetricVal
map_add' := fun x y => by x:ℂy:ℂ⊢ (let a' := x + y;
a' • coMetricVal) =
(let a' := x;
a' • coMetricVal) +
let a' := y;
a' • coMetricVal
simp only [add_smul] All goals completed! 🐙
map_smul' := fun m x => by m:ℂx:ℂ⊢ (let a' := m • x;
a' • coMetricVal) =
(RingHom.id ℂ) m •
let a' := x;
a' • coMetricVal
simp only [smul_smul] m:ℂx:ℂ⊢ (m • x) • coMetricVal = ((RingHom.id ℂ) m * x) • coMetricVal
rfl All goals completed! 🐙
isIntertwining' M := by M:SL(2, ℂ)⊢ {
toFun := fun a =>
let a' := a;
a' • coMetricVal,
map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
(Representation.trivial ℂ SL(2, ℂ) ℂ) M =
(CoℂModule.SL2CRep.tprod CoℂModule.SL2CRep) M ∘ₗ
{
toFun := fun a =>
let a' := a;
a' • coMetricVal,
map_add' := ⋯, map_smul' := ⋯ }
refine LinearMap.ext fun x : ℂ => ?_ M:SL(2, ℂ)x:ℂ⊢ ({
toFun := fun a =>
let a' := a;
a' • coMetricVal,
map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
(Representation.trivial ℂ SL(2, ℂ) ℂ) M)
x =
((CoℂModule.SL2CRep.tprod CoℂModule.SL2CRep) M ∘ₗ
{
toFun := fun a =>
let a' := a;
a' • coMetricVal,
map_add' := ⋯, map_smul' := ⋯ })
x
change x • coMetricVal =
(TensorProduct.map (CoℂModule.SL2CRep M) (CoℂModule.SL2CRep M)) (x • coMetricVal) M:SL(2, ℂ)x:ℂ⊢ x • coMetricVal = (TensorProduct.map (CoℂModule.SL2CRep M) (CoℂModule.SL2CRep M)) (x • coMetricVal)
simp only [map_smul] M:SL(2, ℂ)x:ℂ⊢ x • coMetricVal = x • (TensorProduct.map (CoℂModule.SL2CRep M) (CoℂModule.SL2CRep M)) coMetricVal
apply congrArg M:SL(2, ℂ)x:ℂ⊢ coMetricVal = (TensorProduct.map (CoℂModule.SL2CRep M) (CoℂModule.SL2CRep M)) coMetricVal
simp only [coMetricVal] M:SL(2, ℂ)x:ℂ⊢ coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
(TensorProduct.map (CoℂModule.SL2CRep M) (CoℂModule.SL2CRep M)) (coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom))
rw [coCoToMatrix_ρ_symm M:SL(2, ℂ)x:ℂ⊢ coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
coCoToMatrix.symm
((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹) M:SL(2, ℂ)x:ℂ⊢ coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
coCoToMatrix.symm
((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹)] M:SL(2, ℂ)x:ℂ⊢ coCoToMatrix.symm (minkowskiMatrix.map ⇑ofRealHom) =
coCoToMatrix.symm
((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹)
apply congrArg M:SL(2, ℂ)x:ℂ⊢ minkowskiMatrix.map ⇑ofRealHom =
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ * minkowskiMatrix.map ⇑ofRealHom *
(LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹
rw [LorentzGroup.toComplex_inv M:SL(2, ℂ)x:ℂ⊢ minkowskiMatrix.map ⇑ofRealHom =
(LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹)ᵀ * minkowskiMatrix.map ⇑ofRealHom *
LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹ M:SL(2, ℂ)x:ℂ⊢ minkowskiMatrix.map ⇑ofRealHom =
(LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹)ᵀ * minkowskiMatrix.map ⇑ofRealHom *
LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹] M:SL(2, ℂ)x:ℂ⊢ minkowskiMatrix.map ⇑ofRealHom =
(LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹)ᵀ * minkowskiMatrix.map ⇑ofRealHom *
LorentzGroup.toComplex (SL2C.toLorentzGroup M)⁻¹
simp only [LorentzGroup.inv_eq_dual, SL2C.toLorentzGroup_apply_coe,
LorentzGroup.toComplex_transpose_mul_minkowskiMatrix_mul_self] All goals completed! 🐙lemma coMetric_apply_one : coMetric (1 : ℂ) = coMetricVal := by ⊢ coMetric 1 = coMetricVal
change (1 : ℂ) • coMetricVal = coMetricVal ⊢ 1 • coMetricVal = coMetricVal
simp only [one_smul] All goals completed! 🐙Contraction of metrics
lemma contrCoContraction_apply_metric :
(TensorProduct.comm ℂ _ _ <|
(TensorProduct.lid ℂ _).lTensor _ <|
(contrCoContraction.toLinearMap.rTensor _).lTensor _ <|
(TensorProduct.assoc ℂ _ _ _).symm.toLinearMap.lTensor _<|
TensorProduct.assoc ℂ _ _ (_ ⊗[ℂ] _) <|
(contrMetric 1) ⊗ₜ[ℂ] (coMetric 1)) = coContrUnit (1 : ℝ) := by ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetric 1 ⊗ₜ[ℂ] coMetric 1))))) =
coContrUnit ↑1
rw [contrMetric_apply_one, ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetricVal ⊗ₜ[ℂ] coMetric 1))))) =
coContrUnit ↑1 ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetricVal ⊗ₜ[ℂ] coMetricVal))))) =
coContrUnit ↑1 coMetric_apply_one ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetricVal ⊗ₜ[ℂ] coMetricVal))))) =
coContrUnit ↑1 ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetricVal ⊗ₜ[ℂ] coMetricVal))))) =
coContrUnit ↑1] ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
(contrMetricVal ⊗ₜ[ℂ] coMetricVal))))) =
coContrUnit ↑1
rw [contrMetricVal_expand_tmul, ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
((complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) ⊗ₜ[ℂ]
coMetricVal))))) =
coContrUnit ↑1 ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
((complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))))))) =
coContrUnit ↑1 coMetricVal_expand_tmul ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
((complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))))))) =
coContrUnit ↑1 ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
((complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))))))) =
coContrUnit ↑1] ⊢ (TensorProduct.comm ℂ ContrℂModule CoℂModule)
((LinearEquiv.lTensor ContrℂModule (TensorProduct.lid ℂ CoℂModule))
((LinearMap.lTensor ContrℂModule (LinearMap.rTensor CoℂModule contrCoContraction.toLinearMap))
((LinearMap.lTensor ContrℂModule ↑(TensorProduct.assoc ℂ ContrℂModule CoℂModule CoℂModule).symm)
((TensorProduct.assoc ℂ ContrℂModule ContrℂModule (CoℂModule ⊗[ℂ] CoℂModule))
((complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2))))))) =
coContrUnit ↑1
simp [Fin.isValue, tmul_sub, sub_tmul, map_sub] ⊢ contrCoContraction (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) -
(contrCoContraction (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) =
coContrUnit 1
simp only [← Representation.IntertwiningMap.toLinearMap_apply] ⊢ contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) =
coContrUnit.toLinearMap 1
repeat erw [contrCoContraction_basis' ⊢ (if Sum.inl 0 = Sum.inl 0 then 1 else 0) • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0)) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0)) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1)) •
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
(contrCoContraction.toLinearMap (complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
contrCoContraction.toLinearMap (complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) •
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) =
coContrUnit.toLinearMap 1] ⊢ (if Sum.inl 0 = Sum.inl 0 then 1 else 0) • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inl 0 then 1 else 0) •
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inl 0 then 1 else 0) • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inl 0 then 1 else 0) • complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) -
((if Sum.inl 0 = Sum.inr 0 then 1 else 0) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 0 then 1 else 0) •
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 0 then 1 else 0) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 0 then 1 else 0) • complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
((if Sum.inl 0 = Sum.inr 1 then 1 else 0) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 1 then 1 else 0) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 1 then 1 else 0) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 1 then 1 else 0) • complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) -
((if Sum.inl 0 = Sum.inr 2 then 1 else 0) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 2 then 1 else 0) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 2 then 1 else 0) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 2 then 1 else 0) • complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) =
coContrUnit.toLinearMap 1
simp only [Fin.isValue, ↓reduceIte, one_smul, reduceCtorEq, zero_smul, sub_zero, zero_sub,
Sum.inr.injEq, one_ne_zero, Fin.reduceEq, sub_neg_eq_add, zero_ne_one, sub_self] ⊢ complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) =
coContrUnit.toLinearMap 1
erw [coContrUnit_apply_one, ⊢ complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) =
coContrUnitVal coContrUnitVal_expand_tmul ⊢ complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2) =
complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) +
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) +
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) +
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)] All goals completed! 🐙
lemma coContrContraction_apply_metric :
(TensorProduct.comm ℂ _ _ <|
(TensorProduct.lid ℂ _).lTensor _ <|
(coContrContraction.toLinearMap.rTensor _).lTensor _ <|
(TensorProduct.assoc ℂ _ _ _).symm.toLinearMap.lTensor _<|
TensorProduct.assoc ℂ _ _ (_ ⊗[ℂ] _) <|
(coMetric 1) ⊗ₜ[ℂ] (contrMetric 1)) = contrCoUnit (1 : ℝ) := by ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetric 1 ⊗ₜ[ℂ] contrMetric 1))))) =
contrCoUnit ↑1
rw [coMetric_apply_one, ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetricVal ⊗ₜ[ℂ] contrMetric 1))))) =
contrCoUnit ↑1 ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetricVal ⊗ₜ[ℂ] contrMetricVal))))) =
contrCoUnit ↑1 contrMetric_apply_one ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetricVal ⊗ₜ[ℂ] contrMetricVal))))) =
contrCoUnit ↑1 ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetricVal ⊗ₜ[ℂ] contrMetricVal))))) =
contrCoUnit ↑1] ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
(coMetricVal ⊗ₜ[ℂ] contrMetricVal))))) =
contrCoUnit ↑1
rw [coMetricVal_expand_tmul, ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
((complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) ⊗ₜ[ℂ]
contrMetricVal))))) =
contrCoUnit ↑1 ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
((complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2))))))) =
contrCoUnit ↑1 contrMetricVal_expand_tmul ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
((complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2))))))) =
contrCoUnit ↑1 ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
((complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2))))))) =
contrCoUnit ↑1] ⊢ (TensorProduct.comm ℂ CoℂModule ContrℂModule)
((LinearEquiv.lTensor CoℂModule (TensorProduct.lid ℂ ContrℂModule))
((LinearMap.lTensor CoℂModule (LinearMap.rTensor ContrℂModule coContrContraction.toLinearMap))
((LinearMap.lTensor CoℂModule ↑(TensorProduct.assoc ℂ CoℂModule ContrℂModule ContrℂModule).symm)
((TensorProduct.assoc ℂ CoℂModule CoℂModule (ContrℂModule ⊗[ℂ] ContrℂModule))
((complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) ⊗ₜ[ℂ]
(complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0) -
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0) -
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1) -
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2))))))) =
contrCoUnit ↑1
simp [Fin.isValue, tmul_sub, sub_tmul, map_sub] ⊢ coContrContraction (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) -
(coContrContraction (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) =
contrCoUnit 1
simp only [← Representation.IntertwiningMap.toLinearMap_apply] ⊢ coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) =
contrCoUnit.toLinearMap 1
repeat erw [coContrContraction_basis' ⊢ (if Sum.inl 0 = Sum.inl 0 then 1 else 0) • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inl 0)) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 0)) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 1)) •
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
(coContrContraction.toLinearMap (complexCoBasis (Sum.inl 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 0) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 1) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
coContrContraction.toLinearMap (complexCoBasis (Sum.inr 2) ⊗ₜ[ℂ] complexContrBasis (Sum.inr 2)) •
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) =
contrCoUnit.toLinearMap 1] ⊢ (if Sum.inl 0 = Sum.inl 0 then 1 else 0) • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inl 0 then 1 else 0) •
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inl 0 then 1 else 0) • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inl 0 then 1 else 0) • complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) -
((if Sum.inl 0 = Sum.inr 0 then 1 else 0) • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 0 then 1 else 0) •
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 0 then 1 else 0) • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 0 then 1 else 0) • complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
((if Sum.inl 0 = Sum.inr 1 then 1 else 0) • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 1 then 1 else 0) • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 1 then 1 else 0) • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 1 then 1 else 0) • complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) -
((if Sum.inl 0 = Sum.inr 2 then 1 else 0) • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) -
(if Sum.inr 0 = Sum.inr 2 then 1 else 0) • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) -
(if Sum.inr 1 = Sum.inr 2 then 1 else 0) • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) -
(if Sum.inr 2 = Sum.inr 2 then 1 else 0) • complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)) =
contrCoUnit.toLinearMap 1
simp [Fin.isValue, ↓reduceIte, one_smul, reduceCtorEq, Sum.inr.injEq, one_ne_zero,
Fin.reduceEq, zero_ne_one] ⊢ complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) =
contrCoUnit 1
erw [contrCoUnit_apply_one, ⊢ complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) =
contrCoUnitVal contrCoUnitVal_expand_tmul ⊢ complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2) =
complexContrBasis (Sum.inl 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inl 0) +
complexContrBasis (Sum.inr 0) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 0) +
complexContrBasis (Sum.inr 1) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 1) +
complexContrBasis (Sum.inr 2) ⊗ₜ[ℂ] complexCoBasis (Sum.inr 2)] All goals completed! 🐙