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
- NumberField.RingOfIntegers K = β₯(integralClosure β€ K)
Instances For
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
- NumberField.termπ = Lean.ParserDescr.node `NumberField.termπ 1024 (Lean.ParserDescr.symbol "π")
Instances For
Equations
Equations
- β― = β―
Equations
- β― = β―
Equations
- NumberField.RingOfIntegers.instAlgebra K = inferInstanceAs (Algebra (β₯(integralClosure β€ K)) K)
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
- NumberField.RingOfIntegers.mapAlgEquiv e = AlgEquiv.ofAlgHom (NumberField.RingOfIntegers.mapAlgHom e) (NumberField.RingOfIntegers.mapAlgHom (βe).symm) β― β―
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
- β― = β―