The subgroup generated by an element.
Equations
- Subgroup.zpowers g = { carrier := Set.range fun (x : ℤ) => g ^ x, mul_mem' := ⋯, one_mem' := ⋯, inv_mem' := ⋯ }
Instances For
The additive subgroup generated by an element.
Equations
- AddSubgroup.zmultiples g = { carrier := Set.range fun (x : ℤ) => x • g, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
@[simp]
theorem
Subgroup.coe_zpowers
{G : Type u_1}
[Group G]
(g : G)
:
↑(Subgroup.zpowers g) = Set.range fun (x : ℤ) => g ^ x
theorem
AddSubgroup.coe_zmultiples
{G : Type u_1}
[AddGroup G]
(g : G)
:
↑(AddSubgroup.zmultiples g) = Set.range fun (x : ℤ) => x • g
noncomputable instance
Subgroup.decidableMemZPowers
{G : Type u_1}
[Group G]
{a : G}
:
DecidablePred fun (x : G) => x ∈ Subgroup.zpowers a
Equations
- Subgroup.decidableMemZPowers = Classical.decPred fun (x : G) => x ∈ Subgroup.zpowers a
noncomputable instance
AddSubgroup.decidableMemZMultiples
{G : Type u_1}
[AddGroup G]
{a : G}
:
DecidablePred fun (x : G) => x ∈ AddSubgroup.zmultiples a
Equations
- AddSubgroup.decidableMemZMultiples = Classical.decPred fun (x : G) => x ∈ AddSubgroup.zmultiples a
@[simp]
theorem
Subgroup.range_zpowersHom
{G : Type u_1}
[Group G]
(g : G)
:
((zpowersHom G) g).range = Subgroup.zpowers g
@[simp]
theorem
Subgroup.zpow_mem_zpowers
{G : Type u_1}
[Group G]
(g : G)
(k : ℤ)
:
g ^ k ∈ Subgroup.zpowers g
@[simp]
theorem
AddSubgroup.zsmul_mem_zmultiples
{G : Type u_1}
[AddGroup G]
(g : G)
(k : ℤ)
:
k • g ∈ AddSubgroup.zmultiples g
@[simp]
theorem
Subgroup.npow_mem_zpowers
{G : Type u_1}
[Group G]
(g : G)
(k : ℕ)
:
g ^ k ∈ Subgroup.zpowers g
@[simp]
theorem
AddSubgroup.nsmul_mem_zmultiples
{G : Type u_1}
[AddGroup G]
(g : G)
(k : ℕ)
:
k • g ∈ AddSubgroup.zmultiples g
@[simp]
theorem
Subgroup.forall_zpowers
{G : Type u_1}
[Group G]
{x : G}
{p : ↥(Subgroup.zpowers x) → Prop}
:
(∀ (g : ↥(Subgroup.zpowers x)), p g) ↔ ∀ (m : ℤ), p ⟨x ^ m, ⋯⟩
@[simp]
theorem
AddSubgroup.forall_zmultiples
{G : Type u_1}
[AddGroup G]
{x : G}
{p : ↥(AddSubgroup.zmultiples x) → Prop}
:
(∀ (g : ↥(AddSubgroup.zmultiples x)), p g) ↔ ∀ (m : ℤ), p ⟨m • x, ⋯⟩
@[simp]
theorem
Subgroup.exists_zpowers
{G : Type u_1}
[Group G]
{x : G}
{p : ↥(Subgroup.zpowers x) → Prop}
:
(∃ (g : ↥(Subgroup.zpowers x)), p g) ↔ ∃ (m : ℤ), p ⟨x ^ m, ⋯⟩
@[simp]
theorem
AddSubgroup.exists_zmultiples
{G : Type u_1}
[AddGroup G]
{x : G}
{p : ↥(AddSubgroup.zmultiples x) → Prop}
:
(∃ (g : ↥(AddSubgroup.zmultiples x)), p g) ↔ ∃ (m : ℤ), p ⟨m • x, ⋯⟩
theorem
Subgroup.forall_mem_zpowers
{G : Type u_1}
[Group G]
{x : G}
{p : G → Prop}
:
(∀ g ∈ Subgroup.zpowers x, p g) ↔ ∀ (m : ℤ), p (x ^ m)
theorem
AddSubgroup.forall_mem_zmultiples
{G : Type u_1}
[AddGroup G]
{x : G}
{p : G → Prop}
:
(∀ g ∈ AddSubgroup.zmultiples x, p g) ↔ ∀ (m : ℤ), p (m • x)
theorem
Subgroup.exists_mem_zpowers
{G : Type u_1}
[Group G]
{x : G}
{p : G → Prop}
:
(∃ g ∈ Subgroup.zpowers x, p g) ↔ ∃ (m : ℤ), p (x ^ m)
theorem
AddSubgroup.exists_mem_zmultiples
{G : Type u_1}
[AddGroup G]
{x : G}
{p : G → Prop}
:
(∃ g ∈ AddSubgroup.zmultiples x, p g) ↔ ∃ (m : ℤ), p (m • x)
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
@[simp]
theorem
AddSubgroup.range_zmultiplesHom
{A : Type u_2}
[AddGroup A]
(a : A)
:
((zmultiplesHom A) a).range = AddSubgroup.zmultiples a
@[simp]
theorem
AddSubgroup.intCast_mul_mem_zmultiples
{R : Type u_4}
[Ring R]
(r : R)
(k : ℤ)
:
↑k * r ∈ AddSubgroup.zmultiples r
@[deprecated AddSubgroup.intCast_mul_mem_zmultiples]
theorem
AddSubgroup.int_cast_mul_mem_zmultiples
{R : Type u_4}
[Ring R]
(r : R)
(k : ℤ)
:
↑k * r ∈ AddSubgroup.zmultiples r
Alias of AddSubgroup.intCast_mul_mem_zmultiples
.
@[simp]
theorem
AddSubgroup.intCast_mem_zmultiples_one
{R : Type u_4}
[Ring R]
(k : ℤ)
:
↑k ∈ AddSubgroup.zmultiples 1
@[deprecated AddSubgroup.intCast_mem_zmultiples_one]
theorem
AddSubgroup.int_cast_mem_zmultiples_one
{R : Type u_4}
[Ring R]
(k : ℤ)
:
↑k ∈ AddSubgroup.zmultiples 1
Alias of AddSubgroup.intCast_mem_zmultiples_one
.
@[simp]
theorem
Int.range_castAddHom
{A : Type u_4}
[AddGroupWithOne A]
:
(Int.castAddHom A).range = AddSubgroup.zmultiples 1
@[simp]
theorem
MonoidHom.map_zpowers
{G : Type u_1}
[Group G]
{N : Type u_3}
[Group N]
(f : G →* N)
(x : G)
:
Subgroup.map f (Subgroup.zpowers x) = Subgroup.zpowers (f x)
@[simp]
theorem
AddMonoidHom.map_zmultiples
{G : Type u_1}
[AddGroup G]
{N : Type u_3}
[AddGroup N]
(f : G →+ N)
(x : G)
:
AddSubgroup.map f (AddSubgroup.zmultiples x) = AddSubgroup.zmultiples (f x)
theorem
ofMul_image_zpowers_eq_zmultiples_ofMul
{G : Type u_1}
[Group G]
{x : G}
:
⇑Additive.ofMul '' ↑(Subgroup.zpowers x) = ↑(AddSubgroup.zmultiples (Additive.ofMul x))
theorem
ofAdd_image_zmultiples_eq_zpowers_ofAdd
{A : Type u_2}
[AddGroup A]
{x : A}
:
⇑Multiplicative.ofAdd '' ↑(AddSubgroup.zmultiples x) = ↑(Subgroup.zpowers (Multiplicative.ofAdd x))
instance
Subgroup.zpowers_isCommutative
{G : Type u_1}
[Group G]
(g : G)
:
(Subgroup.zpowers g).IsCommutative
Equations
- ⋯ = ⋯
instance
AddSubgroup.zmultiples_isCommutative
{G : Type u_1}
[AddGroup G]
(g : G)
:
(AddSubgroup.zmultiples g).IsCommutative
Equations
- ⋯ = ⋯
@[simp]
theorem
Subgroup.zpowers_le
{G : Type u_1}
[Group G]
{g : G}
{H : Subgroup G}
:
Subgroup.zpowers g ≤ H ↔ g ∈ H
@[simp]
theorem
AddSubgroup.zmultiples_le
{G : Type u_1}
[AddGroup G]
{g : G}
{H : AddSubgroup G}
:
AddSubgroup.zmultiples g ≤ H ↔ g ∈ H
theorem
Subgroup.zpowers_le_of_mem
{G : Type u_1}
[Group G]
{g : G}
{H : Subgroup G}
:
g ∈ H → Subgroup.zpowers g ≤ H
Alias of the reverse direction of Subgroup.zpowers_le
.
theorem
AddSubgroup.zmultiples_le_of_mem
{G : Type u_1}
[AddGroup G]
{g : G}
{H : AddSubgroup G}
:
g ∈ H → AddSubgroup.zmultiples g ≤ H
Alias of the reverse direction of AddSubgroup.zmultiples_le
.
@[simp]
@[simp]
theorem
AddSubgroup.zmultiples_eq_bot
{G : Type u_1}
[AddGroup G]
{g : G}
:
AddSubgroup.zmultiples g = ⊥ ↔ g = 0
theorem
AddSubgroup.zmultiples_ne_bot
{G : Type u_1}
[AddGroup G]
{g : G}
:
AddSubgroup.zmultiples g ≠ ⊥ ↔ g ≠ 0
@[simp]
@[simp]
@[simp]
theorem
Subgroup.centralizer_closure
{G : Type u_1}
[Group G]
(S : Set G)
:
Subgroup.centralizer ↑(Subgroup.closure S) = ⨅ g ∈ S, Subgroup.centralizer ↑(Subgroup.zpowers g)
theorem
AddSubgroup.centralizer_closure
{G : Type u_1}
[AddGroup G]
(S : Set G)
:
AddSubgroup.centralizer ↑(AddSubgroup.closure S) = ⨅ g ∈ S, AddSubgroup.centralizer ↑(AddSubgroup.zmultiples g)
theorem
Subgroup.center_eq_iInf
{G : Type u_1}
[Group G]
(S : Set G)
(hS : Subgroup.closure S = ⊤)
:
Subgroup.center G = ⨅ g ∈ S, Subgroup.centralizer ↑(Subgroup.zpowers g)
theorem
AddSubgroup.center_eq_iInf
{G : Type u_1}
[AddGroup G]
(S : Set G)
(hS : AddSubgroup.closure S = ⊤)
:
AddSubgroup.center G = ⨅ g ∈ S, AddSubgroup.centralizer ↑(AddSubgroup.zmultiples g)
theorem
Subgroup.center_eq_infi'
{G : Type u_1}
[Group G]
(S : Set G)
(hS : Subgroup.closure S = ⊤)
:
Subgroup.center G = ⨅ (g : ↑S), Subgroup.centralizer ↑(Subgroup.zpowers ↑g)
theorem
AddSubgroup.center_eq_infi'
{G : Type u_1}
[AddGroup G]
(S : Set G)
(hS : AddSubgroup.closure S = ⊤)
:
AddSubgroup.center G = ⨅ (g : ↑S), AddSubgroup.centralizer ↑(AddSubgroup.zmultiples ↑g)