Documentation

Mathlib.Algebra.Algebra.Subalgebra.Basic

Subalgebras over Commutative Semiring #

In this file we define Subalgebras and the usual operations on them (map, comap).

More lemmas about adjoin can be found in RingTheory.Adjoin.

structure Subalgebra (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] extends Subsemiring :

A subalgebra is a sub(semi)ring that includes the range of algebraMap.

  • carrier : Set A
  • mul_mem' : ∀ {a b : A}, a self.carrierb self.carriera * b self.carrier
  • one_mem' : 1 self.carrier
  • add_mem' : ∀ {a b : A}, a self.carrierb self.carriera + b self.carrier
  • zero_mem' : 0 self.carrier
  • algebraMap_mem' : ∀ (r : R), (algebraMap R A) r self.carrier

    The image of algebraMap is contained in the underlying set of the subalgebra

Instances For
    Equations
    • Subalgebra.instSetLikeSubalgebra = { coe := fun (s : Subalgebra R A) => s.carrier, coe_injective' := }
    Equations
    • =
    @[simp]
    theorem Subalgebra.mem_toSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {x : A} :
    x S.toSubsemiring x S
    theorem Subalgebra.mem_carrier {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {s : Subalgebra R A} {x : A} :
    x s.carrier x s
    theorem Subalgebra.ext {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} (h : ∀ (x : A), x S x T) :
    S = T
    @[simp]
    theorem Subalgebra.coe_toSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
    S.toSubsemiring = S
    theorem Subalgebra.toSubsemiring_injective {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
    Function.Injective Subalgebra.toSubsemiring
    theorem Subalgebra.toSubsemiring_inj {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {U : Subalgebra R A} :
    S.toSubsemiring = U.toSubsemiring S = U
    def Subalgebra.copy {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (s : Set A) (hs : s = S) :

    Copy of a subalgebra with a new carrier equal to the old one. Useful to fix definitional equalities.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem Subalgebra.coe_copy {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (s : Set A) (hs : s = S) :
      (Subalgebra.copy S s hs) = s
      theorem Subalgebra.copy_eq {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (s : Set A) (hs : s = S) :
      instance Subalgebra.instSMulMemClass {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
      Equations
      • =
      theorem algebraMap_mem {S : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] [SetLike S A] [OneMemClass S A] [SMulMemClass S R A] (s : S) (r : R) :
      (algebraMap R A) r s
      theorem Subalgebra.algebraMap_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (r : R) :
      (algebraMap R A) r S
      theorem Subalgebra.rangeS_le {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      RingHom.rangeS (algebraMap R A) S.toSubsemiring
      theorem Subalgebra.range_subset {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      Set.range (algebraMap R A) S
      theorem Subalgebra.range_le {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      Set.range (algebraMap R A) S
      theorem Subalgebra.smul_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} (hx : x S) (r : R) :
      r x S
      theorem Subalgebra.one_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      1 S
      theorem Subalgebra.mul_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} {y : A} (hx : x S) (hy : y S) :
      x * y S
      theorem Subalgebra.pow_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} (hx : x S) (n : ) :
      x ^ n S
      theorem Subalgebra.zero_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      0 S
      theorem Subalgebra.add_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} {y : A} (hx : x S) (hy : y S) :
      x + y S
      theorem Subalgebra.nsmul_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} (hx : x S) (n : ) :
      n x S
      theorem Subalgebra.natCast_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (n : ) :
      n S
      theorem Subalgebra.list_prod_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {L : List A} (h : xL, x S) :
      theorem Subalgebra.list_sum_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {L : List A} (h : xL, x S) :
      theorem Subalgebra.multiset_sum_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {m : Multiset A} (h : xm, x S) :
      theorem Subalgebra.sum_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {ι : Type w} {t : Finset ι} {f : ιA} (h : xt, f x S) :
      (Finset.sum t fun (x : ι) => f x) S
      theorem Subalgebra.multiset_prod_mem {R : Type u} {A : Type v} [CommSemiring R] [CommSemiring A] [Algebra R A] (S : Subalgebra R A) {m : Multiset A} (h : xm, x S) :
      theorem Subalgebra.prod_mem {R : Type u} {A : Type v} [CommSemiring R] [CommSemiring A] [Algebra R A] (S : Subalgebra R A) {ι : Type w} {t : Finset ι} {f : ιA} (h : xt, f x S) :
      (Finset.prod t fun (x : ι) => f x) S
      theorem Subalgebra.neg_mem {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) {x : A} (hx : x S) :
      -x S
      theorem Subalgebra.sub_mem {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) {x : A} {y : A} (hx : x S) (hy : y S) :
      x - y S
      theorem Subalgebra.zsmul_mem {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) {x : A} (hx : x S) (n : ) :
      n x S
      theorem Subalgebra.intCast_mem {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) (n : ) :
      n S
      @[deprecated natCast_mem]
      theorem Subalgebra.coe_nat_mem {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (n : ) :
      n S

      Alias of Subalgebra.natCast_mem.

      @[deprecated intCast_mem]
      theorem Subalgebra.coe_int_mem {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) (n : ) :
      n S

      Alias of Subalgebra.intCast_mem.

      The projection from a subalgebra of A to an additive submonoid of A.

      Equations
      Instances For
        def Subalgebra.toSubring {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) :

        A subalgebra over a ring is also a Subring.

        Equations
        Instances For
          @[simp]
          theorem Subalgebra.mem_toSubring {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {S : Subalgebra R A} {x : A} :
          @[simp]
          theorem Subalgebra.coe_toSubring {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) :
          theorem Subalgebra.toSubring_injective {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] :
          Function.Injective Subalgebra.toSubring

          Subalgebras inherit structure from their Subsemiring / Semiring coercions.

          instance Subalgebra.toSemiring {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
          Equations
          instance Subalgebra.toRing {R : Type u_1} {A : Type u_2} [CommRing R] [Ring A] [Algebra R A] (S : Subalgebra R A) :
          Ring S
          Equations

          The forgetful map from Subalgebra to Submodule as an OrderEmbedding

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem Subalgebra.mem_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : A} :
            x Subalgebra.toSubmodule S x S
            @[simp]
            theorem Subalgebra.coe_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
            (Subalgebra.toSubmodule S) = S
            theorem Subalgebra.toSubmodule_injective {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
            Function.Injective Subalgebra.toSubmodule

            Subalgebras inherit structure from their Submodule coercions.

            instance Subalgebra.module' {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] :
            Module R' S
            Equations
            instance Subalgebra.algebra' {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) [CommSemiring R'] [SMul R' R] [Algebra R' A] [IsScalarTower R' R A] :
            Algebra R' S
            Equations
            instance Subalgebra.algebra {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
            Algebra R S
            Equations
            Equations
            • =
            theorem Subalgebra.coe_add {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (x : S) (y : S) :
            (x + y) = x + y
            theorem Subalgebra.coe_mul {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (x : S) (y : S) :
            (x * y) = x * y
            theorem Subalgebra.coe_zero {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
            0 = 0
            theorem Subalgebra.coe_one {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
            1 = 1
            theorem Subalgebra.coe_neg {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {S : Subalgebra R A} (x : S) :
            (-x) = -x
            theorem Subalgebra.coe_sub {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {S : Subalgebra R A} (x : S) (y : S) :
            (x - y) = x - y
            @[simp]
            theorem Subalgebra.coe_smul {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] (r : R') (x : S) :
            (r x) = r x
            @[simp]
            theorem Subalgebra.coe_algebraMap {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) [CommSemiring R'] [SMul R' R] [Algebra R' A] [IsScalarTower R' R A] (r : R') :
            ((algebraMap R' S) r) = (algebraMap R' A) r
            theorem Subalgebra.coe_pow {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (x : S) (n : ) :
            (x ^ n) = x ^ n
            theorem Subalgebra.coe_eq_zero {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : S} :
            x = 0 x = 0
            theorem Subalgebra.coe_eq_one {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) {x : S} :
            x = 1 x = 1
            def Subalgebra.val {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
            S →ₐ[R] A

            Embedding of a subalgebra into the algebra.

            Equations
            • Subalgebra.val S = { toRingHom := { toMonoidHom := { toOneHom := { toFun := Subtype.val, map_one' := }, map_mul' := }, map_zero' := , map_add' := }, commutes' := }
            Instances For
              @[simp]
              theorem Subalgebra.coe_val {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
              (Subalgebra.val S) = Subtype.val
              theorem Subalgebra.val_apply {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (x : S) :
              (Subalgebra.val S) x = x
              @[simp]
              theorem Subalgebra.toSubsemiring_subtype {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
              Subsemiring.subtype S.toSubsemiring = (Subalgebra.val S)
              @[simp]
              def Subalgebra.toSubmoduleEquiv {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
              (Subalgebra.toSubmodule S) ≃ₗ[R] S

              Linear equivalence between S : Submodule R A and S. Though these types are equal, we define it as a LinearEquiv to avoid type equalities.

              Equations
              Instances For
                def Subalgebra.map {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R A) :

                Transport a subalgebra via an algebra homomorphism.

                Equations
                Instances For
                  theorem Subalgebra.map_mono {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {S₁ : Subalgebra R A} {S₂ : Subalgebra R A} {f : A →ₐ[R] B} :
                  S₁ S₂Subalgebra.map f S₁ Subalgebra.map f S₂
                  theorem Subalgebra.map_injective {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {f : A →ₐ[R] B} (hf : Function.Injective f) :
                  @[simp]
                  theorem Subalgebra.map_id {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
                  theorem Subalgebra.map_map {R : Type u} {A : Type v} {B : Type w} {C : Type w'} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (S : Subalgebra R A) (g : B →ₐ[R] C) (f : A →ₐ[R] B) :
                  @[simp]
                  theorem Subalgebra.mem_map {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {S : Subalgebra R A} {f : A →ₐ[R] B} {y : B} :
                  y Subalgebra.map f S ∃ x ∈ S, f x = y
                  theorem Subalgebra.map_toSubmodule {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {S : Subalgebra R A} {f : A →ₐ[R] B} :
                  Subalgebra.toSubmodule (Subalgebra.map f S) = Submodule.map (AlgHom.toLinearMap f) (Subalgebra.toSubmodule S)
                  theorem Subalgebra.map_toSubsemiring {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {S : Subalgebra R A} {f : A →ₐ[R] B} :
                  (Subalgebra.map f S).toSubsemiring = Subsemiring.map f.toRingHom S.toSubsemiring
                  @[simp]
                  theorem Subalgebra.coe_map {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R A) (f : A →ₐ[R] B) :
                  (Subalgebra.map f S) = f '' S
                  def Subalgebra.comap {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R B) :

                  Preimage of a subalgebra under an algebra homomorphism.

                  Equations
                  Instances For
                    theorem Subalgebra.map_le {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] {S : Subalgebra R A} {f : A →ₐ[R] B} {U : Subalgebra R B} :
                    @[simp]
                    theorem Subalgebra.mem_comap {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R B) (f : A →ₐ[R] B) (x : A) :
                    @[simp]
                    theorem Subalgebra.coe_comap {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R B) (f : A →ₐ[R] B) :
                    (Subalgebra.comap f S) = f ⁻¹' S
                    instance Subalgebra.noZeroDivisors {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [NoZeroDivisors A] [Algebra R A] (S : Subalgebra R A) :
                    Equations
                    • =
                    instance Subalgebra.isDomain {R : Type u_1} {A : Type u_2} [CommRing R] [Ring A] [IsDomain A] [Algebra R A] (S : Subalgebra R A) :
                    Equations
                    • =
                    def Submodule.toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (p : Submodule R A) (h_one : 1 p) (h_mul : ∀ (x y : A), x py px * y p) :

                    A submodule containing 1 and closed under multiplication is a subalgebra.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem Submodule.mem_toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] {p : Submodule R A} {h_one : 1 p} {h_mul : ∀ (x y : A), x py px * y p} {x : A} :
                      x Submodule.toSubalgebra p h_one h_mul x p
                      @[simp]
                      theorem Submodule.coe_toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (p : Submodule R A) (h_one : 1 p) (h_mul : ∀ (x y : A), x py px * y p) :
                      (Submodule.toSubalgebra p h_one h_mul) = p
                      theorem Submodule.toSubalgebra_mk {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (s : Submodule R A) (h1 : 1 s) (hmul : ∀ (x y : A), x sy sx * y s) :
                      Submodule.toSubalgebra s h1 hmul = { toSubsemiring := { toSubmonoid := { toSubsemigroup := { carrier := s, mul_mem' := hmul }, one_mem' := h1 }, add_mem' := , zero_mem' := }, algebraMap_mem' := }
                      @[simp]
                      theorem Submodule.toSubalgebra_toSubmodule {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (p : Submodule R A) (h_one : 1 p) (h_mul : ∀ (x y : A), x py px * y p) :
                      Subalgebra.toSubmodule (Submodule.toSubalgebra p h_one h_mul) = p
                      @[simp]
                      theorem Subalgebra.toSubmodule_toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
                      Submodule.toSubalgebra (Subalgebra.toSubmodule S) = S
                      def AlgHom.range {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) :

                      Range of an AlgHom as a subalgebra.

                      Equations
                      Instances For
                        @[simp]
                        theorem AlgHom.mem_range {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) {y : B} :
                        y AlgHom.range φ ∃ (x : A), φ x = y
                        theorem AlgHom.mem_range_self {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) (x : A) :
                        @[simp]
                        theorem AlgHom.coe_range {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (φ : A →ₐ[R] B) :
                        (AlgHom.range φ) = Set.range φ
                        theorem AlgHom.range_comp {R : Type u} {A : Type v} {B : Type w} {C : Type w'} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (f : A →ₐ[R] B) (g : B →ₐ[R] C) :
                        theorem AlgHom.range_comp_le_range {R : Type u} {A : Type v} {B : Type w} {C : Type w'} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (f : A →ₐ[R] B) (g : B →ₐ[R] C) :
                        def AlgHom.codRestrict {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R B) (hf : ∀ (x : A), f x S) :
                        A →ₐ[R] S

                        Restrict the codomain of an algebra homomorphism.

                        Equations
                        Instances For
                          @[simp]
                          theorem AlgHom.val_comp_codRestrict {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R B) (hf : ∀ (x : A), f x S) :
                          @[simp]
                          theorem AlgHom.coe_codRestrict {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R B) (hf : ∀ (x : A), f x S) (x : A) :
                          ((AlgHom.codRestrict f S hf) x) = f x
                          theorem AlgHom.injective_codRestrict {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R B) (hf : ∀ (x : A), f x S) :
                          @[reducible]
                          def AlgHom.rangeRestrict {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) :

                          Restrict the codomain of an AlgHom f to f.range.

                          This is the bundled version of Set.rangeFactorization.

                          Equations
                          Instances For
                            def AlgHom.equalizer {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (ϕ : A →ₐ[R] B) (ψ : A →ₐ[R] B) :

                            The equalizer of two R-algebra homomorphisms

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem AlgHom.mem_equalizer {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (ϕ : A →ₐ[R] B) (ψ : A →ₐ[R] B) (x : A) :
                              x AlgHom.equalizer ϕ ψ ϕ x = ψ x
                              instance AlgHom.fintypeRange {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Fintype A] [DecidableEq B] (φ : A →ₐ[R] B) :

                              The range of a morphism of algebras is a fintype, if the domain is a fintype.

                              Note that this instance can cause a diamond with Subtype.fintype if B is also a fintype.

                              Equations
                              def AlgEquiv.ofLeftInverse {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] {g : BA} {f : A →ₐ[R] B} (h : Function.LeftInverse g f) :

                              Restrict an algebra homomorphism with a left inverse to an algebra isomorphism to its range.

                              This is a computable alternative to AlgEquiv.ofInjective.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                theorem AlgEquiv.ofLeftInverse_apply {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] {g : BA} {f : A →ₐ[R] B} (h : Function.LeftInverse g f) (x : A) :
                                ((AlgEquiv.ofLeftInverse h) x) = f x
                                @[simp]
                                theorem AlgEquiv.ofLeftInverse_symm_apply {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] {g : BA} {f : A →ₐ[R] B} (h : Function.LeftInverse g f) (x : (AlgHom.range f)) :
                                noncomputable def AlgEquiv.ofInjective {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (hf : Function.Injective f) :

                                Restrict an injective algebra homomorphism to an algebra isomorphism

                                Equations
                                Instances For
                                  @[simp]
                                  theorem AlgEquiv.ofInjective_apply {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (hf : Function.Injective f) (x : A) :
                                  ((AlgEquiv.ofInjective f hf) x) = f x
                                  noncomputable def AlgEquiv.ofInjectiveField {R : Type u} [CommSemiring R] {E : Type u_1} {F : Type u_2} [DivisionRing E] [Semiring F] [Nontrivial F] [Algebra R E] [Algebra R F] (f : E →ₐ[R] F) :

                                  Restrict an algebra homomorphism between fields to an algebra isomorphism

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem AlgEquiv.subalgebraMap_symm_apply_coe {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (e : A ≃ₐ[R] B) (S : Subalgebra R A) (y : ((RingEquiv.toAddEquiv (AlgEquiv.toRingEquiv e)) '' (Subsemiring.toAddSubmonoid S.toSubsemiring))) :
                                    ((AlgEquiv.symm (AlgEquiv.subalgebraMap e S)) y) = (AddEquiv.symm e) y
                                    @[simp]
                                    theorem AlgEquiv.subalgebraMap_apply_coe {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (e : A ≃ₐ[R] B) (S : Subalgebra R A) (x : (Subsemiring.toAddSubmonoid S.toSubsemiring)) :
                                    ((AlgEquiv.subalgebraMap e S) x) = e x
                                    def AlgEquiv.subalgebraMap {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (e : A ≃ₐ[R] B) (S : Subalgebra R A) :
                                    S ≃ₐ[R] (Subalgebra.map (e) S)

                                    Given an equivalence e : A ≃ₐ[R] B of R-algebras and a subalgebra S of A, subalgebraMap is the induced equivalence between S and S.map e

                                    Equations
                                    Instances For
                                      def Algebra.adjoin (R : Type u) {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A) :

                                      The minimal subalgebra that includes s.

                                      Equations
                                      Instances For
                                        theorem Algebra.gc {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                        def Algebra.gi {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :

                                        Galois insertion between adjoin and coe.

                                        Equations
                                        Instances For
                                          Equations
                                          @[simp]
                                          theorem Algebra.coe_top {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          = Set.univ
                                          @[simp]
                                          theorem Algebra.mem_top {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {x : A} :
                                          @[simp]
                                          theorem Algebra.top_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          Subalgebra.toSubmodule =
                                          @[simp]
                                          theorem Algebra.top_toSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          .toSubsemiring =
                                          @[simp]
                                          theorem Algebra.top_toSubring {R : Type u_1} {A : Type u_2} [CommRing R] [Ring A] [Algebra R A] :
                                          @[simp]
                                          theorem Algebra.toSubmodule_eq_top {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} :
                                          Subalgebra.toSubmodule S = S =
                                          @[simp]
                                          theorem Algebra.toSubsemiring_eq_top {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} :
                                          S.toSubsemiring = S =
                                          @[simp]
                                          theorem Algebra.toSubring_eq_top {R : Type u_1} {A : Type u_2} [CommRing R] [Ring A] [Algebra R A] {S : Subalgebra R A} :
                                          theorem Algebra.mem_sup_left {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} {x : A} :
                                          x Sx S T
                                          theorem Algebra.mem_sup_right {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} {x : A} :
                                          x Tx S T
                                          theorem Algebra.mul_mem_sup {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} {x : A} {y : A} (hx : x S) (hy : y T) :
                                          x * y S T
                                          theorem Algebra.map_sup {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (S : Subalgebra R A) (T : Subalgebra R A) :
                                          @[simp]
                                          theorem Algebra.coe_inf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) :
                                          (S T) = S T
                                          @[simp]
                                          theorem Algebra.mem_inf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} {x : A} :
                                          x S T x S x T
                                          @[simp]
                                          theorem Algebra.inf_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) :
                                          Subalgebra.toSubmodule (S T) = Subalgebra.toSubmodule S Subalgebra.toSubmodule T
                                          @[simp]
                                          theorem Algebra.inf_toSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) :
                                          (S T).toSubsemiring = S.toSubsemiring T.toSubsemiring
                                          @[simp]
                                          theorem Algebra.coe_sInf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Set (Subalgebra R A)) :
                                          (sInf S) = ⋂ s ∈ S, s
                                          theorem Algebra.mem_sInf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Set (Subalgebra R A)} {x : A} :
                                          x sInf S pS, x p
                                          @[simp]
                                          theorem Algebra.sInf_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Set (Subalgebra R A)) :
                                          Subalgebra.toSubmodule (sInf S) = sInf (Subalgebra.toSubmodule '' S)
                                          @[simp]
                                          theorem Algebra.sInf_toSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Set (Subalgebra R A)) :
                                          (sInf S).toSubsemiring = sInf (Subalgebra.toSubsemiring '' S)
                                          @[simp]
                                          theorem Algebra.coe_iInf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {ι : Sort u_1} {S : ιSubalgebra R A} :
                                          (⨅ (i : ι), S i) = ⋂ (i : ι), (S i)
                                          theorem Algebra.mem_iInf {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {ι : Sort u_1} {S : ιSubalgebra R A} {x : A} :
                                          x ⨅ (i : ι), S i ∀ (i : ι), x S i
                                          @[simp]
                                          theorem Algebra.iInf_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {ι : Sort u_1} (S : ιSubalgebra R A) :
                                          Subalgebra.toSubmodule (⨅ (i : ι), S i) = ⨅ (i : ι), Subalgebra.toSubmodule (S i)
                                          Equations
                                          • Algebra.instInhabitedSubalgebra = { default := }
                                          theorem Algebra.mem_bot {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {x : A} :
                                          theorem Algebra.toSubmodule_bot {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          Subalgebra.toSubmodule = 1
                                          @[simp]
                                          theorem Algebra.coe_bot {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          theorem Algebra.eq_top_iff {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} :
                                          S = ∀ (x : A), x S
                                          @[simp]
                                          theorem Algebra.range_id {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :
                                          @[simp]
                                          theorem Algebra.map_top {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) :
                                          @[simp]
                                          theorem Algebra.map_bot {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) :
                                          @[simp]
                                          theorem Algebra.comap_top {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) :
                                          def Algebra.toTop {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :

                                          AlgHom to ⊤ : Subalgebra R A.

                                          Equations
                                          Instances For
                                            noncomputable def Algebra.botEquivOfInjective {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (h : Function.Injective (algebraMap R A)) :

                                            The bottom subalgebra is isomorphic to the base ring.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem Algebra.botEquiv_symm_apply (F : Type u_1) (R : Type u_2) [Field F] [Semiring R] [Nontrivial R] [Algebra F R] :
                                              ∀ (a : F), (AlgEquiv.symm (Algebra.botEquiv F R)) a = (Algebra.ofId F ) a
                                              noncomputable def Algebra.botEquiv (F : Type u_1) (R : Type u_2) [Field F] [Semiring R] [Nontrivial R] [Algebra F R] :

                                              The bottom subalgebra is isomorphic to the field.

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem Subalgebra.topEquiv_symm_apply_coe {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (a : A) :
                                                ((AlgEquiv.symm Subalgebra.topEquiv) a) = a
                                                @[simp]
                                                theorem Subalgebra.topEquiv_apply {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (a : ) :
                                                Subalgebra.topEquiv a = a
                                                def Subalgebra.topEquiv {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] :

                                                The top subalgebra is isomorphic to the algebra.

                                                This is the algebra version of Submodule.topEquiv.

                                                Equations
                                                Instances For
                                                  instance AlgHom.subsingleton {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Subsingleton (Subalgebra R A)] :
                                                  Equations
                                                  • =
                                                  instance AlgEquiv.subsingleton_left {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Subsingleton (Subalgebra R A)] :
                                                  Equations
                                                  • =
                                                  instance AlgEquiv.subsingleton_right {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Subsingleton (Subalgebra R B)] :
                                                  Equations
                                                  • =
                                                  Equations
                                                  def Subalgebra.inclusion {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} (h : S T) :
                                                  S →ₐ[R] T

                                                  The map S → T when S is a subalgebra contained in the subalgebra T.

                                                  This is the subalgebra version of Submodule.inclusion, or Subring.inclusion

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    @[simp]
                                                    theorem Subalgebra.inclusion_self {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} :
                                                    @[simp]
                                                    theorem Subalgebra.inclusion_mk {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} (h : S T) (x : A) (hx : x S) :
                                                    (Subalgebra.inclusion h) { val := x, property := hx } = { val := x, property := }
                                                    theorem Subalgebra.inclusion_right {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} (h : S T) (x : T) (m : x S) :
                                                    (Subalgebra.inclusion h) { val := x, property := m } = x
                                                    @[simp]
                                                    theorem Subalgebra.inclusion_inclusion {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} {U : Subalgebra R A} (hst : S T) (htu : T U) (x : S) :
                                                    @[simp]
                                                    theorem Subalgebra.coe_inclusion {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {S : Subalgebra R A} {T : Subalgebra R A} (h : S T) (s : S) :
                                                    ((Subalgebra.inclusion h) s) = s
                                                    @[simp]
                                                    theorem Subalgebra.equivOfEq_apply {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) (h : S = T) (x : S) :
                                                    (Subalgebra.equivOfEq S T h) x = { val := x, property := }
                                                    def Subalgebra.equivOfEq {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) (h : S = T) :
                                                    S ≃ₐ[R] T

                                                    Two subalgebras that are equal are also equivalent as algebras.

                                                    This is the Subalgebra version of LinearEquiv.ofEq and Equiv.Set.ofEq.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      @[simp]
                                                      theorem Subalgebra.equivOfEq_symm {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) (h : S = T) :
                                                      @[simp]
                                                      theorem Subalgebra.equivOfEq_rfl {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
                                                      Subalgebra.equivOfEq S S = AlgEquiv.refl
                                                      @[simp]
                                                      theorem Subalgebra.equivOfEq_trans {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) (T : Subalgebra R A) (U : Subalgebra R A) (hST : S = T) (hTU : T = U) :
                                                      theorem Subalgebra.range_comp_val {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R A) (f : A →ₐ[R] B) :
                                                      noncomputable def Subalgebra.equivMapOfInjective {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R A) (f : A →ₐ[R] B) (hf : Function.Injective f) :
                                                      S ≃ₐ[R] (Subalgebra.map f S)

                                                      A subalgebra is isomorphic to its image under an injective AlgHom

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        @[simp]
                                                        theorem Subalgebra.coe_equivMapOfInjective_apply {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (S : Subalgebra R A) (f : A →ₐ[R] B) (hf : Function.Injective f) (x : S) :
                                                        ((Subalgebra.equivMapOfInjective S f hf) x) = f x

                                                        Actions by Subalgebras #

                                                        These are just copies of the definitions about Subsemiring starting from Subring.mulAction.

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        theorem Subalgebra.smul_def {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} [SMul A α] {S : Subalgebra R A} (g : S) (m : α) :
                                                        g m = g m
                                                        instance Subalgebra.smulCommClass_left {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} {β : Type u_2} [SMul A β] [SMul α β] [SMulCommClass A α β] (S : Subalgebra R A) :
                                                        SMulCommClass (S) α β
                                                        Equations
                                                        • =
                                                        instance Subalgebra.smulCommClass_right {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} {β : Type u_2} [SMul α β] [SMul A β] [SMulCommClass α A β] (S : Subalgebra R A) :
                                                        SMulCommClass α (S) β
                                                        Equations
                                                        • =
                                                        instance Subalgebra.isScalarTower_left {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} {β : Type u_2} [SMul α β] [SMul A α] [SMul A β] [IsScalarTower A α β] (S : Subalgebra R A) :
                                                        IsScalarTower (S) α β

                                                        Note that this provides IsScalarTower S R R which is needed by smul_mul_assoc.

                                                        Equations
                                                        • =
                                                        instance Subalgebra.isScalarTower_mid {R : Type u_3} {S : Type u_4} {T : Type u_5} [CommSemiring R] [Semiring S] [AddCommMonoid T] [Algebra R S] [Module R T] [Module S T] [IsScalarTower R S T] (S' : Subalgebra R S) :
                                                        IsScalarTower R (S') T
                                                        Equations
                                                        • =

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        instance Subalgebra.moduleLeft {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} [AddCommMonoid α] [Module A α] (S : Subalgebra R A) :
                                                        Module (S) α

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        instance Subalgebra.toAlgebra {α : Type u_1} {R : Type u_3} {A : Type u_4} [CommSemiring R] [CommSemiring A] [Semiring α] [Algebra R A] [Algebra A α] (S : Subalgebra R A) :
                                                        Algebra (S) α

                                                        The action by a subalgebra is the action by the underlying algebra.

                                                        Equations
                                                        theorem Subalgebra.algebraMap_eq {α : Type u_1} {R : Type u_3} {A : Type u_4} [CommSemiring R] [CommSemiring A] [Semiring α] [Algebra R A] [Algebra A α] (S : Subalgebra R A) :
                                                        @[simp]
                                                        theorem Subalgebra.rangeS_algebraMap {R : Type u_3} {A : Type u_4} [CommSemiring R] [CommSemiring A] [Algebra R A] (S : Subalgebra R A) :
                                                        RingHom.rangeS (algebraMap (S) A) = S.toSubsemiring
                                                        @[simp]
                                                        theorem Subalgebra.range_algebraMap {R : Type u_3} {A : Type u_4} [CommRing R] [CommRing A] [Algebra R A] (S : Subalgebra R A) :
                                                        Equations
                                                        • =
                                                        theorem Set.algebraMap_mem_center {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (r : R) :
                                                        def Subalgebra.center (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] :

                                                        The center of an algebra is the set of elements which commute with every element. They form a subalgebra.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem Subalgebra.center_toSubsemiring (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] :
                                                          (Subalgebra.center R A).toSubsemiring = Subsemiring.center A
                                                          @[simp]
                                                          Equations
                                                          Equations
                                                          theorem Subalgebra.mem_center_iff {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {a : A} :
                                                          a Subalgebra.center R A ∀ (b : A), b * a = a * b
                                                          @[simp]
                                                          theorem Set.algebraMap_mem_centralizer {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} (r : R) :
                                                          def Subalgebra.centralizer (R : Type u) {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A) :

                                                          The centralizer of a set as a subalgebra.

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem Subalgebra.mem_centralizer_iff (R : Type u) {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {z : A} :
                                                            z Subalgebra.centralizer R s gs, g * z = z * g
                                                            theorem Subalgebra.centralizer_le (R : Type u) {A : Type v} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A) (t : Set A) (h : s t) :

                                                            A subsemiring is an -subalgebra.

                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              def subalgebraOfSubring {R : Type u_1} [Ring R] (S : Subring R) :

                                                              A subring is a -subalgebra.

                                                              Equations
                                                              Instances For
                                                                @[simp]
                                                                theorem mem_subalgebraOfSubring {R : Type u_1} [Ring R] {x : R} {S : Subring R} :