Quanta into list #
The types FiveQuanta
and TenQuanta
are defined as multisets, but
in some instances it is good to have them as lists. Usually turning
a multiset into a list is done using choice, and therefore is not computable.
However, in the cases when NoExotics
and HasNoZero
hold,
and all the charges in the FiveQuanta
and TenQuanta
correspond to
some CodimensionOneConfig
then possible elements of
FluxesFive
and FluxesTen
are known. Thus we can use those
elements to construct a list of the fluxes from multisets, in a way which is computable.
This file provides the definitions and lemmas needed to do this.
FiveQuanta
to lists #
The allowed elements of a FiveQuanta
for which the underlying FluxesFive
obeys
NoExotics
and HasNoZero
and for which the charges are determined by
a CodimensionOneConfig
.
Equations
- FTheory.SU5U1.FiveQuanta.allowedElems I = List.flatMap (fun (x : ℤ) => List.map (fun (y : ℤ × ℤ) => (x, y.1, y.2)) FTheory.SU5U1.FluxesFive.allowedPairs) I.allowedBarFiveChargesList
Instances For
A list from a FiveQuanta
which when the underlying FluxesFive
obeys
NoExotics
and HasNoZero
, and the charges are determined by
a CodimensionOneConfig
, is a list whose underlying multiset is the
FiveQuanta
. Otherwise this list produces junk.
Equations
- FTheory.SU5U1.FiveQuanta.toList I F = List.flatMap (fun (x : ℤ × ℤ × ℤ) => List.replicate (Multiset.count x F) x) (FTheory.SU5U1.FiveQuanta.allowedElems I)
Instances For
TenQuanta
to lists #
The allowed elements of a FiveQuanta
for which the underlying FluxesFive
obeys
NoExotics
and HasNoZero
and for which the charges are determined by
a CodimensionOneConfig
.
Equations
- FTheory.SU5U1.TenQuanta.allowedElems I = List.flatMap (fun (x : ℤ) => List.map (fun (y : ℤ × ℤ) => (x, y.1, y.2)) FTheory.SU5U1.FluxesTen.allowedPairs) I.allowedTenChargesList
Instances For
A list from a TenQuanta
which when the underlying FluxesTen
obeys
NoExotics
and HasNoZero
, and the charges are determined by
a CodimensionOneConfig
, is a list whose underlying multiset is the
TenQuanta
. Otherwise this list produces junk.
Equations
- FTheory.SU5U1.TenQuanta.toList I F = List.flatMap (fun (x : ℤ × ℤ × ℤ) => List.replicate (Multiset.count x F) x) (FTheory.SU5U1.TenQuanta.allowedElems I)