Documentation

Mathlib.RingTheory.AdicCompletion.Algebra

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.

Main definitions #

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.

theorem AdicCompletion.transitionMap_ideal_mk {R : Type u_1} [CommRing R] (I : Ideal R) {m n : } (hmn : m n) (x : R) :
theorem AdicCompletion.transitionMap_map_one {R : Type u_1} [CommRing R] (I : Ideal R) {m n : } (hmn : m n) :
(transitionMap I R hmn) 1 = 1
theorem AdicCompletion.transitionMap_map_mul {R : Type u_1} [CommRing R] (I : Ideal R) {m n : } (hmn : m n) (x : R I ^ n ) (y : R I ^ n ) :
(transitionMap I R hmn) (x * y) = (transitionMap I R hmn) x * (transitionMap I R hmn) y
theorem AdicCompletion.transitionMap_map_pow {R : Type u_1} [CommRing R] (I : Ideal R) {m n a : } (hmn : m n) (x : R I ^ n ) :
(transitionMap I R hmn) (x ^ a) = (transitionMap I R hmn) x ^ a
noncomputable def AdicCompletion.transitionMapₐ {R : Type u_1} [CommRing R] (I : Ideal R) {m n : } (hmn : m n) :
R I ^ n →ₐ[R] R I ^ m

AdicCompletion.transitionMap as an algebra homomorphism.

Equations
Instances For
    noncomputable def AdicCompletion.subalgebra {R : Type u_1} [CommRing R] (I : Ideal R) :
    Subalgebra R ((n : ) → R I ^ n )

    AdicCompletion I R is an R-subalgebra of ∀ n, R ⧸ (I ^ n • ⊤ : Ideal R).

    Equations
    Instances For
      noncomputable def AdicCompletion.subring {R : Type u_1} [CommRing R] (I : Ideal R) :
      Subring ((n : ) → R I ^ n )

      AdicCompletion I R is a subring of ∀ n, R ⧸ (I ^ n • ⊤ : Ideal R).

      Equations
      Instances For
        noncomputable instance AdicCompletion.instMul {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instOne {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instNatCast {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instIntCast {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instPowNat {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instCommRing {R : Type u_1} [CommRing R] (I : Ideal R) :
        Equations
        noncomputable instance AdicCompletion.instAlgebra {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (I : Ideal R) [Algebra S R] :
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem AdicCompletion.val_one {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) :
        1 n = 1
        @[simp]
        theorem AdicCompletion.val_mul {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (x y : AdicCompletion I R) :
        ↑(x * y) n = x n * y n
        noncomputable def AdicCompletion.evalₐ {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) :

        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
        Instances For
          theorem AdicCompletion.factor_evalₐ_eq_eval {R : Type u_1} [CommRing R] (I : Ideal R) {n : } (x : AdicCompletion I R) (h : I ^ n I ^ n ) :
          (Ideal.Quotient.factor h) ((evalₐ I n) x) = (eval I R n) x
          theorem AdicCompletion.factor_eval_eq_evalₐ {R : Type u_1} [CommRing R] (I : Ideal R) {n : } (x : AdicCompletion I R) (h : I ^ n I ^ n) :
          (Submodule.factor h) ((eval I R n) x) = (evalₐ I n) x
          @[simp]
          theorem AdicCompletion.evalₐ_of {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (x : R) :
          (evalₐ I n) ((of I R) x) = (Ideal.Quotient.mk (I ^ n)) x

          The composition map R →+* AdicCompletion I R →+* R ⧸ I ^ n equals to the natural quotient map.

          @[simp]
          theorem AdicCompletion.evalₐ_mk {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (x : AdicCauchySequence I R) :
          (evalₐ I n) ((mk I R) x) = (Ideal.Quotient.mk (I ^ n)) (x n)
          noncomputable def AdicCompletion.AdicCauchySequence.subalgebra {R : Type u_1} [CommRing R] (I : Ideal R) :
          Subalgebra R (R)

          AdicCauchySequence I R is an R-subalgebra of ℕ → R.

          Equations
          Instances For
            noncomputable def AdicCompletion.AdicCauchySequence.subring {R : Type u_1} [CommRing R] (I : Ideal R) :
            Subring (R)

            AdicCauchySequence I R is a subring of ℕ → R.

            Equations
            Instances For
              noncomputable instance AdicCompletion.instMulAdicCauchySequence {R : Type u_1} [CommRing R] (I : Ideal R) :
              Equations
              Equations
              Equations
              Equations
              noncomputable instance AdicCompletion.instAlgebraAdicCauchySequence {R : Type u_1} [CommRing R] (I : Ideal R) :
              Equations
              • One or more equations did not get rendered due to their size.
              @[simp]
              theorem AdicCompletion.one_apply {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) :
              1 n = 1
              @[simp]
              theorem AdicCompletion.mul_apply {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (f g : AdicCauchySequence I R) :
              ↑(f * g) n = f n * g n
              noncomputable def AdicCompletion.mkₐ {R : Type u_1} [CommRing R] (I : Ideal R) :

              The canonical algebra map from adic Cauchy sequences to the adic completion.

              Equations
              Instances For
                @[simp]
                theorem AdicCompletion.mkₐ_apply_coe {R : Type u_1} [CommRing R] (I : Ideal R) (a : AdicCauchySequence I R) (n : ) :
                ((mkₐ I) a) n = (Ideal.Quotient.mk (I ^ n )) (a n)
                @[simp]
                theorem AdicCompletion.evalₐ_mkₐ {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (x : AdicCauchySequence I R) :
                (evalₐ I n) ((mkₐ I) x) = (Ideal.Quotient.mk (I ^ n)) (x n)
                theorem AdicCompletion.Ideal.mk_eq_mk {R : Type u_1} [CommRing R] (I : Ideal R) {m n : } (hmn : m n) (r : AdicCauchySequence I R) :
                (Ideal.Quotient.mk (I ^ m)) (r n) = (Ideal.Quotient.mk (I ^ m)) (r m)
                theorem AdicCompletion.smul_mk {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] {m n : } (hmn : m n) (r : AdicCauchySequence I R) (x : AdicCauchySequence I M) :
                r n Submodule.Quotient.mk (x n) = r m Submodule.Quotient.mk (x m)
                noncomputable instance AdicCompletion.instSMulQuotientIdealHSMulTopSubmodule {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] :
                SMul (R I ) (M I )

                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
                theorem AdicCompletion.mk_smul_mk {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] (r : R) (x : M) :
                theorem AdicCompletion.val_smul_eq_evalₐ_smul {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] (n : ) (r : AdicCompletion I R) (x : M I ^ n ) :
                r n x = (evalₐ I n) r x
                noncomputable instance AdicCompletion.smul {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] :
                Equations
                @[simp]
                theorem AdicCompletion.smul_eval {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] (n : ) (r : AdicCompletion I R) (x : AdicCompletion I M) :
                ↑(r x) n = r n x n
                noncomputable instance AdicCompletion.module {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_3} [AddCommGroup M] [Module R M] :

                AdicCompletion I M is naturally an AdicCompletion I R module.

                Equations
                noncomputable def AdicCompletion.liftRingHom {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [CommRing S] (I : Ideal S) (f : (n : ) → R →+* S I ^ n) (hf : ∀ {m n : } (hle : m n), (Ideal.Quotient.factorPow I hle).comp (f n) = f m) :

                The universal property of AdicCompletion for rings. The lift ring map R →+* AdicCompletion I S of a compatible family of ring maps R →+* S ⧸ I ^ n.

                Equations
                Instances For
                  theorem AdicCompletion.factor_eval_liftRingHom {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [CommRing S] (I : Ideal S) (f : (n : ) → R →+* S I ^ n) (hf : ∀ {m n : } (hle : m n), (Ideal.Quotient.factorPow I hle).comp (f n) = f m) (n : ) (x : R) (h : I ^ n I ^ n) :
                  (Submodule.factor h) ((eval I S n) ((liftRingHom I f ) x)) = (f n) x
                  @[simp]
                  theorem AdicCompletion.evalₐ_liftRingHom {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [CommRing S] (I : Ideal S) (f : (n : ) → R →+* S I ^ n) (hf : ∀ {m n : } (hle : m n), (Ideal.Quotient.factorPow I hle).comp (f n) = f m) (n : ) (x : R) :
                  (evalₐ I n) ((liftRingHom I f ) x) = (f n) x
                  @[simp]
                  theorem AdicCompletion.evalₐ_comp_liftRingHom {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [CommRing S] (I : Ideal S) (f : (n : ) → R →+* S I ^ n) (hf : ∀ {m n : } (hle : m n), (Ideal.Quotient.factorPow I hle).comp (f n) = f m) (n : ) :
                  (↑(evalₐ I n)).comp (liftRingHom I f ) = f n
                  noncomputable def AdicCompletion.ofAlgEquiv {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] :

                  When S is I-adic complete, the canonical map from S to its I-adic completion is an S-algebra isomorphism.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem AdicCompletion.ofAlgEquiv_apply {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] (x : S) :
                    (ofAlgEquiv I) x = (of I S) x
                    @[simp]
                    theorem AdicCompletion.of_ofAlgEquiv_symm {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] (x : AdicCompletion I S) :
                    (of I S) ((ofAlgEquiv I).symm x) = x
                    @[simp]
                    theorem AdicCompletion.ofAlgEquiv_symm_of {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] (x : S) :
                    (ofAlgEquiv I).symm ((of I S) x) = x
                    theorem AdicCompletion.mk_smul_top_ofAlgEquiv_symm {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] (n : ) (x : AdicCompletion I S) :
                    (Ideal.Quotient.mk (I ^ n )) ((ofAlgEquiv I).symm x) = (eval I S n) x
                    @[simp]
                    theorem AdicCompletion.mk_ofAlgEquiv_symm {S : Type u_5} [CommRing S] (I : Ideal S) [IsAdicComplete I S] (n : ) (x : AdicCompletion I S) :
                    (Ideal.Quotient.mk (I ^ n)) ((ofAlgEquiv I).symm x) = (evalₐ I n) x