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.Fermions.Weyl.LeftHanded public import Physlib.Relativity.Fermions.Weyl.RightHanded public import Physlib.Relativity.Fermions.Weyl.DualLeftHanded public import Physlib.Relativity.Fermions.Weyl.DualRightHanded

Tensor product of two Weyl fermion

@[expose] public section

Equivalences to matrices.

Equivalence of leftHanded ⊗ leftHanded to 2 x 2 complex matrices.

def leftLeftToMatrix : (LeftHandedWeyl ⊗[] LeftHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct LeftHandedWeyl.basis LeftHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding leftLeftToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (LeftHandedWeyl.basis.tensorProduct LeftHandedWeyl.basis) (x, y) = i, j, M i j LeftHandedWeyl.basis i ⊗ₜ[] LeftHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (LeftHandedWeyl.basis.tensorProduct LeftHandedWeyl.basis) (i, j) = M i j LeftHandedWeyl.basis i ⊗ₜ[] LeftHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of dualLeftHanded ⊗ dualLeftHanded to 2 x 2 complex matrices.

def dualLeftdualLeftToMatrix : (DualLeftHandedWeyl ⊗[] DualLeftHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding dualLeftdualLeftToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (DualLeftHandedWeyl.basis.tensorProduct DualLeftHandedWeyl.basis) (x, y) = i, j, M i j DualLeftHandedWeyl.basis i ⊗ₜ[] DualLeftHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (DualLeftHandedWeyl.basis.tensorProduct DualLeftHandedWeyl.basis) (i, j) = M i j DualLeftHandedWeyl.basis i ⊗ₜ[] DualLeftHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of leftHanded ⊗ dualLeftHanded to 2 x 2 complex matrices.

def leftDualLeftToMatrix : (LeftHandedWeyl ⊗[] DualLeftHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct LeftHandedWeyl.basis DualLeftHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding leftDualLeftToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (LeftHandedWeyl.basis.tensorProduct DualLeftHandedWeyl.basis) (x, y) = i, j, M i j LeftHandedWeyl.basis i ⊗ₜ[] DualLeftHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (LeftHandedWeyl.basis.tensorProduct DualLeftHandedWeyl.basis) (i, j) = M i j LeftHandedWeyl.basis i ⊗ₜ[] DualLeftHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of dualLeftHanded ⊗ leftHanded to 2 x 2 complex matrices.

def dualLeftLeftToMatrix : (DualLeftHandedWeyl ⊗[] LeftHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct DualLeftHandedWeyl.basis LeftHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding dualLeftLeftToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (DualLeftHandedWeyl.basis.tensorProduct LeftHandedWeyl.basis) (x, y) = i, j, M i j DualLeftHandedWeyl.basis i ⊗ₜ[] LeftHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (DualLeftHandedWeyl.basis.tensorProduct LeftHandedWeyl.basis) (i, j) = M i j DualLeftHandedWeyl.basis i ⊗ₜ[] LeftHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of rightHanded ⊗ rightHanded to 2 x 2 complex matrices.

def rightRightToMatrix : (RightHandedWeyl ⊗[] RightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct RightHandedWeyl.basis RightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding rightRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (RightHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (x, y) = i, j, M i j RightHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (RightHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (i, j) = M i j RightHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of dualRightHanded ⊗ dualRightHanded to 2 x 2 complex matrices.

def dualRightDualRightToMatrix : (DualRightHandedWeyl ⊗[] DualRightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct DualRightHandedWeyl.basis DualRightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding dualRightDualRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (DualRightHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (x, y) = i, j, M i j DualRightHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (DualRightHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (i, j) = M i j DualRightHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of rightHanded ⊗ dualRightHanded to 2 x 2 complex matrices.

def rightDualRightToMatrix : (RightHandedWeyl ⊗[] DualRightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct RightHandedWeyl.basis DualRightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding rightDualRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (RightHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (x, y) = i, j, M i j RightHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (RightHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (i, j) = M i j RightHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of dualRightHanded ⊗ rightHanded to 2 x 2 complex matrices.

def dualRightRightToMatrix : (DualRightHandedWeyl ⊗[] RightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct DualRightHandedWeyl.basis RightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding dualRightRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (DualRightHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (x, y) = i, j, M i j DualRightHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (DualRightHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (i, j) = M i j DualRightHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of dualLeftHanded ⊗ dualRightHanded to 2 x 2 complex matrices.

def dualLeftDualRightToMatrix : (DualLeftHandedWeyl ⊗[] DualRightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct DualLeftHandedWeyl.basis DualRightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding dualLeftDualRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (DualLeftHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (x, y) = i, j, M i j DualLeftHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (DualLeftHandedWeyl.basis.tensorProduct DualRightHandedWeyl.basis) (i, j) = M i j DualLeftHandedWeyl.basis i ⊗ₜ[] DualRightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

Equivalence of leftHanded ⊗ rightHanded to 2 x 2 complex matrices.

def leftRightToMatrix : (LeftHandedWeyl ⊗[] RightHandedWeyl) ≃ₗ[] Matrix (Fin 2) (Fin 2) := (Basis.tensorProduct LeftHandedWeyl.basis RightHandedWeyl.basis).repr ≪≫ₗ Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) ≪≫ₗ LinearEquiv.curry (Fin 2) (Fin 2)

Expanding leftRightToMatrix in terms of the standard basis.

M:Matrix (Fin 2) (Fin 2) x, y, ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (x, y) (LeftHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (x, y) = i, j, M i j LeftHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j M:Matrix (Fin 2) (Fin 2) i:Fin 2x✝¹:i Finset.univj:Fin 2x✝:j Finset.univ((Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M)) (i, j) (LeftHandedWeyl.basis.tensorProduct RightHandedWeyl.basis) (i, j) = M i j LeftHandedWeyl.basis i ⊗ₜ[] RightHandedWeyl.basis j All goals completed! 🐙 M:Matrix (Fin 2) (Fin 2) (Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2)).symm ((LinearEquiv.curry (Fin 2) (Fin 2)).symm M) Finsupp.supported Finset.univ All goals completed! 🐙

The coercion of Finsupp.linearEquivFunOnFinite to a function is the underlying finitely-supported function, used to bridge it with Matrix.mulVec.

private lemma coe_linearEquivFunOnFinite (g : (Fin 2 × Fin 2) →₀ ) : Finsupp.linearEquivFunOnFinite (Fin 2 × Fin 2) g = g := rfl

Group actions

The group action of SL(2,ℂ) on leftHanded ⊗ leftHanded is equivalent to M.1 * leftLeftToMatrix v * (M.1)ᵀ.

set_option backward.isDefEq.respectTransparency false inAll goals completed! 🐙

The group action of SL(2,ℂ) on dualLeftHanded ⊗ dualLeftHanded is equivalent to (M.1⁻¹)ᵀ * leftLeftToMatrix v * (M.1⁻¹).

set_option backward.isDefEq.respectTransparency false inv:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j y, x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j y * dualLeftdualLeftToMatrix v x y = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j(fun y => x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j y * dualLeftdualLeftToMatrix v x y) = fun x => x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2 x_1, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * dualLeftdualLeftToMatrix v x_1 x = x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2(fun x_1 => (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * dualLeftdualLeftToMatrix v x_1 x) = fun x1 => (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2x1:Fin 2(LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * dualLeftdualLeftToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:DualLeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2x1:Fin 2(↑M)⁻¹ x1 i * (↑M)⁻¹ x j * dualLeftdualLeftToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftdualLeftToMatrix v x1 x * (↑M)⁻¹ x j All goals completed! 🐙

The group action of SL(2,ℂ) on leftHanded ⊗ dualLeftHanded is equivalent to M.1 * leftDualLeftToMatrix v * (M.1⁻¹).

set_option backward.isDefEq.respectTransparency false inv:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j y, x, (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j y * leftDualLeftToMatrix v x y = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j(fun y => x, (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j y * leftDualLeftToMatrix v x y) = fun x => x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2 x_1, (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * leftDualLeftToMatrix v x_1 x = x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2(fun x_1 => (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * leftDualLeftToMatrix v x_1 x) = fun x1 => M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2x1:Fin 2(LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) i x1 * (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) j x * leftDualLeftToMatrix v x1 x = M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j v:LeftHandedWeyl ⊗[] DualLeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftDualLeftToMatrix v x1 x) * (↑M)⁻¹ x j = x, x1, M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x jx:Fin 2x1:Fin 2M i x1 * (↑M)⁻¹ x j * leftDualLeftToMatrix v x1 x = M i x1 * leftDualLeftToMatrix v x1 x * (↑M)⁻¹ x j All goals completed! 🐙

The group action of SL(2,ℂ) on dualLeftHanded ⊗ leftHanded is equivalent to (M.1⁻¹)ᵀ * leftDualLeftToMatrix v * (M.1)ᵀ.

set_option backward.isDefEq.respectTransparency false inv:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x y, x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) j y * dualLeftLeftToMatrix v x y = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x v:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x(fun y => x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) j y * dualLeftLeftToMatrix v x y) = fun x => x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x v:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j xx:Fin 2 x_1, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) j x * dualLeftLeftToMatrix v x_1 x = x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x v:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j xx:Fin 2(fun x_1 => (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) j x * dualLeftLeftToMatrix v x_1 x) = fun x1 => (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x v:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j xx:Fin 2x1:Fin 2(LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x1 * (LinearMap.toMatrix LeftHandedWeyl.basis LeftHandedWeyl.basis) (LeftHandedWeyl.rep M) j x * dualLeftLeftToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x v:DualLeftHandedWeyl ⊗[] LeftHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x) * M j x = x, x1, (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j xx:Fin 2x1:Fin 2(↑M)⁻¹ x1 i * M j x * dualLeftLeftToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftLeftToMatrix v x1 x * M j x All goals completed! 🐙

The group action of SL(2,ℂ) on rightHanded ⊗ rightHanded is equivalent to (M.1.map star) * rightRightToMatrix v * ((M.1.map star))ᵀ.

set_option backward.isDefEq.respectTransparency false inv:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x y, x, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j y * rightRightToMatrix v x y = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x v:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x(fun y => x, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j y * rightRightToMatrix v x y) = fun x => x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x v:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2 x_1, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * rightRightToMatrix v x_1 x = x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x v:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2(fun x_1 => (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * rightRightToMatrix v x_1 x) = fun x1 => (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x v:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2x1:Fin 2(LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * rightRightToMatrix v x1 x = (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x v:RightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2x1:Fin 2(↑M).map star i x1 * (↑M).map star j x * rightRightToMatrix v x1 x = (↑M).map star i x1 * rightRightToMatrix v x1 x * (↑M).map star j x All goals completed! 🐙

The group action of SL(2,ℂ) on dualRightHanded ⊗ dualRightHanded is equivalent to ((M.1⁻¹).conjTranspose * rightRightToMatrix v * (((M.1⁻¹).conjTranspose)ᵀ.

set_option backward.isDefEq.respectTransparency false inv:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x y, x, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * dualRightDualRightToMatrix v x y = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x(fun y => x, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * dualRightDualRightToMatrix v x y) = fun x => x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2 x_1, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualRightDualRightToMatrix v x_1 x = x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2(fun x_1 => (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualRightDualRightToMatrix v x_1 x) = fun x1 => (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualRightDualRightToMatrix v x1 x = (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualRightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(↑M)⁻¹ i x1 * (↑M)⁻¹ j x * dualRightDualRightToMatrix v x1 x = (↑M)⁻¹ i x1 * dualRightDualRightToMatrix v x1 x * (↑M)⁻¹ j x All goals completed! 🐙

The group action of SL(2,ℂ) on rightHanded ⊗ dualRightHanded is equivalent to (M.1.map star) * rightDualRightToMatrix v * (((M.1⁻¹).conjTranspose)ᵀ.

set_option backward.isDefEq.respectTransparency false inv:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x y, x, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * rightDualRightToMatrix v x y = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x(fun y => x, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * rightDualRightToMatrix v x y) = fun x => x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2 x_1, (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * rightDualRightToMatrix v x_1 x = x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2(fun x_1 => (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * rightDualRightToMatrix v x_1 x) = fun x1 => (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) i x1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * rightDualRightToMatrix v x1 x = (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:RightHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(↑M).map star i x1 * (↑M)⁻¹ j x * rightDualRightToMatrix v x1 x = (↑M).map star i x1 * rightDualRightToMatrix v x1 x * (↑M)⁻¹ j x All goals completed! 🐙

The group action of SL(2,ℂ) on dualRightHanded ⊗ rightHanded is equivalent to ((M.1⁻¹).conjTranspose * rightDualRightToMatrix v * ((M.1.map star)).ᵀ.

set_option backward.isDefEq.respectTransparency false inv:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x y, x, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j y * dualRightRightToMatrix v x y = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x v:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x(fun y => x, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j y * dualRightRightToMatrix v x y) = fun x => x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x v:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2 x_1, (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * dualRightRightToMatrix v x_1 x = x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x v:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2(fun x_1 => (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * dualRightRightToMatrix v x_1 x) = fun x1 => (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x v:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2x1:Fin 2(LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) i x1 * (LinearMap.toMatrix RightHandedWeyl.basis RightHandedWeyl.basis) (RightHandedWeyl.rep M) j x * dualRightRightToMatrix v x1 x = (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x v:DualRightHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x) * (↑M).map star j x = x, x1, (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j xx:Fin 2x1:Fin 2(↑M)⁻¹ i x1 * (↑M).map star j x * dualRightRightToMatrix v x1 x = (↑M)⁻¹ i x1 * dualRightRightToMatrix v x1 x * (↑M).map star j x All goals completed! 🐙
v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x y, x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * dualLeftDualRightToMatrix v x y = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x(fun y => x, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j y * dualLeftDualRightToMatrix v x y) = fun x => x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2 x_1, (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualLeftDualRightToMatrix v x_1 x = x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2(fun x_1 => (LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x_1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualLeftDualRightToMatrix v x_1 x) = fun x1 => (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(LinearMap.toMatrix DualLeftHandedWeyl.basis DualLeftHandedWeyl.basis) (DualLeftHandedWeyl.rep M) i x1 * (LinearMap.toMatrix DualRightHandedWeyl.basis DualRightHandedWeyl.basis) (DualRightHandedWeyl.rep M) j x * dualLeftDualRightToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x v:DualLeftHandedWeyl ⊗[] DualRightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x) * (↑M)⁻¹ j x = x, x1, (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j xx:Fin 2x1:Fin 2(↑M)⁻¹ x1 i * (↑M)⁻¹ j x * dualLeftDualRightToMatrix v x1 x = (↑M)⁻¹ x1 i * dualLeftDualRightToMatrix v x1 x * (↑M)⁻¹ j x All goals completed! 🐙v:LeftHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftRightToMatrix v x1 x) * (↑M) x j = x, x1, M i x1 * leftRightToMatrix v x1 x * (↑M) x jx:Fin 2x1:Fin 2M i x1 * (↑M).map star j x * leftRightToMatrix v x1 x = M i x1 * leftRightToMatrix v x1 x * (↑M).map star x j v:LeftHandedWeyl ⊗[] RightHandedWeylM:SL(2, )i:Fin 2j:Fin 2h1: x, (∑ x1, M i x1 * leftRightToMatrix v x1 x) * (↑M) x j = x, x1, M i x1 * leftRightToMatrix v x1 x * (↑M) x jx:Fin 2x1:Fin 2M i x1 * (starRingEnd ) (M j x) * leftRightToMatrix v x1 x = M i x1 * leftRightToMatrix v x1 x * (starRingEnd ) (M j x) All goals completed! 🐙

The symm version of the group actions.

All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙v:ℂ²ˣ²hv:IsSelfAdjoint vM:SL(2, )(↑M).adjugate = (↑M).adjugate All goals completed! 🐙v:ℂ²ˣ²hv:IsSelfAdjoint vM:SL(2, )leftRightToMatrix.symm (M * v * (↑M)) = leftRightToMatrix.symm ((SL2C.toSelfAdjointMap M) v, hv) All goals completed! 🐙