Zulip Chat Archive

Stream: mathlib4

Topic: How can I get a more natural way to write right cosets?


ZHAO Jinxiang (Dec 14 2024 at 07:35):

Suppose that HH is a normal subgroup of the group GG. Prove that Hg1HgH ⊆ g⁻¹ H g.

import Mathlib.Algebra.Group.Basic
import Mathlib.Tactic

open scoped Pointwise

example {G : Type*} [Group G] (H : Subgroup G) (h : H.Normal) (g : G):
    (H : Set G)  (MulOpposite.op g  (g⁻¹  H)) := by
  intro x hx
  -- by definition of normal subgroup, we have $g * x * g⁻¹ ∈ H$.
  replace h := h.conj_mem _ hx g
  use x * g⁻¹
  apply And.intro
  · show x * g⁻¹  (g⁻¹  H : Set G)
    rw [mem_leftCoset_iff]
    simpa [mul_assoc] using h
  · simp

In this example, we need to write MulOpposite.op, but in math we write g⁻¹ H g. Is there a way to write this while keeping the order of the elements in math?

Also, does g1Hgg⁻¹ H g have any special meaning? Is this called the conjugation of HH with respect to gg?

ZHAO Jinxiang (Dec 14 2024 at 07:40):

It seems that mathlib3 has same element order in right coset, but mathlib4 not

https://leanprover-community.github.io/mathlib_docs/group_theory/coset.html
https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Coset/Basic.html

Eric Wieser (Dec 14 2024 at 08:45):

You can use open scope RightActions and then H <• g


Last updated: May 02 2025 at 03:31 UTC