-
Notifications
You must be signed in to change notification settings - Fork 314
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 by Bors] - feat: Add exists_ideal_in_class_of_norm_le #9084
Conversation
If it's easy can you explicitly add the fact that if the Minkowski bound is less than |
I added theorem classNumber_eq_one_of_abs_discr_lt
(h : |discr K| < (2 * (π / 4) ^ NrComplexPlaces K *
((finrank ℚ K) ^ (finrank ℚ K) / (finrank ℚ K).factorial)) ^ 2) :
classNumber K = 1 := by |
When mathematically trivial consequences are trivial even in Lean is always a good sign! |
@xroblot what is the status of this? |
I am going to update it with the results of #9210 and fix it so that it compiles. There are still some pieces that need additional work before they find their place in
|
I've just reviewed #9613, it is almost ready. The fact that (fractional) ideals are free should follow immediately once we know that they're finite (we know that being torsion free and finite implies free). And finiteness should be very easy, these rings are noetherian. Am I missing something? |
Thanks. I'll have a look after I am done with the merge.
No, you're right. I was not clear: it is indeed direct to see that ideals of a number field satisfy the instances that I need, what I am not sure about is if I should just add the instances for number fields or for a wider situation (and in this case, what situation?). I will probably need to add at some point an I am sorry if this is a bit vague, hopefully, it will become a bit clearer once I find the time to write things done more properly. |
For example, right now, I am using the following import Mathlib.LinearAlgebra.FreeModule.PID
import Mathlib.RingTheory.DedekindDomain.Basic
section Ideal
open Module
variable {R S : Type*} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] [CommRing S] [IsDomain S]
[Algebra R S] [Module.Free R S] [Module.Finite R S] (I : Ideal S)
instance : Module.Free R I := by
by_cases hI : I = ⊥
· have : Subsingleton I := Submodule.subsingleton_iff_eq_bot.mpr hI
exact Module.Free.of_subsingleton R I
· exact Free.of_basis (I.selfBasis (Free.chooseBasis R S) hI)
instance : Module.Finite R I := by
by_cases hI : I = ⊥
· have : Subsingleton I := Submodule.subsingleton_iff_eq_bot.mpr hI
exact IsNoetherian.finite R ↥I
· exact Finite.of_basis (I.selfBasis (Free.chooseBasis R S) hI)
end Ideal |
Of course we can think about the most general situation, but since the case you need (that is already mathematically interesting) if easy we can just add the instances and think about crazy generalizations later. |
@xroblot I would like to test your branch in the FLTRegular project and for some reason I need the latest mathlib, so I am merging master here. |
Sorry, ignore my comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is really great, thanks!
bors d+
✌️ xroblot can now approve this pull request. To approve and merge a pull request, simply reply with |
Thanks! bors merge |
Prove that each class of the classgroup of a number field contains an integral ideal of small norm.
Pull request successfully merged into master. Build succeeded: |
Prove that each class of the classgroup of a number field contains an integral ideal of small norm.
Prove that each class of the classgroup of a number field contains an integral ideal of small norm.
Prove that each class of the classgroup of a number field contains an integral ideal of small norm.
Module.Free
andModule.Finite
instances for ideals #9804CanonicalEmbedding
to fractional ideals #9837