Number fields #
This file defines a number field and the ring of integers corresponding to it.
Main definitions #
NumberField
defines a number field as a field which has characteristic zero and is finite dimensional over ℚ.RingOfIntegers
defines the ring of integers (or number ring) corresponding to a number field as the integral closure of ℤ in the number field.
Implementation notes #
The definitions that involve a field of fractions choose a canonical field of fractions, but are independent of that choice.
References #
- [D. Marcus, Number Fields][marcus1977number]
- [J.W.S. Cassels, A. Frölich, Algebraic Number Theory][cassels1967algebraic]
- [P. Samuel, Algebraic Theory of Numbers][samuel1970algebraic]
Tags #
number field, ring of integers
A number field is a field which has characteristic zero and is finite dimensional over ℚ.
- to_charZero : CharZero K
- to_finiteDimensional : FiniteDimensional ℚ K
Instances
Equations
- ⋯ = ⋯
A finite extension of a number field is a number field.
Equations
- ⋯ = ⋯
The ring of integers (or number ring) corresponding to a number field is the integral closure of ℤ in the number field.
This is defined as its own type, rather than a Subalgebra
, for performance reasons:
looking for instances of the form SMul (RingOfIntegers _) (RingOfIntegers _)
makes
much more effective use of the discrimination tree than instances of the form
SMul (Subtype _) (Subtype _)
.
The drawback is we have to copy over instances manually.
Equations
Instances For
Equations
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The canonical coercion from 𝓞 K
to K
.
Equations
- ↑x = (algebraMap (NumberField.RingOfIntegers K) K) x
Instances For
This instance has to be CoeHead
because we only want to apply it from 𝓞 K
to K
.
Equations
- NumberField.RingOfIntegers.instCoeHead = { coe := NumberField.RingOfIntegers.val }
The ring homomorphism (𝓞 K) →+* (𝓞 L)
given by restricting a ring homomorphism
f : K →+* L
to 𝓞 K
.
Equations
- NumberField.RingOfIntegers.mapRingHom f = { toFun := fun (k : NumberField.RingOfIntegers K) => ⟨f ↑k, ⋯⟩, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The ring isomorphsim (𝓞 K) ≃+* (𝓞 L)
given by restricting
a ring isomorphsim e : K ≃+* L
to 𝓞 K
.
Equations
Instances For
Given an algebra between two fields, create an algebra between their two rings of integers.
Equations
- NumberField.inst_ringOfIntegersAlgebra K L = (NumberField.RingOfIntegers.mapRingHom (algebraMap K L)).toAlgebra
The algebra homomorphism (𝓞 K) →ₐ[𝓞 k] (𝓞 L)
given by restricting a algebra homomorphism
f : K →ₐ[k] L
to 𝓞 K
.
Equations
- NumberField.RingOfIntegers.mapAlgHom f = { toRingHom := NumberField.RingOfIntegers.mapRingHom f, commutes' := ⋯ }
Instances For
The isomorphism of algebras (𝓞 K) ≃ₐ[𝓞 k] (𝓞 L)
given by restricting
an isomorphism of algebras e : K ≃ₐ[k] L
to 𝓞 K
.
Equations
Instances For
The canonical map from 𝓞 K
to K
is injective.
This is a convenient abbreviation for NoZeroSMulDivisors.algebraMap_injective
.
The canonical map from 𝓞 K
to K
is injective.
This is a convenient abbreviation for map_eq_zero_iff
applied to
NoZeroSMulDivisors.algebraMap_injective
.
The canonical map from 𝓞 K
to K
is injective.
This is a convenient abbreviation for map_ne_zero_iff
applied to
NoZeroSMulDivisors.algebraMap_injective
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The ring of integers of K
are equivalent to any integral closure of ℤ
in K
Equations
- NumberField.RingOfIntegers.equiv R = (IsIntegralClosure.equiv ℤ R K (NumberField.RingOfIntegers K)).symm.toRingEquiv
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The ring of integers of a number field is not a field.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A ℤ-basis of the ring of integers of K
.
Equations
Instances For
Given f : M → K
such that ∀ x, IsIntegral ℤ (f x)
, the corresponding function
M → 𝓞 K
.
Equations
- NumberField.RingOfIntegers.restrict f h x = ⟨f x, ⋯⟩
Instances For
Given f : M →+ K
such that ∀ x, IsIntegral ℤ (f x)
, the corresponding function
M →+ 𝓞 K
.
Equations
- NumberField.RingOfIntegers.restrict_addMonoidHom f h = { toFun := NumberField.RingOfIntegers.restrict (⇑f) h, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Given f : M →* K
such that ∀ x, IsIntegral ℤ (f x)
, the corresponding function
M →* 𝓞 K
.
Equations
- NumberField.RingOfIntegers.restrict_monoidHom f h = { toFun := NumberField.RingOfIntegers.restrict (⇑f) h, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The ring of integers of L
is isomorphic to any integral closure of 𝓞 K
in L
Equations
- NumberField.RingOfIntegers.algEquiv K L R = (IsIntegralClosure.equiv (NumberField.RingOfIntegers K) R L (NumberField.RingOfIntegers L)).symm
Instances For
Any extension between ring of integers of number fields is noetherian.
Equations
- ⋯ = ⋯
A basis of K
over ℚ
that is also a basis of 𝓞 K
over ℤ
.
Equations
Instances For
The ring of integers of ℚ
as a number field is just ℤ
.
Instances For
The quotient of ℚ[X]
by the ideal generated by an irreducible polynomial of ℚ[X]
is a number field.
Equations
- ⋯ = ⋯