Algebra instance on adic completion #
In this file we provide an algebra instance on the adic completion of a ring. Then the adic completion of any module is a module over the adic completion of the ring.
Implementation details #
We do not make a separate adic completion type in algebra case, to not duplicate all module
theoretic results on adic completions. This choice does cause some trouble though,
since I ^ n • ⊤
is not defeq to I ^ n
. We try to work around most of the trouble by
providing as much API as possible.
AdicCompletion.transitionMap
as an algebra homomorphism.
Equations
- AdicCompletion.transitionMapₐ I hmn = AlgHom.ofLinearMap (AdicCompletion.transitionMap I R hmn) ⋯ ⋯
Instances For
AdicCompletion I R
is an R
-subalgebra of ∀ n, R ⧸ (I ^ n • ⊤ : Ideal R)
.
Equations
- AdicCompletion.subalgebra I = (AdicCompletion.submodule I R).toSubalgebra ⋯ ⋯
Instances For
AdicCompletion I R
is a subring of ∀ n, R ⧸ (I ^ n • ⊤ : Ideal R)
.
Equations
- AdicCompletion.subring I = (AdicCompletion.subalgebra I).toSubring
Instances For
Equations
- AdicCompletion.instMul I = { mul := fun (x y : AdicCompletion I R) => ⟨↑x * ↑y, ⋯⟩ }
Equations
- AdicCompletion.instOne I = { one := ⟨1, ⋯⟩ }
Equations
- AdicCompletion.instNatCast I = { natCast := fun (n : ℕ) => ⟨↑n, ⋯⟩ }
Equations
- AdicCompletion.instIntCast I = { intCast := fun (n : ℤ) => ⟨↑n, ⋯⟩ }
Equations
- AdicCompletion.instPowNat I = { pow := fun (x : AdicCompletion I R) (n : ℕ) => ⟨↑x ^ n, ⋯⟩ }
Equations
- AdicCompletion.instCommRing I = let f := Subtype.val; Function.Injective.commRing f ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- AdicCompletion.instAlgebra I = Algebra.mk { toFun := fun (r : R) => ⟨(algebraMap R ((n : ℕ) → R ⧸ I ^ n • ⊤)) r, ⋯⟩, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
The canonical algebra map from the adic completion to R ⧸ I ^ n
.
This is AdicCompletion.eval
postcomposed with the algebra isomorphism
R ⧸ (I ^ n • ⊤) ≃ₐ[R] R ⧸ I ^ n
.
Equations
- AdicCompletion.evalₐ I n = let_fun h := ⋯; (↑(Ideal.quotientEquivAlgOfEq R h)).comp (AlgHom.ofLinearMap (AdicCompletion.eval I R n) ⋯ ⋯)
Instances For
AdicCauchySequence I R
is an R
-subalgebra of ℕ → R
.
Equations
- AdicCompletion.AdicCauchySequence.subalgebra I = (AdicCompletion.AdicCauchySequence.submodule I R).toSubalgebra ⋯ ⋯
Instances For
AdicCauchySequence I R
is a subring of ℕ → R
.
Equations
Instances For
Equations
- AdicCompletion.instMulAdicCauchySequence I = { mul := fun (x y : AdicCompletion.AdicCauchySequence I R) => ⟨↑x * ↑y, ⋯⟩ }
Equations
- AdicCompletion.instOneAdicCauchySequence I = { one := ⟨1, ⋯⟩ }
Equations
- AdicCompletion.instNatCastAdicCauchySequence I = { natCast := fun (n : ℕ) => ⟨↑n, ⋯⟩ }
Equations
- AdicCompletion.instIntCastAdicCauchySequence I = { intCast := fun (n : ℤ) => ⟨↑n, ⋯⟩ }
Equations
- AdicCompletion.instPowAdicCauchySequenceNat I = { pow := fun (x : AdicCompletion.AdicCauchySequence I R) (n : ℕ) => ⟨↑x ^ n, ⋯⟩ }
Equations
- AdicCompletion.instCommRingAdicCauchySequence I = let f := Subtype.val; Function.Injective.commRing f ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- AdicCompletion.instAlgebraAdicCauchySequence I = Algebra.mk { toFun := fun (r : R) => ⟨(algebraMap R (ℕ → R)) r, ⋯⟩, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
The canonical algebra map from adic cauchy sequences to the adic completion.
Equations
- AdicCompletion.mkₐ I = AlgHom.ofLinearMap (AdicCompletion.mk I R) ⋯ ⋯
Instances For
Scalar multiplication of R ⧸ (I • ⊤)
on M ⧸ (I • ⊤)
. This is used in order to have
good definitional behaviour for the module instance on adic completions
Equations
- AdicCompletion.instSMulQuotientIdealHSMulTopSubmodule I = { smul := fun (r : R ⧸ I • ⊤) (x : M ⧸ I • ⊤) => Quotient.liftOn r (fun (x_1 : R) => x_1 • x) ⋯ }
Equations
- AdicCompletion.smul I = { smul := fun (r : AdicCompletion I R) (x : AdicCompletion I M) => ⟨fun (n : ℕ) => (AdicCompletion.eval I R n) r • (AdicCompletion.eval I M n) x, ⋯⟩ }
AdicCompletion I M
is naturally an AdicCompletion I R
module.
Equations
- AdicCompletion.module I = Module.mk ⋯ ⋯
Equations
- ⋯ = ⋯