Documentation

TauCeti.Algebra.Category.ModuleCat.Tower.Basic

lim and lim¹ of towers of modules #

A tower of modules over a ring R is a functor ℕᵒᵖ ⥤ ModuleCat R, that is, a sequence of modules A₀ ← A₁ ← A₂ ← ⋯ with transition maps φₙ : Aₙ₊₁ → Aₙ. On the product ∏ₙ Aₙ the shift δ(x)ₙ = xₙ - φₙ(xₙ₊₁) is R-linear; its kernel lim A is the module of compatible families and its cokernel is lim¹ A. This file shows that lim A, with its projections, is a limit of the tower in ModuleCat R, that lim¹ A vanishes if and only if the shift is surjective, and hence that lim¹ A vanishes when every transition map is surjective. By Stacks, Tag 07KW, lim and lim¹ are the derived functors R⁰lim and R¹lim on ℕ-indexed towers, whose higher derived limits vanish; that identification is not formalized here. The shift presentation is the input to the six-term sequence of a short exact sequence of towers, to Milnor sequences for towers of complexes, and to derived limits of towers of modules.

The ring R is only assumed associative and unital, so towers of left modules over a noncommutative ring are allowed.

Main declarations #

References #

@[reducible, inline]
abbrev TauCeti.ModuleTower (R : Type u) [Ring R] :
Type (max v (v + 1) u)

A tower of R-modules: a functor ℕᵒᵖ ⥤ ModuleCat R, given by modules Aₙ and transition maps Aₙ₊₁ → Aₙ. Morphisms of towers are natural transformations.

Instances For
    @[reducible, inline]
    abbrev TauCeti.ModuleTower.Product {R : Type u} [Ring R] (F : ModuleTower R) :

    The product ∏ₙ Aₙ of the terms of a tower.

    Instances For
      def TauCeti.ModuleTower.transition {R : Type u} [Ring R] (F : ModuleTower R) (n : ℕ) :
      ↑(F.obj (Opposite.op (n + 1))) →ₗ[R] ↑(F.obj (Opposite.op n))

      The transition map Aₙ₊₁ → Aₙ of a tower.

      Instances For
        def TauCeti.ModuleTower.transitionOfLE {R : Type u} [Ring R] (F : ModuleTower R) {n k : ℕ} (h : n ≤ k) :
        ↑(F.obj (Opposite.op k)) →ₗ[R] ↑(F.obj (Opposite.op n))

        The composite transition map Aₖ → Aₙ of a tower, for n ≤ k.

        Instances For
          @[simp]

          Every map F.map f : Aₖ → Aₙ of a tower is the composite transition transitionOfLE.

          @[simp]
          theorem TauCeti.ModuleTower.transitionOfLE_comp_transitionOfLE {R : Type u} [Ring R] (F : ModuleTower R) {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k) :
          @[simp]
          theorem TauCeti.ModuleTower.transitionOfLE_transitionOfLE {R : Type u} [Ring R] (F : ModuleTower R) {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k) (x : ↑(F.obj (Opposite.op k))) :
          (F.transitionOfLE hmn) ((F.transitionOfLE hnk) x) = (F.transitionOfLE ⋯) x
          @[simp]
          theorem TauCeti.ModuleTower.transition_transitionOfLE {R : Type u} [Ring R] (F : ModuleTower R) {n k : ℕ} (h : n + 1 ≤ k) (x : ↑(F.obj (Opposite.op k))) :
          (F.transition n) ((F.transitionOfLE h) x) = (F.transitionOfLE ⋯) x
          @[simp]
          theorem TauCeti.ModuleTower.transitionOfLE_transition {R : Type u} [Ring R] (F : ModuleTower R) {n k : ℕ} (h : n ≤ k) (x : ↑(F.obj (Opposite.op (k + 1)))) :
          (F.transitionOfLE h) ((F.transition k) x) = (F.transitionOfLE ⋯) x
          theorem TauCeti.ModuleTower.range_transitionOfLE_le {R : Type u} [Ring R] (F : ModuleTower R) {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k) :

          The images of the composite transitions into a fixed term Aₙ decrease as the source index grows.

          theorem TauCeti.ModuleTower.transitionOfLE_surjective {R : Type u} [Ring R] (F : ModuleTower R) {m k : ℕ} (h : ∀ (n : ℕ), m ≤ n → Function.Surjective ⇑(F.transition n)) (hmk : m ≤ k) :

          If every transition map F.transition n with m ≤ n is surjective, then so is every composite transition Aₖ → Aₘ.

          The shift map δ : ∏ₙ Aₙ → ∏ₙ Aₙ, δ(x)ₙ = xₙ - φₙ(xₙ₊₁).

          Instances For
            @[simp]
            theorem TauCeti.ModuleTower.shift_apply {R : Type u} [Ring R] (F : ModuleTower R) (x : F.Product) (n : ℕ) :
            F.shift x n = x n - (F.transition n) (x (n + 1))

            The limit lim A of a tower, the kernel of the shift map: the families (xₙ) with φₙ(xₙ₊₁) = xₙ for every n.

            Instances For
              @[reducible, inline]
              abbrev TauCeti.ModuleTower.limOne {R : Type u} [Ring R] (F : ModuleTower R) :

              The first derived limit lim¹ A of a tower, the cokernel of the shift map.

              Instances For
                @[simp]
                theorem TauCeti.ModuleTower.mem_lim {R : Type u} [Ring R] (F : ModuleTower R) {x : F.Product} :
                x ∈ F.lim ↔ ∀ (n : ℕ), (F.transition n) (x (n + 1)) = x n

                x ∈ lim A if and only if φₙ(xₙ₊₁) = xₙ for every n: lim A is exactly the module of compatible families.

                def TauCeti.ModuleTower.limπ {R : Type u} [Ring R] (F : ModuleTower R) (n : ℕ) :
                ↥F.lim →ₗ[R] ↑(F.obj (Opposite.op n))

                The projection lim A → Aₙ.

                Instances For
                  @[simp]
                  theorem TauCeti.ModuleTower.limπ_apply {R : Type u} [Ring R] (F : ModuleTower R) (n : ℕ) (x : ↥F.lim) :
                  (F.limπ n) x = ↑x n
                  theorem TauCeti.ModuleTower.lim_ext {R : Type u} [Ring R] (F : ModuleTower R) {x y : ↥F.lim} (h : ∀ (n : ℕ), (F.limπ n) x = (F.limπ n) y) :
                  x = y

                  Two points of lim A are equal when all their coordinates agree.

                  theorem TauCeti.ModuleTower.lim_ext_iff {R : Type u} [Ring R] {F : ModuleTower R} {x y : ↥F.lim} :
                  x = y ↔ ∀ (n : ℕ), (F.limπ n) x = (F.limπ n) y
                  @[simp]
                  theorem TauCeti.ModuleTower.transition_coe_lim_succ {R : Type u} [Ring R] (F : ModuleTower R) (x : ↥F.lim) (n : ℕ) :
                  (F.transition n) (↑x (n + 1)) = ↑x n

                  An element of lim A is compatible with the transition Aₙ₊₁ → Aₙ.

                  @[simp]
                  theorem TauCeti.ModuleTower.transition_comp_limπ {R : Type u} [Ring R] (F : ModuleTower R) (n : ℕ) :
                  F.transition n ∘ₗ F.limπ (n + 1) = F.limπ n
                  theorem TauCeti.ModuleTower.lim_hom_ext {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] {f g : P →ₗ[R] ↥F.lim} (h : ∀ (n : ℕ), F.limπ n ∘ₗ f = F.limπ n ∘ₗ g) :
                  f = g
                  theorem TauCeti.ModuleTower.lim_hom_ext_iff {R : Type u} [Ring R] {F : ModuleTower R} {P : Type u_1} [AddCommGroup P] [Module R P] {f g : P →ₗ[R] ↥F.lim} :
                  f = g ↔ ∀ (n : ℕ), F.limπ n ∘ₗ f = F.limπ n ∘ₗ g
                  def TauCeti.ModuleTower.limLift {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] (f : (n : ℕ) → P →ₗ[R] ↑(F.obj (Opposite.op n))) (hf : ∀ (n : ℕ), F.transition n ∘ₗ f (n + 1) = f n) :
                  P →ₗ[R] ↥F.lim

                  The universal property of lim A: a family of linear maps P → Aₙ compatible with the transitions factors through lim A.

                  Instances For
                    @[simp]
                    theorem TauCeti.ModuleTower.coe_limLift_apply {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] (f : (n : ℕ) → P →ₗ[R] ↑(F.obj (Opposite.op n))) (hf : ∀ (n : ℕ), F.transition n ∘ₗ f (n + 1) = f n) (p : P) (n : ℕ) :
                    ↑((F.limLift f hf) p) n = (f n) p
                    @[simp]
                    theorem TauCeti.ModuleTower.limπ_comp_limLift {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] (f : (n : ℕ) → P →ₗ[R] ↑(F.obj (Opposite.op n))) (hf : ∀ (n : ℕ), F.transition n ∘ₗ f (n + 1) = f n) (n : ℕ) :
                    F.limπ n ∘ₗ F.limLift f hf = f n
                    @[simp]
                    theorem TauCeti.ModuleTower.ker_limLift {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] (f : (n : ℕ) → P →ₗ[R] ↑(F.obj (Opposite.op n))) (hf : ∀ (n : ℕ), F.transition n ∘ₗ f (n + 1) = f n) :
                    (F.limLift f hf).ker = ⨅ (n : ℕ), (f n).ker

                    The kernel of the map P → lim A induced by a compatible family of maps fₙ : P → Aₙ is the intersection of the kernels of the fₙ.

                    The cone over a tower with vertex lim A and the projections lim A → Aₙ.

                    Instances For
                      @[simp]
                      theorem TauCeti.ModuleTower.limCone_pt {R : Type u} [Ring R] (F : ModuleTower R) :
                      F.limCone.pt = ↧↥F.lim
                      theorem TauCeti.ModuleTower.map_apply_of_mem_lim {R : Type u} [Ring R] (F : ModuleTower R) {x : F.Product} (hx : x ∈ F.lim) {m n : ℕ} (f : Opposite.op n ⟶ Opposite.op m) :
                      (ModuleCat.Hom.hom (F.map f)) (x n) = x m

                      An element of lim A is compatible with every composite transition Aₙ → Aₘ, m ≤ n.

                      theorem TauCeti.ModuleTower.transitionOfLE_apply_of_mem_lim {R : Type u} [Ring R] (F : ModuleTower R) {x : F.Product} (hx : x ∈ F.lim) {n k : ℕ} (h : n ≤ k) :
                      (F.transitionOfLE h) (x k) = x n

                      An element of lim A is compatible with the composite transition Aₖ → Aₙ, n ≤ k.

                      @[simp]
                      theorem TauCeti.ModuleTower.transitionOfLE_coe_lim {R : Type u} [Ring R] (F : ModuleTower R) (x : ↥F.lim) {n k : ℕ} (h : n ≤ k) :
                      (F.transitionOfLE h) (↑x k) = ↑x n

                      An element of lim A is compatible with the composite transition Aₖ → Aₙ, n ≤ k.

                      @[simp]
                      theorem TauCeti.ModuleTower.transitionOfLE_comp_limπ {R : Type u} [Ring R] (F : ModuleTower R) {n k : ℕ} (h : n ≤ k) :
                      theorem TauCeti.ModuleTower.ker_limπ_antitone {R : Type u} [Ring R] (F : ModuleTower R) :
                      Antitone fun (n : ℕ) => (F.limπ n).ker

                      The kernels of the projections lim A → Aₙ decrease as n grows.

                      theorem TauCeti.ModuleTower.limLift_bijective_of_le {R : Type u} [Ring R] (F : ModuleTower R) {P : Type u_1} [AddCommGroup P] [Module R P] (f : (n : ℕ) → P →ₗ[R] ↑(F.obj (Opposite.op n))) (hf : ∀ (n : ℕ), F.transition n ∘ₗ f (n + 1) = f n) (N : ℕ) (h : ∀ (n : ℕ), N ≤ n → Function.Bijective ⇑(f n)) :

                      If a compatible family of linear maps fₙ : P → Aₙ consists of bijections from some index N on, then the induced map P → lim A is bijective.

                      lim A, with its projections, is a limit of the tower A in ModuleCat R.

                      Instances For

                        lim¹ A vanishes if and only if the shift map is surjective.

                        theorem TauCeti.ModuleTower.mem_range_shift_of_le_map {R : Type u} [Ring R] (F : ModuleTower R) (B : (n : ℕ) → Submodule R ↑(F.obj (Opposite.op n))) (hB : ∀ (n : ℕ), B n ≤ Submodule.map (F.transition n) (B (n + 1))) {c : F.Product} (hc : ∀ (n : ℕ), c n ∈ B n) :

                        If submodules Bₙ ⊆ Aₙ satisfy Bₙ ⊆ φₙ(Bₙ₊₁), then every family (cₙ) with cₙ ∈ Bₙ lies in the image of the shift map.

                        If every transition map of a tower is surjective, then so is its shift map.

                        Towers with surjective transitions have vanishing lim¹ (Stacks, Tag 07KW).

                        theorem TauCeti.ModuleTower.limπ_surjective {R : Type u} [Ring R] (F : ModuleTower R) (h : ∀ (n : ℕ), Function.Surjective ⇑(F.transition n)) (n : ℕ) :

                        If every transition map of a tower is surjective, then so is every projection lim A → Aₙ: an element of Aₙ lifts step by step to a compatible family.

                        If every transition map of a tower is a split epimorphism, then so is its shift map.

                        The linear map ∏ₙ Aₙ → ∏ₙ Bₙ induced levelwise by a morphism of towers.

                        Instances For
                          @[simp]
                          theorem TauCeti.ModuleTower.productMap_apply {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) (x : F.Product) (n : ℕ) :
                          (productMap f) x n = (ModuleCat.Hom.hom (f.app (Opposite.op n))) (x n)
                          theorem TauCeti.ModuleTower.productMap_comp_apply {R : Type u} [Ring R] {F G H : ModuleTower R} (f : F ⟶ G) (g : G ⟶ H) (x : F.Product) :

                          The composition law productMap_comp, applied to a family.

                          @[simp]
                          @[simp]
                          theorem TauCeti.ModuleTower.productMap_add {R : Type u} [Ring R] {F G : ModuleTower R} (f g : F ⟶ G) :
                          theorem TauCeti.ModuleTower.coe_productMap {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) :
                          ⇑(productMap f) = Pi.map fun (n : ℕ) => ⇑(ModuleCat.Hom.hom (f.app (Opposite.op n)))

                          The product map of a morphism of towers is the componentwise map Pi.map.

                          A levelwise injective morphism of towers is injective on products.

                          A levelwise surjective morphism of towers is surjective on products.

                          A morphism of towers commutes with the transition maps.

                          A morphism of towers commutes with the composite transition maps.

                          The product map of a morphism of towers commutes with the shift maps.

                          theorem TauCeti.ModuleTower.shift_natural_apply {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) (x : F.Product) :
                          G.shift ((productMap f) x) = (productMap f) (F.shift x)

                          The naturality square shift_natural, applied to a family.

                          def TauCeti.ModuleTower.limMap {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) :
                          ↥F.lim →ₗ[R] ↥G.lim

                          The linear map lim A → lim B induced by a morphism of towers.

                          Instances For
                            @[simp]
                            theorem TauCeti.ModuleTower.coe_limMap_apply {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) (x : ↥F.lim) :
                            ↑((limMap f) x) = (productMap f) ↑x
                            @[simp]
                            @[simp]
                            @[simp]
                            theorem TauCeti.ModuleTower.limMap_zero {R : Type u} [Ring R] {F G : ModuleTower R} :
                            limMap 0 = 0
                            @[simp]
                            theorem TauCeti.ModuleTower.limMap_add {R : Type u} [Ring R] {F G : ModuleTower R} (f g : F ⟶ G) :
                            limMap (f + g) = limMap f + limMap g
                            theorem TauCeti.ModuleTower.limMap_inj {R : Type u} [Ring R] {F G : ModuleTower R} (h : ∀ (n : ℕ), Function.Surjective ⇑(F.transition n)) {f g : F ⟶ G} :
                            limMap f = limMap g ↔ f = g

                            If every transition map of A is surjective, a morphism of towers A ⟶ B is determined by the map it induces on lim: every element of Aₙ lifts to lim A.

                            theorem TauCeti.ModuleTower.limMap_injective {R : Type u} [Ring R] {F G : ModuleTower R} {f : F ⟶ G} (hf : ∀ (n : ℕ), Function.Injective ⇑(ModuleCat.Hom.hom (f.app (Opposite.op n)))) :

                            The first map of the six-term sequence: lim A → lim B is injective when every Aₙ → Bₙ is.

                            def TauCeti.ModuleTower.limEquivOfIso {R : Type u} [Ring R] {F G : ModuleTower R} (e : F ≅ G) :
                            ↥F.lim ≃ₗ[R] ↥G.lim

                            The linear equivalence lim A ≃ lim B induced by an isomorphism of towers.

                            Instances For
                              @[simp]
                              theorem TauCeti.ModuleTower.limEquivOfIso_apply {R : Type u} [Ring R] {F G : ModuleTower R} (e : F ≅ G) (x : ↥F.lim) :
                              @[simp]
                              theorem TauCeti.ModuleTower.limEquivOfIso_symm_apply {R : Type u} [Ring R] {F G : ModuleTower R} (e : F ≅ G) (x : ↥G.lim) :

                              A morphism of towers maps the image of the shift map into the image of the shift map.

                              def TauCeti.ModuleTower.limOneMap {R : Type u} [Ring R] {F G : ModuleTower R} (f : F ⟶ G) :

                              The linear map lim¹ A → lim¹ B induced by a morphism of towers.

                              Instances For
                                @[simp]
                                @[simp]
                                theorem TauCeti.ModuleTower.limOneMap_add {R : Type u} [Ring R] {F G : ModuleTower R} (f g : F ⟶ G) :

                                The last map of the six-term sequence: lim¹ B → lim¹ C is surjective when every Bₙ → Cₙ is.

                                The linear equivalence lim¹ A ≃ lim¹ B induced by an isomorphism of towers.

                                Instances For
                                  @[simp]
                                  theorem TauCeti.ModuleTower.limOneEquivOfIso_apply {R : Type u} [Ring R] {F G : ModuleTower R} (e : F ≅ G) (x : F.limOne) :
                                  @[simp]
                                  def TauCeti.ModuleTower.smulTower {R : Type u} [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] (f : R) :

                                  The tower M ←f M ←f ⋯ whose transition maps are multiplication by f.

                                  Instances For
                                    @[simp]

                                    The transition maps of M ←f M ←f ⋯ are multiplication by f.