Documentation

Mathlib.Algebra.Algebra.NonUnitalSubalgebra

Non-unital Subalgebras over Commutative Semirings #

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

TODO #

def NonUnitalSubalgebraClass.subtype {S : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SetLike S A] [NonUnitalSubsemiringClass S A] [hSR : SMulMemClass S R A] (s : S) :
{ x // x s } →ₙₐ[R] A

Embedding of a non-unital subalgebra into the non-unital algebra.

Instances For
    @[simp]
    theorem NonUnitalSubalgebraClass.coeSubtype {S : Type u_1} {R : Type u_2} {A : Type u_3} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SetLike S A] [NonUnitalSubsemiringClass S A] [hSR : SMulMemClass S R A] (s : S) :
    • carrier : Set A
    • add_mem' : ∀ {a b : A}, a s.carrierb s.carriera + b s.carrier
    • zero_mem' : 0 s.carrier
    • mul_mem' : ∀ {a b : A}, a s.carrierb s.carriera * b s.carrier
    • smul_mem' : ∀ (c : R) {x : A}, x s.carrierc x s.carrier

      The carrier set is closed under scalar multiplication.

    A non-unital subalgebra is a sub(semi)ring that is also a submodule.

    Instances For
      @[reducible]

      Reinterpret a NonUnitalSubalgebra as a Submodule.

      Instances For
        theorem NonUnitalSubalgebra.mem_carrier {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {s : NonUnitalSubalgebra R A} {x : A} :
        x s.carrier x s
        theorem NonUnitalSubalgebra.ext {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} (h : ∀ (x : A), x S x T) :
        S = T
        @[simp]
        theorem NonUnitalSubalgebra.mem_toNonUnitalSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S : NonUnitalSubalgebra R A} {x : A} :
        x S.toNonUnitalSubsemiring x S
        @[simp]
        theorem NonUnitalSubalgebra.coe_toNonUnitalSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) :
        S.toNonUnitalSubsemiring = S
        theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_injective {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] :
        Function.Injective NonUnitalSubalgebra.toNonUnitalSubsemiring
        theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_inj {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S : NonUnitalSubalgebra R A} {U : NonUnitalSubalgebra R A} :
        S.toNonUnitalSubsemiring = U.toNonUnitalSubsemiring S = U
        def NonUnitalSubalgebra.copy {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) (s : Set A) (hs : s = S) :

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

        Instances For
          @[simp]
          theorem NonUnitalSubalgebra.coe_copy {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) (s : Set A) (hs : s = S) :
          theorem NonUnitalSubalgebra.copy_eq {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) (s : Set A) (hs : s = S) :

          A non-unital subalgebra over a ring is also a Subring.

          Instances For
            theorem NonUnitalSubalgebra.toNonUnitalSubring_injective {R : Type u} {A : Type v} [CommRing R] [NonUnitalRing A] [Module R A] :
            Function.Injective NonUnitalSubalgebra.toNonUnitalSubring

            NonUnitalSubalgebras inherit structure from their NonUnitalSubsemiring / Semiring coercions.

            instance NonUnitalSubalgebra.toNonUnitalRing {R : Type u_1} {A : Type u_2} [CommRing R] [NonUnitalRing A] [Module R A] (S : NonUnitalSubalgebra R A) :
            NonUnitalRing { x // x S }

            NonUnitalSubalgebras inherit structure from their Submodule coercions. #

            instance NonUnitalSubalgebra.instModule' {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] :
            Module R' { x // x S }
            instance NonUnitalSubalgebra.instIsScalarTower' {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] :
            IsScalarTower R' R { x // x S }
            instance NonUnitalSubalgebra.instSMulCommClass' {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] [SMulCommClass R' R A] :
            SMulCommClass R' R { x // x S }
            theorem NonUnitalSubalgebra.coe_add {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) (x : { x // x S }) (y : { x // x S }) :
            ↑(x + y) = x + y
            theorem NonUnitalSubalgebra.coe_mul {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) (x : { x // x S }) (y : { x // x S }) :
            ↑(x * y) = x * y
            theorem NonUnitalSubalgebra.coe_neg {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {S : NonUnitalSubalgebra R A} (x : { x // x S }) :
            ↑(-x) = -x
            theorem NonUnitalSubalgebra.coe_sub {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {S : NonUnitalSubalgebra R A} (x : { x // x S }) (y : { x // x S }) :
            ↑(x - y) = x - y
            @[simp]
            theorem NonUnitalSubalgebra.coe_smul {R' : Type u'} {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) [Semiring R'] [SMul R' R] [Module R' A] [IsScalarTower R' R A] (r : R') (x : { x // x S }) :
            ↑(r x) = r x
            theorem NonUnitalSubalgebra.coe_eq_zero {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) {x : { x // x S }} :
            x = 0 x = 0

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

            Instances For

              Transport a non-unital subalgebra via an algebra homomorphism.

              Instances For
                @[simp]
                theorem NonUnitalSubalgebra.mem_map {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] {S : NonUnitalSubalgebra R A} {f : F} {y : B} :
                y NonUnitalSubalgebra.map f S x, x S f x = y
                theorem NonUnitalSubalgebra.map_toNonUnitalSubsemiring {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] {S : NonUnitalSubalgebra R A} {f : F} :
                (NonUnitalSubalgebra.map f S).toNonUnitalSubsemiring = NonUnitalSubsemiring.map (f) S.toNonUnitalSubsemiring
                @[simp]
                theorem NonUnitalSubalgebra.coe_map {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R A) (f : F) :
                ↑(NonUnitalSubalgebra.map f S) = f '' S

                Preimage of a non-unital subalgebra under an algebra homomorphism.

                Instances For
                  @[simp]
                  theorem NonUnitalSubalgebra.mem_comap {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R B) (f : F) (x : A) :
                  @[simp]
                  theorem NonUnitalSubalgebra.coe_comap {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R B) (f : F) :
                  def Submodule.toNonUnitalSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (p : Submodule R A) (h_mul : ∀ (x y : A), x py px * y p) :

                  A submodule closed under multiplication is a non-unital subalgebra.

                  Instances For
                    @[simp]
                    theorem Submodule.mem_toNonUnitalSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {p : Submodule R A} {h_mul : ∀ (x y : A), x py px * y p} {x : A} :
                    @[simp]
                    theorem Submodule.coe_toNonUnitalSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (p : Submodule R A) (h_mul : ∀ (x y : A), x py px * y p) :
                    theorem Submodule.toNonUnitalSubalgebra_mk {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (p : Submodule R A) (hmul : ∀ (x y : A), x py px * y p) :
                    Submodule.toNonUnitalSubalgebra p hmul = { toNonUnitalSubsemiring := { toAddSubmonoid := { toAddSubsemigroup := { carrier := p, add_mem' := (_ : ∀ {a b : A}, a pb pa + b p) }, zero_mem' := (_ : 0 p) }, mul_mem' := fun {a b} => hmul a b }, smul_mem' := (_ : ∀ (c : R) {x : A}, x p.carrierc x p.carrier) }
                    @[simp]
                    theorem Submodule.toNonUnitalSubalgebra_toSubmodule {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (p : Submodule R A) (h_mul : ∀ (x y : A), x py px * y p) :

                    Range of an NonUnitalAlgHom as a non-unital subalgebra.

                    Instances For
                      @[simp]
                      theorem NonUnitalAlgHom.mem_range {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (φ : F) {y : B} :
                      y NonUnitalAlgHom.range φ x, φ x = y
                      theorem NonUnitalAlgHom.mem_range_self {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (φ : F) (x : A) :
                      @[simp]
                      theorem NonUnitalAlgHom.coe_range {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (φ : F) :
                      def NonUnitalAlgHom.codRestrict {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (f : F) (S : NonUnitalSubalgebra R B) (hf : ∀ (x : A), f x S) :
                      A →ₙₐ[R] { x // x S }

                      Restrict the codomain of a non-unital algebra homomorphism.

                      Instances For
                        @[simp]
                        theorem NonUnitalAlgHom.coe_codRestrict {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (f : F) (S : NonUnitalSubalgebra R B) (hf : ∀ (x : A), f x S) (x : A) :
                        ↑(↑(NonUnitalAlgHom.codRestrict f S hf) x) = f x
                        @[reducible]

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

                        This is the bundled version of Set.rangeFactorization.

                        Instances For
                          def NonUnitalAlgHom.equalizer {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (ϕ : F) (ψ : F) :

                          The equalizer of two non-unital R-algebra homomorphisms

                          Instances For
                            @[simp]
                            theorem NonUnitalAlgHom.mem_equalizer {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [NonUnitalAlgHomClass F R A B] (φ : F) (ψ : F) (x : A) :
                            x NonUnitalAlgHom.equalizer φ ψ φ x = ψ x

                            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.

                            The minimal non-unital subalgebra that includes s.

                            Instances For
                              theorem NonUnitalAlgebra.adjoin_induction {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} {p : AProp} {a : A} (h : a NonUnitalAlgebra.adjoin R s) (Hs : (x : A) → x sp x) (Hadd : (x y : A) → p xp yp (x + y)) (H0 : p 0) (Hmul : (x y : A) → p xp yp (x * y)) (Hsmul : (r : R) → (x : A) → p xp (r x)) :
                              p a

                              If some predicate holds for all x ∈ (s : Set A) and this predicate is closed under the algebraMap, addition, multiplication and star operations, then it holds for a ∈ adjoin R s.

                              theorem NonUnitalAlgebra.adjoin_induction₂ {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} {p : AAProp} {a : A} {b : A} (ha : a NonUnitalAlgebra.adjoin R s) (hb : b NonUnitalAlgebra.adjoin R s) (Hs : (x : A) → x s(y : A) → y sp x y) (H0_left : (y : A) → p 0 y) (H0_right : (x : A) → p x 0) (Hadd_left : (x₁ x₂ y : A) → p x₁ yp x₂ yp (x₁ + x₂) y) (Hadd_right : (x y₁ y₂ : A) → p x y₁p x y₂p x (y₁ + y₂)) (Hmul_left : (x₁ x₂ y : A) → p x₁ yp x₂ yp (x₁ * x₂) y) (Hmul_right : (x y₁ y₂ : A) → p x y₁p x y₂p x (y₁ * y₂)) (Hsmul_left : (r : R) → (x y : A) → p x yp (r x) y) (Hsmul_right : (r : R) → (x y : A) → p x yp x (r y)) :
                              p a b
                              theorem NonUnitalAlgebra.adjoin_induction' {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} {p : { x // x NonUnitalAlgebra.adjoin R s }Prop} (a : { x // x NonUnitalAlgebra.adjoin R s }) (Hs : (x : A) → (h : x s) → p { val := x, property := (_ : x ↑(NonUnitalAlgebra.adjoin R s)) }) (Hadd : (x y : { x // x NonUnitalAlgebra.adjoin R s }) → p xp yp (x + y)) (H0 : p 0) (Hmul : (x y : { x // x NonUnitalAlgebra.adjoin R s }) → p xp yp (x * y)) (Hsmul : (r : R) → (x : { x // x NonUnitalAlgebra.adjoin R s }) → p xp (r x)) :
                              p a

                              The difference with NonUnitalAlgebra.adjoin_induction is that this acts on the subtype.

                              Galois insertion between adjoin and Subtype.val.

                              Instances For
                                @[simp]
                                theorem NonUnitalAlgebra.coe_top {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] :
                                = Set.univ
                                @[simp]
                                theorem NonUnitalAlgebra.mem_top {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {x : A} :
                                @[simp]
                                theorem NonUnitalAlgebra.top_toNonUnitalSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] :
                                .toNonUnitalSubsemiring =
                                @[simp]
                                theorem NonUnitalAlgebra.toNonUnitalSubsemiring_eq_top {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} :
                                S.toNonUnitalSubsemiring = S =
                                theorem NonUnitalAlgebra.mem_sup_left {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} {x : A} :
                                x Sx S T
                                theorem NonUnitalAlgebra.mem_sup_right {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} {x : A} :
                                x Tx S T
                                theorem NonUnitalAlgebra.mul_mem_sup {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} {x : A} {y : A} (hx : x S) (hy : y T) :
                                x * y S T
                                @[simp]
                                theorem NonUnitalAlgebra.coe_inf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (S : NonUnitalSubalgebra R A) (T : NonUnitalSubalgebra R A) :
                                ↑(S T) = S T
                                @[simp]
                                theorem NonUnitalAlgebra.mem_inf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} {x : A} :
                                x S T x S x T
                                @[simp]
                                theorem NonUnitalAlgebra.inf_toNonUnitalSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (S : NonUnitalSubalgebra R A) (T : NonUnitalSubalgebra R A) :
                                (S T).toNonUnitalSubsemiring = S.toNonUnitalSubsemiring T.toNonUnitalSubsemiring
                                @[simp]
                                theorem NonUnitalAlgebra.coe_sInf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (S : Set (NonUnitalSubalgebra R A)) :
                                ↑(sInf S) = ⋂ (s : NonUnitalSubalgebra R A) (_ : s S), s
                                theorem NonUnitalAlgebra.mem_sInf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : Set (NonUnitalSubalgebra R A)} {x : A} :
                                x sInf S ∀ (p : NonUnitalSubalgebra R A), p Sx p
                                @[simp]
                                theorem NonUnitalAlgebra.sInf_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (S : Set (NonUnitalSubalgebra R A)) :
                                NonUnitalSubalgebra.toSubmodule (sInf S) = sInf (NonUnitalSubalgebra.toSubmodule '' S)
                                @[simp]
                                theorem NonUnitalAlgebra.sInf_toNonUnitalSubsemiring {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (S : Set (NonUnitalSubalgebra R A)) :
                                (sInf S).toNonUnitalSubsemiring = sInf (NonUnitalSubalgebra.toNonUnitalSubsemiring '' S)
                                @[simp]
                                theorem NonUnitalAlgebra.coe_iInf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_2} {S : ιNonUnitalSubalgebra R A} :
                                ↑(⨅ (i : ι), S i) = ⋂ (i : ι), ↑(S i)
                                theorem NonUnitalAlgebra.mem_iInf {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_2} {S : ιNonUnitalSubalgebra R A} {x : A} :
                                x ⨅ (i : ι), S i ∀ (i : ι), x S i
                                @[simp]
                                theorem NonUnitalAlgebra.iInf_toSubmodule {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_2} (S : ιNonUnitalSubalgebra R A) :
                                NonUnitalSubalgebra.toSubmodule (⨅ (i : ι), S i) = ⨅ (i : ι), NonUnitalSubalgebra.toSubmodule (S i)
                                theorem NonUnitalAlgebra.mem_bot {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {x : A} :
                                x x = 0
                                @[simp]
                                theorem NonUnitalAlgebra.coe_bot {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] :
                                = {0}
                                theorem NonUnitalAlgebra.eq_top_iff {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} :
                                S = ∀ (x : A), x S
                                def NonUnitalSubalgebra.inclusion {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} (h : S T) :
                                { x // x S } →ₙₐ[R] { x // x T }

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

                                This is the non-unital subalgebra version of Submodule.ofLe, or Subring.inclusion

                                Instances For
                                  @[simp]
                                  theorem NonUnitalSubalgebra.inclusion_mk {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} (h : S T) (x : A) (hx : x S) :
                                  ↑(NonUnitalSubalgebra.inclusion h) { val := x, property := hx } = { val := x, property := h x hx }
                                  theorem NonUnitalSubalgebra.inclusion_right {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} (h : S T) (x : { x // x T }) (m : x S) :
                                  ↑(NonUnitalSubalgebra.inclusion h) { val := x, property := m } = x
                                  @[simp]
                                  theorem NonUnitalSubalgebra.inclusion_inclusion {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} {U : NonUnitalSubalgebra R A} (hst : S T) (htu : T U) (x : { x // x S }) :
                                  @[simp]
                                  theorem NonUnitalSubalgebra.coe_inclusion {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {S : NonUnitalSubalgebra R A} {T : NonUnitalSubalgebra R A} (h : S T) (s : { x // x S }) :
                                  ↑(↑(NonUnitalSubalgebra.inclusion h) s) = s

                                  The product of two non-unital subalgebras is a non-unital subalgebra.

                                  Instances For
                                    @[simp]
                                    @[simp]
                                    theorem NonUnitalSubalgebra.mem_prod {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] {S : NonUnitalSubalgebra R A} {S₁ : NonUnitalSubalgebra R B} {x : A × B} :
                                    x NonUnitalSubalgebra.prod S S₁ x.fst S x.snd S₁
                                    theorem NonUnitalSubalgebra.coe_iSup_of_directed {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Type u_1} [Nonempty ι] {S : ιNonUnitalSubalgebra R A} (dir : Directed (fun x x_1 => x x_1) S) :
                                    ↑(iSup S) = ⋃ (i : ι), ↑(S i)
                                    noncomputable def NonUnitalSubalgebra.iSupLift {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] [NonUnitalNonAssocSemiring B] [Module R B] {ι : Type u_1} [Nonempty ι] (K : ιNonUnitalSubalgebra R A) (dir : Directed (fun x x_1 => x x_1) K) (f : (i : ι) → { x // x K i } →ₙₐ[R] B) (hf : ∀ (i j : ι) (h : K i K j), f i = NonUnitalAlgHom.comp (f j) (NonUnitalSubalgebra.inclusion h)) (T : NonUnitalSubalgebra R A) (hT : T = iSup K) :
                                    { x // x T } →ₙₐ[R] B

                                    Define an algebra homomorphism on a directed supremum of non-unital subalgebras by defining it on each non-unital subalgebra, and proving that it agrees on the intersection of non-unital subalgebras.

                                    Instances For
                                      @[simp]
                                      theorem NonUnitalSubalgebra.iSupLift_inclusion {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] [NonUnitalNonAssocSemiring B] [Module R B] {ι : Type u_1} [Nonempty ι] {K : ιNonUnitalSubalgebra R A} {dir : Directed (fun x x_1 => x x_1) K} {f : (i : ι) → { x // x K i } →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = NonUnitalAlgHom.comp (f j) (NonUnitalSubalgebra.inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : { x // x K i }) (h : K i T) :
                                      ↑(NonUnitalSubalgebra.iSupLift K dir f hf T hT) (↑(NonUnitalSubalgebra.inclusion h) x) = ↑(f i) x
                                      @[simp]
                                      theorem NonUnitalSubalgebra.iSupLift_comp_inclusion {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] [NonUnitalNonAssocSemiring B] [Module R B] {ι : Type u_1} [Nonempty ι] {K : ιNonUnitalSubalgebra R A} {dir : Directed (fun x x_1 => x x_1) K} {f : (i : ι) → { x // x K i } →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = NonUnitalAlgHom.comp (f j) (NonUnitalSubalgebra.inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (h : K i T) :
                                      @[simp]
                                      theorem NonUnitalSubalgebra.iSupLift_mk {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] [NonUnitalNonAssocSemiring B] [Module R B] {ι : Type u_1} [Nonempty ι] {K : ιNonUnitalSubalgebra R A} {dir : Directed (fun x x_1 => x x_1) K} {f : (i : ι) → { x // x K i } →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = NonUnitalAlgHom.comp (f j) (NonUnitalSubalgebra.inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : { x // x K i }) (hx : x T) :
                                      ↑(NonUnitalSubalgebra.iSupLift K dir f hf T hT) { val := x, property := hx } = ↑(f i) x
                                      theorem NonUnitalSubalgebra.iSupLift_of_mem {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] [NonUnitalNonAssocSemiring B] [Module R B] {ι : Type u_1} [Nonempty ι] {K : ιNonUnitalSubalgebra R A} {dir : Directed (fun x x_1 => x x_1) K} {f : (i : ι) → { x // x K i } →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = NonUnitalAlgHom.comp (f j) (NonUnitalSubalgebra.inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : { x // x T }) (hx : x K i) :
                                      ↑(NonUnitalSubalgebra.iSupLift K dir f hf T hT) x = ↑(f i) { val := x, property := hx }
                                      theorem Set.smul_mem_center {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (r : R) {a : A} (ha : a Set.center A) :

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

                                      Instances For
                                        theorem NonUnitalSubalgebra.mem_center_iff {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {a : A} :
                                        a NonUnitalSubalgebra.center R A ∀ (b : A), b * a = a * b
                                        @[simp]
                                        theorem Set.smul_mem_centralizer {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} (r : R) {a : A} (ha : a Set.centralizer s) :

                                        The centralizer of a set as a non-unital subalgebra.

                                        Instances For
                                          theorem NonUnitalSubalgebra.mem_centralizer_iff (R : Type u_1) {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} {z : A} :
                                          z NonUnitalSubalgebra.centralizer R s ∀ (g : A), g sg * z = z * g

                                          A non-unital subsemiring is a non-unital -subalgebra.

                                          Instances For

                                            A non-unital subring is a non-unitalsubalgebra.

                                            Instances For