Skip to content

[Merged by Bors] - feat(NumberTheory.NumberField.Basic): add mem_span_integralBasis#5996

Closed
xroblot wants to merge 11 commits intomasterfrom
xfr_mem_span_integralBasis
Closed

[Merged by Bors] - feat(NumberTheory.NumberField.Basic): add mem_span_integralBasis#5996
xroblot wants to merge 11 commits intomasterfrom
xfr_mem_span_integralBasis

Conversation

@xroblot
Copy link
Copy Markdown
Collaborator

@xroblot xroblot commented Jul 19, 2023

Add the following result:

theorem mem_span_integralBasis {x : K} :
    x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K

that is, integralBasis is indeed a -basis of the ring of integers.

Co-authored-by: Riccardo Brasca riccardo.brasca@gmail.com


Open in Gitpod

@xroblot xroblot added awaiting-review awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. t-number-theory Number theory (also use t-algebra or t-analysis to specialize) labels Jul 19, 2023
@github-actions github-actions bot removed the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Jul 19, 2023
@riccardobrasca
Copy link
Copy Markdown
Member

Why not having an actual Basis ... ℤ (𝓞 K)? We have somewhere that this induces automatically a -basis of K I think.

@xroblot
Copy link
Copy Markdown
Collaborator Author

xroblot commented Jul 26, 2023

Why not having an actual Basis ... ℤ (𝓞 K)? We have somewhere that this induces automatically a -basis of K I think.

This is what we are doing here. We start with a ℤ-basis of 𝓞 K, that's NumberField.RingOfIntegers.basis, then we prove that it is a ℚ-basis of K, that's NumberField.integralBasis, and this result closes the circle by proving that the ℤ-lattice generated by this basis inside K is indeed 𝓞 K.

@riccardobrasca
Copy link
Copy Markdown
Member

Ah, I see, NumberField.integralBasis is defined using RingOfIntegers.basis via Basis.localizationLocalization. Can you state a general result about Basis.localizationLocalization instead of this particular case?

@xroblot
Copy link
Copy Markdown
Collaborator Author

xroblot commented Jul 28, 2023

Ah, I see, NumberField.integralBasis is defined using RingOfIntegers.basis via Basis.localizationLocalization. Can you state a general result about Basis.localizationLocalization instead of this particular case?

I added the general result

 theorem Basis.localizationLocalization_span {ι : Type _} (b : Basis ι R A) :
     Submodule.span R (Set.range (b.localizationLocalization Rₛ S Aₛ)) =
       Submodule.map (IsScalarTower.toAlgHom R A Aₛ) ⊤ 

and used it to prove mem_span_integralBasis

@riccardobrasca
Copy link
Copy Markdown
Member

@Vierkantor can you have a look at this? Thanks!

@Vierkantor Vierkantor self-assigned this Jul 28, 2023
@Vierkantor
Copy link
Copy Markdown
Contributor

Sure! I will make some time in the coming days.

@riccardobrasca
Copy link
Copy Markdown
Member

Not sure why "Detect changes to header SHAs / Add annotations (pull_request) " is taking forever...

@riccardobrasca
Copy link
Copy Markdown
Member

Not sure why "Detect changes to header SHAs / Add annotations (pull_request) " is taking forever...

It seems merging master solved this.

@xroblot
Copy link
Copy Markdown
Collaborator Author

xroblot commented Jul 29, 2023

Not sure why "Detect changes to header SHAs / Add annotations (pull_request) " is taking forever...

It seems merging master solved this.

Riccardo, thanks a lot for your improvements of this PR. I am in Japan at the moment and it is difficult to find time to work on Lean. I added your name as a co-author. Maybe I should also update the title and description?

Copy link
Copy Markdown
Contributor

@Vierkantor Vierkantor left a comment

Choose a reason for hiding this comment

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

This is indeed a useful result, thanks for spotting that we're missing it.

xroblot and others added 3 commits August 2, 2023 10:11
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@xroblot
Copy link
Copy Markdown
Collaborator Author

xroblot commented Aug 2, 2023

@Vierkantor Thanks for the review. As you suggested, I moved Subalgebra.range_isScalarTower_toAlgHom to Mathlib.Algebra.Algebra.Subalgebra.Tower

Copy link
Copy Markdown
Member

@riccardobrasca riccardobrasca left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

Copy link
Copy Markdown
Contributor

@Vierkantor Vierkantor left a comment

Choose a reason for hiding this comment

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

Thanks!

bors r+

@ghost ghost added ready-to-merge This PR has been sent to bors. and removed awaiting-review labels Aug 2, 2023
bors bot pushed a commit that referenced this pull request Aug 2, 2023
Add the following result: 
```lean
theorem mem_span_integralBasis {x : K} :
    x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K
```
that is, `integralBasis` is indeed a `ℤ`-basis of the ring of integers. 

Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>



Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
@bors
Copy link
Copy Markdown

bors bot commented Aug 2, 2023

Pull request successfully merged into master.

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot changed the title feat(NumberTheory.NumberField.Basic): add mem_span_integralBasis [Merged by Bors] - feat(NumberTheory.NumberField.Basic): add mem_span_integralBasis Aug 2, 2023
@bors bors bot closed this Aug 2, 2023
@bors bors bot deleted the xfr_mem_span_integralBasis branch August 2, 2023 10:39
kim-em pushed a commit that referenced this pull request Aug 3, 2023
Add the following result: 
```lean
theorem mem_span_integralBasis {x : K} :
    x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K
```
that is, `integralBasis` is indeed a `ℤ`-basis of the ring of integers. 

Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>



Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
kim-em pushed a commit that referenced this pull request Aug 3, 2023
Add the following result: 
```lean
theorem mem_span_integralBasis {x : K} :
    x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K
```
that is, `integralBasis` is indeed a `ℤ`-basis of the ring of integers. 

Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>



Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
kim-em pushed a commit that referenced this pull request Aug 14, 2023
Add the following result: 
```lean
theorem mem_span_integralBasis {x : K} :
    x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K
```
that is, `integralBasis` is indeed a `ℤ`-basis of the ring of integers. 

Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>



Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR has been sent to bors. t-number-theory Number theory (also use t-algebra or t-analysis to specialize)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants