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.QFT.AnomalyCancellation.Basic

The MSSM with 3 families and RHNs

We define the system of ACCs for the MSSM with 3 families and RHNs. We define the system of charges for 1-species. We prove some basic lemmas about them.

@[expose] public section

The vector space of charges corresponding to the MSSM fermions.

@[simps!] def MSSMCharges : ACCSystemCharges := 20

The vector spaces of charges of one species of fermions in the MSSM.

@[simps!] def MSSMSpecies : ACCSystemCharges := 3
lemma sum_MSSMSpecies_numberCharges_eq_expand [AddCommMonoid M] (f : Fin MSSMSpecies.numberCharges M) : i, f i = f 0, M:Type ?u.3inst✝:AddCommMonoid Mf:Fin MSSMSpecies.numberCharges M0 < MSSMSpecies.numberCharges All goals completed! 🐙 + f 1, M:Type ?u.3inst✝:AddCommMonoid Mf:Fin MSSMSpecies.numberCharges M1 < MSSMSpecies.numberCharges All goals completed! 🐙 + f 2, M:Type ?u.3inst✝:AddCommMonoid Mf:Fin MSSMSpecies.numberCharges M2 < MSSMSpecies.numberCharges All goals completed! 🐙 := Fin.sum_univ_three f

An equivalence between MSSMCharges.charges and the space of maps (Fin 18 ⊕ Fin 2 → ℚ). The first 18 factors corresponds to the SM fermions, while the last two are the higgsions.

@[simps!] def toSMPlusH : MSSMCharges.Charges (Fin 18 Fin 2 ) := ((@finSumFinEquiv 18 2).arrowCongr (Equiv.refl )).symm

An equivalence between Fin 18 ⊕ Fin 2 → ℚ and (Fin 18 → ℚ) × (Fin 2 → ℚ).

@[simps!] def splitSMPlusH : (Fin 18 Fin 2 ) (Fin 18 ) × (Fin 2 ) where toFun f := (f Sum.inl, f Sum.inr) invFun f := Sum.elim f.1 f.2 left_inv f := Sum.elim_comp_inl_inr f right_inv _ := rfl

An equivalence between MSSMCharges.charges and (Fin 18 → ℚ) × (Fin 2 → ℚ). This splits the charges up into the SM and the additional ones for the MSSM.

@[simps!] def toSplitSMPlusH : MSSMCharges.Charges (Fin 18 ) × (Fin 2 ) := toSMPlusH.trans splitSMPlusH

An equivalence between (Fin 18 → ℚ) and (Fin 6 → Fin 3 → ℚ).

@[simps!] def toSpeciesMaps' : (Fin 18 ) (Fin 6 Fin 3 ) := ((Equiv.curry _ _ _).symm.trans ((@finProdFinEquiv 6 3).arrowCongr (Equiv.refl ))).symm

An equivalence between MSSMCharges.charges and (Fin 6 → Fin 3 → ℚ) × (Fin 2 → ℚ)). This splits charges up into the SM and additional fermions, and further splits the SM into species.

@[simps!] def toSpecies : MSSMCharges.Charges (Fin 6 Fin 3 ) × (Fin 2 ) := toSplitSMPlusH.trans (Equiv.prodCongr toSpeciesMaps' (Equiv.refl _))

For a given i ∈ Fin 6 the projection of MSSMCharges.charges down to the corresponding SM species of charges.

@[simps!] def toSMSpecies (i : Fin 6) : MSSMCharges.Charges →ₗ[] MSSMSpecies.Charges where toFun S := (Prod.fst toSpecies) S i map_add' _ _ := i:Fin 6x✝¹:MSSMCharges.Chargesx✝:MSSMCharges.Charges(Prod.fst toSpecies) (x✝¹ + x✝) i = (Prod.fst toSpecies) x✝¹ i + (Prod.fst toSpecies) x✝ i All goals completed! 🐙 map_smul' _ _ := i:Fin 6x✝¹:x✝:MSSMCharges.Charges(Prod.fst toSpecies) (x✝¹ x✝) i = (RingHom.id ) x✝¹ (Prod.fst toSpecies) x✝ i All goals completed! 🐙
lemma toSMSpecies_toSpecies_inv (i : Fin 6) (f : (Fin 6 Fin 3 ) × (Fin 2 )) : (toSMSpecies i) (toSpecies.symm f) = f.1 i := congrFun (congrArg Prod.fst (toSpecies.apply_symm_apply f)) i

The Q charges as a map Fin 3 → ℚ.

abbrev Q := toSMSpecies 0

The U charges as a map Fin 3 → ℚ.

abbrev U := toSMSpecies 1

The D charges as a map Fin 3 → ℚ.

abbrev D := toSMSpecies 2

The L charges as a map Fin 3 → ℚ.

abbrev L := toSMSpecies 3

The E charges as a map Fin 3 → ℚ.

abbrev E := toSMSpecies 4

The N charges as a map Fin 3 → ℚ.

abbrev N := toSMSpecies 5

The charge Hd.

@[simps!] def Hd : MSSMCharges.Charges →ₗ[] where toFun S := S 18, Nat.lt_of_sub_eq_succ rfl map_add' _ _ := x✝¹:MSSMCharges.Chargesx✝:MSSMCharges.Charges(x✝¹ + x✝) 18, = x✝¹ 18, + x✝ 18, All goals completed! 🐙 map_smul' _ _ := x✝¹:x✝:MSSMCharges.Charges(x✝¹ x✝) 18, = (RingHom.id ) x✝¹ x✝ 18, All goals completed! 🐙

The charge Hu.

@[simps!] def Hu : MSSMCharges.Charges →ₗ[] where toFun S := S 19, Nat.lt_of_sub_eq_succ rfl map_add' _ _ := x✝¹:MSSMCharges.Chargesx✝:MSSMCharges.Charges(x✝¹ + x✝) 19, = x✝¹ 19, + x✝ 19, All goals completed! 🐙 map_smul' _ _ := x✝¹:x✝:MSSMCharges.Charges(x✝¹ x✝) 19, = (RingHom.id ) x✝¹ x✝ 19, All goals completed! 🐙
lemma charges_eq_toSpecies_eq (S T : MSSMCharges.Charges) : S = T ( i, toSMSpecies i S = toSMSpecies i T) Hd S = Hd T Hu S = Hu T := S:MSSMCharges.ChargesT:MSSMCharges.ChargesS = T (∀ (i : Fin 6), (toSMSpecies i) S = (toSMSpecies i) T) Hd S = Hd T Hu S = Hu T S:MSSMCharges.ChargesT:MSSMCharges.Chargesh:(∀ (i : Fin 6), (toSMSpecies i) S = (toSMSpecies i) T) Hd S = Hd T Hu S = Hu TtoSpecies S = toSpecies T All goals completed! 🐙lemma Hd_toSpecies_inv (f : (Fin 6 Fin 3 ) × (Fin 2 )) : Hd (toSpecies.symm f) = f.2 0 := f:(Fin 6 Fin 3 ) × (Fin 2 )Hd (toSpecies.symm f) = f.2 0 All goals completed! 🐙lemma Hu_toSpecies_inv (f : (Fin 6 Fin 3 ) × (Fin 2 )) : Hu (toSpecies.symm f) = f.2 1 := f:(Fin 6 Fin 3 ) × (Fin 2 )Hu (toSpecies.symm f) = f.2 1 All goals completed! 🐙

The gravitational anomaly equation.

def accGrav : MSSMCharges.Charges →ₗ[] where toFun S := i, (6 * Q S i + 3 * U S i + 3 * D S i + 2 * L S i + E S i + N S i) + 2 * (Hd S + Hu S) map_add' S T := S:MSSMCharges.ChargesT:MSSMCharges.Charges i, (6 * Q (S + T) i + 3 * U (S + T) i + 3 * D (S + T) i + 2 * L (S + T) i + E (S + T) i + N (S + T) i) + 2 * (Hd (S + T) + Hu (S + T)) = i, (6 * Q S i + 3 * U S i + 3 * D S i + 2 * L S i + E S i + N S i) + 2 * (Hd S + Hu S) + ( i, (6 * Q T i + 3 * U T i + 3 * D T i + 2 * L T i + E T i + N T i) + 2 * (Hd T + Hu T)) S:MSSMCharges.ChargesT:MSSMCharges.Charges6 * (Q S 0, + Q T 0, ) + 3 * (U S 0, + U T 0, ) + 3 * (D S 0, + D T 0, ) + 2 * (L S 0, + L T 0, ) + (E S 0, + E T 0, ) + (N S 0, + N T 0, ) + (6 * (Q S 1, + Q T 1, ) + 3 * (U S 1, + U T 1, ) + 3 * (D S 1, + D T 1, ) + 2 * (L S 1, + L T 1, ) + (E S 1, + E T 1, ) + (N S 1, + N T 1, )) + (6 * (Q S 2, + Q T 2, ) + 3 * (U S 2, + U T 2, ) + 3 * (D S 2, + D T 2, ) + 2 * (L S 2, + L T 2, ) + (E S 2, + E T 2, ) + (N S 2, + N T 2, )) + 2 * (Hd S + Hd T + (Hu S + Hu T)) = 6 * Q S 0, + 3 * U S 0, + 3 * D S 0, + 2 * L S 0, + E S 0, + N S 0, + (6 * Q S 1, + 3 * U S 1, + 3 * D S 1, + 2 * L S 1, + E S 1, + N S 1, ) + (6 * Q S 2, + 3 * U S 2, + 3 * D S 2, + 2 * L S 2, + E S 2, + N S 2, ) + 2 * (Hd S + Hu S) + (6 * Q T 0, + 3 * U T 0, + 3 * D T 0, + 2 * L T 0, + E T 0, + N T 0, + (6 * Q T 1, + 3 * U T 1, + 3 * D T 1, + 2 * L T 1, + E T 1, + N T 1, ) + (6 * Q T 2, + 3 * U T 2, + 3 * D T 2, + 2 * L T 2, + E T 2, + N T 2, ) + 2 * (Hd T + Hu T)) All goals completed! 🐙 map_smul' a S := a:S:MSSMCharges.Charges i, (6 * Q (a S) i + 3 * U (a S) i + 3 * D (a S) i + 2 * L (a S) i + E (a S) i + N (a S) i) + 2 * (Hd (a S) + Hu (a S)) = (RingHom.id ) a ( i, (6 * Q S i + 3 * U S i + 3 * D S i + 2 * L S i + E S i + N S i) + 2 * (Hd S + Hu S)) a:S:MSSMCharges.Charges x, (6 * (a Q S) x + 3 * (a U S) x + 3 * (a D S) x + 2 * (a L S) x + (a E S) x + (a N S) x) + 2 * (a * Hd S + a * Hu S) = a * ( i, (6 * Q S i + 3 * U S i + 3 * D S i + 2 * L S i + E S i + N S i) + 2 * (Hd S + Hu S)) a:S:MSSMCharges.Charges6 * (a * Q S 0, ) + 3 * (a * U S 0, ) + 3 * (a * D S 0, ) + 2 * (a * L S 0, ) + a * E S 0, + a * N S 0, + (6 * (a * Q S 1, ) + 3 * (a * U S 1, ) + 3 * (a * D S 1, ) + 2 * (a * L S 1, ) + a * E S 1, + a * N S 1, ) + (6 * (a * Q S 2, ) + 3 * (a * U S 2, ) + 3 * (a * D S 2, ) + 2 * (a * L S 2, ) + a * E S 2, + a * N S 2, ) + 2 * (a * Hd S + a * Hu S) = a * (6 * Q S 0, + 3 * U S 0, + 3 * D S 0, + 2 * L S 0, + E S 0, + N S 0, + (6 * Q S 1, + 3 * U S 1, + 3 * D S 1, + 2 * L S 1, + E S 1, + N S 1, ) + (6 * Q S 2, + 3 * U S 2, + 3 * D S 2, + 2 * L S 2, + E S 2, + N S 2, ) + 2 * (Hd S + Hu S)) All goals completed! 🐙

Extensionality lemma for accGrav.

lemma accGrav_ext {S T : MSSMCharges.Charges} (hj : (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T i) (hd : Hd S = Hd T) (hu : Hu S = Hu T) : accGrav S = accGrav T := S:MSSMCharges.ChargesT:MSSMCharges.Chargeshj: (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T ihd:Hd S = Hd Thu:Hu S = Hu TaccGrav S = accGrav T All goals completed! 🐙

The anomaly cancellation condition for SU(2) anomaly.

def accSU2 : MSSMCharges.Charges →ₗ[] where toFun S := i, (3 * Q S i + L S i) + Hd S + Hu S map_add' S T := S:MSSMCharges.ChargesT:MSSMCharges.Charges i, (3 * Q (S + T) i + L (S + T) i) + Hd (S + T) + Hu (S + T) = i, (3 * Q S i + L S i) + Hd S + Hu S + ( i, (3 * Q T i + L T i) + Hd T + Hu T) S:MSSMCharges.ChargesT:MSSMCharges.Charges3 * (Q S 0, + Q T 0, ) + (L S 0, + L T 0, ) + (3 * (Q S 1, + Q T 1, ) + (L S 1, + L T 1, )) + (3 * (Q S 2, + Q T 2, ) + (L S 2, + L T 2, )) + (Hd S + Hd T) + (Hu S + Hu T) = 3 * Q S 0, + L S 0, + (3 * Q S 1, + L S 1, ) + (3 * Q S 2, + L S 2, ) + Hd S + Hu S + (3 * Q T 0, + L T 0, + (3 * Q T 1, + L T 1, ) + (3 * Q T 2, + L T 2, ) + Hd T + Hu T) All goals completed! 🐙 map_smul' a S := a:S:MSSMCharges.Charges i, (3 * Q (a S) i + L (a S) i) + Hd (a S) + Hu (a S) = (RingHom.id ) a ( i, (3 * Q S i + L S i) + Hd S + Hu S) a:S:MSSMCharges.Charges x, (3 * (a Q S) x + (a L S) x) + a * Hd S + a * Hu S = a * ( i, (3 * Q S i + L S i) + Hd S + Hu S) a:S:MSSMCharges.Charges3 * (a * Q S 0, ) + a * L S 0, + (3 * (a * Q S 1, ) + a * L S 1, ) + (3 * (a * Q S 2, ) + a * L S 2, ) + a * Hd S + a * Hu S = a * (3 * Q S 0, + L S 0, + (3 * Q S 1, + L S 1, ) + (3 * Q S 2, + L S 2, ) + Hd S + Hu S) All goals completed! 🐙

Extensionality lemma for accSU2.

lemma accSU2_ext {S T : MSSMCharges.Charges} (hj : (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T i) (hd : Hd S = Hd T) (hu : Hu S = Hu T) : accSU2 S = accSU2 T := S:MSSMCharges.ChargesT:MSSMCharges.Chargeshj: (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T ihd:Hd S = Hd Thu:Hu S = Hu TaccSU2 S = accSU2 T All goals completed! 🐙

The anomaly cancellation condition for SU(3) anomaly.

def accSU3 : MSSMCharges.Charges →ₗ[] where toFun S := i, (2 * (Q S i) + (U S i) + (D S i)) map_add' S T := S:MSSMCharges.ChargesT:MSSMCharges.Charges i, (2 * Q (S + T) i + U (S + T) i + D (S + T) i) = i, (2 * Q S i + U S i + D S i) + i, (2 * Q T i + U T i + D T i) S:MSSMCharges.ChargesT:MSSMCharges.Charges2 * (Q S 0, + Q T 0, ) + (U S 0, + U T 0, ) + (D S 0, + D T 0, ) + (2 * (Q S 1, + Q T 1, ) + (U S 1, + U T 1, ) + (D S 1, + D T 1, )) + (2 * (Q S 2, + Q T 2, ) + (U S 2, + U T 2, ) + (D S 2, + D T 2, )) = 2 * Q S 0, + U S 0, + D S 0, + (2 * Q S 1, + U S 1, + D S 1, ) + (2 * Q S 2, + U S 2, + D S 2, ) + (2 * Q T 0, + U T 0, + D T 0, + (2 * Q T 1, + U T 1, + D T 1, ) + (2 * Q T 2, + U T 2, + D T 2, )) All goals completed! 🐙 map_smul' a S := a:S:MSSMCharges.Charges i, (2 * Q (a S) i + U (a S) i + D (a S) i) = (RingHom.id ) a i, (2 * Q S i + U S i + D S i) a:S:MSSMCharges.Charges x, (2 * (a Q S) x + (a U S) x + (a D S) x) = a * i, (2 * Q S i + U S i + D S i) a:S:MSSMCharges.Charges2 * (a * Q S 0, ) + a * U S 0, + a * D S 0, + (2 * (a * Q S 1, ) + a * U S 1, + a * D S 1, ) + (2 * (a * Q S 2, ) + a * U S 2, + a * D S 2, ) = a * (2 * Q S 0, + U S 0, + D S 0, + (2 * Q S 1, + U S 1, + D S 1, ) + (2 * Q S 2, + U S 2, + D S 2, )) All goals completed! 🐙

Extensionality lemma for accSU3.

lemma accSU3_ext {S T : MSSMCharges.Charges} (hj : (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T i) : accSU3 S = accSU3 T := S:MSSMCharges.ChargesT:MSSMCharges.Chargeshj: (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T iaccSU3 S = accSU3 T All goals completed! 🐙

The ACC for .

def accYY : MSSMCharges.Charges →ₗ[] where toFun S := i, ((Q S) i + 8 * (U S) i + 2 * (D S) i + 3 * (L S) i + 6 * (E S) i) + 3 * (Hd S + Hu S) map_add' S T := S:MSSMCharges.ChargesT:MSSMCharges.Charges i, (Q (S + T) i + 8 * U (S + T) i + 2 * D (S + T) i + 3 * L (S + T) i + 6 * E (S + T) i) + 3 * (Hd (S + T) + Hu (S + T)) = i, (Q S i + 8 * U S i + 2 * D S i + 3 * L S i + 6 * E S i) + 3 * (Hd S + Hu S) + ( i, (Q T i + 8 * U T i + 2 * D T i + 3 * L T i + 6 * E T i) + 3 * (Hd T + Hu T)) S:MSSMCharges.ChargesT:MSSMCharges.ChargesQ S 0, + Q T 0, + 8 * (U S 0, + U T 0, ) + 2 * (D S 0, + D T 0, ) + 3 * (L S 0, + L T 0, ) + 6 * (E S 0, + E T 0, ) + (Q S 1, + Q T 1, + 8 * (U S 1, + U T 1, ) + 2 * (D S 1, + D T 1, ) + 3 * (L S 1, + L T 1, ) + 6 * (E S 1, + E T 1, )) + (Q S 2, + Q T 2, + 8 * (U S 2, + U T 2, ) + 2 * (D S 2, + D T 2, ) + 3 * (L S 2, + L T 2, ) + 6 * (E S 2, + E T 2, )) + 3 * (Hd S + Hd T + (Hu S + Hu T)) = Q S 0, + 8 * U S 0, + 2 * D S 0, + 3 * L S 0, + 6 * E S 0, + (Q S 1, + 8 * U S 1, + 2 * D S 1, + 3 * L S 1, + 6 * E S 1, ) + (Q S 2, + 8 * U S 2, + 2 * D S 2, + 3 * L S 2, + 6 * E S 2, ) + 3 * (Hd S + Hu S) + (Q T 0, + 8 * U T 0, + 2 * D T 0, + 3 * L T 0, + 6 * E T 0, + (Q T 1, + 8 * U T 1, + 2 * D T 1, + 3 * L T 1, + 6 * E T 1, ) + (Q T 2, + 8 * U T 2, + 2 * D T 2, + 3 * L T 2, + 6 * E T 2, ) + 3 * (Hd T + Hu T)) All goals completed! 🐙 map_smul' a S := a:S:MSSMCharges.Charges i, (Q (a S) i + 8 * U (a S) i + 2 * D (a S) i + 3 * L (a S) i + 6 * E (a S) i) + 3 * (Hd (a S) + Hu (a S)) = (RingHom.id ) a ( i, (Q S i + 8 * U S i + 2 * D S i + 3 * L S i + 6 * E S i) + 3 * (Hd S + Hu S)) a:S:MSSMCharges.Charges x, ((a Q S) x + 8 * (a U S) x + 2 * (a D S) x + 3 * (a L S) x + 6 * (a E S) x) + 3 * (a * Hd S + a * Hu S) = a * ( i, (Q S i + 8 * U S i + 2 * D S i + 3 * L S i + 6 * E S i) + 3 * (Hd S + Hu S)) a:S:MSSMCharges.Chargesa * Q S 0, + 8 * (a * U S 0, ) + 2 * (a * D S 0, ) + 3 * (a * L S 0, ) + 6 * (a * E S 0, ) + (a * Q S 1, + 8 * (a * U S 1, ) + 2 * (a * D S 1, ) + 3 * (a * L S 1, ) + 6 * (a * E S 1, )) + (a * Q S 2, + 8 * (a * U S 2, ) + 2 * (a * D S 2, ) + 3 * (a * L S 2, ) + 6 * (a * E S 2, )) + 3 * (a * Hd S + a * Hu S) = a * (Q S 0, + 8 * U S 0, + 2 * D S 0, + 3 * L S 0, + 6 * E S 0, + (Q S 1, + 8 * U S 1, + 2 * D S 1, + 3 * L S 1, + 6 * E S 1, ) + (Q S 2, + 8 * U S 2, + 2 * D S 2, + 3 * L S 2, + 6 * E S 2, ) + 3 * (Hd S + Hu S)) All goals completed! 🐙

Extensionality lemma for accGrav.

lemma accYY_ext {S T : MSSMCharges.Charges} (hj : (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T i) (hd : Hd S = Hd T) (hu : Hu S = Hu T) : accYY S = accYY T := S:MSSMCharges.ChargesT:MSSMCharges.Chargeshj: (j : Fin 6), i, (toSMSpecies j) S i = i, (toSMSpecies j) T ihd:Hd S = Hd Thu:Hu S = Hu TaccYY S = accYY T All goals completed! 🐙

The symmetric bilinear function used to define the quadratic ACC.

S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.Charges-(Hd S + Hd T) * Hd R + (Hu S + Hu T) * Hu R = -Hd S * Hd R + Hu S * Hu R + (-Hd T * Hd R + Hu T * Hu R) All goals completed! 🐙) ( (S T : MSSMCharges.Charges), (match (S, T) with | (S, T) => i, (Q S i * Q T i + -2 * (U S i * U T i) + D S i * D T i + -1 * (L S i * L T i) + E S i * E T i) + (-Hd S * Hd T + Hu S * Hu T)) = match (T, S) with | (S, T) => i, (Q S i * Q T i + -2 * (U S i * U T i) + D S i * D T i + -1 * (L S i * L T i) + E S i * E T i) + (-Hd S * Hd T + Hu S * Hu T) S:MSSMCharges.ChargesL:MSSMCharges.Charges(match (S, L) with | (S, T) => i, (Q S i * Q T i + -2 * (U S i * U T i) + D S i * D T i + -1 * (MSSMCharges.L S i * MSSMCharges.L T i) + E S i * E T i) + (-Hd S * Hd T + Hu S * Hu T)) = match (L, S) with | (S, T) => i, (Q S i * Q T i + -2 * (U S i * U T i) + D S i * D T i + -1 * (MSSMCharges.L S i * MSSMCharges.L T i) + E S i * E T i) + (-Hd S * Hd T + Hu S * Hu T) S:MSSMCharges.ChargesL:MSSMCharges.Charges x, (S (Fin.castAdd 2 (finProdFinEquiv (0, x))) * L (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, x))) * L (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, x))) * L (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, x))) * L (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + S (Fin.castAdd 2 (finProdFinEquiv (4, x))) * L (Fin.castAdd 2 (finProdFinEquiv (4, x)))) + (-(S 18 * L 18) + S 19 * L 19) = x, (L (Fin.castAdd 2 (finProdFinEquiv (0, x))) * S (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, x))) * S (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, x))) * S (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, x))) * S (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + L (Fin.castAdd 2 (finProdFinEquiv (4, x))) * S (Fin.castAdd 2 (finProdFinEquiv (4, x)))) + (-(L 18 * S 18) + L 19 * S 19) S:MSSMCharges.ChargesL:MSSMCharges.Charges x, (S (Fin.castAdd 2 (finProdFinEquiv (0, x))) * L (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, x))) * L (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, x))) * L (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, x))) * L (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + S (Fin.castAdd 2 (finProdFinEquiv (4, x))) * L (Fin.castAdd 2 (finProdFinEquiv (4, x)))) = x, (L (Fin.castAdd 2 (finProdFinEquiv (0, x))) * S (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, x))) * S (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, x))) * S (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, x))) * S (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + L (Fin.castAdd 2 (finProdFinEquiv (4, x))) * S (Fin.castAdd 2 (finProdFinEquiv (4, x))))S:MSSMCharges.ChargesL:MSSMCharges.Charges-(S 18 * L 18) + S 19 * L 19 = -(L 18 * S 18) + L 19 * S 19 S:MSSMCharges.ChargesL:MSSMCharges.Charges x, (S (Fin.castAdd 2 (finProdFinEquiv (0, x))) * L (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, x))) * L (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, x))) * L (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, x))) * L (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + S (Fin.castAdd 2 (finProdFinEquiv (4, x))) * L (Fin.castAdd 2 (finProdFinEquiv (4, x)))) = x, (L (Fin.castAdd 2 (finProdFinEquiv (0, x))) * S (Fin.castAdd 2 (finProdFinEquiv (0, x))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, x))) * S (Fin.castAdd 2 (finProdFinEquiv (1, x))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, x))) * S (Fin.castAdd 2 (finProdFinEquiv (2, x))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, x))) * S (Fin.castAdd 2 (finProdFinEquiv (3, x)))) + L (Fin.castAdd 2 (finProdFinEquiv (4, x))) * S (Fin.castAdd 2 (finProdFinEquiv (4, x)))) S:MSSMCharges.ChargesL:MSSMCharges.ChargesS (Fin.castAdd 2 (finProdFinEquiv (0, 0, ))) * L (Fin.castAdd 2 (finProdFinEquiv (0, 0, ))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, 0, ))) * L (Fin.castAdd 2 (finProdFinEquiv (1, 0, ))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 0, ))) * L (Fin.castAdd 2 (finProdFinEquiv (2, 0, ))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, 0, ))) * L (Fin.castAdd 2 (finProdFinEquiv (3, 0, )))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 0, ))) * L (Fin.castAdd 2 (finProdFinEquiv (4, 0, ))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 1, ))) * L (Fin.castAdd 2 (finProdFinEquiv (0, 1, ))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, 1, ))) * L (Fin.castAdd 2 (finProdFinEquiv (1, 1, ))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 1, ))) * L (Fin.castAdd 2 (finProdFinEquiv (2, 1, ))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, 1, ))) * L (Fin.castAdd 2 (finProdFinEquiv (3, 1, )))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 1, ))) * L (Fin.castAdd 2 (finProdFinEquiv (4, 1, )))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * L (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + -(2 * (S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * L (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * L (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + -(S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * L (Fin.castAdd 2 (finProdFinEquiv (3, 2, )))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * L (Fin.castAdd 2 (finProdFinEquiv (4, 2, )))) = L (Fin.castAdd 2 (finProdFinEquiv (0, 0, ))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 0, ))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, 0, ))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 0, ))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, 0, ))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 0, ))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, 0, ))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 0, )))) + L (Fin.castAdd 2 (finProdFinEquiv (4, 0, ))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 0, ))) + (L (Fin.castAdd 2 (finProdFinEquiv (0, 1, ))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 1, ))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, 1, ))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 1, ))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, 1, ))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 1, ))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, 1, ))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 1, )))) + L (Fin.castAdd 2 (finProdFinEquiv (4, 1, ))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 1, )))) + (L (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + -(2 * (L (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))))) + L (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + -(L (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 2, )))) + L (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 2, )))) All goals completed! 🐙 S:MSSMCharges.ChargesL:MSSMCharges.Charges-(S 18 * L 18) + S 19 * L 19 = -(L 18 * S 18) + L 19 * S 19 All goals completed! 🐙)

The quadratic ACC.

Extensionality lemma for accQuad.

set_option backward.isDefEq.respectTransparency false inlemma accQuad_ext {S T : (MSSMCharges).Charges} (h : j, i, ((fun a => a^2) toSMSpecies j S) i = i, ((fun a => a^2) toSMSpecies j T) i) (hd : Hd S = Hd T) (hu : Hu S = Hu T) : accQuad S = accQuad T := S:MSSMCharges.ChargesT:MSSMCharges.Chargesh: (j : Fin 6), i, ((fun a => a ^ 2) (toSMSpecies j) S) i = i, ((fun a => a ^ 2) (toSMSpecies j) T) ihd:Hd S = Hd Thu:Hu S = Hu TaccQuad S = accQuad T S:MSSMCharges.ChargesT:MSSMCharges.Chargesh: (j : Fin 6), i, ((fun a => a ^ 2) (toSMSpecies j) S) i = i, ((fun a => a ^ 2) (toSMSpecies j) T) ihd:Hd S = Hd Thu:Hu S = Hu Th1: (j : Fin 6), i, (toSMSpecies j) S i ^ 2 = i, (toSMSpecies j) T i ^ 2accQuad S = accQuad T All goals completed! 🐙

The function underlying the symmetric trilinear form used to define the cubic ACC.

def cubeTriLinToFun (S : MSSMCharges.Charges × MSSMCharges.Charges × MSSMCharges.Charges) : := i, (6 * (Q S.1 i * Q S.2.1 i * Q S.2.2 i) + 3 * (U S.1 i * U S.2.1 i * U S.2.2 i) + 3 * (D S.1 i * D S.2.1 i * D S.2.2 i) + 2 * (L S.1 i * L S.2.1 i * L S.2.2 i) + E S.1 i * E S.2.1 i * E S.2.2 i + N S.1 i * N S.2.1 i * N S.2.2 i) + (2 * Hd S.1 * Hd S.2.1 * Hd S.2.2 + 2 * Hu S.1 * Hu S.2.1 * Hu S.2.2)
lemma cubeTriLinToFun_map_smul₁ (a : ) (S T R : MSSMCharges.Charges) : cubeTriLinToFun (a S, T, R) = a * cubeTriLinToFun (S, T, R) := a:S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.ChargescubeTriLinToFun (a S, T, R) = a * cubeTriLinToFun (S, T, R) a:S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.Charges x, (6 * ((a Q S) x * Q T x * Q R x) + 3 * ((a U S) x * U T x * U R x) + 3 * ((a D S) x * D T x * D R x) + 2 * ((a L S) x * L T x * L R x) + (a E S) x * E T x * E R x + (a N S) x * N T x * N R x) + (2 * (a * Hd S) * Hd T * Hd R + 2 * (a * Hu S) * Hu T * Hu R) = a * ( x, (6 * (Q S x * Q T x * Q R x) + 3 * (U S x * U T x * U R x) + 3 * (D S x * D T x * D R x) + 2 * (L S x * L T x * L R x) + E S x * E T x * E R x + N S x * N T x * N R x) + (2 * Hd S * Hd T * Hd R + 2 * Hu S * Hu T * Hu R)) a:S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.Charges6 * (a * Q S 0, * Q T 0, * Q R 0, ) + 3 * (a * U S 0, * U T 0, * U R 0, ) + 3 * (a * D S 0, * D T 0, * D R 0, ) + 2 * (a * L S 0, * L T 0, * L R 0, ) + a * E S 0, * E T 0, * E R 0, + a * N S 0, * N T 0, * N R 0, + (6 * (a * Q S 1, * Q T 1, * Q R 1, ) + 3 * (a * U S 1, * U T 1, * U R 1, ) + 3 * (a * D S 1, * D T 1, * D R 1, ) + 2 * (a * L S 1, * L T 1, * L R 1, ) + a * E S 1, * E T 1, * E R 1, + a * N S 1, * N T 1, * N R 1, ) + (6 * (a * Q S 2, * Q T 2, * Q R 2, ) + 3 * (a * U S 2, * U T 2, * U R 2, ) + 3 * (a * D S 2, * D T 2, * D R 2, ) + 2 * (a * L S 2, * L T 2, * L R 2, ) + a * E S 2, * E T 2, * E R 2, + a * N S 2, * N T 2, * N R 2, ) + (2 * (a * Hd S) * Hd T * Hd R + 2 * (a * Hu S) * Hu T * Hu R) = a * (6 * (Q S 0, * Q T 0, * Q R 0, ) + 3 * (U S 0, * U T 0, * U R 0, ) + 3 * (D S 0, * D T 0, * D R 0, ) + 2 * (L S 0, * L T 0, * L R 0, ) + E S 0, * E T 0, * E R 0, + N S 0, * N T 0, * N R 0, + (6 * (Q S 1, * Q T 1, * Q R 1, ) + 3 * (U S 1, * U T 1, * U R 1, ) + 3 * (D S 1, * D T 1, * D R 1, ) + 2 * (L S 1, * L T 1, * L R 1, ) + E S 1, * E T 1, * E R 1, + N S 1, * N T 1, * N R 1, ) + (6 * (Q S 2, * Q T 2, * Q R 2, ) + 3 * (U S 2, * U T 2, * U R 2, ) + 3 * (D S 2, * D T 2, * D R 2, ) + 2 * (L S 2, * L T 2, * L R 2, ) + E S 2, * E T 2, * E R 2, + N S 2, * N T 2, * N R 2, ) + (2 * Hd S * Hd T * Hd R + 2 * Hu S * Hu T * Hu R)) All goals completed! 🐙lemma cubeTriLinToFun_map_add₁ (S T R L : MSSMCharges.Charges) : cubeTriLinToFun (S + T, R, L) = cubeTriLinToFun (S, R, L) + cubeTriLinToFun (T, R, L) := S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.ChargesL:MSSMCharges.ChargescubeTriLinToFun (S + T, R, L) = cubeTriLinToFun (S, R, L) + cubeTriLinToFun (T, R, L) S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.ChargesL:MSSMCharges.Charges6 * ((Q S 0, + Q T 0, ) * Q R 0, * Q L 0, ) + 3 * ((U S 0, + U T 0, ) * U R 0, * U L 0, ) + 3 * ((D S 0, + D T 0, ) * D R 0, * D L 0, ) + 2 * ((MSSMCharges.L S 0, + MSSMCharges.L T 0, ) * MSSMCharges.L R 0, * MSSMCharges.L L 0, ) + (E S 0, + E T 0, ) * E R 0, * E L 0, + (N S 0, + N T 0, ) * N R 0, * N L 0, + (6 * ((Q S 1, + Q T 1, ) * Q R 1, * Q L 1, ) + 3 * ((U S 1, + U T 1, ) * U R 1, * U L 1, ) + 3 * ((D S 1, + D T 1, ) * D R 1, * D L 1, ) + 2 * ((MSSMCharges.L S 1, + MSSMCharges.L T 1, ) * MSSMCharges.L R 1, * MSSMCharges.L L 1, ) + (E S 1, + E T 1, ) * E R 1, * E L 1, + (N S 1, + N T 1, ) * N R 1, * N L 1, ) + (6 * ((Q S 2, + Q T 2, ) * Q R 2, * Q L 2, ) + 3 * ((U S 2, + U T 2, ) * U R 2, * U L 2, ) + 3 * ((D S 2, + D T 2, ) * D R 2, * D L 2, ) + 2 * ((MSSMCharges.L S 2, + MSSMCharges.L T 2, ) * MSSMCharges.L R 2, * MSSMCharges.L L 2, ) + (E S 2, + E T 2, ) * E R 2, * E L 2, + (N S 2, + N T 2, ) * N R 2, * N L 2, ) + (2 * (Hd S + Hd T) * Hd R * Hd L + 2 * (Hu S + Hu T) * Hu R * Hu L) = 6 * (Q S 0, * Q R 0, * Q L 0, ) + 3 * (U S 0, * U R 0, * U L 0, ) + 3 * (D S 0, * D R 0, * D L 0, ) + 2 * (MSSMCharges.L S 0, * MSSMCharges.L R 0, * MSSMCharges.L L 0, ) + E S 0, * E R 0, * E L 0, + N S 0, * N R 0, * N L 0, + (6 * (Q S 1, * Q R 1, * Q L 1, ) + 3 * (U S 1, * U R 1, * U L 1, ) + 3 * (D S 1, * D R 1, * D L 1, ) + 2 * (MSSMCharges.L S 1, * MSSMCharges.L R 1, * MSSMCharges.L L 1, ) + E S 1, * E R 1, * E L 1, + N S 1, * N R 1, * N L 1, ) + (6 * (Q S 2, * Q R 2, * Q L 2, ) + 3 * (U S 2, * U R 2, * U L 2, ) + 3 * (D S 2, * D R 2, * D L 2, ) + 2 * (MSSMCharges.L S 2, * MSSMCharges.L R 2, * MSSMCharges.L L 2, ) + E S 2, * E R 2, * E L 2, + N S 2, * N R 2, * N L 2, ) + (2 * Hd S * Hd R * Hd L + 2 * Hu S * Hu R * Hu L) + (6 * (Q T 0, * Q R 0, * Q L 0, ) + 3 * (U T 0, * U R 0, * U L 0, ) + 3 * (D T 0, * D R 0, * D L 0, ) + 2 * (MSSMCharges.L T 0, * MSSMCharges.L R 0, * MSSMCharges.L L 0, ) + E T 0, * E R 0, * E L 0, + N T 0, * N R 0, * N L 0, + (6 * (Q T 1, * Q R 1, * Q L 1, ) + 3 * (U T 1, * U R 1, * U L 1, ) + 3 * (D T 1, * D R 1, * D L 1, ) + 2 * (MSSMCharges.L T 1, * MSSMCharges.L R 1, * MSSMCharges.L L 1, ) + E T 1, * E R 1, * E L 1, + N T 1, * N R 1, * N L 1, ) + (6 * (Q T 2, * Q R 2, * Q L 2, ) + 3 * (U T 2, * U R 2, * U L 2, ) + 3 * (D T 2, * D R 2, * D L 2, ) + 2 * (MSSMCharges.L T 2, * MSSMCharges.L R 2, * MSSMCharges.L L 2, ) + E T 2, * E R 2, * E L 2, + N T 2, * N R 2, * N L 2, ) + (2 * Hd T * Hd R * Hd L + 2 * Hu T * Hu R * Hu L)) All goals completed! 🐙lemma cubeTriLinToFun_swap1 (S T R : MSSMCharges.Charges) : cubeTriLinToFun (S, T, R) = cubeTriLinToFun (T, S, R) := S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.ChargescubeTriLinToFun (S, T, R) = cubeTriLinToFun (T, S, R) S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.Charges6 * (Q S 0, * Q T 0, * Q R 0, ) + 3 * (U S 0, * U T 0, * U R 0, ) + 3 * (D S 0, * D T 0, * D R 0, ) + 2 * (L S 0, * L T 0, * L R 0, ) + E S 0, * E T 0, * E R 0, + N S 0, * N T 0, * N R 0, + (6 * (Q S 1, * Q T 1, * Q R 1, ) + 3 * (U S 1, * U T 1, * U R 1, ) + 3 * (D S 1, * D T 1, * D R 1, ) + 2 * (L S 1, * L T 1, * L R 1, ) + E S 1, * E T 1, * E R 1, + N S 1, * N T 1, * N R 1, ) + (6 * (Q S 2, * Q T 2, * Q R 2, ) + 3 * (U S 2, * U T 2, * U R 2, ) + 3 * (D S 2, * D T 2, * D R 2, ) + 2 * (L S 2, * L T 2, * L R 2, ) + E S 2, * E T 2, * E R 2, + N S 2, * N T 2, * N R 2, ) + (2 * Hd S * Hd T * Hd R + 2 * Hu S * Hu T * Hu R) = 6 * (Q T 0, * Q S 0, * Q R 0, ) + 3 * (U T 0, * U S 0, * U R 0, ) + 3 * (D T 0, * D S 0, * D R 0, ) + 2 * (L T 0, * L S 0, * L R 0, ) + E T 0, * E S 0, * E R 0, + N T 0, * N S 0, * N R 0, + (6 * (Q T 1, * Q S 1, * Q R 1, ) + 3 * (U T 1, * U S 1, * U R 1, ) + 3 * (D T 1, * D S 1, * D R 1, ) + 2 * (L T 1, * L S 1, * L R 1, ) + E T 1, * E S 1, * E R 1, + N T 1, * N S 1, * N R 1, ) + (6 * (Q T 2, * Q S 2, * Q R 2, ) + 3 * (U T 2, * U S 2, * U R 2, ) + 3 * (D T 2, * D S 2, * D R 2, ) + 2 * (L T 2, * L S 2, * L R 2, ) + E T 2, * E S 2, * E R 2, + N T 2, * N S 2, * N R 2, ) + (2 * Hd T * Hd S * Hd R + 2 * Hu T * Hu S * Hu R) All goals completed! 🐙lemma cubeTriLinToFun_swap2 (S T R : MSSMCharges.Charges) : cubeTriLinToFun (S, T, R) = cubeTriLinToFun (S, R, T) := S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.ChargescubeTriLinToFun (S, T, R) = cubeTriLinToFun (S, R, T) S:MSSMCharges.ChargesT:MSSMCharges.ChargesR:MSSMCharges.Charges6 * (Q S 0, * Q T 0, * Q R 0, ) + 3 * (U S 0, * U T 0, * U R 0, ) + 3 * (D S 0, * D T 0, * D R 0, ) + 2 * (L S 0, * L T 0, * L R 0, ) + E S 0, * E T 0, * E R 0, + N S 0, * N T 0, * N R 0, + (6 * (Q S 1, * Q T 1, * Q R 1, ) + 3 * (U S 1, * U T 1, * U R 1, ) + 3 * (D S 1, * D T 1, * D R 1, ) + 2 * (L S 1, * L T 1, * L R 1, ) + E S 1, * E T 1, * E R 1, + N S 1, * N T 1, * N R 1, ) + (6 * (Q S 2, * Q T 2, * Q R 2, ) + 3 * (U S 2, * U T 2, * U R 2, ) + 3 * (D S 2, * D T 2, * D R 2, ) + 2 * (L S 2, * L T 2, * L R 2, ) + E S 2, * E T 2, * E R 2, + N S 2, * N T 2, * N R 2, ) + (2 * Hd S * Hd T * Hd R + 2 * Hu S * Hu T * Hu R) = 6 * (Q S 0, * Q R 0, * Q T 0, ) + 3 * (U S 0, * U R 0, * U T 0, ) + 3 * (D S 0, * D R 0, * D T 0, ) + 2 * (L S 0, * L R 0, * L T 0, ) + E S 0, * E R 0, * E T 0, + N S 0, * N R 0, * N T 0, + (6 * (Q S 1, * Q R 1, * Q T 1, ) + 3 * (U S 1, * U R 1, * U T 1, ) + 3 * (D S 1, * D R 1, * D T 1, ) + 2 * (L S 1, * L R 1, * L T 1, ) + E S 1, * E R 1, * E T 1, + N S 1, * N R 1, * N T 1, ) + (6 * (Q S 2, * Q R 2, * Q T 2, ) + 3 * (U S 2, * U R 2, * U T 2, ) + 3 * (D S 2, * D R 2, * D T 2, ) + 2 * (L S 2, * L R 2, * L T 2, ) + E S 2, * E R 2, * E T 2, + N S 2, * N R 2, * N T 2, ) + (2 * Hd S * Hd R * Hd T + 2 * Hu S * Hu R * Hu T) All goals completed! 🐙

The symmetric trilinear form used to define the cubic ACC.

The cubic ACC.

Extensionality lemma for accCube.

set_option backward.isDefEq.respectTransparency false inlemma accCube_ext {S T : MSSMCharges.Charges} (h : j, i, ((fun a => a^3) toSMSpecies j S) i = i, ((fun a => a^3) toSMSpecies j T) i) (hd : Hd S = Hd T) (hu : Hu S = Hu T) : accCube S = accCube T := S:MSSMCharges.ChargesT:MSSMCharges.Chargesh: (j : Fin 6), i, ((fun a => a ^ 3) (toSMSpecies j) S) i = i, ((fun a => a ^ 3) (toSMSpecies j) T) ihd:Hd S = Hd Thu:Hu S = Hu TaccCube S = accCube T S:MSSMCharges.ChargesT:MSSMCharges.Chargesh: (j : Fin 6), i, ((fun a => a ^ 3) (toSMSpecies j) S) i = i, ((fun a => a ^ 3) (toSMSpecies j) T) ihd:Hd S = Hd Thu:Hu S = Hu Th1: (j : Fin 6), i, (toSMSpecies j) S i ^ 3 = i, (toSMSpecies j) T i ^ 3accCube S = accCube T All goals completed! 🐙

The ACCSystem for the MSSM without RHN.

@[simps!] def MSSMACC : ACCSystem where toACCSystemCharges := MSSMCharges numberLinear := 4 linearACCs := fun i => match i with | 0 => accGrav | 1 => accSU2 | 2 => accSU3 | 3 => accYY numberQuadratic := 1 quadraticACCs := fun i => match i with | 0 => accQuad cubicACC := accCube
lemma cubicACC_apply (S : MSSMACC.Charges) : MSSMACC.cubicACC S = cubeTriLin.toCubic S := rfllemma quadSol (S : MSSMACC.QuadSols) : accQuad S.val = 0 := S.quadSol 0, S:MSSMACC.QuadSols0 < MSSMACC.numberQuadratic All goals completed! 🐙

A solution from a charge satisfying the ACCs.

@[simp] def AnomalyFreeMk (S : MSSMACC.Charges) (hg : accGrav S = 0) (hsu2 : accSU2 S = 0) (hsu3 : accSU3 S = 0) (hyy : accYY S = 0) (hquad : accQuad S = 0) (hcube : accCube S = 0) : MSSMACC.Sols := S, S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0 (i : Fin MSSMACC.numberLinear), (MSSMACC.linearACCs i) S = 0 S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberLinear(MSSMACC.linearACCs i) S = 0 match i with S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberLinearisLt✝:0 < MSSMACC.numberLinear(MSSMACC.linearACCs 0, isLt✝) S = 0 All goals completed! 🐙 S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberLinearisLt✝:1 < MSSMACC.numberLinear(MSSMACC.linearACCs 1, isLt✝) S = 0 All goals completed! 🐙 S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberLinearisLt✝:2 < MSSMACC.numberLinear(MSSMACC.linearACCs 2, isLt✝) S = 0 All goals completed! 🐙 S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberLinearisLt✝:3 < MSSMACC.numberLinear(MSSMACC.linearACCs 3, isLt✝) S = 0 All goals completed! 🐙, S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0 (i : Fin MSSMACC.numberQuadratic), (MSSMACC.quadraticACCs i) { val := S, linearSol := }.val = 0 S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberQuadratic(MSSMACC.quadraticACCs i) { val := S, linearSol := }.val = 0 match i with S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0i:Fin MSSMACC.numberQuadraticisLt✝:0 < MSSMACC.numberQuadratic(MSSMACC.quadraticACCs 0, isLt✝) { val := S, linearSol := }.val = 0 All goals completed! 🐙, hcube
lemma AnomalyFreeMk_val (S : MSSMACC.Charges) (hg : accGrav S = 0) (hsu2 : accSU2 S = 0) (hsu3 : accSU3 S = 0) (hyy : accYY S = 0) (hquad : accQuad S = 0) (hcube : accCube S = 0) : (AnomalyFreeMk S hg hsu2 hsu3 hyy hquad hcube).val = S := S:MSSMACC.Chargeshg:accGrav S = 0hsu2:accSU2 S = 0hsu3:accSU3 S = 0hyy:accYY S = 0hquad:accQuad S = 0hcube:accCube S = 0(AnomalyFreeMk S hg hsu2 hsu3 hyy hquad hcube).val = S All goals completed! 🐙

A QuadSol from a LinSol satisfying the quadratic ACC.

@[simp] def AnomalyFreeQuadMk' (S : MSSMACC.LinSols) (hquad : accQuad S.val = 0) : MSSMACC.QuadSols := S, S:MSSMACC.LinSolshquad:accQuad S.val = 0 (i : Fin MSSMACC.numberQuadratic), (MSSMACC.quadraticACCs i) S.val = 0 S:MSSMACC.LinSolshquad:accQuad S.val = 0i:Fin MSSMACC.numberQuadratic(MSSMACC.quadraticACCs i) S.val = 0 match i with S:MSSMACC.LinSolshquad:accQuad S.val = 0i:Fin MSSMACC.numberQuadraticisLt✝:0 < MSSMACC.numberQuadratic(MSSMACC.quadraticACCs 0, isLt✝) S.val = 0 All goals completed! 🐙

A Sol from a LinSol satisfying the quadratic and cubic ACCs.

@[simp] def AnomalyFreeMk' (S : MSSMACC.LinSols) (hquad : accQuad S.val = 0) (hcube : accCube S.val = 0) : MSSMACC.Sols := S, S:MSSMACC.LinSolshquad:accQuad S.val = 0hcube:accCube S.val = 0 (i : Fin MSSMACC.numberQuadratic), (MSSMACC.quadraticACCs i) S.val = 0 S:MSSMACC.LinSolshquad:accQuad S.val = 0hcube:accCube S.val = 0i:Fin MSSMACC.numberQuadratic(MSSMACC.quadraticACCs i) S.val = 0 match i with S:MSSMACC.LinSolshquad:accQuad S.val = 0hcube:accCube S.val = 0i:Fin MSSMACC.numberQuadraticisLt✝:0 < MSSMACC.numberQuadratic(MSSMACC.quadraticACCs 0, isLt✝) S.val = 0 All goals completed! 🐙, hcube

A Sol from a QuadSol satisfying the cubic ACCs.

@[simp] def AnomalyFreeMk'' (S : MSSMACC.QuadSols) (hcube : accCube S.val = 0) : MSSMACC.Sols := S, hcube
lemma AnomalyFreeMk''_val (S : MSSMACC.QuadSols) (hcube : accCube S.val = 0) : (AnomalyFreeMk'' S hcube).val = S.val := S:MSSMACC.QuadSolshcube:accCube S.val = 0(AnomalyFreeMk'' S hcube).val = S.val All goals completed! 🐙

The dot product on the vector space of charges.

set_option backward.isDefEq.respectTransparency false ina:S:MSSMCharges.ChargesT:MSSMCharges.Charges i, ((a (toSMSpecies 0) S) i * Q (a S, T).2 i + (a (toSMSpecies 1) S) i * U (a S, T).2 i + (a (toSMSpecies 2) S) i * D (a S, T).2 i + (a (toSMSpecies 3) S) i * L (a S, T).2 i + (a (toSMSpecies 4) S) i * E (a S, T).2 i + (a (toSMSpecies 5) S) i * N (a S, T).2 i) + a Hd S * Hd (a S, T).2 + a Hu S * Hu (a S, T).2 = a * ( i, (Q (S, T).1 i * Q (S, T).2 i + U (S, T).1 i * U (S, T).2 i + D (S, T).1 i * D (S, T).2 i + L (S, T).1 i * L (S, T).2 i + E (S, T).1 i * E (S, T).2 i + N (S, T).1 i * N (S, T).2 i) + Hd (S, T).1 * Hd (S, T).2 + Hu (S, T).1 * Hu (S, T).2) a:S:MSSMCharges.ChargesT:MSSMCharges.Charges(a (toSMSpecies 0) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + (a (toSMSpecies 1) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + (a (toSMSpecies 2) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + (a (toSMSpecies 3) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + (a (toSMSpecies 4) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + (a (toSMSpecies 5) S) 0 * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + ((a (toSMSpecies 0) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + (a (toSMSpecies 1) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + (a (toSMSpecies 2) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + (a (toSMSpecies 3) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + (a (toSMSpecies 4) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + (a (toSMSpecies 5) S) 1 * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + ((a (toSMSpecies 0) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + (a (toSMSpecies 1) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + (a (toSMSpecies 2) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + (a (toSMSpecies 3) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + (a (toSMSpecies 4) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + (a (toSMSpecies 5) S) 2, * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + a * S 18 * T 18 + a * S 19 * T 19 = a * (S (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S 18 * T 18 + S 19 * T 19) a:S:MSSMCharges.ChargesT:MSSMCharges.Chargesa * S (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + a * S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + a * S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + a * S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + a * S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + a * S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (a * S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + a * S (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + a * S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + a * S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + a * S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + a * S (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (a * S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + a * S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + a * S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + a * S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + a * S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + a * S (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + a * S 18 * T 18 + a * S 19 * T 19 = a * (S (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S 18 * T 18 + S 19 * T 19) All goals completed! 🐙) ( (S1 S2 T : MSSMCharges.Charges), i, (Q (S1 + S2, T).1 i * Q (S1 + S2, T).2 i + U (S1 + S2, T).1 i * U (S1 + S2, T).2 i + D (S1 + S2, T).1 i * D (S1 + S2, T).2 i + L (S1 + S2, T).1 i * L (S1 + S2, T).2 i + E (S1 + S2, T).1 i * E (S1 + S2, T).2 i + N (S1 + S2, T).1 i * N (S1 + S2, T).2 i) + Hd (S1 + S2, T).1 * Hd (S1 + S2, T).2 + Hu (S1 + S2, T).1 * Hu (S1 + S2, T).2 = i, (Q (S1, T).1 i * Q (S1, T).2 i + U (S1, T).1 i * U (S1, T).2 i + D (S1, T).1 i * D (S1, T).2 i + L (S1, T).1 i * L (S1, T).2 i + E (S1, T).1 i * E (S1, T).2 i + N (S1, T).1 i * N (S1, T).2 i) + Hd (S1, T).1 * Hd (S1, T).2 + Hu (S1, T).1 * Hu (S1, T).2 + ( i, (Q (S2, T).1 i * Q (S2, T).2 i + U (S2, T).1 i * U (S2, T).2 i + D (S2, T).1 i * D (S2, T).2 i + L (S2, T).1 i * L (S2, T).2 i + E (S2, T).1 i * E (S2, T).2 i + N (S2, T).1 i * N (S2, T).2 i) + Hd (S2, T).1 * Hd (S2, T).2 + Hu (S2, T).1 * Hu (S2, T).2) S1:MSSMCharges.ChargesS2:MSSMCharges.ChargesT:MSSMCharges.Charges i, (Q (S1 + S2, T).1 i * Q (S1 + S2, T).2 i + U (S1 + S2, T).1 i * U (S1 + S2, T).2 i + D (S1 + S2, T).1 i * D (S1 + S2, T).2 i + L (S1 + S2, T).1 i * L (S1 + S2, T).2 i + E (S1 + S2, T).1 i * E (S1 + S2, T).2 i + N (S1 + S2, T).1 i * N (S1 + S2, T).2 i) + Hd (S1 + S2, T).1 * Hd (S1 + S2, T).2 + Hu (S1 + S2, T).1 * Hu (S1 + S2, T).2 = i, (Q (S1, T).1 i * Q (S1, T).2 i + U (S1, T).1 i * U (S1, T).2 i + D (S1, T).1 i * D (S1, T).2 i + L (S1, T).1 i * L (S1, T).2 i + E (S1, T).1 i * E (S1, T).2 i + N (S1, T).1 i * N (S1, T).2 i) + Hd (S1, T).1 * Hd (S1, T).2 + Hu (S1, T).1 * Hu (S1, T).2 + ( i, (Q (S2, T).1 i * Q (S2, T).2 i + U (S2, T).1 i * U (S2, T).2 i + D (S2, T).1 i * D (S2, T).2 i + L (S2, T).1 i * L (S2, T).2 i + E (S2, T).1 i * E (S2, T).2 i + N (S2, T).1 i * N (S2, T).2 i) + Hd (S2, T).1 * Hd (S2, T).2 + Hu (S2, T).1 * Hu (S2, T).2) S1:MSSMCharges.ChargesS2:MSSMCharges.ChargesT:MSSMCharges.Charges x, ((S1 (Fin.castAdd 2 (finProdFinEquiv (0, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (0, x))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (1, x))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (2, x))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (3, x))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (4, x))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, x)))) * T (Fin.castAdd 2 (finProdFinEquiv (5, x)))) + (S1 18 + S2 18) * T 18 + (S1 19 + S2 19) * T 19 = x, (S1 (Fin.castAdd 2 (finProdFinEquiv (0, x))) * T (Fin.castAdd 2 (finProdFinEquiv (0, x))) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, x))) * T (Fin.castAdd 2 (finProdFinEquiv (1, x))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, x))) * T (Fin.castAdd 2 (finProdFinEquiv (2, x))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, x))) * T (Fin.castAdd 2 (finProdFinEquiv (3, x))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, x))) * T (Fin.castAdd 2 (finProdFinEquiv (4, x))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, x))) * T (Fin.castAdd 2 (finProdFinEquiv (5, x)))) + S1 18 * T 18 + S1 19 * T 19 + ( x, (S2 (Fin.castAdd 2 (finProdFinEquiv (0, x))) * T (Fin.castAdd 2 (finProdFinEquiv (0, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, x))) * T (Fin.castAdd 2 (finProdFinEquiv (1, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, x))) * T (Fin.castAdd 2 (finProdFinEquiv (2, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, x))) * T (Fin.castAdd 2 (finProdFinEquiv (3, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, x))) * T (Fin.castAdd 2 (finProdFinEquiv (4, x))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, x))) * T (Fin.castAdd 2 (finProdFinEquiv (5, x)))) + S2 18 * T 18 + S2 19 * T 19) S1:MSSMCharges.ChargesS2:MSSMCharges.ChargesT:MSSMCharges.Charges(S1 (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + ((S1 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + ((S1 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + (S1 18 + S2 18) * T 18 + (S1 19 + S2 19) * T 19 = S1 (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S1 18 * T 18 + S1 19 * T 19 + (S2 (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S2 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S2 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S2 18 * T 18 + S2 19 * T 19) S1:MSSMCharges.ChargesS2:MSSMCharges.ChargesT:MSSMCharges.Charges(S1 (Fin.castAdd 2 (finProdFinEquiv 0)) + S2 (Fin.castAdd 2 (finProdFinEquiv 0))) * T (Fin.castAdd 2 (finProdFinEquiv 0)) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 0)))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + ((S1 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv 1)) + S2 (Fin.castAdd 2 (finProdFinEquiv 1))) * T (Fin.castAdd 2 (finProdFinEquiv 1)) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + ((S1 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (0, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + (S1 18 + S2 18) * T 18 + (S1 19 + S2 19) * T 19 = S1 (Fin.castAdd 2 (finProdFinEquiv 0)) * T (Fin.castAdd 2 (finProdFinEquiv 0)) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv 1)) * T (Fin.castAdd 2 (finProdFinEquiv 1)) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S1 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S1 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S1 18 * T 18 + S1 19 * T 19 + (S2 (Fin.castAdd 2 (finProdFinEquiv 0)) * T (Fin.castAdd 2 (finProdFinEquiv 0)) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S2 (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv 1)) * T (Fin.castAdd 2 (finProdFinEquiv 1)) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S2 (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S2 (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S2 18 * T 18 + S2 19 * T 19) All goals completed! 🐙) ( (S T : MSSMCharges.Charges), i, (Q (S, T).1 i * Q (S, T).2 i + U (S, T).1 i * U (S, T).2 i + D (S, T).1 i * D (S, T).2 i + L (S, T).1 i * L (S, T).2 i + E (S, T).1 i * E (S, T).2 i + N (S, T).1 i * N (S, T).2 i) + Hd (S, T).1 * Hd (S, T).2 + Hu (S, T).1 * Hu (S, T).2 = i, (Q (T, S).1 i * Q (T, S).2 i + U (T, S).1 i * U (T, S).2 i + D (T, S).1 i * D (T, S).2 i + L (T, S).1 i * L (T, S).2 i + E (T, S).1 i * E (T, S).2 i + N (T, S).1 i * N (T, S).2 i) + Hd (T, S).1 * Hd (T, S).2 + Hu (T, S).1 * Hu (T, S).2 S:MSSMCharges.ChargesT:MSSMCharges.Charges i, (Q (S, T).1 i * Q (S, T).2 i + U (S, T).1 i * U (S, T).2 i + D (S, T).1 i * D (S, T).2 i + L (S, T).1 i * L (S, T).2 i + E (S, T).1 i * E (S, T).2 i + N (S, T).1 i * N (S, T).2 i) + Hd (S, T).1 * Hd (S, T).2 + Hu (S, T).1 * Hu (S, T).2 = i, (Q (T, S).1 i * Q (T, S).2 i + U (T, S).1 i * U (T, S).2 i + D (T, S).1 i * D (T, S).2 i + L (T, S).1 i * L (T, S).2 i + E (T, S).1 i * E (T, S).2 i + N (T, S).1 i * N (T, S).2 i) + Hd (T, S).1 * Hd (T, S).2 + Hu (T, S).1 * Hu (T, S).2 S:MSSMCharges.ChargesT:MSSMCharges.Charges x, (S (Fin.castAdd 2 (finProdFinEquiv (0, x))) * T (Fin.castAdd 2 (finProdFinEquiv (0, x))) + S (Fin.castAdd 2 (finProdFinEquiv (1, x))) * T (Fin.castAdd 2 (finProdFinEquiv (1, x))) + S (Fin.castAdd 2 (finProdFinEquiv (2, x))) * T (Fin.castAdd 2 (finProdFinEquiv (2, x))) + S (Fin.castAdd 2 (finProdFinEquiv (3, x))) * T (Fin.castAdd 2 (finProdFinEquiv (3, x))) + S (Fin.castAdd 2 (finProdFinEquiv (4, x))) * T (Fin.castAdd 2 (finProdFinEquiv (4, x))) + S (Fin.castAdd 2 (finProdFinEquiv (5, x))) * T (Fin.castAdd 2 (finProdFinEquiv (5, x)))) + S 18 * T 18 + S 19 * T 19 = x, (T (Fin.castAdd 2 (finProdFinEquiv (0, x))) * S (Fin.castAdd 2 (finProdFinEquiv (0, x))) + T (Fin.castAdd 2 (finProdFinEquiv (1, x))) * S (Fin.castAdd 2 (finProdFinEquiv (1, x))) + T (Fin.castAdd 2 (finProdFinEquiv (2, x))) * S (Fin.castAdd 2 (finProdFinEquiv (2, x))) + T (Fin.castAdd 2 (finProdFinEquiv (3, x))) * S (Fin.castAdd 2 (finProdFinEquiv (3, x))) + T (Fin.castAdd 2 (finProdFinEquiv (4, x))) * S (Fin.castAdd 2 (finProdFinEquiv (4, x))) + T (Fin.castAdd 2 (finProdFinEquiv (5, x))) * S (Fin.castAdd 2 (finProdFinEquiv (5, x)))) + T 18 * S 18 + T 19 * S 19 S:MSSMCharges.ChargesT:MSSMCharges.ChargesS (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S 18 * T 18 + S 19 * T 19 = T (Fin.castAdd 2 (finProdFinEquiv (0, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (1, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + T 18 * S 18 + T 19 * S 19 S:MSSMCharges.ChargesT:MSSMCharges.ChargesS (Fin.castAdd 2 (finProdFinEquiv 0)) * T (Fin.castAdd 2 (finProdFinEquiv 0)) + S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + S (Fin.castAdd 2 (finProdFinEquiv 1)) * T (Fin.castAdd 2 (finProdFinEquiv 1)) + S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + S (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * T (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + S 18 * T 18 + S 19 * T 19 = T (Fin.castAdd 2 (finProdFinEquiv 0)) * S (Fin.castAdd 2 (finProdFinEquiv 0)) + T (Fin.castAdd 2 (finProdFinEquiv (1, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (2, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 0))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 0))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 0))) + (T (Fin.castAdd 2 (finProdFinEquiv (0, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 1))) + T (Fin.castAdd 2 (finProdFinEquiv 1)) * S (Fin.castAdd 2 (finProdFinEquiv 1)) + T (Fin.castAdd 2 (finProdFinEquiv (2, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 1))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 1))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 1)))) + (T (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (0, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (1, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (2, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (3, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (4, 2, ))) + T (Fin.castAdd 2 (finProdFinEquiv (5, 2, ))) * S (Fin.castAdd 2 (finProdFinEquiv (5, 2, )))) + T 18 * S 18 + T 19 * S 19 All goals completed! 🐙)