The ideal class group #
This file defines the ideal class group ClassGroup R of fractional ideals of R
inside its field of fractions.
Main definitions #
toPrincipalIdealsends an invertiblex : Kto an invertible fractional idealClassGroupis the quotient of invertible fractional ideals modulotoPrincipalIdeal.rangeClassGroup.mk0sends a nonzero integral ideal in a Dedekind domain to its class
Main results #
ClassGroup.mk0_eq_mk0_iffshows the equivalence with the "classical" definition, whereI ~ Jiffx I = y Jforx y ≠ (0 : R)
Implementation details #
The definition of ClassGroup R involves FractionRing R. However, the API should be completely
identical no matter the choice of field of fractions for R.
toPrincipalIdeal R K x sends x ≠ 0 : K to the fractional R-ideal generated by x
Equations
- One or more equations did not get rendered due to their size.
Instances For
The ideal class group of R is the group of invertible fractional ideals
modulo the principal ideals.
Equations
- ClassGroup R = ((FractionalIdeal (nonZeroDivisors R) (FractionRing R))ˣ ⧸ (toPrincipalIdeal R (FractionRing R)).range)
Instances For
Equations
Equations
- instInhabitedClassGroup R = { default := 1 }
The class group of R is isomorphic to the group of invertible R-submodules in Frac(R)
modulo the principal submodules (invertible submodules are automatically fractional ideals).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Send a nonzero fractional ideal to the corresponding class in the class group.
Equations
- ClassGroup.mk = (QuotientGroup.mk' (toPrincipalIdeal R (FractionRing R)).range).comp (Units.map ↑(FractionalIdeal.canonicalEquiv (nonZeroDivisors R) K (FractionRing R)))
Instances For
Induction principle for the class group: to show something holds for all x : ClassGroup R,
we can choose a fraction field K and show it holds for the equivalence class of each
I : FractionalIdeal R⁰ K.
The definition of the class group does not depend on the choice of field of fractions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Send a nonzero integral ideal to an invertible fractional ideal.
Equations
- FractionalIdeal.mk0 K = { toFun := fun (I : ↥(nonZeroDivisors (Ideal R))) => Units.mk0 ↑↑I ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Send a nonzero ideal to the corresponding class in the class group.
Equations
Instances For
A fractional ideal is a unit iff its integral numerator num is a unit.
Maps a nonzero fractional ideal to an integral representative in the class group.
Equations
Instances For
If the class group is trivial, any unit fractional ideal is principal.
If the class group is trivial, any integral ideal that is a unit as a fractional ideal is principal.
The class group of principal ideal domain is finite (in fact a singleton).
See ClassGroup.fintypeOfAdmissibleOfFinite for a finiteness proof that works for rings of integers
of global fields.
The class number of a principal ideal domain is 1.
The class number is 1 iff the ring of integers is a principal ideal domain.