Documentation

Mathlib.LinearAlgebra.AdicCompletion

Completion of a module with respect to an ideal. #

In this file we define the notions of Hausdorff, precomplete, and complete for an R-module M with respect to an ideal I:

Main definitions #

class IsHausdorff {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :

A module M is Hausdorff with respect to an ideal I if ⋂ I^n M = 0.

Instances
    class IsPrecomplete {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :

    A module M is precomplete with respect to an ideal I if every Cauchy sequence converges.

    Instances
      class IsAdicComplete {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] extends IsHausdorff , IsPrecomplete :

      A module M is I-adically complete if it is Hausdorff and precomplete.

        Instances
          theorem IsHausdorff.haus {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] :
          IsHausdorff I M∀ (x : M), (∀ (n : ), x 0 [SMOD I ^ n ])x = 0
          theorem isHausdorff_iff {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] :
          IsHausdorff I M ∀ (x : M), (∀ (n : ), x 0 [SMOD I ^ n ])x = 0
          theorem IsPrecomplete.prec {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] :
          IsPrecomplete I M∀ {f : M}, (∀ {m n : }, m nf m f n [SMOD I ^ m ])∃ (L : M), ∀ (n : ), f n L [SMOD I ^ n ]
          theorem isPrecomplete_iff {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] :
          IsPrecomplete I M ∀ (f : M), (∀ {m n : }, m nf m f n [SMOD I ^ m ])∃ (L : M), ∀ (n : ), f n L [SMOD I ^ n ]
          @[reducible]
          def Hausdorffification {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :
          Type u_2

          The Hausdorffification of a module with respect to an ideal.

          Equations
          Instances For
            def adicCompletion {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :
            Submodule R ((n : ) → M I ^ n )

            The completion of a module with respect to an ideal. This is not necessarily Hausdorff. In fact, this is only complete if the ideal is finitely generated.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              instance IsHausdorff.bot {R : Type u_1} [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] :
              Equations
              • =
              theorem IsHausdorff.subsingleton {R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] (h : IsHausdorff M) :
              instance IsHausdorff.of_subsingleton {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] [Subsingleton M] :
              Equations
              • =
              theorem IsHausdorff.iInf_pow_smul {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (h : IsHausdorff I M) :
              ⨅ (n : ), I ^ n =
              def Hausdorffification.of {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :

              The canonical linear map to the Hausdorffification.

              Equations
              Instances For
                theorem Hausdorffification.induction_on {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {C : Hausdorffification I MProp} (x : Hausdorffification I M) (ih : ∀ (x : M), C ((Hausdorffification.of I M) x)) :
                C x
                def Hausdorffification.lift {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) :

                Universal property of Hausdorffification: any linear map to a Hausdorff module extends to a unique map from the Hausdorffification.

                Equations
                Instances For
                  theorem Hausdorffification.lift_of {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) (x : M) :
                  theorem Hausdorffification.lift_comp_of {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) :
                  theorem Hausdorffification.lift_eq {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) (g : Hausdorffification I M →ₗ[R] N) (hg : g ∘ₗ Hausdorffification.of I M = f) :

                  Uniqueness of lift.

                  instance IsPrecomplete.bot {R : Type u_1} [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] :
                  Equations
                  • =
                  instance IsPrecomplete.top {R : Type u_1} [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] :
                  Equations
                  • =
                  instance IsPrecomplete.of_subsingleton {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] [Subsingleton M] :
                  Equations
                  • =
                  def adicCompletion.of {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :

                  The canonical linear map to the completion.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem adicCompletion.of_apply {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (x : M) (n : ) :
                    ((adicCompletion.of I M) x) n = (Submodule.mkQ (I ^ n )) x
                    def adicCompletion.eval {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) :

                    Linearly evaluating a sequence in the completion at a given input.

                    Equations
                    Instances For
                      @[simp]
                      theorem adicCompletion.coe_eval {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) :
                      (adicCompletion.eval I M n) = fun (f : (adicCompletion I M)) => f n
                      theorem adicCompletion.eval_apply {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) (f : (adicCompletion I M)) :
                      (adicCompletion.eval I M n) f = f n
                      theorem adicCompletion.eval_of {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) (x : M) :
                      @[simp]
                      theorem adicCompletion.eval_comp_of {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) :
                      @[simp]
                      theorem adicCompletion.range_eval {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ) :
                      theorem adicCompletion.ext {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {x : (adicCompletion I M)} {y : (adicCompletion I M)} (h : ∀ (n : ), (adicCompletion.eval I M n) x = (adicCompletion.eval I M n) y) :
                      x = y
                      instance IsAdicComplete.bot {R : Type u_1} [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] :
                      Equations
                      • =
                      instance IsAdicComplete.of_subsingleton {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] [Subsingleton M] :
                      Equations
                      • =