Fluxes into list #
The types FluxesFive
and FluxesTen
are defined as multisets, but
when combining them with charges, they are needed 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, the 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.
FluxesFive
to lists #
The allowed pairs of fluxes in FluxesFive
which have no exotics.
This can be found using:
(elemsNoExotics.bind (fun x => x.1)).toFinset
Equations
Instances For
Constructs a list of ℤ × ℤ
from a F : FluxesFive
, if F
is obeys
NoExotics
and HasNoZero
, then this returns a list equivalent
to the underlying multiset of F
, else it returns junk.
Equations
- F.toList = List.flatMap (fun (x : ℤ × ℤ) => List.replicate (Multiset.count x F) x) FTheory.SU5U1.FluxesFive.allowedPairs
Instances For
FluxesTen
to lists #
The allowed pairs of fluxes in FluxesTen
which have no exotics.
This can be found using:
(elemsNoExotics.bind (fun x => x.1)).toFinset
Equations
Instances For
Constructs a list of ℤ × ℤ
from a F : FluxesTen
, if F
is obeys
NoExotics
and HasNoZero
, then this returns a list equivalent
to the underlying multiset of F
, else it returns junk.
Equations
- F.toList = List.flatMap (fun (x : ℤ × ℤ) => List.replicate (Multiset.count x F) x) FTheory.SU5U1.FluxesTen.allowedPairs