Zulip Chat Archive
Stream: Is there code for X?
Topic: CommGroup MonoidHom.range if the domain is a CommGroup
Yudai Yamazaki (Jul 30 2024 at 11:20):
Do we already have this?
import Mathlib.Algebra.Group.Subgroup.Basic
variable {M N : Type*} [CommGroup M] [Group N] {f : M →* N}
-- failed to synthesize
-- #synth CommGroup f.range
theorem MonoidHom.mul_comm_of_mem_range {n₁ n₂ : N} (h₁ : n₁ ∈ f.range) (h₂ : n₂ ∈ f.range) :
n₁ * n₂ = n₂ * n₁ := by
obtain ⟨m₁, rfl⟩ := h₁
obtain ⟨m₂, rfl⟩ := h₂
rw [← map_mul, mul_comm, map_mul]
instance : CommGroup f.range where
mul_comm := by
intro ⟨_, h₁⟩ ⟨_, h₂⟩
simp only [Submonoid.mk_mul_mk, Subtype.mk.injEq]
exact MonoidHom.mul_comm_of_mem_range h₁ h₂
Edward van de Meent (Jul 30 2024 at 16:54):
i imagine Subgroup.IsCommutative.commGroup would be involved...
Edward van de Meent (Jul 30 2024 at 16:56):
i suppose the missing instance is the variant of Subgroup.map_isCommutative with range
rather than map
...
Yudai Yamazaki (Jul 30 2024 at 17:30):
Thank you for the suggestions.
Subgroup.map_isCommutative almost works, but yes, IsCommutative
instances for subgroups of CommGroup
are missing.
import Mathlib.Algebra.Group.Subgroup.Basic
variable {M N : Type*} [CommGroup M] [Group N] {f : M →* N}
-- failed to synthesize
-- #synth (⊤ : Subgroup M).IsCommutative
instance (H : Subgroup M) : H.IsCommutative where
is_comm := CommMagma.to_isCommutative
instance : f.range.IsCommutative := MonoidHom.range_eq_map f ▸ Subgroup.map_isCommutative ⊤ f
#synth CommGroup f.range
theorem MonoidHom.mul_comm_of_mem_range {n₁ n₂ : N} (h₁ : n₁ ∈ f.range) (h₂ : n₂ ∈ f.range) :
n₁ * n₂ = n₂ * n₁ := by
have := mul_comm (⟨n₁, h₁⟩ : f.range) ⟨n₂, h₂⟩
simp only [Submonoid.mk_mul_mk, Subtype.mk.injEq] at this
exact this
Yudai Yamazaki (Jul 30 2024 at 17:32):
Would it be worth to be a part of the Mathlib? I will be happy to make a PR if so, as I need the theorem for my project.
Ruben Van de Velde (Jul 30 2024 at 20:33):
Yeah, probably worth adding
Yudai Yamazaki (Jul 31 2024 at 15:26):
I have opened a PR: leanprover-community/mathlib4#15370. I would appreciate your comments.
Last updated: May 02 2025 at 03:31 UTC