-
Notifications
You must be signed in to change notification settings - Fork 298
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(number_theory): define the class number (#9071)
We instantiate the finiteness proof of the class group for rings of integers, and define the class number of a number field, or of a separable function field, as the finite cardinality of the class group. Co-Authored-By: Ashvni <ashvni.n@gmail.com> Co-Authored-By: Filippo A. E. Nuccio <filippo.nuccio@univ-st-etienne.fr> Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
- Loading branch information
1 parent
f780788
commit d6b83d8
Showing
7 changed files
with
113 additions
and
5 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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,50 @@ | ||
/- | ||
Copyright (c) 2021 Anne Baanen. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Anne Baanen | ||
-/ | ||
import number_theory.class_number.admissible_card_pow_degree | ||
import number_theory.class_number.finite | ||
import number_theory.function_field | ||
|
||
/-! | ||
# Class numbers of function fields | ||
This file defines the class number of a function field as the (finite) cardinality of | ||
the class group of its ring of integers. It also proves some elementary results | ||
on the class number. | ||
## Main definitions | ||
- `function_field.class_number`: the class number of a function field is the (finite) | ||
cardinality of the class group of its ring of integers | ||
-/ | ||
|
||
namespace function_field | ||
|
||
variables (Fq F : Type) [field Fq] [fintype Fq] [field F] | ||
variables [algebra (polynomial Fq) F] [algebra (ratfunc Fq) F] | ||
variables [is_scalar_tower (polynomial Fq) (ratfunc Fq) F] | ||
variables [function_field Fq F] [is_separable (ratfunc Fq) F] | ||
|
||
open_locale classical | ||
|
||
namespace ring_of_integers | ||
|
||
open function_field | ||
|
||
noncomputable instance : fintype (class_group (ring_of_integers Fq F) F) := | ||
class_group.fintype_of_admissible_of_finite (ratfunc Fq) F | ||
(polynomial.card_pow_degree_is_admissible : absolute_value.is_admissible | ||
(polynomial.card_pow_degree : absolute_value (polynomial Fq) ℤ)) | ||
|
||
end ring_of_integers | ||
|
||
/-- The class number in a function field is the (finite) cardinality of the class group. -/ | ||
noncomputable def class_number : ℕ := fintype.card (class_group (ring_of_integers Fq F) F) | ||
|
||
/-- The class number of a function field is `1` iff the ring of integers is a PID. -/ | ||
theorem class_number_eq_one_iff : | ||
class_number Fq F = 1 ↔ is_principal_ideal_ring (ring_of_integers Fq F) := | ||
card_class_group_eq_one_iff | ||
|
||
end function_field |
This file contains 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,54 @@ | ||
/- | ||
Copyright (c) 2021 Anne Baanen. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Anne Baanen | ||
-/ | ||
import number_theory.class_number.admissible_abs | ||
import number_theory.class_number.finite | ||
import number_theory.number_field | ||
|
||
/-! | ||
# Class numbers of number fields | ||
This file defines the class number of a number field as the (finite) cardinality of | ||
the class group of its ring of integers. It also proves some elementary results | ||
on the class number. | ||
## Main definitions | ||
- `number_field.class_number`: the class number of a number field is the (finite) | ||
cardinality of the class group of its ring of integers | ||
-/ | ||
|
||
namespace number_field | ||
|
||
variables (K : Type*) [field K] [number_field K] | ||
|
||
namespace ring_of_integers | ||
|
||
noncomputable instance : fintype (class_group (ring_of_integers K) K) := | ||
class_group.fintype_of_admissible_of_finite ℚ _ absolute_value.abs_is_admissible | ||
|
||
end ring_of_integers | ||
|
||
/-- The class number of a number field is the (finite) cardinality of the class group. -/ | ||
noncomputable def class_number : ℕ := fintype.card (class_group (ring_of_integers K) K) | ||
|
||
variables {K} | ||
|
||
/-- The class number of a number field is `1` iff the ring of integers is a PID. -/ | ||
theorem class_number_eq_one_iff : | ||
class_number K = 1 ↔ is_principal_ideal_ring (ring_of_integers K) := | ||
card_class_group_eq_one_iff | ||
|
||
end number_field | ||
|
||
namespace rat | ||
|
||
open number_field | ||
|
||
theorem class_number_eq : number_field.class_number ℚ = 1 := | ||
class_number_eq_one_iff.mpr $ by convert is_principal_ideal_ring.of_surjective | ||
(rat.ring_of_integers_equiv.symm : ℤ →+* ring_of_integers ℚ) | ||
(rat.ring_of_integers_equiv.symm.surjective) | ||
|
||
end rat |
This file contains 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
This file contains 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
This file contains 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