feat: Expansion lemmas for units

This commit is contained in:
jstoobysmith 2024-10-24 15:04:37 +00:00
parent 28e0e4d610
commit 14377da3d8
4 changed files with 131 additions and 3 deletions

View file

@ -28,6 +28,14 @@ open CategoryTheory.MonoidalCategory
def leftAltLeftUnitVal : (leftHanded ⊗ altLeftHanded).V :=
leftAltLeftToMatrix.symm 1
/-- Expansion of `leftAltLeftUnitVal` into the basis. -/
lemma leftAltLeftUnitVal_expand_tmul : leftAltLeftUnitVal =
leftBasis 0 ⊗ₜ[] altLeftBasis 0 + leftBasis 1 ⊗ₜ[] altLeftBasis 1 := by
simp only [Action.instMonoidalCategory_tensorObj_V, leftAltLeftUnitVal, Fin.isValue]
erw [leftAltLeftToMatrix_symm_expand_tmul]
simp only [Fin.sum_univ_two, Fin.isValue, one_apply_eq, one_smul, ne_eq, zero_ne_one,
not_false_eq_true, one_apply_ne, zero_smul, add_zero, one_ne_zero, zero_add]
/-- The left-alt-left unit `δᵃₐ` as a morphism `𝟙_ (Rep SL(2,)) ⟶ leftHanded ⊗ altLeftHanded `,
manifesting the invariance under the `SL(2,)` action. -/
def leftAltLeftUnit : 𝟙_ (Rep SL(2,)) ⟶ leftHanded ⊗ altLeftHanded where
@ -55,10 +63,23 @@ def leftAltLeftUnit : 𝟙_ (Rep SL(2,)) ⟶ leftHanded ⊗ altLeftHanded
apply congrArg
simp
lemma leftAltLeftUnit_apply_one : leftAltLeftUnit.hom (1 : ) = leftAltLeftUnitVal := by
change leftAltLeftUnit.hom.toFun (1 : ) = leftAltLeftUnitVal
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
leftAltLeftUnit, AddHom.toFun_eq_coe, AddHom.coe_mk, one_smul]
/-- The alt-left-left unit `δₐᵃ` as an element of `(altLeftHanded ⊗ leftHanded).V`. -/
def altLeftLeftUnitVal : (altLeftHanded ⊗ leftHanded).V :=
altLeftLeftToMatrix.symm 1
/-- Expansion of `altLeftLeftUnitVal` into the basis. -/
lemma altLeftLeftUnitVal_expand_tmul : altLeftLeftUnitVal =
altLeftBasis 0 ⊗ₜ[] leftBasis 0 + altLeftBasis 1 ⊗ₜ[] leftBasis 1 := by
simp only [Action.instMonoidalCategory_tensorObj_V, altLeftLeftUnitVal, Fin.isValue]
erw [altLeftLeftToMatrix_symm_expand_tmul]
simp only [Fin.sum_univ_two, Fin.isValue, one_apply_eq, one_smul, ne_eq, zero_ne_one,
not_false_eq_true, one_apply_ne, zero_smul, add_zero, one_ne_zero, zero_add]
/-- The alt-left-left unit `δₐᵃ` as a morphism `𝟙_ (Rep SL(2,)) ⟶ altLeftHanded ⊗ leftHanded `,
manifesting the invariance under the `SL(2,)` action. -/
def altLeftLeftUnit : 𝟙_ (Rep SL(2,)) ⟶ altLeftHanded ⊗ leftHanded where
@ -87,11 +108,24 @@ def altLeftLeftUnit : 𝟙_ (Rep SL(2,)) ⟶ altLeftHanded ⊗ leftHanded
simp only [mul_one, ← transpose_mul, SpecialLinearGroup.det_coe, isUnit_iff_ne_zero, ne_eq,
one_ne_zero, not_false_eq_true, mul_nonsing_inv, transpose_one]
lemma altLeftLeftUnit_apply_one : altLeftLeftUnit.hom (1 : ) = altLeftLeftUnitVal := by
change altLeftLeftUnit.hom.toFun (1 : ) = altLeftLeftUnitVal
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
altLeftLeftUnit, AddHom.toFun_eq_coe, AddHom.coe_mk, one_smul]
/-- The right-alt-right unit `δ^{dot a}_{dot a}` as an element of
`(rightHanded ⊗ altRightHanded).V`. -/
def rightAltRightUnitVal : (rightHanded ⊗ altRightHanded).V :=
rightAltRightToMatrix.symm 1
/-- Expansion of `rightAltRightUnitVal` into the basis. -/
lemma rightAltRightUnitVal_expand_tmul : rightAltRightUnitVal =
rightBasis 0 ⊗ₜ[] altRightBasis 0 + rightBasis 1 ⊗ₜ[] altRightBasis 1 := by
simp only [Action.instMonoidalCategory_tensorObj_V, rightAltRightUnitVal, Fin.isValue]
erw [rightAltRightToMatrix_symm_expand_tmul]
simp only [Fin.sum_univ_two, Fin.isValue, one_apply_eq, one_smul, ne_eq, zero_ne_one,
not_false_eq_true, one_apply_ne, zero_smul, add_zero, one_ne_zero, zero_add]
/-- The right-alt-right unit `δ^{dot a}_{dot a}` as a morphism
`𝟙_ (Rep SL(2,)) ⟶ rightHanded ⊗ altRightHanded`, manifesting
the invariance under the `SL(2,)` action. -/
@ -126,11 +160,24 @@ def rightAltRightUnit : 𝟙_ (Rep SL(2,)) ⟶ rightHanded ⊗ altRightHa
rw [@conjTranspose_nonsing_inv]
simp
lemma rightAltRightUnit_apply_one : rightAltRightUnit.hom (1 : ) = rightAltRightUnitVal := by
change rightAltRightUnit.hom.toFun (1 : ) = rightAltRightUnitVal
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
rightAltRightUnit, AddHom.toFun_eq_coe, AddHom.coe_mk, one_smul]
/-- The alt-right-right unit `δ_{dot a}^{dot a}` as an element of
`(rightHanded ⊗ altRightHanded).V`. -/
def altRightRightUnitVal : (altRightHanded ⊗ rightHanded).V :=
altRightRightToMatrix.symm 1
/-- Expansion of `altRightRightUnitVal` into the basis. -/
lemma altRightRightUnitVal_expand_tmul : altRightRightUnitVal =
altRightBasis 0 ⊗ₜ[] rightBasis 0 + altRightBasis 1 ⊗ₜ[] rightBasis 1 := by
simp only [Action.instMonoidalCategory_tensorObj_V, altRightRightUnitVal, Fin.isValue]
erw [altRightRightToMatrix_symm_expand_tmul]
simp only [Fin.sum_univ_two, Fin.isValue, one_apply_eq, one_smul, ne_eq, zero_ne_one,
not_false_eq_true, one_apply_ne, zero_smul, add_zero, one_ne_zero, zero_add]
/-- The alt-right-right unit `δ_{dot a}^{dot a}` as a morphism
`𝟙_ (Rep SL(2,)) ⟶ altRightHanded ⊗ rightHanded`, manifesting
the invariance under the `SL(2,)` action. -/
@ -163,5 +210,22 @@ def altRightRightUnit : 𝟙_ (Rep SL(2,)) ⟶ altRightHanded ⊗ rightHa
rw [@conjTranspose_nonsing_inv]
simp
lemma altRightRightUnit_apply_one : altRightRightUnit.hom (1 : ) = altRightRightUnitVal := by
change altRightRightUnit.hom.toFun (1 : ) = altRightRightUnitVal
simp only [Action.instMonoidalCategory_tensorObj_V, Action.instMonoidalCategory_tensorUnit_V,
altRightRightUnit, AddHom.toFun_eq_coe, AddHom.coe_mk, one_smul]
/-!
## Contraction of the units
-/
lemma contr_leftAltLeftUnitVal (x : leftHanded) :
(λ_ leftHanded).hom.hom
(((leftAltContraction) ▷ leftHanded).hom
((α_ _ _ leftHanded).inv.hom
(x ⊗ₜ[] altLeftLeftUnit.hom (1 : )))) = x := by
sorry
end
end Fermion