feat: contr_unit for Complex Lorentz Tensors
This commit is contained in:
parent
14377da3d8
commit
942ee12e60
4 changed files with 201 additions and 2 deletions
|
@ -97,6 +97,17 @@ lemma contrCoContraction_basis (i j : Fin 4) :
|
|||
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
||||
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
||||
|
||||
lemma contrCoContraction_basis' (i j : Fin 1 ⊕ Fin 3) :
|
||||
contrCoContraction.hom (complexContrBasis i ⊗ₜ complexCoBasis j) =
|
||||
if i = j then (1 : ℂ) else 0 := by
|
||||
rw [contrCoContraction_hom_tmul]
|
||||
simp only [Action.instMonoidalCategory_tensorUnit_V, complexContrBasisFin4, Basis.coe_reindex,
|
||||
Function.comp_apply, complexContrBasis_toFin13ℂ, complexCoBasisFin4, complexCoBasis_toFin13ℂ,
|
||||
dotProduct_single, mul_one]
|
||||
rw [Pi.single_apply]
|
||||
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
||||
exact Eq.propIntro (fun a => id (Eq.symm a)) fun a => id (Eq.symm a)
|
||||
|
||||
/-- The linear map from complexCo ⊗ complexContr to ℂ given by
|
||||
summing over components of covariant Lorentz vector and
|
||||
contravariant Lorentz vector in the
|
||||
|
@ -126,6 +137,17 @@ lemma coContrContraction_basis (i j : Fin 4) :
|
|||
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
||||
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
||||
|
||||
lemma coContrContraction_basis' (i j : Fin 1 ⊕ Fin 3) :
|
||||
coContrContraction.hom (complexCoBasis i ⊗ₜ complexContrBasis j) =
|
||||
if i = j then (1 : ℂ) else 0 := by
|
||||
rw [coContrContraction_hom_tmul]
|
||||
simp only [Action.instMonoidalCategory_tensorUnit_V, complexCoBasisFin4, Basis.coe_reindex,
|
||||
Function.comp_apply, complexCoBasis_toFin13ℂ, complexContrBasisFin4, complexContrBasis_toFin13ℂ,
|
||||
dotProduct_single, mul_one]
|
||||
rw [Pi.single_apply]
|
||||
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
||||
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
||||
|
||||
/-!
|
||||
|
||||
## Symmetry
|
||||
|
|
|
@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
|
|||
Authors: Joseph Tooby-Smith
|
||||
-/
|
||||
import HepLean.SpaceTime.LorentzVector.Complex.Two
|
||||
import HepLean.SpaceTime.LorentzVector.Complex.Contraction
|
||||
/-!
|
||||
|
||||
# Unit for complex Lorentz vectors
|
||||
|
@ -122,6 +123,76 @@ lemma coContrUnit_apply_one : coContrUnit.hom (1 : ℂ) = coContrUnitVal := by
|
|||
change coContrUnit.hom.toFun (1 : ℂ) = coContrUnitVal
|
||||
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
|
||||
coContrUnit, AddHom.toFun_eq_coe, AddHom.coe_mk, one_smul]
|
||||
/-!
|
||||
|
||||
## Contraction of the units
|
||||
|
||||
-/
|
||||
|
||||
/-- Contraction on the right with `contrCoUnit` does nothing. -/
|
||||
lemma contr_contrCoUnit (x : complexCo) :
|
||||
(λ_ complexCo).hom.hom
|
||||
((coContrContraction ▷ complexCo).hom
|
||||
((α_ _ _ complexCo).inv.hom
|
||||
(x ⊗ₜ[ℂ] contrCoUnit.hom (1 : ℂ)))) = x := by
|
||||
obtain ⟨c, hc⟩ := (mem_span_range_iff_exists_fun ℂ).mp (Basis.mem_span complexCoBasis x)
|
||||
subst hc
|
||||
rw [contrCoUnit_apply_one, contrCoUnitVal_expand_tmul]
|
||||
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
|
||||
Action.instMonoidalCategory_leftUnitor_hom_hom, Action.instMonoidalCategory_whiskerRight_hom,
|
||||
Action.instMonoidalCategory_associator_inv_hom, CategoryTheory.Equivalence.symm_inverse,
|
||||
Action.functorCategoryEquivalence_functor, Action.FunctorCategoryEquivalence.functor_obj_obj,
|
||||
Fintype.sum_sum_type, Finset.univ_unique, Fin.default_eq_zero, Fin.isValue,
|
||||
Finset.sum_singleton, Fin.sum_univ_three, tmul_add, add_tmul, smul_tmul, tmul_smul, map_add,
|
||||
_root_.map_smul]
|
||||
have h1' (x y : CoeSort.coe complexCo) (z : CoeSort.coe complexContr) :
|
||||
(α_ complexCo.V complexContr.V complexCo.V).inv (x ⊗ₜ[ℂ] z ⊗ₜ[ℂ] y) = (x ⊗ₜ[ℂ] z) ⊗ₜ[ℂ] y := rfl
|
||||
repeat rw [h1']
|
||||
have h1'' ( y : CoeSort.coe complexCo) (z : CoeSort.coe complexCo ⊗[ℂ] CoeSort.coe complexContr) :
|
||||
(coContrContraction.hom ▷ complexCo.V) (z ⊗ₜ[ℂ] y) = (coContrContraction.hom z) ⊗ₜ[ℂ] y := rfl
|
||||
repeat rw (config := { transparency := .instances }) [h1'']
|
||||
repeat rw [coContrContraction_basis']
|
||||
simp only [Fin.isValue, leftUnitor, ModuleCat.MonoidalCategory.leftUnitor, ModuleCat.of_coe,
|
||||
CategoryTheory.Iso.trans_hom, LinearEquiv.toModuleIso_hom, ModuleCat.ofSelfIso_hom,
|
||||
CategoryTheory.Category.comp_id, Action.instMonoidalCategory_tensorUnit_V, ↓reduceIte,
|
||||
reduceCtorEq, zero_tmul, map_zero, smul_zero, add_zero, Sum.inr.injEq, one_ne_zero,
|
||||
Fin.reduceEq, zero_add, zero_ne_one]
|
||||
erw [TensorProduct.lid_tmul, TensorProduct.lid_tmul, TensorProduct.lid_tmul,
|
||||
TensorProduct.lid_tmul]
|
||||
simp only [Fin.isValue, one_smul]
|
||||
repeat rw [add_assoc]
|
||||
|
||||
/-- Contraction on the right with `coContrUnit`. -/
|
||||
lemma contr_coContrUnit (x : complexContr) :
|
||||
(λ_ complexContr).hom.hom
|
||||
((contrCoContraction ▷ complexContr).hom
|
||||
((α_ _ _ complexContr).inv.hom
|
||||
(x ⊗ₜ[ℂ] coContrUnit.hom (1 : ℂ)))) = x := by
|
||||
obtain ⟨c, hc⟩ := (mem_span_range_iff_exists_fun ℂ).mp (Basis.mem_span complexContrBasis x)
|
||||
subst hc
|
||||
rw [coContrUnit_apply_one, coContrUnitVal_expand_tmul]
|
||||
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
|
||||
Action.instMonoidalCategory_leftUnitor_hom_hom, Action.instMonoidalCategory_whiskerRight_hom,
|
||||
Action.instMonoidalCategory_associator_inv_hom, CategoryTheory.Equivalence.symm_inverse,
|
||||
Action.functorCategoryEquivalence_functor, Action.FunctorCategoryEquivalence.functor_obj_obj,
|
||||
Fintype.sum_sum_type, Finset.univ_unique, Fin.default_eq_zero, Fin.isValue,
|
||||
Finset.sum_singleton, Fin.sum_univ_three, tmul_add, add_tmul, smul_tmul, tmul_smul, map_add,
|
||||
_root_.map_smul]
|
||||
have h1' (x y : CoeSort.coe complexContr) (z : CoeSort.coe complexCo) :
|
||||
(α_ complexContr.V complexCo.V complexContr.V).inv (x ⊗ₜ[ℂ] z ⊗ₜ[ℂ] y) = (x ⊗ₜ[ℂ] z) ⊗ₜ[ℂ] y := rfl
|
||||
repeat rw [h1']
|
||||
have h1'' ( y : CoeSort.coe complexContr) (z : CoeSort.coe complexContr ⊗[ℂ] CoeSort.coe complexCo) :
|
||||
(contrCoContraction.hom ▷ complexContr.V) (z ⊗ₜ[ℂ] y) = (contrCoContraction.hom z) ⊗ₜ[ℂ] y := rfl
|
||||
repeat rw (config := { transparency := .instances }) [h1'']
|
||||
repeat rw [contrCoContraction_basis']
|
||||
simp only [Fin.isValue, Action.instMonoidalCategory_tensorUnit_V, ↓reduceIte, reduceCtorEq,
|
||||
zero_tmul, map_zero, smul_zero, add_zero, Sum.inr.injEq, one_ne_zero, Fin.reduceEq, zero_add,
|
||||
zero_ne_one]
|
||||
erw [TensorProduct.lid_tmul, TensorProduct.lid_tmul, TensorProduct.lid_tmul,
|
||||
TensorProduct.lid_tmul]
|
||||
simp only [Fin.isValue, one_smul]
|
||||
repeat rw [add_assoc]
|
||||
|
||||
|
||||
end Lorentz
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue