This module provides a definition of a block of a coset FFT domain (definition 4.16 from [ACFY24b]).
Main definitions #
block: A block of a coset FFT domain at a pointx.blockIdx: The indices of the elements of a block of a coset FFT domain at a pointx.
Main results #
card_block_le: The cardinality bound of a block.card_blockIdx: The cardinality ofblockandblockIdxcoincide.
References #
def
Domain.CosetFftDomainClass.block
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
(ω : D)
(k : ℕ)
(x : F)
:
Finset F
The kth roots of x from the domain ω.
This is the definition 4.16 from [ACFY24b].
Note, we do not require x to be from a subdomain.
Instances For
@[simp]
theorem
Domain.CosetFftDomainClass.mem_block
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x y : F}
:
An equivalent definition of the membership to a block.
@[simp]
theorem
Domain.CosetFftDomainClass.block_x_0
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
:
There are no roots of 0 in any domain.
@[simp]
theorem
Domain.CosetFftDomainClass.block_k_1
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{x : F}
:
theorem
Domain.CosetFftDomainClass.block_eq_nthRootsFinset
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x : F}
:
An alternative definition of block in terms of
Polynomial.nthRootsFinset.
@[simp]
theorem
Domain.CosetFftDomainClass.card_block_le
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x : F}
:
The cardinality of a block does not exceed its degree.
theorem
Domain.CosetFftDomainClass.mem_blockIdx_iff_mem_block
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x : F}
{i : ι}
:
@[simp]
theorem
Domain.CosetFftDomainClass.blockIdx_x_0
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
:
There are no roots of 0 in any domain.
theorem
Domain.CosetFftDomainClass.blockIdx_k_1_of_eq
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{x : F}
{i : ι}
(hi : ω i = x)
:
theorem
Domain.CosetFftDomainClass.blockIdx_k_1_of_ne_mem
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{x : F}
(hx : x ∉ ω)
:
theorem
Domain.CosetFftDomainClass.blockIdx_eq_preimage_block
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x : F}
:
@[simp]
theorem
Domain.CosetFftDomainClass.card_blockIdx
{ι : Type}
[Fintype ι]
[AddCommGroup ι]
{F : Type}
[Field F]
[DecidableEq F]
{D : Type}
[FunLike D ι F]
[CosetFftDomainClass D ι F]
{ω : D}
{k : ℕ}
{x : F}
: