Skip to content

feat: Add Shafarevich's Theorem on solvable Galois groups problem - #475

Merged
kim-em merged 3 commits into
leanprover:mainfrom
bixbyr:add-shafarevich
Jul 30, 2026
Merged

feat: Add Shafarevich's Theorem on solvable Galois groups problem#475
kim-em merged 3 commits into
leanprover:mainfrom
bixbyr:add-shafarevich

Conversation

@bixbyr

@bixbyr bixbyr commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

feat: Add Shafarevich's Theorem on solvable Galois groups problem. This states that every finite solvable group can be realized as the Galois group of a number field K / Q.

Co-authored-by: Gemini 3.1 Pro gemini@google.com

Co-authored-by: Gemini 3.1 Pro <gemini@google.com>
@bixbyr
bixbyr marked this pull request as ready for review July 21, 2026 03:52
@kim-em

kim-em commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

🤖 Claude says:

Three things before merge:

  • Drop the import LeanEval.NumberTheory.Shafarevich line from LeanEval.lean. That file aggregates only 18 of the 214 problem modules and isn't needed for a new problem. It also makes this PR conflict with your feat: Add Kronecker-Weber Theorem problem #476 and feat: Add Unconditional Odlyzko Bound problem #477, which add a line in the same place.
  • Use ∃ (K : Type) rather than Type*. With Type* the statement has to hold in every universe at once, so a solver has to ULift for no reason; the convention here is Type (see MartinetTotallyRealTowers.lean).
  • The notes field does real work in this repo: what Mathlib already has, why the statement is phrased this way, how the problem differs from its neighbours. Compare abel_ruffini.toml. Worth a paragraph — and worth saying that Shafarevich's original argument had a gap at 2 that was repaired later, since source points at the 1954 paper.

@kim-em kim-em added the awaiting-author Waiting on changes from the PR author label Jul 30, 2026
kim-em and others added 2 commits July 30, 2026 12:00
Rename to shafarevich_solvable_galois: a bare `shafarevich` collides in
readers' heads with shafarevich_relation_rank_bound and
golod_shafarevich_inequality. Existential field in `Type` rather than
`Type*`, matching the other realizability problems, so a solver isn't
obliged to ULift. Drop the LeanEval.lean import, which aggregates only a
handful of problem modules and conflicts with the sibling PRs. Expand
notes to say what Mathlib does and doesn't provide.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kim-em
kim-em merged commit 19a1511 into leanprover:main Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-author Waiting on changes from the PR author

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants