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 Physlib.Particles.SuperSymmetry.SU5.ChargeSpectrum.AllowsTerm

Pheno constrained charge spectra

i. Overview

We define a predicate IsPhenoConstrained on ChargeSpectrum 𝓩 which is true if the charge spectrum allows any super-potential or KΓ€hler potential term leading to proton decay or R-parity violation.

We prove basic properties of this predicate including monotonicity.

We define some variations of this result.

ii. Key results

    IsPhenoConstrained: The predicate defining a pheno-constrained charge spectrum as one allowing any term leading to proton decay or R-parity violation.

    phenoConstrainingChargesSP: The multiset of charges of terms in the super-potential leading to a pheno-constrained charge spectrum.

    IsPhenoConstrainedQ5: The predicate defining when a charge spectrum becomes pheno-constrained after adding a single charge to the Q5 set.

    IsPhenoConstrainedQ10: The predicate defining when a charge spectrum becomes pheno-constrained after adding a single charge to the Q10 set.

iii. Table of contents

    A. Phenomenological constrained charge spectra

      A.1. Decidability of IsPhenoConstrained

      A.2. The empty charge spectrum is not pheno-constrained

      A.3. Monotonicity of being pheno-constrained

    B. Charges of pheno-constraining terms in the super potential

      B.1. The empty charge spectrum has an empty set of pheno-constraining term charges

      B.2. The charges of pheno-constraining terms in the SP is monotone

    C. Phenomenologically constrained charge spectra after adding a single Q5 charge

      C.2. Reducing the condition IsPhenoConstrainedQ5

      C.3. Decidability of IsPhenoConstrainedQ5

      C.4. Charge spectra with added Q5 charge is pheno-constrained iff

    D. Phenomenologically constrained charge spectra after adding a single Q10 charge

      D.2. Reducing the condition IsPhenoConstrainedQ10

      D.3. Decidability of IsPhenoConstrainedQ10

      D.4. Charge spectra with added Q10 charge is pheno-constrained iff

iv. References

There are no known references for the material in this file.

@[expose] public section

A. Phenomenological constrained charge spectra

A charge is pheno-constrained if it leads to the presence of any term causing proton decay {W1, Ξ›, W2, K1} or R-parity violation {Ξ², Ξ›, W2, W4, K1, K2}.

def IsPhenoConstrained (x : ChargeSpectrum 𝓩) : Prop := x.AllowsTerm ΞΌ ∨ x.AllowsTerm Ξ² ∨ x.AllowsTerm Ξ› ∨ x.AllowsTerm W2 ∨ x.AllowsTerm W4 ∨ x.AllowsTerm K1 ∨ x.AllowsTerm K2 ∨ x.AllowsTerm W1

A.1. Decidability of IsPhenoConstrained

instance decidableIsPhenoConstrained [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) : Decidable x.IsPhenoConstrained := inferInstanceAs (Decidable (x.AllowsTerm ΞΌ ∨ x.AllowsTerm Ξ² ∨ x.AllowsTerm Ξ› ∨ x.AllowsTerm W2 ∨ x.AllowsTerm W4 ∨ x.AllowsTerm K1 ∨ x.AllowsTerm K2 ∨ x.AllowsTerm W1))

A.2. The empty charge spectrum is not pheno-constrained

The empty charge spectrum does not allow any terms, and so is not pheno-constrained.

@[simp] lemma not_isPhenoConstrained_empty : Β¬ IsPhenoConstrained (βˆ… : ChargeSpectrum 𝓩) := 𝓩:Typeinst✝:AddCommGroup π“©βŠ’ Β¬βˆ….IsPhenoConstrained All goals completed! πŸ™

A.3. Monotonicity of being pheno-constrained

If a charge spectrum x is pheno-constrained, then any charge spectrum y containing x is also pheno-constrained.

lemma isPhenoConstrained_mono {x y : ChargeSpectrum 𝓩} (h : x βŠ† y) (hx : x.IsPhenoConstrained) : y.IsPhenoConstrained := 𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhx:x.IsPhenoConstrained⊒ y.IsPhenoConstrained 𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhx:x.AllowsTerm ΞΌ ∨ x.AllowsTerm Ξ² ∨ x.AllowsTerm Ξ› ∨ x.AllowsTerm W2 ∨ x.AllowsTerm W4 ∨ x.AllowsTerm K1 ∨ x.AllowsTerm K2 ∨ x.AllowsTerm W1⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1 𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm μ⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm β⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm Ξ›βŠ’ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm W2⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm W4⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm K1⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm K2⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm W1⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1 all_goals 𝓩:Typeinst✝:AddCommGroup 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yhr:x.AllowsTerm W1h':y.AllowsTerm W1⊒ y.AllowsTerm ΞΌ ∨ y.AllowsTerm Ξ² ∨ y.AllowsTerm Ξ› ∨ y.AllowsTerm W2 ∨ y.AllowsTerm W4 ∨ y.AllowsTerm K1 ∨ y.AllowsTerm K2 ∨ y.AllowsTerm W1 All goals completed! πŸ™

B. Charges of pheno-constraining terms in the super potential

The collection of charges of super-potential terms leading to a pheno-constrained model.

def phenoConstrainingChargesSP (x : ChargeSpectrum 𝓩) : Multiset 𝓩 := x.ofPotentialTerm' ΞΌ + x.ofPotentialTerm' Ξ² + x.ofPotentialTerm' Ξ› + x.ofPotentialTerm' W2 + x.ofPotentialTerm' W4 + x.ofPotentialTerm' W1

B.1. The empty charge spectrum has an empty set of pheno-constraining term charges

@[simp] lemma phenoConstrainingChargesSP_empty : phenoConstrainingChargesSP (βˆ… : ChargeSpectrum 𝓩) = βˆ… := 𝓩:Typeinst✝:AddCommGroup π“©βŠ’ βˆ….phenoConstrainingChargesSP = βˆ… All goals completed! πŸ™

B.2. The charges of pheno-constraining terms in the SP is monotone

lemma phenoConstrainingChargesSP_mono [DecidableEq 𝓩] {x y : ChargeSpectrum 𝓩} (h : x βŠ† y) : x.phenoConstrainingChargesSP βŠ† y.phenoConstrainingChargesSP := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† y⊒ x.phenoConstrainingChargesSP βŠ† y.phenoConstrainingChargesSP 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† y⊒ x.ofPotentialTerm' ΞΌ + x.ofPotentialTerm' Ξ² + x.ofPotentialTerm' Ξ› + x.ofPotentialTerm' W2 + x.ofPotentialTerm' W4 + x.ofPotentialTerm' W1 βŠ† y.ofPotentialTerm' ΞΌ + y.ofPotentialTerm' Ξ² + y.ofPotentialTerm' Ξ› + y.ofPotentialTerm' W2 + y.ofPotentialTerm' W4 + y.ofPotentialTerm' W1 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† y⊒ βˆ€ ⦃x_1 : 𝓩⦄, x_1 ∈ x.ofPotentialTerm' ΞΌ + x.ofPotentialTerm' Ξ² + x.ofPotentialTerm' Ξ› + x.ofPotentialTerm' W2 + x.ofPotentialTerm' W4 + x.ofPotentialTerm' W1 β†’ x_1 ∈ y.ofPotentialTerm' ΞΌ + y.ofPotentialTerm' Ξ² + y.ofPotentialTerm' Ξ› + y.ofPotentialTerm' W2 + y.ofPotentialTerm' W4 + y.ofPotentialTerm' W1 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:π“©βŠ’ z ∈ x.ofPotentialTerm' ΞΌ + x.ofPotentialTerm' Ξ² + x.ofPotentialTerm' Ξ› + x.ofPotentialTerm' W2 + x.ofPotentialTerm' W4 + x.ofPotentialTerm' W1 β†’ z ∈ y.ofPotentialTerm' ΞΌ + y.ofPotentialTerm' Ξ² + y.ofPotentialTerm' Ξ› + y.ofPotentialTerm' W2 + y.ofPotentialTerm' W4 + y.ofPotentialTerm' W1 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:π“©βŠ’ z ∈ x.ofPotentialTerm' ΞΌ ∨ z ∈ x.ofPotentialTerm' Ξ² ∨ z ∈ x.ofPotentialTerm' Ξ› ∨ z ∈ x.ofPotentialTerm' W2 ∨ z ∈ x.ofPotentialTerm' W4 ∨ z ∈ x.ofPotentialTerm' W1 β†’ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' ΞΌ ∨ z ∈ x.ofPotentialTerm' Ξ² ∨ z ∈ x.ofPotentialTerm' Ξ› ∨ z ∈ x.ofPotentialTerm' W2 ∨ z ∈ x.ofPotentialTerm' W4 ∨ z ∈ x.ofPotentialTerm' W1⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' μ⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' β⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' Ξ›βŠ’ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' W2⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' W4⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' W1⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1 all_goals 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩y:ChargeSpectrum 𝓩h:x βŠ† yz:𝓩hr:z ∈ x.ofPotentialTerm' W1h':z ∈ y.ofPotentialTerm' W1⊒ z ∈ y.ofPotentialTerm' ΞΌ ∨ z ∈ y.ofPotentialTerm' Ξ² ∨ z ∈ y.ofPotentialTerm' Ξ› ∨ z ∈ y.ofPotentialTerm' W2 ∨ z ∈ y.ofPotentialTerm' W4 ∨ z ∈ y.ofPotentialTerm' W1 All goals completed! πŸ™

C. Phenomenologically constrained charge spectra after adding a single Q5 charge

We now define IsPhenoConstrainedQ5 which gives the condition that a charge spectrum becomes pheno-constrained after adding a single charge to the Q5 set.

The proposition which is true if the addition of a charge q5 to a set of charge x leads x to being phenomenologically constrained.

def IsPhenoConstrainedQ5 [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q5 : 𝓩) : Prop := x.AllowsTermQ5 q5 ΞΌ ∨ x.AllowsTermQ5 q5 Ξ² ∨ x.AllowsTermQ5 q5 Ξ› ∨ x.AllowsTermQ5 q5 W2 ∨ x.AllowsTermQ5 q5 W4 ∨ x.AllowsTermQ5 q5 K1 ∨ x.AllowsTermQ5 q5 K2 ∨ x.AllowsTermQ5 q5 W1

C.2. Reducing the condition IsPhenoConstrainedQ5

lemma isPhenoConstrainedQ5_iff [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q5 : 𝓩) : x.IsPhenoConstrainedQ5 q5 ↔ x.AllowsTermQ5 q5 Ξ² ∨ x.AllowsTermQ5 q5 Ξ› ∨ x.AllowsTermQ5 q5 W4 ∨ x.AllowsTermQ5 q5 K1 ∨ x.AllowsTermQ5 q5 W1 := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩q5:π“©βŠ’ x.IsPhenoConstrainedQ5 q5 ↔ x.AllowsTermQ5 q5 Ξ² ∨ x.AllowsTermQ5 q5 Ξ› ∨ x.AllowsTermQ5 q5 W4 ∨ x.AllowsTermQ5 q5 K1 ∨ x.AllowsTermQ5 q5 W1 All goals completed! πŸ™

C.3. Decidability of IsPhenoConstrainedQ5

instance decidableIsPhenoConstrainedQ5 [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q5 : 𝓩) : Decidable (x.IsPhenoConstrainedQ5 q5) := decidable_of_iff _ (isPhenoConstrainedQ5_iff x q5).symm

C.4. Charge spectra with added Q5 charge is pheno-constrained iff

𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W1 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained all_goals All goals completed! πŸ™ 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:π“©βŠ’ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained β†’ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ5 q5⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 ΞΌ ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 Ξ² ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 Ξ› ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W2 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W4 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 K1 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 K2 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W1⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 μ⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 β⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 Ξ›βŠ’ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W2⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W4⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 K1⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 K2⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W1⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained all_goals 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ5 q5 W1hr':{ qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained All goals completed! πŸ™ 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q5:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 } βŠ† { qHd := qHd, qHu := qHu, Q5 := insert q5 Q5, Q10 := Q10 } All goals completed! πŸ™

D. Phenomenologically constrained charge spectra after adding a single Q10 charge

We now define IsPhenoConstrainedQ10 which gives the condition that a charge spectrum becomes pheno-constrained after adding a single charge to the Q10 set.

The proposition which is true if the addition of a charge q10 to a set of charges x leads x to being phenomenologically constrained.

def IsPhenoConstrainedQ10 [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q10 : 𝓩) : Prop := x.AllowsTermQ10 q10 ΞΌ ∨ x.AllowsTermQ10 q10 Ξ² ∨ x.AllowsTermQ10 q10 Ξ› ∨ x.AllowsTermQ10 q10 W2 ∨ x.AllowsTermQ10 q10 W4 ∨ x.AllowsTermQ10 q10 K1 ∨ x.AllowsTermQ10 q10 K2 ∨ x.AllowsTermQ10 q10 W1

D.2. Reducing the condition IsPhenoConstrainedQ10

lemma isPhenoConstrainedQ10_iff [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q10 : 𝓩) : x.IsPhenoConstrainedQ10 q10 ↔ x.AllowsTermQ10 q10 Ξ› ∨ x.AllowsTermQ10 q10 W2 ∨ x.AllowsTermQ10 q10 K1 ∨ x.AllowsTermQ10 q10 K2 ∨ x.AllowsTermQ10 q10 W1 := 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩x:ChargeSpectrum 𝓩q10:π“©βŠ’ x.IsPhenoConstrainedQ10 q10 ↔ x.AllowsTermQ10 q10 Ξ› ∨ x.AllowsTermQ10 q10 W2 ∨ x.AllowsTermQ10 q10 K1 ∨ x.AllowsTermQ10 q10 K2 ∨ x.AllowsTermQ10 q10 W1 All goals completed! πŸ™

D.3. Decidability of IsPhenoConstrainedQ10

instance decidableIsPhenoConstrainedQ10 [DecidableEq 𝓩] (x : ChargeSpectrum 𝓩) (q10 : 𝓩) : Decidable (x.IsPhenoConstrainedQ10 q10) := decidable_of_iff _ (isPhenoConstrainedQ10_iff x q10).symm

D.4. Charge spectra with added Q10 charge is pheno-constrained iff

𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W1 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained all_goals All goals completed! πŸ™ 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:π“©βŠ’ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained β†’ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrainedQ10 q10⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 ΞΌ ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 Ξ² ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 Ξ› ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W2 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W4 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 K1 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 K2 ∨ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 μ⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 β⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 Ξ›βŠ’ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W2⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W4⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 K1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 K2⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained all_goals 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.AllowsTermQ10 q10 W1hr':{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.AllowsTerm W1⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained All goals completed! πŸ™ 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 }.IsPhenoConstrained 𝓩:Typeinst✝¹:AddCommGroup 𝓩inst✝:DecidableEq 𝓩qHd:Option 𝓩qHu:Option 𝓩Q5:Finset 𝓩Q10:Finset 𝓩q10:𝓩hr:{ qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 }.IsPhenoConstrained⊒ { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := Q10 } βŠ† { qHd := qHd, qHu := qHu, Q5 := Q5, Q10 := insert q10 Q10 } All goals completed! πŸ™