p-adic integers #
This file defines the p
-adic integers ℤ_[p]
as the subtype of ℚ_[p]
with norm ≤ 1
.
We show that ℤ_[p]
- is complete,
- is nonarchimedean,
- is a normed ring,
- is a local ring, and
- is a discrete valuation ring.
The relation between ℤ_[p]
and ZMod p
is established in another file.
Important definitions #
PadicInt
: the type ofp
-adic integers
Notation #
We introduce the notation ℤ_[p]
for the p
-adic integers.
Implementation notes #
Much, but not all, of this file assumes that p
is prime. This assumption is inferred automatically
by taking [Fact p.Prime]
as a type class argument.
Coercions into ℤ_[p]
are set up to work with the norm_cast
tactic.
References #
- [F. Q. Gouvêa, p-adic numbers][gouvea1997]
- [R. Y. Lewis, A formal proof of Hensel's lemma over the p-adic integers][lewis2019]
- https://en.wikipedia.org/wiki/P-adic_number
Tags #
p-adic, p adic, padic, p-adic integer
The ring of p
-adic integers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ring structure and coercion to ℚ_[p]
#
Equations
- PadicInt.instCoePadic = { coe := Subtype.val }
Addition on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
Multiplication on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
Negation on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
Subtraction on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
Zero on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
Equations
- PadicInt.instInhabited = { default := 0 }
One on ℤ_[p]
is inherited from ℚ_[p]
.
Equations
- PadicInt.instOne = { one := ⟨1, ⋯⟩ }
Equations
Equations
Alias of PadicInt.coe_natCast
.
Alias of PadicInt.coe_intCast
.
The coercion from ℤ_[p]
to ℚ_[p]
as a ring homomorphism.
Equations
- PadicInt.Coe.ringHom = (PadicInt.subring p).subtype
Instances For
Alias of PadicInt.intCast_eq
.
A sequence of integers that is Cauchy with respect to the p
-adic norm converges to a p
-adic
integer.
Equations
- PadicInt.ofIntSeq seq h = ⟨⟦⟨fun (n : ℕ) => ↑(seq n), h⟩⟧, ⋯⟩
Instances For
Equations
Equations
Norm #
Valuation on ℤ_[p]
#
PadicInt.valuation
lifts the p
-adic valuation on ℚ
to ℤ_[p]
.
Equations
- x.valuation = (↑x).valuation.toNat
Instances For
Units of ℤ_[p]
#
unitCoeff hx
is the unit u
in the unique representation x = u * p ^ n
.
See unitCoeff_spec
.