Two-power ranks of finite abelian groups
DefinitionThe subgroup \(2^kA\)#✓fully proved
For an abelian group \(A\), written additively, and a natural number \(k\), \(2^kA\) is the subgroup \(\{2^k a : a \in A\}\) of \(A\), the image of multiplication by \(2^k\).
def twoPowerImage (A : Type*) [AddCommGroup A] (k : ℕ) : Submodule ℤ A :=
LinearMap.range (LinearMap.lsmul ℤ A (2 ^ k : ℤ))
AbbreviationThe two-power layer \(2^{j-1}A / 2^jA\)#✓fully proved
For an abelian group \(A\), written additively, and a natural number \(j\), this is the quotient group \(2^{j-1}A / 2^jA\), where \(2^kA\) denotes the subgroup \(\{2^k a : a \in A\}\) and \(2^jA \subseteq 2^{j-1}A\). For \(j = 0\), where \(j - 1\) is read as \(0\), it is the trivial quotient \(A / A\).
abbrev higherTwoPowerLayer (A : Type*) [AddCommGroup A] (j : ℕ) : Type _ :=
twoPowerImage A (j - 1) ⧸
((twoPowerImage A j).comap (twoPowerImage A (j - 1)).subtype).toAddSubgroup
def twoPowerImage (A : Type*) [AddCommGroup A] (k : ℕ) : Submodule ℤ A :=
LinearMap.range (LinearMap.lsmul ℤ A (2 ^ k : ℤ))
MathlibExt/GroupTheory/TwoPowerRank.lean:27
Uses 1 · Used by 1
DefinitionThe \(2^j\)-rank of a finite abelian group#✓fully proved
Let \(A\) be a finite abelian group, written additively, and let \(j \ge 1\) be an integer. Writing \(2^kA\) for the subgroup \(\{2^k a : a \in A\}\), the \(2^j\)-rank of \(A\) is the dimension over \(\mathbb{F}_2\) of the quotient \(2^{j-1}A / 2^jA\), which is an \(\mathbb{F}_2\)-vector space because \(2\) kills it.
noncomputable def higherTwoPowerRank (A : Type*) [AddCommGroup A] [Finite A]
(j : ℕ) (hj : 0 < j) : ℕ :=
letI : Fact (0 < j) := ⟨hj⟩
Module.finrank (ZMod 2) (higherTwoPowerLayer A j)
abbrev higherTwoPowerLayer (A : Type*) [AddCommGroup A] (j : ℕ) : Type _ :=
twoPowerImage A (j - 1) ⧸
((twoPowerImage A j).comap (twoPowerImage A (j - 1)).subtype).toAddSubgroup
MathlibExt/GroupTheory/TwoPowerRank.lean:40
Uses 2 · Used by 1
AbbreviationThe \(4\)-rank of a finite abelian group#✓fully proved
For a finite abelian group \(A\), written additively, the \(4\)-rank of \(A\) is the dimension over \(\mathbb{F}_2\) of the quotient \(2A / 4A\), where \(2A = \{2a : a \in A\}\) and \(4A = \{4a : a \in A\}\); it is the \(2^j\)-rank of \(A\) for \(j = 2\).
noncomputable abbrev fourRank (A : Type*) [AddCommGroup A] [Finite A] : ℕ :=
higherTwoPowerRank A 2 (by norm_num)
noncomputable def higherTwoPowerRank (A : Type*) [AddCommGroup A] [Finite A]
(j : ℕ) (hj : 0 < j) : ℕ :=
letI : Fact (0 < j) := ⟨hj⟩
Module.finrank (ZMod 2) (higherTwoPowerLayer A j)
MathlibExt/GroupTheory/TwoPowerRank.lean:63
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.