Imports
/- Copyright (c) 2026 Nathaneal Sajan. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Nathaneal Sajan -/ module public import Physlib.Particles.StandardModel.Basic public import Physlib.Relativity.Tensors.ComplexTensor.Basic

Down-type singlets

i. Overview

The Standard Model down-type singlet is a right-handed Weyl spinor in the (3, 1)_{-2} representation. Here charges are normalized as 6Y, so -2 is the usual hypercharge Y = -1/3.

DownSinglet is the target vector space of one down-type quark multiplet. Its Weyl factor carries the Lorentz index and its three-dimensional factor carries the colour index. The absence of a weak factor makes it an SU(2) singlet.

The Lorentz and gauge actions are first defined separately. The gauge action is then computed on a basis, used to identify its kernel, and descended to each supported global form of the Standard Model gauge group.

ii. Key results

    DownSinglet : the target space of the (3, 1)_{-2} multiplet.

    repLorentzGroup : the right-handed Lorentz action.

    repGaugeGroupI : the action of the unquotiented gauge group.

    repGaugeGroupI_tmul_basis_eq_sum : the gauge action in a tensor-product basis.

    mem_repGaugeGroupI_ker_iff_eq : the kernel of the full-group action.

    gaugeGroup_subgroup_ℤ₆_le_ker_repGaugeGroupI : triviality of the central ℤ₆.

    repGaugeGroup : the action descended to every supported gauge-group quotient.

iii. Table of contents

    A. The down-singlet space

    B. Linear structure

    C. Lorentz action

    D. Gauge action

    E. Kernel of the gauge action

    F. Descent to quotient gauge groups

@[expose] public section

A. The down-singlet space

The Weyl factor carries the right-handed Lorentz index, while EuclideanSpace ℂ (Fin 3) carries the colour index.

The target vector space of one Standard Model down-type singlet quark. It carries the (3, 1)_{-2} representation of the gauge group.

The right-handed Weyl spinor with its colour index.

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

B. Linear structure

DownSinglet wraps its tensor-product carrier as a distinct type. The equivalences below identify the two types and transport the additive and complex module structures to DownSinglet.

Identifies a down-type singlet with its underlying tensor-product value.

def valEquiv : DownSinglet Fermion.RightHandedWeyl ⊗[] EuclideanSpace (Fin 3) where toFun := val invFun := fun m => m
instance : AddCommGroup DownSinglet := Equiv.addCommGroup valEquivinstance : Module DownSinglet := Equiv.module valEquiv

The linear identification with the underlying tensor product.

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

C. Lorentz action

The Lorentz group acts on the right-handed Weyl factor and leaves the colour index fixed.

D. Gauge action

The SU(3) component acts on the colour index, while the SU(2) component acts trivially. The U(1) action is star z ^ 2; since z is unitary, star z = z⁻¹, so this represents charge -2.

The tensor and basis formulas below expose the coefficients used to compare actions and compute the kernel.

The gauge action on a pure spinor–colour tensor.

lemma repGaugeGroupI_tmul (g : GaugeGroupI) (ψ : Fermion.RightHandedWeyl) (v : EuclideanSpace (Fin 3)) : repGaugeGroupI g ψ ⊗ₜ v = (star g.toU1.1 ^ 2) ψ ⊗ₜ g.toSU3.1.toEuclideanLin v := rfl

E. Kernel of the gauge action

An element acts trivially when its colour action is scalar and that scalar cancels its U(1) phase. Its weak component is unrestricted because the down-type singlet is an SU(2) singlet.

Characterizes the full-group elements acting trivially on the down-type singlet.

g:GaugeGroupIh: (i i' : Fin 3), star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) i' i = star (GaugeGroupI.toU1 1) ^ 2 * (GaugeGroupI.toSU3 1) i' ihc:star (GaugeGroupI.toU1 g) ^ 2 0 a, (GaugeGroupI.toSU3 g) = a 1 a * star (GaugeGroupI.toU1 g) ^ 2 = 1 g:GaugeGroupIh: (i i' : Fin 3), star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) i' i = star (GaugeGroupI.toU1 1) ^ 2 * (GaugeGroupI.toSU3 1) i' ihc:star (GaugeGroupI.toU1 g) ^ 2 0(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 (GaugeGroupI.toSU3 g) 0 0 * star (GaugeGroupI.toU1 g) ^ 2 = 1 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 (GaugeGroupI.toSU3 g) 0 0 * star (GaugeGroupI.toU1 g) ^ 2 = 1 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 0 0 * star (GaugeGroupI.toU1 g) ^ 2 = 1 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) = (GaugeGroupI.toSU3 g) 0 0 1 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1i:Fin 3j:Fin 3(GaugeGroupI.toSU3 g) i j = ((GaugeGroupI.toSU3 g) 0 0 1) i j g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) jg:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) jg:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) j g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 0, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 0, ) jg:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 1, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 1, ) jg:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1j:Fin 3(GaugeGroupI.toSU3 g) ((fun i => i) 2, ) j = ((GaugeGroupI.toSU3 g) 0 0 1) ((fun i => i) 2, ) j g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(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:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 2 2 = (GaugeGroupI.toSU3 g) 0 0 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 0 1 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 0 2 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 1 0 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 1 1 = (GaugeGroupI.toSU3 g) 0 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 1 2 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 2 0 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 2 1 = 0g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 2 2 = (GaugeGroupI.toSU3 g) 0 0 All goals completed! 🐙 g:GaugeGroupIhc:star (GaugeGroupI.toU1 g) ^ 2 0h:(star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 0 0 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 0 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 0 = 0)) ((star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 1 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 1 1 = 1 (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 2 1 = 0)) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 0 2 = 0) (star (GaugeGroupI.toU1 g) ^ 2 = 0 (GaugeGroupI.toSU3 g) 1 2 = 0) star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) 2 2 = 1(GaugeGroupI.toSU3 g) 0 0 * star (GaugeGroupI.toU1 g) ^ 2 = 1 All goals completed! 🐙 g:GaugeGroupI(∃ a, (GaugeGroupI.toSU3 g) = a 1 a * star (GaugeGroupI.toU1 g) ^ 2 = 1) (i i' : Fin 3), star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) i' i = star (GaugeGroupI.toU1 1) ^ 2 * (GaugeGroupI.toSU3 1) i' i g:GaugeGroupIa:h₁:(GaugeGroupI.toSU3 g) = a 1h₂:a * star (GaugeGroupI.toU1 g) ^ 2 = 1i:Fin 3i':Fin 3star (GaugeGroupI.toU1 g) ^ 2 * (GaugeGroupI.toSU3 g) i' i = star (GaugeGroupI.toU1 1) ^ 2 * (GaugeGroupI.toSU3 1) i' i g:GaugeGroupIa:h₁:(GaugeGroupI.toSU3 g) = a 1h₂:a * star (GaugeGroupI.toU1 g) ^ 2 = 1i:Fin 3i':Fin 3star (GaugeGroupI.toU1 g) ^ 2 * (a * 1 i' i) = 1 i' i All goals completed! 🐙

F. Descent to quotient gauge groups

A representation descends through a quotient when the quotient subgroup lies in its kernel. For the central ℤ₆, the colour phase is while the charge -2 phase is (star x)² = x⁻², so their product is one.

The central ℤ₆ subgroup acts trivially on (3, 1)_{-2}.

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 * star (GaugeGroupI.toU1 x) ^ 2 = 1 x:ˣhx:x rootsOfUnity 6 a, (GaugeGroupI.toSU3 (gaugeGroupℤ₆OfRoot x, hx)) = a 1 a * star (GaugeGroupI.toU1 (gaugeGroupℤ₆OfRoot x, hx)) ^ 2 = 1 x:ˣhx:x rootsOfUnity 6 (GaugeGroupI.toSU3 (gaugeGroupℤ₆OfRoot x, hx)) = x ^ 2 1 x ^ 2 * star (GaugeGroupI.toU1 (gaugeGroupℤ₆OfRoot x, hx)) ^ 2 = 1 x:ˣhx:x rootsOfUnity 6 x ^ 2 * (x ^ 2)⁻¹ = 1 All goals completed! 🐙

Every supported quotient subgroup acts trivially on the down-type singlet.

lemma gaugeGroup_subgroup_le_ker_repGaugeGroupI (Q : GaugeGroupQuot) : Q.subgroup repGaugeGroupI.ker := Q.subgroup_le_subgroup_ℤ₆.trans gaugeGroup_subgroup_ℤ₆_le_ker_repGaugeGroupI