Skip to content

feat(GroupTheory/SpecificGroups/Alternating/Simple): simplicity of the alternating groups#36524

Open
AntoineChambert-Loir wants to merge 100 commits intoleanprover-community:masterfrom
AntoineChambert-Loir:J-Simplicity
Open

feat(GroupTheory/SpecificGroups/Alternating/Simple): simplicity of the alternating groups#36524
AntoineChambert-Loir wants to merge 100 commits intoleanprover-community:masterfrom
AntoineChambert-Loir:J-Simplicity

Conversation

@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator

@AntoineChambert-Loir AntoineChambert-Loir commented Mar 12, 2026

This is the conclusion of the story of the proof of simplicity of the alternating group using the
Iwasawa criterion.

  • Equiv.Perm.iwasawaStructure_two:
    the natural IwasawaStructure of Equiv.Perm α acting on Nat.Combination α 2
    Its commutative subgroups consist of the permutations with support
    in a given element of Nat.Combination α 2.
    They are cyclic of order 2.

  • alternatingGroup_of_le_of_normal:
    If α has at least 5 elements, then a nontrivial normal subgroup
    of Equiv.Perm α contains the alternating group.

  • alternatingGroup.iwasawaStructure_three:
    the natural IwasawaStructure of alternatingGroup α acting on Nat.Combination α 3

    Its commutative subgroups consist of the permutations with support
    in a given element of Nat.Combination α 2.
    They are cyclic of order 3.

  • alternatingGroup.iwasawaStructure_three:
    the natural IwasawaStructure of alternatingGroup α acting on Nat.Combination α 4

    Its commutative subgroups consist of the permutations of
    cycleType (2, 2) with support in a given element of Nat.Combination α 2.
    They have order 4 and exponent 2 (IsKleinFour).

  • alternatingGroup.normal_subgroup_eq_bot_or_eq_top:
    If α has at least 5 elements, then a nontrivial normal subgroup of alternatingGroup is .

  • alternatingGroup.isSimpleGroup:
    If α has at least 5 elements, then alternatingGroup α
    is a simple group.


Open in Gitpod

@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator Author

I resolved the issues above to make the page clearer, but there is one problem with t
Equiv.Perm.isCyclic_of_card_le_two and Equiv.Perm.isMulCommutative_of_card_le_two for which I can't find a good place.

The problem is that docs#Nat.card_perm is in a file that requires that Field doesn't exist, while docs#IsCyclic use it ultimately.

Comment on lines +538 to +541
obtain ⟨φ⟩ := hxy
let φ' : α → α := Function.extend Subtype.val (fun a ↦ ↑(φ a)) id
set ψ : α → α := Function.extend x y φ'
have : Function.Bijective ψ := by
obtain ⟨e⟩ := hxy
let e' : α → α := Function.extend Subtype.val (fun a ↦ ↑(e a)) id
set f : α → α := Function.extend x y e'
have : Function.Bijective f := by
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need to be changes these variables?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably a consequence of missed merges.

Copy link
Copy Markdown
Collaborator Author

@AntoineChambert-Loir AntoineChambert-Loir Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, you know what? — obtain ⟨φ⟩ := hxy doesn't work anymore (unexpected token error), while obtain ⟨φ⟩ := hxy does.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point, some stuff is opened and φ represents Euler's totient function.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still a bit confused as to how the file can break here given that nothing above changed?

@tb65536
Copy link
Copy Markdown
Contributor

tb65536 commented Mar 21, 2026

I resolved the issues above to make the page clearer, but there is one problem with t Equiv.Perm.isCyclic_of_card_le_two and Equiv.Perm.isMulCommutative_of_card_le_two for which I can't find a good place.

The problem is that docs#Nat.card_perm is in a file that requires that Field doesn't exist, while docs#IsCyclic use it ultimately.

Hmmm, not sure what is best. Maybe add a small Perm/Cyclic file or something?

@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator Author

On short term, it would be the easiest thing to do. On a longer term, it is very bizarre that Nat.card_perm is in a file that prohibits Field, but that SpecificGroups.Cyclic uses the full strength of fields because of its use of Euler's totient function from Totient (to analyse the generators of a cyclic group). Maybe one should try splitting that file in two parts.

@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator Author

See #36983 for an attempt to split Mathlib.GroupTheory.SpecificGroups.Cyclic into one part that imports less files (Mathlib.GroupTheory.SpecificGroups.Cyclic.Basic) and the rest (kept in Mathlib.GroupTheory.SpecificGroups.Cyclic, which allows to modify no import in the rest of Mathlib)

@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Mar 23, 2026
@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 23, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@AntoineChambert-Loir AntoineChambert-Loir removed the awaiting-author A reviewer has asked the author a question or requested changes. label Mar 24, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 24, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 2, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 3, 2026
@mathlib-dependent-issues mathlib-dependent-issues bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 11, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 11, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

large-import Automatically added label for PRs with a significant increase in transitive imports t-group-theory Group theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants