Repository navigation
Add Dimitrov's theorem #479
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
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
6a2aeb2
Add files via upload
jinpingzou73517 0f6728e
Add files via upload
jinpingzou73517 eddf14c
Rename ID for Dimitrov theorem problem
jinpingzou73517 2b2d162
Rename dimitrov_theorem_4_1 and id to dimitrov
jinpingzou73517 9be9427
Apply suggestion from @alreadydone
jinpingzou73517 bc8df26
Update LeanEval/NumberTheory/SchinzelZassenhaus.lean
jinpingzou73517 d5b59e3
chore: add catalog lifecycle metadata to the manifest
kim-em File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| import Mathlib.NumberTheory.NumberField.House | ||
| import EvalTools.Markers | ||
|
|
||
| /-! | ||
| # The Schinzel–Zassenhaus Conjecture | ||
|
|
||
| This file records a Lean statement of Dimitrov's theorem as it appears in | ||
| Chapter 4 of McKee and Smyth, *Around the Unit Circle*. | ||
|
|
||
| Let `α₁, ..., αₙ` denote the conjugates of a nonzero algebraic | ||
| integer `α` which is not a root of unity. The Schinzel–Zassenhaus | ||
| conjecture asserts that there is an absolute constant `c > 0` such that | ||
|
|
||
| `max_{1 ≤ j ≤ n} |αⱼ| > 1 + c / d`. | ||
|
|
||
| The quantity `maxⱼ |αⱼ|` is called the house of `α`; in Mathlib this | ||
| is `NumberField.house`. | ||
|
|
||
| ## Reference | ||
|
|
||
| The formalization is based on Chapter 4 ("The Schinzel–Zassenhaus Conjecture") of the book: | ||
| * **James McKee, Chris Smyth**, *Around the Unit Circle: Mahler Measure, Integer Matrices and Roots of Unity*, Springer, Universitext, 2021. | ||
| (https://link.springer.com/chapter/10.1007/978-3-030-80031-4_4) | ||
| -/ | ||
|
|
||
| namespace LeanEval.NumberTheory | ||
|
|
||
| /-- **Dimitrov's theorem**, McKee–Smyth Theorem 4.1. | ||
|
|
||
| Let `α` be a nonzero algebraic integer, not a root of unity. Then the | ||
| house of `α` is at least `2 ^ (1 / (4 * d'))`, where `d'` is the number of | ||
| different phases among its conjugates. | ||
|
|
||
| The condition "not a root of unity" is expressed as `¬ IsOfFinOrder α`, | ||
| Mathlib's standard predicate for an element having no positive power equal to 1. | ||
| -/ | ||
|
|
||
| @[eval_problem] theorem dimitrov {K : Type*} [Field K] [NumberField K] | ||
| (α : K) | ||
| (α_int : IsIntegral ℤ α) | ||
| (α_ne_zero : α ≠ 0) | ||
| (α_not_rootOfUnity : ¬ IsOfFinOrder α) : | ||
| (2 : ℝ) ^ (1 / (4 * (Finset.univ.image fun σ : K →+* ℂ ↦ (σ α).arg).card) : ℝ) ≤ | ||
| NumberField.house α := by | ||
| sorry | ||
|
|
||
| end LeanEval.NumberTheory | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| id = "dimitrov" | ||
| title = "Dimitrov's lower bound for the house of a nonzero algebraic integer that is not a root of unity" | ||
| group = "formalization-evaluation" | ||
| status = "draft" | ||
| visible = true | ||
| statement_revision = 1 | ||
| tags = [] | ||
| test = false | ||
| module = "LeanEval.NumberTheory.SchinzelZassenhaus" | ||
| holes = ["dimitrov"] | ||
| submitter = "Zou Jinping" | ||
| notes = "Statement-only benchmark problem. The theorem uses Mathlib's NumberField.house and IsOfFinOrder." | ||
| source = "James McKee and Chris Smyth, Around the Unit Circle, Chapter 4, Theorem 4.1; Vesselin Dimitrov (2019)." | ||
| informal_solution = "Dimitrov's proof of the Schinzel--Zassenhaus conjecture." |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.