Coset FFT domains #
This file defines coset FFT domains and their abstract interface.
A coset FFT domain is a multiplicative coset of a finite subgroup of a field,
indexed additively. The typeclass CosetFftDomainClass provides an abstract
axiomatization of such domains, while CosetFftDomain gives a concrete
representation.
Main definitions #
CosetFftDomain: A concrete coset FFT domain.CosetFftDomainClass: Typeclass for objects behaving like coset FFT domains.CosetFftDomainClass.mkSubgroupUnit: Recovers the underlying subgroup element.CosetFftDomainClass.toCosetFftDomain: Constructs a concrete domain from a class instance.SmoothCosetFftDomain: Coset FFT domains indexed byFin (2 ^ n).
Main results #
CosetFftDomainClass.ne_zero: Elements of a coset FFT domain are nonzero.CosetFftDomainClass.toCosetFftDomain_of_CosetFftDomain: Reconstruction is the identity on concrete domains.CosetFftDomain.map_0_eq_coset_generator: The value at zero is the coset generator.CosetFftDomain.injective: Coset FFT domains are injective.
A coset FFT domain is a domain of the form x · G for
an FFT domain G.
- subgroupDomain_inj : Function.Injective ⇑self.subgroupDomain
- cosetGenerator : Fˣ
Instances For
Typeclass for objects behaving like coset FFT domains as functions ι → F.
The axioms say that the image is a shifted multiplicative subgroup:
ω 0 is the coset representative, multiplication in
the subgroup corresponds to addition in ι,
negation gives inverses up to the coset factor, and the map is injective.
- map_zero_unit (ω : D) : IsUnit (ω 0)
- injective (ω : D) : Function.Injective ⇑ω
Instances
Every point of a coset FFT domain is nonzero.
Evaluation of a concrete coset FFT domain is multiplication of
the coset generator by the subgroup element indexed by i.
CosetFftDomain is indeed an instance of CosetFftDomainClass.
The normalized value (ω 0)⁻¹ * ω i, packaged as a unit of F.
This removes the coset shift and recovers the underlying subgroup element.
Instances For
Reconstruct a concrete CosetFftDomain from any object
of a type satisfying CosetFftDomainClass.
Instances For
Reconstructing a concrete coset FFT domain from its class instance gives back the original domain.
Reconstructing a concrete coset FFT domain preserves evaluation.
Any class-level coset FFT domain coerces to an embedding into F.
Extensionality for class-level coset FFT domains. Domains are equal if their evaluations are equal.
The value at zero is the coset generator.
A concrete coset FFT domain is injective as a function.
A concrete coset FFT domain is injective on every set.
The elements of a domain as a finset.
Instances For
The cardinality of the finset of elements of a domain is the cardinality of the indexing type.
The finset of elements of a concrete coset FFT domain.