Documentation

Mathlib.RingTheory.Extension

Extension of algebras #

Main definition #

structure Algebra.Extension (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] :
Type (max (max u v) (w + 1))

An extension of an R-algebra S is an R algebra P together with a surjection P →ₐ[R] S. Also see Algebra.Extension.ofSurjective.

  • Ring : Type w

    The underlying algebra of an extension.

  • commRing : CommRing self.Ring
  • algebra₁ : Algebra R self.Ring
  • algebra₂ : Algebra self.Ring S
  • isScalarTower : IsScalarTower R self.Ring S
  • σ : Sself.Ring

    A chosen (set-theoretic) section of an extension.

  • algebraMap_σ (x : S) : (algebraMap self.Ring S) (self x) = x
Instances For
    noncomputable instance Algebra.Extension.instRingOfIsScalarTower {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ R] [Algebra R₀ S] [IsScalarTower R₀ R S] :
    Algebra R₀ P.Ring
    Equations
    instance Algebra.Extension.instIsScalarTowerRing {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ R] [Algebra R₀ S] [IsScalarTower R₀ R S] :
    IsScalarTower R₀ R P.Ring
    instance Algebra.Extension.instIsScalarTowerRing_1 {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ R] [Algebra R₀ S] [IsScalarTower R₀ R S] {R₁ : Type u_2} [CommRing R₁] [Algebra R₁ R] [Algebra R₁ S] [IsScalarTower R₁ R S] [Algebra R₀ R₁] [IsScalarTower R₀ R₁ R] :
    IsScalarTower R₀ R₁ P.Ring
    instance Algebra.Extension.instIsScalarTowerRing_2 {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ R] [Algebra R₀ S] [IsScalarTower R₀ R S] :
    IsScalarTower R₀ P.Ring S
    @[simp]
    theorem Algebra.Extension.σ_smul {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) (x y : S) :
    P x y = x * y
    noncomputable def Algebra.Extension.ofSurjective {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Type w} [CommRing P] [Algebra R P] (f : P →ₐ[R] S) (h : Function.Surjective f) :

    Construct Extension from a surjective algebra homomorphism.

    Equations
    Instances For
      theorem Algebra.Extension.ofSurjective_Ring {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Type w} [CommRing P] [Algebra R P] (f : P →ₐ[R] S) (h : Function.Surjective f) :
      theorem Algebra.Extension.ofSurjective_σ {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Type w} [CommRing P] [Algebra R P] (f : P →ₐ[R] S) (h : Function.Surjective f) (x : S) :
      (Algebra.Extension.ofSurjective f h) x = .choose
      noncomputable def Algebra.Extension.self (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] :

      The trivial extension of S.

      Equations
      Instances For
        theorem Algebra.Extension.self_σ (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] (a : S) :
        theorem Algebra.Extension.self_Ring (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S] :
        noncomputable def Algebra.Extension.localization {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (M : Submonoid S) {S' : Type u_1} [CommRing S'] [Algebra S S'] [IsLocalization M S'] [Algebra R S'] [IsScalarTower R S S'] (P : Algebra.Extension R S) :

        An R-extension P → S gives an R-extension Pₘ → Sₘ. Note that this is different from baseChange as the base does not change.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def Algebra.Extension.baseChange {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {T : Type u_1} [CommRing T] [Algebra R T] (P : Algebra.Extension R S) :

          The base change of an R-extension of S to T gives a T-extension of T ⊗[R] S.

          Equations
          Instances For
            structure Algebra.Extension.Hom {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] (P' : Algebra.Extension R' S') [Algebra R R'] [Algebra S S'] :
            Type (max u_3 w)

            Given a commuting square

            R --→ P -→ S
            |          |
            ↓          ↓
            R' -→ P' → S
            

            A hom between P and P' is a ring homomorphism that makes the two squares commute.

            • toRingHom : P.Ring →+* P'.Ring

              The underlying ring homomorphism of a hom between extensions.

            • toRingHom_algebraMap (x : R) : self.toRingHom ((algebraMap R P.Ring) x) = (algebraMap R' P'.Ring) ((algebraMap R R') x)
            • algebraMap_toRingHom (x : P.Ring) : (algebraMap P'.Ring S') (self.toRingHom x) = (algebraMap S S') ((algebraMap P.Ring S) x)
            Instances For
              theorem Algebra.Extension.Hom.ext {R : Type u} {S : Type v} {inst✝ : CommRing R} {inst✝¹ : CommRing S} {inst✝² : Algebra R S} {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} {inst✝³ : CommRing R'} {inst✝⁴ : CommRing S'} {inst✝⁵ : Algebra R' S'} {P' : Algebra.Extension R' S'} {inst✝⁶ : Algebra R R'} {inst✝⁷ : Algebra S S'} {x y : P.Hom P'} (toRingHom : x.toRingHom = y.toRingHom) :
              x = y
              noncomputable def Algebra.Extension.Hom.toAlgHom {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') :
              P.Ring →ₐ[R] P'.Ring

              A hom between extensions as an algebra homomorphism.

              Equations
              • f.toAlgHom = { toRingHom := f.toRingHom, commutes' := }
              Instances For
                @[simp]
                theorem Algebra.Extension.Hom.toAlgHom_apply {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_2} {S' : Type u_1} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (x : P.Ring) :
                f.toAlgHom x = f.toRingHom x
                noncomputable def Algebra.Extension.Hom.id {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :
                P.Hom P

                The identity hom.

                Equations
                Instances For
                  @[simp]
                  theorem Algebra.Extension.Hom.id_toRingHom {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :
                  @[simp]
                  theorem Algebra.Extension.Hom.toAlgHom_id {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :
                  (Algebra.Extension.Hom.id P).toAlgHom = AlgHom.id R P.Ring
                  noncomputable def Algebra.Extension.Hom.comp {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} {R'' : Type u_4} {S'' : Type u_5} [CommRing R''] [CommRing S''] [Algebra R'' S''] {P'' : Algebra.Extension R'' S''} [Algebra R R'] [Algebra R' R''] [Algebra R R''] [Algebra S S'] [Algebra S' S''] [Algebra S S''] [IsScalarTower R R' R''] [IsScalarTower S S' S''] (f : P'.Hom P'') (g : P.Hom P') :
                  P.Hom P''

                  The composition of two homs.

                  Equations
                  • f.comp g = { toRingHom := f.toRingHom.comp g.toRingHom, toRingHom_algebraMap := , algebraMap_toRingHom := }
                  Instances For
                    @[simp]
                    theorem Algebra.Extension.Hom.comp_toRingHom {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} {R'' : Type u_4} {S'' : Type u_5} [CommRing R''] [CommRing S''] [Algebra R'' S''] {P'' : Algebra.Extension R'' S''} [Algebra R R'] [Algebra R' R''] [Algebra R R''] [Algebra S S'] [Algebra S' S''] [Algebra S S''] [IsScalarTower R R' R''] [IsScalarTower S S' S''] (f : P'.Hom P'') (g : P.Hom P') :
                    (f.comp g).toRingHom = f.toRingHom.comp g.toRingHom
                    @[simp]
                    theorem Algebra.Extension.Hom.comp_id {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] (f : P.Hom P') :
                    @[simp]
                    theorem Algebra.Extension.Hom.id_comp {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] (f : P.Hom P') :
                    @[reducible, inline]
                    abbrev Algebra.Extension.ker {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :
                    Ideal P.Ring

                    The kernel of an extension.

                    Equations
                    Instances For
                      def Algebra.Extension.Cotangent {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :

                      The cotangent space of an extension. This is a type synonym so that P.Ring can act on it through the action of S without creating a diamond.

                      Equations
                      • P.Cotangent = P.ker.Cotangent
                      Instances For
                        noncomputable instance Algebra.Extension.instAddCommGroupCotangent {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (P : Algebra.Extension R S) :
                        AddCommGroup P.Cotangent
                        Equations
                        def Algebra.Extension.Cotangent.of {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.ker.Cotangent) :
                        P.Cotangent

                        The identity map P.ker.Cotangent → P.Cotangent into the type synonym.

                        Equations
                        Instances For
                          def Algebra.Extension.Cotangent.val {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.Cotangent) :
                          P.ker.Cotangent

                          The identity map P.Cotangent → P.ker.Cotangent from the type synonym.

                          Equations
                          • x.val = x
                          Instances For
                            theorem Algebra.Extension.Cotangent.ext {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {x y : P.Cotangent} (e : x.val = y.val) :
                            x = y
                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_add {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.Cotangent) :
                            (x + y).val = x.val + y.val
                            @[simp]
                            theorem Algebra.Extension.Cotangent.of_val {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.Cotangent) :
                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_of {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (w : P.ker.Cotangent) :
                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_sub {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x y : P.Cotangent) :
                            (x - y).val = x.val - y.val
                            theorem Algebra.Extension.Cotangent.smul_eq_zero_of_mem {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (p : P.Ring) (hp : p P.ker) (m : P.ker.Cotangent) :
                            p m = 0
                            noncomputable instance Algebra.Extension.Cotangent.module {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} :
                            Module S P.Cotangent
                            Equations
                            • Algebra.Extension.Cotangent.module = Module.mk
                            noncomputable instance Algebra.Extension.instModuleCotangent {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ S] :
                            Module R₀ P.Cotangent
                            Equations
                            instance Algebra.Extension.instIsScalarTowerCotangent {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R₁ : Type u_1} {R₂ : Type u_2} [CommRing R₁] [CommRing R₂] [Algebra R₁ S] [Algebra R₂ S] [Algebra R₁ R₂] [IsScalarTower R₁ R₂ S] :
                            IsScalarTower R₁ R₂ P.Cotangent
                            theorem Algebra.Extension.Cotangent.val_smul''' {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R₀ : Type u_1} [CommRing R₀] [Algebra R₀ S] (r : R₀) (x : P.Cotangent) :
                            (r x).val = P ((algebraMap R₀ S) r) x.val

                            The action of R₀ on P.Cotangent for an extension P → S, if S is an R₀ algebra.

                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_smul {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : S) (x : P.Cotangent) :
                            (r x).val = P r x.val

                            The action of S on P.Cotangent for an extension P → S.

                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_smul' {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : P.Ring) (x : P.Cotangent) :
                            (r x).val = r x.val

                            The action of P on P.Cotangent for an extension P → S.

                            @[simp]
                            theorem Algebra.Extension.Cotangent.val_smul'' {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (r : R) (x : P.Cotangent) :
                            (r x).val = r x.val

                            The action of R on P.Cotangent for an R-extension P → S.

                            def Algebra.Extension.Cotangent.mk {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} :
                            P.ker →ₗ[P.Ring] P.Cotangent

                            The quotient map from the kernel of P → S onto the cotangent space.

                            Equations
                            • Algebra.Extension.Cotangent.mk = { toFun := fun (x : P.ker) => Algebra.Extension.Cotangent.of (P.ker.toCotangent x), map_add' := , map_smul' := }
                            Instances For
                              @[simp]
                              theorem Algebra.Extension.Cotangent.val_mk {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} (x : P.ker) :
                              (Algebra.Extension.Cotangent.mk x).val = P.ker.toCotangent x
                              theorem Algebra.Extension.Cotangent.mk_surjective {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} :
                              Function.Surjective Algebra.Extension.Cotangent.mk
                              noncomputable def Algebra.Extension.Cotangent.map {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') :
                              P.Cotangent →ₗ[S] P'.Cotangent

                              A hom between two extensions induces a map between cotangent spaces.

                              Equations
                              Instances For
                                @[simp]
                                theorem Algebra.Extension.Cotangent.map_mk {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} [Algebra R R'] [Algebra S S'] [Algebra R S'] [IsScalarTower R R' S'] (f : P.Hom P') (x : P.ker) :
                                (Algebra.Extension.Cotangent.map f) (Algebra.Extension.Cotangent.mk x) = Algebra.Extension.Cotangent.mk f.toAlgHom x,
                                theorem Algebra.Extension.Cotangent.map_comp {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {P : Algebra.Extension R S} {R' : Type u_1} {S' : Type u_2} [CommRing R'] [CommRing S'] [Algebra R' S'] {P' : Algebra.Extension R' S'} {R'' : Type u_4} {S'' : Type u_5} [CommRing R''] [CommRing S''] [Algebra R'' S''] (P'' : Algebra.Extension R'' S'') [Algebra R R'] [Algebra R' R''] [Algebra R' S''] [Algebra S S'] [Algebra S' S''] [Algebra S S''] [Algebra R S'] [IsScalarTower R R' S'] [Algebra R R''] [IsScalarTower R R' R''] [IsScalarTower R' R'' S''] [Algebra R S''] [IsScalarTower R R'' S''] [IsScalarTower S S' S''] (f : P.Hom P') (g : P'.Hom P'') :