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.Particles.StandardModel.Basic public import Physlib.Relativity.Tensors.ComplexTensor.Basic

Up-type singlets

In this module we define the type corresponding to the target vector space of an up-type singlet quark field in the Standard Model.

On this type we define a representation of the Lorentz group, and a representation of the Standard Model gauge group.

@[expose] public section

The vector space of an up-type singlet quark field in the Standard Model. These live in the (3, 1)_{4} representation of the gauge group.

The underlying value of the up-type quark field in the tensor product space.

@[ext] structure UpSinglet where val : Fermion.RightHandedWeyl ⊗[] EuclideanSpace (Fin 3)

Equivalence with the underlying tensor product space

The linear equivalence between UpSinglet and its underlying tensor product space.

def valEquiv : UpSinglet Fermion.RightHandedWeyl ⊗[] EuclideanSpace (Fin 3) where toFun := val invFun := fun m => m

The structure of a module

The AddCommGroup and module instances are inherited from the underlying tensor product space.

instance : AddCommGroup UpSinglet := Equiv.addCommGroup valEquivinstance : Module UpSinglet := Equiv.module valEquiv

The linear equivalence between UpSinglet and its underlying tensor product space.

def valLinEquiv : UpSinglet ≃ₗ[] Fermion.RightHandedWeyl ⊗[] EuclideanSpace (Fin 3) where toFun := val invFun := fun m => m map_add' := (x y : UpSinglet), (x + y).val = x.val + y.val x✝:UpSinglety✝:UpSinglet(x✝ + y✝).val = x✝.val + y✝.val; All goals completed! 🐙 map_smul' := (m : ) (x : UpSinglet), (m x).val = (RingHom.id ) m x.val m✝:x✝:UpSinglet(m✝ x✝).val = (RingHom.id ) m✝ x✝.val; All goals completed! 🐙
@[simp] lemma valLinEquiv_apply (q : UpSinglet) : valLinEquiv q = q.val := rfllemma valLinEquiv_symm_apply (m : Fermion.RightHandedWeyl ⊗[] EuclideanSpace (Fin 3)) : valLinEquiv.symm m = m := rfl@[simp] lemma val_add (q1 q2 : UpSinglet) : (q1 + q2).val = q1.val + q2.val := rfl@[simp] lemma val_smul (r : ) (q : UpSinglet) : (r q).val = r q.val := rfl

Lorentz group representation

The representation of the Standard Model gauge group

lemma repGaugeGroupI_tmul (g : GaugeGroupI) (ψ : Fermion.RightHandedWeyl) (v : EuclideanSpace (Fin 3)) : repGaugeGroupI g ψ ⊗ₜ v = g.toU1 ^ 4 ψ ⊗ₜ (g.toSU3.1.toEuclideanLin v) := rflg:GaugeGroupI(∀ (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i) a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupI(∀ (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i) a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1g:GaugeGroupI(∃ a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1) (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i; g:GaugeGroupI(∃ a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1) (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' ig:GaugeGroupI(∀ (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i) a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupI(∃ a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1) (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i g:GaugeGroupIa:h1:(GaugeGroupI.toSU3 g) = a 1h2:a * (GaugeGroupI.toU1 g) ^ 4 = 1i:Fin 3i':Fin 3(GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i g:GaugeGroupIa:h1:(GaugeGroupI.toSU3 g) = a 1h2:a * (GaugeGroupI.toU1 g) ^ 4 = 1i:Fin 3i':Fin 3(GaugeGroupI.toU1 g) ^ 4 * (a * 1 i' i) = 1 ^ 4 * 1 i' i All goals completed! 🐙 g:GaugeGroupI(∀ (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i) a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupIh: (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i a, (GaugeGroupI.toSU3 g) = a 1 a * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupIh: (i i' : Fin 3), (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) i' i = (GaugeGroupI.toU1 1) ^ 4 * (GaugeGroupI.toSU3 1) i' i(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 (GaugeGroupI.toSU3 g) 0 0 * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 (GaugeGroupI.toSU3 g) 0 0 * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 0 0 * (GaugeGroupI.toU1 g) ^ 4 = 1 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4i:Fin 3j:Fin 3(GaugeGroupI.toSU3 g) i j = ((GaugeGroupI.toSU3 g) 0 0 1) i j g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) jg:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) jg:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) j g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) jg:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) jg:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) j g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 0, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 0, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 1, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 1, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 2, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 2, ) g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) ((fun i => i) 0, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) ((fun i => i) 0, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) ((fun i => i) 1, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) ((fun i => i) 1, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) ((fun i => i) 2, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) ((fun i => i) 2, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) ((fun i => i) 0, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) ((fun i => i) 0, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) ((fun i => i) 1, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) ((fun i => i) 1, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) ((fun i => i) 2, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) ((fun i => i) 2, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 0, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 0, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 1, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 1, )g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) ((fun i => i) 2, ) = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) ((fun i => i) 2, ) g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 2 2 = (GaugeGroupI.toSU3 g) 0 0 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 0 1 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 0 2 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 1 0 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 1 1 = (GaugeGroupI.toSU3 g) 0 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 1 2 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 2 0 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 2 1 = 0g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 2 2 = (GaugeGroupI.toSU3 g) 0 0 All goals completed! 🐙 g:GaugeGroupIh:((GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 0 0 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) (((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 1 1 = 1 ^ 4 ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) ((GaugeGroupI.toU1 g) ^ 4 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) (GaugeGroupI.toU1 g) ^ 4 * (GaugeGroupI.toSU3 g) 2 2 = 1 ^ 4(GaugeGroupI.toSU3 g) 0 0 * (GaugeGroupI.toU1 g) ^ 4 = 1 All goals completed! 🐙lemma gaugeGroup_subgroup_ℤ₆_le_ker_repGaugeGroupI : GaugeGroupQuot.subgroup .ℤ₆ repGaugeGroupI.ker := GaugeGroupQuot.ℤ₆.subgroup MonoidHom.ker repGaugeGroupI x : GaugeGroupI (x_1 : ˣ) (x_2 : x_1 rootsOfUnity 6 ), gaugeGroupℤ₆OfRoot x_1, x_2 = x a, (GaugeGroupI.toSU3 x) = a 1 a * (GaugeGroupI.toU1 x) ^ 4 = 1 x:ˣhx:x rootsOfUnity 6 a, (GaugeGroupI.toSU3 (gaugeGroupℤ₆OfRoot x, hx)) = a 1 a * (GaugeGroupI.toU1 (gaugeGroupℤ₆OfRoot x, hx)) ^ 4 = 1 x:ˣhx:x rootsOfUnity 6 (GaugeGroupI.toSU3 (gaugeGroupℤ₆OfRoot x, hx)) = x ^ 2 1 x ^ 2 * (GaugeGroupI.toU1 (gaugeGroupℤ₆OfRoot x, hx)) ^ 4 = 1 x:ˣhx:x rootsOfUnity 6 x ^ 2 * x ^ 4 = 1 x:ˣhx:x rootsOfUnity 6 x ^ 6 = 1 All goals completed! 🐙lemma gaugeGroup_subgroup_le_ker_repGaugeGroupI (Q : GaugeGroupQuot) : Q.subgroup repGaugeGroupI.ker := Q.subgroup_le_subgroup_ℤ₆.trans gaugeGroup_subgroup_ℤ₆_le_ker_repGaugeGroupI