mathlib4 icon indicating copy to clipboard operation
mathlib4 copied to clipboard

feat(NumberTheory/Ostrowski): First step of the proof of the Archimedean case of Ostrowski's Theorem

Open amosturchet opened this issue 1 year ago • 1 comments

This proves the first step of the proof of the Archimedean case of Ostrowski's Theorem, namely that a rational absolute value f : MulRingNorm ℚ that is not bounded, i.e. such that, evaluated at an integer n, it attains a value greater than one, then f n is always greater than one, whenever 1<n.

lemma one_lt_of_not_bounded (notbdd : ¬ ∀ (n : ℕ), f n ≤ 1) {n₀ : ℕ} (hn₀ : 1 < n₀) : 1 < f n₀

Include also

  • preliminary lemmas on limits of functions with natural inputs
  • lemma on Nat.log less or equal than Real.log
  • technical lemma on an inequality between an integer and an expression involving MulRingNorm and the number of digits of its expansion in an integer base
  • triangle inequality for lists (added in the file RingSeminorm.lean)

Co-authored-by:

David Kurniadi Angdinata [email protected] Fabrizio Barroero [email protected] Laura Capuano [email protected] Nirvana Coppola [email protected] María Inés de Frutos Fernández [email protected] Silvain Rideau-Kikuchi [email protected] Sam van Gool [email protected] Francesco Veneziano [email protected]


Open in Gitpod

amosturchet avatar Jul 05 '24 10:07 amosturchet

PR summary d4d83120db

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.NumberTheory.Ostrowski 1414 1417 +3 (+0.21%)
Import changes for all files
Files Import difference
Mathlib.NumberTheory.Ostrowski 3

Declarations diff

+ mulRingNorm_apply_le_sum_digits + mulRingNorm_sum_le_sum_mulRingNorm + one_lt_of_not_bounded

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.

github-actions[bot] avatar Jul 05 '24 10:07 github-actions[bot]

What is the status of this PR? It seems to me that you might have forgot to push your commit.

erdOne avatar Jul 16 '24 15:07 erdOne

What is the status of this PR? It seems to me that you might have forgot to push your commit.

sorry forgot to push, you're right

amosturchet avatar Jul 30 '24 08:07 amosturchet

As for @erdOne suggestion to move the "preliminary lemmas": there are some natural folders in Mathlib where they might go but it's unclear to me whether we want to clog the limits section with these.

One solution would be to write a meta-lemma like this one (thanks to @fbarroero): theorem aux {l: Filter ℝ} {f : ℝ → ℝ} {g: ℕ → ℝ} (hg: ∀ᶠ n in atTop, g n = f n) (hl : Filter.Tendsto f Filter.atTop l) : Filter.Tendsto g Filter.atTop l := by sorry

would that make sense?

amosturchet avatar Jul 30 '24 08:07 amosturchet

I think that is exactly Filter.Tendsto.congr'

erdOne avatar Jul 30 '24 11:07 erdOne

I think that is exactly Filter.Tendsto.congr'

Thanks! it seems to me that Filter.Tendsto.cong' requires the two functions to have the same domain though

amosturchet avatar Jul 30 '24 12:07 amosturchet

I have a more general version of the above theorem aux like this

theorem aux' {α : Type*} [Nonempty α] [LinearOrder α] {l : Filter ℝ} {f : ℝ → ℝ} {g : α → ℝ}
    {c : α → ℝ} (hc₀ : Monotone c) (hc : ∀ x : ℝ, ∃ a : α, x ≤ c a)
    (hg : ∀ᶠ n in atTop, g n = f (c n)) (hl : Filter.Tendsto f Filter.atTop l) :
    Filter.Tendsto g Filter.atTop l

Would this make it more interesting? This would give limits at infinity for functions with domain $\mathbb{N}$, $\mathbb{Z}$, $\mathbb{Q}$...

fbarroero avatar Jul 31 '24 18:07 fbarroero

As for the late commit a couple of remarks:

  • the lemma about natLog vs realLog is now in Mathlib as Real.natLog_le_logb so it has been removed here
  • the lemmas about the limits are now private (and use the Zulip suggestion that the coercion from Nat to Real tends to atTop along atTop)

amosturchet avatar Sep 10 '24 15:09 amosturchet

This PR still makes some erroneous changes (e.g. incorrectly changing -/ to --/) which need to be fixed before we can consider merging it.

Usually it's nice to have smaller PRs to review, but how far are we away from the proof of the main theorem which you want here? The lemmas introduced here currently look weird and unmotivated -- I know they're not, but they look like it because the ultimate goal is missing. If you added the full proof how long would the PR be?

kbuzzard avatar Sep 24 '24 14:09 kbuzzard

This PR still makes some erroneous changes (e.g. incorrectly changing -/ to --/) which need to be fixed before we can consider merging it.

Usually it's nice to have smaller PRs to review, but how far are we away from the proof of the main theorem which you want here? The lemmas introduced here currently look weird and unmotivated -- I know they're not, but they look like it because the ultimate goal is missing. If you added the full proof how long would the PR be?

The full proof can now be found in #17138. There are 167 lines in addition to what is in this PR.

fbarroero avatar Sep 25 '24 17:09 fbarroero

Do you need help with merging master?

YaelDillies avatar Oct 02 '24 09:10 YaelDillies

Do you need help with merging master?

Maybe, I am trying to solve it myself.. I hope I didn't make a mess. I let you know if I need help, thanks

fbarroero avatar Oct 02 '24 09:10 fbarroero

Do you need help with merging master?

Everything should be fine now. Thanks for having offered to help!

fbarroero avatar Oct 02 '24 10:10 fbarroero

Are you sure? There are still 162 commits and 52 participants in this PR.

YaelDillies avatar Oct 02 '24 10:10 YaelDillies

Are you sure? There are still 162 commits and 52 participants in this PR.

I am sorry. I don't know what happened earlier. I just wanted to merge master and that's what I thought I was doing in the same way I always do (pull in the master and then git merge master in the branch). I merged master again and the second time it seems it worked just fine. I guess all these 52 people are going to get automatically subscribed to this PR and I apologise for the spam. Is there a way to fix this? I would appreciate anyone's help.

fbarroero avatar Oct 02 '24 10:10 fbarroero

I'm going to try something. Please don't touch the branch for a few minutes

YaelDillies avatar Oct 02 '24 10:10 YaelDillies

Looks like that solved it. Please make sure you have no local changes on branch amos_ostrowski_arch, then run git reset origin/amos_ostrowski_arch --hard. ⚠️ This will lose all your local changes on this branch ⚠️

YaelDillies avatar Oct 02 '24 10:10 YaelDillies

Looks like that solved it. Please make sure you have no local changes on branch amos_ostrowski_arch, then run git reset origin/amos_ostrowski_arch --hard. ⚠️ This will lose all your local changes on this branch ⚠️

I have done that. Thank you very much! And I apologise again for the mess...

fbarroero avatar Oct 02 '24 10:10 fbarroero

@YaelDillies Thanks for the golfing! It's much cleaner now.

fbarroero avatar Oct 06 '24 21:10 fbarroero

Great, thanks!

maintainer merge

YaelDillies avatar Oct 10 '24 09:10 YaelDillies

🚀 Pull request has been placed on the maintainer queue by YaelDillies.

github-actions[bot] avatar Oct 10 '24 09:10 github-actions[bot]

Thanks a lot! Looking forward to the next instalment of the proof of this important and long-awaited result!

bors merge

kbuzzard avatar Oct 15 '24 21:10 kbuzzard

Pull request successfully merged into master.

Build succeeded:

mathlib-bors[bot] avatar Oct 15 '24 23:10 mathlib-bors[bot]