Imports
/- Copyright (c) 2025 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 Mathlib.Tactic.FinCases public import Physlib.Particles.SuperSymmetry.SU5.ChargeSpectrum.MinimallyAllowsTerm.Basic

Minimally allows a set of terms

i. Overview

In this module we consider those charge spectra which minimally allow a finite set of potential terms. That is, they those charge spectra which allow each term in the set, but no proper subset of the charge spectra allows each term in that set.

We have special focus on those charge spectra which minimally allow a top and bottom Yukawa term.

ii. Key results

    MinimallyAllowsFinsetTerms: the proposition that a charge spectrum minimally allows a given finite set of potential terms.

    minTopBottom: a finite set of charge spectra which contains every charge spectrum which minimally allows a top and bottom Yukawa term, given finite sets of possible 5-bar and 10 charges.

iii. Table of contents

    A. Charge spectra which minimally allow a finite set of potential terms

      A.1. MinimallyAllowsFinsetTerms: Prop of minimally allowing a finset of potential terms

      A.2. The prop MinimallyAllowsFinsetTerms is decidable

      A.3. Every element of MinimallyAllowsFinsetTerms allows each term in the finset

      A.4. MinimallyAllowsFinsetTerms for the singleton set is equivalent to MinimallyAllowsTerm

    B. Minimally allowing the top and bottom Yukawa

      B.1. Finset of charge spectra containing those which minimally allow top and bottom Yukawa

      B.2. Every element of minTopBottom allows a top Yukawa

      B.3. Every element of minTopBottom allows a bottom Yukawa

      B.4. Every charge spectrum minimally allowing a top and bottom Yukawa in minTopBottom

iv. References

There are no references for this module.

@[expose] public section

A. Charge spectra which minimally allow a finite set of potential terms

We start by defining the proposition that a charge spectrum minimally allows a finite set of potential terms, and prove some basic properties there of.

A.1. MinimallyAllowsFinsetTerms: Prop of minimally allowing a finset of potential terms

A collection of charge spectra is said to minimally allow a finite set of potential terms Ts if it allows all terms in Ts and no strict subset of it allows all terms in Ts.

def MinimallyAllowsFinsetTerms (x : ChargeSpectrum 𝓩) (Ts : Finset PotentialTerm) : Prop := y x.powerset, y = x T Ts, y.AllowsTerm T

A.2. The prop MinimallyAllowsFinsetTerms is decidable

instance (x : ChargeSpectrum 𝓩) (Ts : Finset PotentialTerm) : Decidable (x.MinimallyAllowsFinsetTerms Ts) := inferInstanceAs (Decidable ( y powerset x, y = x T Ts, y.AllowsTerm T))

A.3. Every element of MinimallyAllowsFinsetTerms allows each term in the finset

lemma allowsTerm_of_minimallyAllowsFinsetTerms {T : PotentialTerm} (h : x.MinimallyAllowsFinsetTerms Ts) (hT : T Ts) : x.AllowsTerm T := (h x (self_mem_powerset x)).mp rfl T hT

A.4. MinimallyAllowsFinsetTerms for the singleton set is equivalent to MinimallyAllowsTerm

@[simp] lemma minimallyAllowsFinsetTerms_singleton {T : PotentialTerm} : x.MinimallyAllowsFinsetTerms {T} x.MinimallyAllowsTerm T := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩T:PotentialTermx.MinimallyAllowsFinsetTerms {T} x.MinimallyAllowsTerm T All goals completed! 🐙

B. Minimally allowing the top and bottom Yukawa

We now consider the special case of those charge spectra which minimally allow a top and bottom Yukawa term.

We construct a finite set of such charge spectra given finite sets of possible 5-bar and 10 charges which contains every charge spectrum which minimally allows a top and bottom Yukawa term.

B.1. Finset of charge spectra containing those which minimally allow top and bottom Yukawa

Here we define minTopBottom in a way which is computationally efficient.

The set of charges of the form (qHd, qHu, {q5}, {-qHd-q5, q10, qHu - q10}) This includes every charge which minimally allows for the top and bottom Yukawas.

def minTopBottom (S5 S10 : Finset 𝓩) : Multiset (ChargeSpectrum 𝓩) := Multiset.dedup <| (S5.val ×ˢ S5.val ×ˢ S5.val ×ˢ S10.val).map (fun x => x.1, x.2.1, {x.2.2.1}, {- x.1 - x.2.2.1, x.2.2.2, x.2.1 - x.2.2.2})

B.2. Every element of minTopBottom allows a top Yukawa

lemma allowsTerm_topYukawa_of_mem_minTopBottom {S5 S10 : Finset 𝓩} {x : ChargeSpectrum 𝓩} (h : x minTopBottom S5 S10) : x.AllowsTerm topYukawa := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩x:ChargeSpectrum 𝓩h:x minTopBottom S5 S10x.AllowsTerm topYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩x:ChargeSpectrum 𝓩h: a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = xx.AllowsTerm topYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩q5:𝓩q10:𝓩left✝:qHd S5 qHu S5 q5 S5 q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm topYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩q5:𝓩q10:𝓩left✝:qHd S5 qHu S5 q5 S5 q10 S10 a, -a = qHu x, {x, -a - x} {-qHd - q5, q10, qHu - q10} exact -qHu, 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩q5:𝓩q10:𝓩left✝:qHd S5 qHu S5 q5 S5 q10 S10- -qHu = qHu All goals completed! 🐙, q10, 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩q5:𝓩q10:𝓩left✝:qHd S5 qHu S5 q5 S5 q10 S10{q10, - -qHu - q10} {-qHd - q5, q10, qHu - q10} All goals completed! 🐙

B.3. Every element of minTopBottom allows a bottom Yukawa

lemma allowsTerm_bottomYukawa_of_mem_minTopBottom {S5 S10 : Finset 𝓩} {x : ChargeSpectrum 𝓩} (h : x minTopBottom S5 S10) : x.AllowsTerm bottomYukawa := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩x:ChargeSpectrum 𝓩h:x minTopBottom S5 S10x.AllowsTerm bottomYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩x:ChargeSpectrum 𝓩h: a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = xx.AllowsTerm bottomYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩q5:𝓩q10:𝓩left✝:qHd S5 qHu S5 q5 S5 q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm bottomYukawa All goals completed! 🐙

B.4. Every charge spectrum minimally allowing a top and bottom Yukawa in minTopBottom

𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩h:x.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:x ofFinset S5 S10hTop:x.AllowsTerm topYukawahBottom:x.AllowsTerm bottomYukawa a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = x match x with 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := none, qHu := qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := none, qHu := qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10hTop:{ qHd := none, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm topYukawahBottom:{ qHd := none, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm bottomYukawa a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := none, qHu := qHu, Q5 := Q5, Q10 := Q10 } All goals completed! 🐙 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := qHd, qHu := none, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := qHd, qHu := none, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10hTop:{ qHd := qHd, qHu := none, Q5 := Q5, Q10 := Q10 }.AllowsTerm topYukawahBottom:{ qHd := qHd, qHu := none, Q5 := Q5, Q10 := Q10 }.AllowsTerm bottomYukawa a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := qHd, qHu := none, Q5 := Q5, Q10 := Q10 } All goals completed! 🐙 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10hTop:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm topYukawahBottom:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm bottomYukawa a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10hTop: a, -a = qHu x, {x, -a - x} Q10hBottom: x Q5, -qHd - x Q10 a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10hBottom: x Q5, -qHd - x Q10n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10 a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10 a a_1 a_2 b, (a S5 a_1 S5 a_2 S5 b S10) { qHd := some a, qHu := some a_1, Q5 := {a_2}, Q10 := {-a - a_2, b, a_1 - b} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}hx:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } ofFinset S5 S10n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10(qHd S5 qHu S5 q5 S5 q10 S10) { qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10(qHd S5 qHu S5 q5 S5 q10 S10) { qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} } = { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 } 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} } { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.powerset𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10 T {topYukawa, bottomYukawa}, { qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm T 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} } { qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.powerset 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10q5 Q5 {-qHd - q5, q10, qHu - q10} Q10 All goals completed! 🐙 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10 T {topYukawa, bottomYukawa}, { qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm T 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10T:PotentialTermhT:T {topYukawa, bottomYukawa}{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm T 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm topYukawa𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm bottomYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm topYukawa 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10 a, -a = qHu x, {x, -a - x} {-qHd - q5, q10, qHu - q10} exact -qHu, 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10- -qHu = qHu All goals completed! 🐙, q10, 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{q10, - -qHu - q10} {-qHd - q5, q10, qHu - q10} All goals completed! 🐙 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩S5:Finset 𝓩S10:Finset 𝓩qHd:𝓩qHu:𝓩Q5:Finset 𝓩Q10:Finset 𝓩h:{ qHd := some qHd, qHu := some qHu, Q5 := Q5, Q10 := Q10 }.MinimallyAllowsFinsetTerms {topYukawa, bottomYukawa}n:𝓩hn:-n = qHuq10:𝓩h10:{q10, -n - q10} Q10q5:𝓩h5:q5 Q5 -qHd - q5 Q10hx:qHd S5 qHu S5 Q5 S5 Q10 S10{ qHd := some qHd, qHu := some qHu, Q5 := {q5}, Q10 := {-qHd - q5, q10, qHu - q10} }.AllowsTerm bottomYukawa All goals completed! 🐙