Documentation

Mathlib.RingTheory.AdicCompletion.Functoriality

Functoriality of adic completions #

In this file we establish functorial properties of the adic completion.

Main definitions #

Main results #

noncomputable def LinearMap.reduceModIdeal {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] (f : M →ₗ[R] N) :

The induced linear map on the quotients mod I • ⊤.

Equations
Instances For
    @[simp]
    theorem LinearMap.reduceModIdeal_apply {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] (f : M →ₗ[R] N) (x : M) :
    theorem AdicCompletion.transitionMap_comp_reduceModIdeal {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] (f : M →ₗ[R] N) {m : } {n : } (hmn : m n) :

    A linear map induces a linear map on adic cauchy sequences.

    Equations
    Instances For
      @[simp]
      theorem AdicCompletion.AdicCauchySequence.map_apply_coe {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] (f : M →ₗ[R] N) (a : AdicCompletion.AdicCauchySequence I M) (n : ) :
      ((AdicCompletion.AdicCauchySequence.map I f) a) n = f (a n)
      @[simp]
      theorem AdicCompletion.AdicCauchySequence.map_id {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :
      AdicCompletion.AdicCauchySequence.map I LinearMap.id = LinearMap.id
      noncomputable def AdicCompletion.map {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] (f : M →ₗ[R] N) :

      A linear map induces a map on adic completions.

      Equations
      Instances For
        @[simp]
        theorem AdicCompletion.map_val_apply {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] (f : M →ₗ[R] N) {n : } (x : AdicCompletion I M) :
        ((AdicCompletion.map I f) x) n = (LinearMap.reduceModIdeal (I ^ n) f) (x n)
        theorem AdicCompletion.map_ext {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Sort u_6} {f : AdicCompletion I MN} {g : AdicCompletion I MN} (h : ∀ (a : AdicCompletion.AdicCauchySequence I M), f ((AdicCompletion.mk I M) a) = g ((AdicCompletion.mk I M) a)) :
        f = g

        Equality of maps out of an adic completion can be checked on Cauchy sequences.

        theorem AdicCompletion.map_ext' {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {T : Type u_5} [AddCommGroup T] [Module (AdicCompletion I R) T] {f : AdicCompletion I M →ₗ[AdicCompletion I R] T} {g : AdicCompletion I M →ₗ[AdicCompletion I R] T} (h : ∀ (a : AdicCompletion.AdicCauchySequence I M), f ((AdicCompletion.mk I M) a) = g ((AdicCompletion.mk I M) a)) :
        f = g

        Equality of linear maps out of an adic completion can be checked on Cauchy sequences.

        theorem AdicCompletion.map_ext'' {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] {f : AdicCompletion I M →ₗ[R] N} {g : AdicCompletion I M →ₗ[R] N} (h : f ∘ₗ AdicCompletion.mk I M = g ∘ₗ AdicCompletion.mk I M) :
        f = g

        Equality of linear maps out of an adic completion can be checked on Cauchy sequences.

        @[simp]
        theorem AdicCompletion.map_id {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] :
        AdicCompletion.map I LinearMap.id = LinearMap.id
        theorem AdicCompletion.map_comp {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] {P : Type u_4} [AddCommGroup P] [Module R P] (f : M →ₗ[R] N) (g : N →ₗ[R] P) :
        theorem AdicCompletion.map_comp_apply {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] {P : Type u_4} [AddCommGroup P] [Module R P] (f : M →ₗ[R] N) (g : N →ₗ[R] P) (x : AdicCompletion I M) :
        (AdicCompletion.map I g) ((AdicCompletion.map I f) x) = (AdicCompletion.map I (g ∘ₗ f)) x
        @[simp]
        @[simp]
        theorem AdicCompletion.map_zero {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] :
        noncomputable def AdicCompletion.congr {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] (f : M ≃ₗ[R] N) :

        A linear equiv induces a linear equiv on adic completions.

        Equations
        Instances For
          @[simp]
          theorem AdicCompletion.congr_apply {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] (f : M ≃ₗ[R] N) (x : AdicCompletion I M) :
          @[simp]
          theorem AdicCompletion.congr_symm_apply {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] (f : M ≃ₗ[R] N) (x : AdicCompletion I N) :
          (AdicCompletion.congr I f).symm x = (AdicCompletion.map I f.symm) x

          Adic completion in families #

          In this section we consider a family M : ι → Type* of R-modules. Purely from the formal properties of adic completions we obtain two canonical maps

          If ι is finite, both are isomorphisms and, modulo the equivalence ⨁ j, (AdicCompletion I (M j) and ∀ j, AdicCompletion I (M j), inverse to each other.

          noncomputable def AdicCompletion.pi {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] :
          AdicCompletion I ((j : ι) → M j) →ₗ[AdicCompletion I R] (j : ι) → AdicCompletion I (M j)

          The canonical map from the adic completion of the product to the product of the adic completions.

          Equations
          Instances For
            @[simp]
            theorem AdicCompletion.pi_apply_coe {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] (c : AdicCompletion I ((j : ι) → M j)) (i : ι) (n : ) :
            ((AdicCompletion.pi I M) c i) n = (LinearMap.reduceModIdeal (I ^ n) (LinearMap.proj i)) (c n)
            noncomputable def AdicCompletion.sum {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [DecidableEq ι] :
            (DirectSum ι fun (j : ι) => AdicCompletion I (M j)) →ₗ[AdicCompletion I R] AdicCompletion I (DirectSum ι fun (j : ι) => M j)

            The canonical map from the sum of the adic completions to the adic completion of the sum.

            Equations
            Instances For
              @[simp]
              theorem AdicCompletion.sum_lof {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [DecidableEq ι] (j : ι) (x : AdicCompletion I (M j)) :
              (AdicCompletion.sum I M) ((DirectSum.lof (AdicCompletion I R) ι (fun (i : ι) => AdicCompletion I (M i)) j) x) = (AdicCompletion.map I (DirectSum.lof R ι M j)) x
              @[simp]
              theorem AdicCompletion.sum_of {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [DecidableEq ι] (j : ι) (x : AdicCompletion I (M j)) :
              (AdicCompletion.sum I M) ((DirectSum.of (fun (i : ι) => AdicCompletion I (M i)) j) x) = (AdicCompletion.map I (DirectSum.lof R ι M j)) x
              noncomputable def AdicCompletion.sumInv {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] :
              AdicCompletion I (DirectSum ι fun (j : ι) => M j) →ₗ[AdicCompletion I R] DirectSum ι fun (j : ι) => AdicCompletion I (M j)

              If ι is finite, we use the equivalence of sum and product to obtain an inverse for AdicCompletion.sum from AdicCompletion.pi.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem AdicCompletion.component_sumInv {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] (x : AdicCompletion I (DirectSum ι fun (j : ι) => M j)) (j : ι) :
                (DirectSum.component (AdicCompletion I R) ι (fun (i : ι) => AdicCompletion I (M i)) j) ((AdicCompletion.sumInv I M) x) = (AdicCompletion.map I (DirectSum.component R ι M j)) x
                @[simp]
                theorem AdicCompletion.sumInv_apply {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] (x : AdicCompletion I (DirectSum ι fun (j : ι) => M j)) (j : ι) :
                theorem AdicCompletion.sumInv_comp_sum {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [DecidableEq ι] :
                AdicCompletion.sumInv I M ∘ₗ AdicCompletion.sum I M = LinearMap.id
                theorem AdicCompletion.sum_comp_sumInv {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [DecidableEq ι] :
                AdicCompletion.sum I M ∘ₗ AdicCompletion.sumInv I M = LinearMap.id
                noncomputable def AdicCompletion.sumEquivOfFintype {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [DecidableEq ι] :
                (DirectSum ι fun (j : ι) => AdicCompletion I (M j)) ≃ₗ[AdicCompletion I R] AdicCompletion I (DirectSum ι fun (j : ι) => M j)

                If ι is finite, sum has sumInv as inverse.

                Equations
                Instances For
                  @[simp]
                  theorem AdicCompletion.sumEquivOfFintype_apply {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [DecidableEq ι] (x : DirectSum ι fun (j : ι) => AdicCompletion I (M j)) :
                  @[simp]
                  theorem AdicCompletion.sumEquivOfFintype_symm_apply {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [DecidableEq ι] (x : AdicCompletion I (DirectSum ι fun (j : ι) => M j)) :
                  noncomputable def AdicCompletion.piEquivOfFintype {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [DecidableEq ι] [Fintype ι] :
                  AdicCompletion I ((j : ι) → M j) ≃ₗ[AdicCompletion I R] (j : ι) → AdicCompletion I (M j)

                  If ι is finite, pi is a linear equiv.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem AdicCompletion.piEquivOfFintype_apply {R : Type u_1} [CommRing R] (I : Ideal R) {ι : Type u_6} (M : ιType u_7) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [DecidableEq ι] [Fintype ι] (x : AdicCompletion I ((j : ι) → M j)) :
                    noncomputable def AdicCompletion.piEquivFin {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) :

                    Adic completion of R^n is (AdicCompletion I R)^n.

                    Equations
                    Instances For
                      @[simp]
                      theorem AdicCompletion.piEquivFin_apply {R : Type u_1} [CommRing R] (I : Ideal R) (n : ) (x : AdicCompletion I (Fin nR)) :
                      (AdicCompletion.piEquivFin I n) x = (AdicCompletion.pi I fun (x : Fin n) => R) x