Documentation

CompPoly.Data.RingTheory.AlgebraTower

Towers of algebras and their equivalences #

An AlgebraTower is a preorder-indexed family of commutative semirings with ring homomorphisms between comparable levels. Self-maps are identities, and the maps compose along chains of indices. Each map induces an algebra structure on its target, and composition gives compatible scalar actions across three levels.

AlgebraTower.ofNatStep constructs a natural-number-indexed tower by composing chosen homomorphisms between adjacent levels. These homomorphisms need not be injective.

An AlgebraTowerEquiv consists of ring equivalences at each level that commute with the tower maps.

class AlgebraTower {ι : Type u_1} [Preorder ι] (AT : ιType u_2) [(i : ι) → CommSemiring (AT i)] :
Type (max u_1 u_2)

A preorder-indexed family of commutative semirings with compatible ring homomorphisms.

The map from a level to itself is the identity. For i ≤ j ≤ k, the map from i to k is the composite of the maps from i to j and from j to k.

Instances
    @[instance_reducible]
    def AlgebraTower.ofNatStep {A : Type u_1} [(k : ) → CommSemiring (A k)] (step : (k : ) → A k →+* A (k + 1)) :

    Construct a tower by composing chosen ring homomorphisms between adjacent levels.

    The map from a level to itself is the identity. The map from i to j + 1, for i ≤ j, is step j composed with the map from i to j. No injectivity assumption is required.

    Instances For
      theorem AlgebraTower.ofNatStep_algebraMap_succ_right {A : Type u_1} [(k : ) → CommSemiring (A k)] (step : (k : ) → A k →+* A (k + 1)) {i j : } (h : i j) :

      Extending a constructed tower map by one level composes it with the chosen next map.

      @[simp]
      theorem AlgebraTower.ofNatStep_algebraMap_succ {A : Type u_1} [(k : ) → CommSemiring (A k)] (step : (k : ) → A k →+* A (k + 1)) (i : ) (h : i i + 1) :
      AlgebraTower.algebraMap i (i + 1) h = step i

      The map between adjacent levels is the homomorphism supplied to the constructor.

      @[simp]
      theorem AlgebraTower.algebraMap_self {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] (i : ι) (h : i i) :

      The tower map from level i to itself is the identity for every proof of i ≤ i.

      theorem AlgebraTower.algebraMap_self_apply {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] (i : ι) (h : i i) (x : A i) :

      The tower map from level i to itself fixes every element of that level.

      @[reducible, inline]
      abbrev AlgebraTower.toAlgebra {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {i j : ι} (h : i j) :
      Algebra (A i) (A j)
      Instances For
        @[simp]
        instance AlgebraTower.toIsScalarTower {ι : Type u_1} [Preorder ι] {C : ιType u_4} [(i : ι) → CommSemiring (C i)] (a : AlgebraTower C) {i j k : ι} (h1 : i j) (h2 : j k) :
        IsScalarTower (C i) (C j) (C k)
        structure AlgebraTowerEquiv {ι : Type u_1} [Preorder ι] (A : ιType u_5) [(i : ι) → CommSemiring (A i)] [a : AlgebraTower A] (B : ιType u_6) [(i : ι) → CommSemiring (B i)] [b : AlgebraTower B] :
        Type (max (max u_1 u_5) u_6)
        Instances For
          theorem AlgebraTowerEquiv.commutesRight' {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) {i j : ι} (h : i j) (r : B i) :
          def AlgebraTowerEquiv.symm {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) :
          Instances For
            def AlgebraTowerEquiv.algebraMapRightUp {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
            A i →+* B j
            Instances For
              def AlgebraTowerEquiv.algebraMapLeftUp {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
              B i →+* A j
              Instances For
                @[reducible, inline]
                abbrev AlgebraTowerEquiv.toAlgebraOverLeft {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
                Algebra (A i) (B j)
                Instances For
                  @[reducible, inline]
                  abbrev AlgebraTowerEquiv.toAlgebraOverRight {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
                  Algebra (B i) (A j)
                  Instances For
                    def AlgebraTowerEquiv.toAlgEquivOverLeft {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
                    A j ≃ₐ[A i] B j
                    Instances For
                      def AlgebraTowerEquiv.toAlgEquivOverRight {ι : Type u_1} [Preorder ι] {A : ιType u_2} [(i : ι) → CommSemiring (A i)] [AlgebraTower A] {B : ιType u_3} [(i : ι) → CommSemiring (B i)] [AlgebraTower B] (e : AlgebraTowerEquiv A B) (i j : ι) (h : i j) :
                      B j ≃ₐ[B i] A j
                      Instances For