Imports
/-
Copyright (c) 2026 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.Fermions.Weyl.LeftHanded
public import Physlib.Relativity.Fermions.Weyl.RightHanded
public import Physlib.Relativity.Fermions.Weyl.DualLeftHanded
public import Physlib.Relativity.Fermions.Weyl.DualRightHandedDuals for fermions
In this file we give the relationship between Weyl fermions and their duals.
@[expose] public sectionDuals of Weyl fermions
The dual of LeftHandedWeyl is DualLeftHandedWeyl, and the dual of RightHandedWeyl is
DualRightHandedWeyl.
The morphism between the representation leftHanded and the representation
dualLeftHanded defined by multiplying an element of
leftHanded by the matrix εᵃ⁰ᵃ¹ = !![0, 1; -1, 0]].
M:SL(2, ℂ)ψ:LeftHandedWeyl⊢ !![0 * ↑M 0 0 + 1 * ↑M 1 0, 0 * ↑M 0 1 + 1 * ↑M 1 1; -1 * ↑M 0 0 + 0 * ↑M 1 0, -1 * ↑M 0 1 + 0 * ↑M 1 1] =
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] *
!![0, 1; -1, 0]
simp All goals completed! 🐙lemma LeftHandedWeyl.dual_hom_apply (ψ : LeftHandedWeyl) :
LeftHandedWeyl.dual ψ =
DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ ψ.toFin2ℂ) := rfl
The morphism from dualLeftHanded to
leftHanded defined by multiplying an element of
DualLeftHandedWeyl by the matrix εₐ₁ₐ₂ = !![0, -1; 1, 0].
def DualLeftHandedWeyl.dual : DualLeftHandedWeyl.rep.IntertwiningMap LeftHandedWeyl.rep where
toFun := fun ψ =>
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)
map_add' := by ⊢ ∀ (x y : DualLeftHandedWeyl),
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (x + y).toFin2ℂ) =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ x.toFin2ℂ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ y.toFin2ℂ)
intro ψ ψ' ψ:DualLeftHandedWeylψ':DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (ψ + ψ').toFin2ℂ) =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ'.toFin2ℂ)
simp only [map_add] ψ:DualLeftHandedWeylψ':DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (toFin2ℂEquiv ψ + toFin2ℂEquiv ψ')) =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ'.toFin2ℂ)
rw [mulVec_add, ψ:DualLeftHandedWeylψ':DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ + !![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ') =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ'.toFin2ℂ) All goals completed! 🐙 LinearEquiv.map_add ψ:DualLeftHandedWeylψ':DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ') =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) +
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ'.toFin2ℂ) All goals completed! 🐙] All goals completed! 🐙
map_smul' := by ⊢ ∀ (m : ℂ) (x : DualLeftHandedWeyl),
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (m • x).toFin2ℂ) =
(RingHom.id ℂ) m • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ x.toFin2ℂ)
intro a ψ a:ℂψ:DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (a • ψ).toFin2ℂ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)
simp only [LinearEquiv.map_smul] a:ℂψ:DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ a • toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)
rw [mulVec_smul, a:ℂψ:DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (a • !![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) a:ℂψ:DualLeftHandedWeyl⊢ a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) LinearEquiv.map_smul a:ℂψ:DualLeftHandedWeyl⊢ a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) a:ℂψ:DualLeftHandedWeyl⊢ a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)] a:ℂψ:DualLeftHandedWeyl⊢ a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ toFin2ℂEquiv ψ) =
(RingHom.id ℂ) a • LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)
rfl All goals completed! 🐙
isIntertwining' := by ⊢ ∀ (g : SL(2, ℂ)),
{ toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯,
map_smul' := ⋯ } ∘ₗ
rep g =
LeftHandedWeyl.rep g ∘ₗ
{ toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯,
map_smul' := ⋯ }
intro M M:SL(2, ℂ)⊢ { toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
rep M =
LeftHandedWeyl.rep M ∘ₗ
{ toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯, map_smul' := ⋯ }
refine LinearMap.ext (fun ψ => ?_) M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ ({ toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯, map_smul' := ⋯ } ∘ₗ
rep M)
ψ =
(LeftHandedWeyl.rep M ∘ₗ
{ toFun := fun ψ => LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ), map_add' := ⋯,
map_smul' := ⋯ })
ψ
change LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (M.1⁻¹)ᵀ *ᵥ ψ.val) =
LeftHandedWeyl.toFin2ℂEquiv.symm (M.1 *ᵥ !![0, -1; 1, 0] *ᵥ ψ.val) M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (↑M)⁻¹ᵀ *ᵥ ψ.val) =
LeftHandedWeyl.toFin2ℂEquiv.symm (↑M *ᵥ !![0, -1; 1, 0] *ᵥ ψ.val)
rw [EquivLike.apply_eq_iff_eq, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *ᵥ (↑M)⁻¹ᵀ *ᵥ ψ.val = ↑M *ᵥ !![0, -1; 1, 0] *ᵥ ψ.val M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val mulVec_mulVec, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M)⁻¹ᵀ) *ᵥ ψ.val = ↑M *ᵥ !![0, -1; 1, 0] *ᵥ ψ.val M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val mulVec_mulVec, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M)⁻¹ᵀ) *ᵥ ψ.val = (↑M * !![0, -1; 1, 0]) *ᵥ ψ.val M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val Lorentz.SL2C.inverse_coe, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (↑M * !![0, -1; 1, 0]) *ᵥ ψ.val M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val
eta_fin_two M.1 M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ (!![0, -1; 1, 0] * (↑M⁻¹)ᵀ) *ᵥ ψ.val = (!![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]) *ᵥ ψ.val
refine congrFun (congrArg _ ?_) _ M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] * (↑M⁻¹)ᵀ = !![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0]
rw [SpecialLinearGroup.coe_inv, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] * (↑M).adjugateᵀ = !![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0] Matrix.adjugate_fin_two, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] * !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ = !![↑M 0 0, ↑M 0 1; ↑M 1 0, ↑M 1 1] * !![0, -1; 1, 0] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0]
Matrix.mul_fin_two, M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] * !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0] eta_fin_two !![M.1 1 1, -M.1 0 1; -M.1 1 0, M.1 0 0]ᵀ M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0]] M:SL(2, ℂ)ψ:DualLeftHandedWeyl⊢ !![0, -1; 1, 0] *
!![!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 0 1;
!![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 0, !![↑M 1 1, -↑M 0 1; -↑M 1 0, ↑M 0 0]ᵀ 1 1] =
!![↑M 0 0 * 0 + ↑M 0 1 * 1, ↑M 0 0 * -1 + ↑M 0 1 * 0; ↑M 1 0 * 0 + ↑M 1 1 * 1, ↑M 1 0 * -1 + ↑M 1 1 * 0]
simp All goals completed! 🐙lemma DualLeftHandedWeyl.dual_hom_apply (ψ : DualLeftHandedWeyl) :
DualLeftHandedWeyl.dual ψ =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) := rfl
The equivalence between the representation leftHanded and the representation
dualLeftHanded defined by multiplying an element of
leftHanded by the matrix εᵃ⁰ᵃ¹ = !![0, 1; -1, 0]].
def LeftHandedWeyl.dualEquiv : LeftHandedWeyl.rep.Equiv DualLeftHandedWeyl.rep := by ⊢ rep.Equiv DualLeftHandedWeyl.rep
refine Representation.Equiv.mk' LeftHandedWeyl.dual DualLeftHandedWeyl.dual ?_ ?_ refine_1 ⊢ Function.LeftInverse (⇑DualLeftHandedWeyl.dual) dual.toFunrefine_2 ⊢ Function.RightInverse (⇑DualLeftHandedWeyl.dual) dual.toFun
· refine_1 ⊢ Function.LeftInverse (⇑DualLeftHandedWeyl.dual) dual.toFun intro x refine_1 x:LeftHandedWeyl⊢ DualLeftHandedWeyl.dual (dual.toFun x) = x
simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom,
Representation.IntertwiningMap.coe_toLinearMap] refine_1 x:LeftHandedWeyl⊢ DualLeftHandedWeyl.dual (dual x) = x
rw [DualLeftHandedWeyl.dual_hom_apply, refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (dual x).toFin2ℂ) = x refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ x.toFin2ℂ)).toFin2ℂ) = x LeftHandedWeyl.dual_hom_apply refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ x.toFin2ℂ)).toFin2ℂ) = x refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ x.toFin2ℂ)).toFin2ℂ) = x]refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ (DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ x.toFin2ℂ)).toFin2ℂ) = x
rw [DualLeftHandedWeyl.toFin2ℂ, refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm
(!![0, -1; 1, 0] *ᵥ
DualLeftHandedWeyl.toFin2ℂEquiv (DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ x.toFin2ℂ))) =
x refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm ((!![0, -1; 1, 0] * !![0, 1; -1, 0]) *ᵥ x.toFin2ℂ) = x LinearEquiv.apply_symm_apply, refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ !![0, 1; -1, 0] *ᵥ x.toFin2ℂ) = xrefine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm ((!![0, -1; 1, 0] * !![0, 1; -1, 0]) *ᵥ x.toFin2ℂ) = x mulVec_mulVec refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm ((!![0, -1; 1, 0] * !![0, 1; -1, 0]) *ᵥ x.toFin2ℂ) = xrefine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm ((!![0, -1; 1, 0] * !![0, 1; -1, 0]) *ᵥ x.toFin2ℂ) = x]refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm ((!![0, -1; 1, 0] * !![0, 1; -1, 0]) *ᵥ x.toFin2ℂ) = x
rw [show (!![0, -1; (1 : ℂ), 0] * !![0, 1; -1, 0]) = 1 by ⊢ rep.Equiv DualLeftHandedWeyl.rep refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (1 *ᵥ x.toFin2ℂ) = x simpa using Eq.symm one_fin_two All goals completed! 🐙refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (1 *ᵥ x.toFin2ℂ) = x]refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm (1 *ᵥ x.toFin2ℂ) = x
rw [one_mulVec refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm x.toFin2ℂ = x refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm x.toFin2ℂ = x]refine_1 x:LeftHandedWeyl⊢ toFin2ℂEquiv.symm x.toFin2ℂ = x
rfl All goals completed! 🐙
· refine_2 ⊢ Function.RightInverse (⇑DualLeftHandedWeyl.dual) dual.toFun intro ψ refine_2 ψ:DualLeftHandedWeyl⊢ dual.toFun (DualLeftHandedWeyl.dual ψ) = ψ
simp only [AddHom.toFun_eq_coe, LinearMap.coe_toAddHom,
Representation.IntertwiningMap.coe_toLinearMap] refine_2 ψ:DualLeftHandedWeyl⊢ dual (DualLeftHandedWeyl.dual ψ) = ψ
rw [DualLeftHandedWeyl.dual_hom_apply, refine_2 ψ:DualLeftHandedWeyl⊢ dual (toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)) = ψ refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ LeftHandedWeyl.dual_hom_apply, refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ (toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ)).toFin2ℂ) = ψrefine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ LeftHandedWeyl.toFin2ℂ, refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm
(!![0, 1; -1, 0] *ᵥ toFin2ℂEquiv (toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ))) =
ψrefine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ
LinearEquiv.apply_symm_apply, refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ !![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) = ψrefine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ mulVec_mulVec refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψrefine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ]refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ((!![0, 1; -1, 0] * !![0, -1; 1, 0]) *ᵥ ψ.toFin2ℂ) = ψ
rw [show (!![0, (1 : ℂ); -1, 0] * !![0, -1; 1, 0]) = 1 by ⊢ rep.Equiv DualLeftHandedWeyl.rep refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm (1 *ᵥ ψ.toFin2ℂ) = ψ simpa using Eq.symm one_fin_two All goals completed! 🐙refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm (1 *ᵥ ψ.toFin2ℂ) = ψ]refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm (1 *ᵥ ψ.toFin2ℂ) = ψ
rw [one_mulVec refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ψ.toFin2ℂ = ψ refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ψ.toFin2ℂ = ψ]refine_2 ψ:DualLeftHandedWeyl⊢ DualLeftHandedWeyl.toFin2ℂEquiv.symm ψ.toFin2ℂ = ψ
rfl All goals completed! 🐙
leftHandedDualEquiv acting on an element ψ : leftHanded corresponds
to multiplying ψ by the matrix !![0, 1; -1, 0].
lemma LeftHandedWeyl.dualEquiv_hom_hom_apply (ψ : LeftHandedWeyl) :
LeftHandedWeyl.dualEquiv ψ =
DualLeftHandedWeyl.toFin2ℂEquiv.symm (!![0, 1; -1, 0] *ᵥ ψ.toFin2ℂ) := rfl
The inverse of leftHandedDualEquiv acting on an elementψ : dualLeftHanded corresponds
to multiplying ψ by the matrix !![0, -1; 1, 0].
lemma LeftHandedWeyl.dualEquiv_inv_hom_apply (ψ : DualLeftHandedWeyl) :
LeftHandedWeyl.dualEquiv.symm ψ =
LeftHandedWeyl.toFin2ℂEquiv.symm (!![0, -1; 1, 0] *ᵥ ψ.toFin2ℂ) := rfl
The linear equivalence between rightHandedWeyl and DualRightHandedWeyl given by multiplying
an element of rightHandedWeyl by the matrix εᵃ⁰ᵃ¹ = !![0, 1; -1, 0]].
informal_definition RightHandedWeyl.dualEquiv where
deps := [``RightHandedWeyl, ``DualRightHandedWeyl]
tag := "6VZR4"
The linear equivalence rightHandedWeylDualEquiv is equivariant with respect to the action of
SL(2,C) on rightHandedWeyl and DualRightHandedWeyl.
informal_lemma RightHandedWeyl.dualEquiv_equivariant where
deps := [``RightHandedWeyl.dualEquiv]
tag := "6VZSG"