Zulip Chat Archive
Stream: mathlib4
Topic: cosset
vxctyxeha (Apr 13 2025 at 03:25):
Can this code be simplified?
import Mathlib
open Equiv Equiv.Perm Subgroup Set Finset MulOpposite
open Classical
open scoped Pointwise
abbrev S3 := Perm (Fin 3)
theorem H_left_cosets_in_S3_local_defs :
let H : Subgroup S3 := Subgroup.closure {swap 0 1}
let S3_elements : Finset S3 := univ
Finset.image (fun g => g • (H : Set S3)) S3_elements =
{
{1, swap 0 1}, -- H = eH
{swap 0 2, swap 0 1 * swap 1 2}, -- (0 2)H = {(0 2), (0 1 2)}
{swap 1 2, swap 1 2 * swap 0 1} -- (1 2)H = {(1 2), (0 2 1)}
}
:= by
sorry
theorem H_right_cosets_in_S3_local_defs :
let H : Subgroup S3 := Subgroup.closure {swap 0 1}
let S3_elements : Finset S3 := univ
Finset.image (fun g => op g • (H : Set S3)) S3_elements =
{
{1, swap 0 1}, -- H = He
{swap 0 2, swap 1 2 * swap 0 1}, -- H(0 2) = {(0 2), (0 2 1)}
{swap 1 2, swap 0 1 * swap 1 2} -- H(1 2) = {(1 2), (0 1 2)}
}
:= by
sorry
Kim Morrison (Apr 13 2025 at 03:33):
State it as two separate theorems.
Edison Xie (Apr 13 2025 at 03:48):
import Mathlib
open scoped Pointwise
abbrev S3 := Equiv.Perm (Fin 3)
open Equiv MulOpposite in
theorem h (H : Subgroup S3) (hH : H = Subgroup.closure {swap 0 1}) :
{g • (H : Set S3) | g : S3} = {{1, swap 0 1}, {swap 0 2, swap 0 1 * swap 1 2},
{swap 1 2, swap 1 2 * swap 0 1}} ∧ {op g • (H : Set S3) | g : S3} = {{1, swap 0 1},
{swap 0 2, swap 1 2 * swap 0 1}, {swap 1 2, swap 0 1 * swap 1 2}} := by
sorry
Last updated: May 02 2025 at 03:31 UTC