Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(GroupTheory/SpecificGroups): define an isomorphism between a non-cyclic group of order 4 and the dihedral group of order 4 #8360

Closed
wants to merge 8 commits into from

Conversation

wupr
Copy link
Collaborator

@wupr wupr commented Nov 12, 2023


This was suggested in a comment on #7937.

Open in Gitpod

@wupr wupr added awaiting-review t-algebra Algebra (groups, rings, fields, etc) labels Nov 12, 2023
@wupr
Copy link
Collaborator Author

wupr commented Nov 12, 2023

I wasn't sure where to place this definition. I imagine further classification of finite groups of small order would probably justify a dedicated "Mathlib/GroupTheory/SpecificGroups/SmallOrder.lean".

@wupr
Copy link
Collaborator Author

wupr commented Nov 12, 2023

A note on the final simp. I added (config := { decide := true }) because replacing it with (config := { decide := false }) would fail to close the goal, and if I'm understanding correctly, the forthcoming change (leanprover/lean4#2722) in Lean v4.4.0 would break the proof.

@wupr wupr added awaiting-author A reviewer has asked the author a question or requested changes awaiting-review and removed awaiting-review awaiting-author A reviewer has asked the author a question or requested changes labels Nov 13, 2023
@j-loreaux
Copy link
Collaborator

I have thoughts about this, please don't merge yet.

@j-loreaux
Copy link
Collaborator

I've just opened #8565, which I think may be the way we actually want to go about this (it implements @jcommelin suggestion from #7937 in this comment). With #8565, the result in this PR can be obtained as follows:

import Mathlib.GroupTheory.SpecificGroups.KleinFour

variable {G : Type} [Group G] [Fintype G]

/-- A non-cyclic group of order 4 is isomorphic to the dihedral group of order 4. -/
noncomputable def mulEquivOfCardEqFourAndNotIsCyclic (h1 : Fintype.card G = 4) (h2 : ¬IsCyclic G) :
    DihedralGroup 2 ≃* G :=
  IsKleinFour.mulEquiv' ((Fintype.equivOfCardEq h1.symm : DihedralGroup 2 ≃ G).setValue 1 1)
    (by simp) <| (IsKleinFour.not_isCyclic_iff h1).mp h2

@wupr
Copy link
Collaborator Author

wupr commented Nov 22, 2023

Thanks @j-loreaux . I might just move my def to KleinFour.lean once #8565 is merge. A lemma to similar effect has been added to #8565 after discussion with the author.

@wupr
Copy link
Collaborator Author

wupr commented Nov 27, 2023

I'm closing this PR in favour of #8565.

@wupr wupr closed this Nov 27, 2023
@wupr wupr deleted the groups-of-order-four branch November 27, 2023 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants