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) :
↥s →ₙₐ[R] A

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

Equations
Instances For
    @[simp]
    theorem NonUnitalSubalgebraClass.subtype_apply {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 : ↥s) :
    (subtype s) x = ↑x
    @[simp]
    theorem NonUnitalSubalgebraClass.coe_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) :

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

    Instances For
      Equations

      The actual NonUnitalSubalgebra obtained from an element of a type satisfying NonUnitalSubsemiringClass and SMulMemClass.

      Equations
      Instances For
        @[simp]
        theorem NonUnitalSubalgebra.ofClass_carrier {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] [SMulMemClass S R A] (s : S) :
        ↑(ofClass s) = ↑s
        @[instance 100]
        instance NonUnitalSubalgebra.instCanLiftSetCoeAndMemOfNatForallForallForallForallHAddForallForallForallForallHMulForallForallForallHSMul {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] :
        CanLift (Set A) (NonUnitalSubalgebra R A) SetLike.coe fun (s : Set A) => 0 ∈ s ∧ (∀ {x y : A}, x ∈ s → y ∈ s → x + y ∈ s) ∧ (∀ {x y : A}, x ∈ s → y ∈ s → x * y ∈ s) ∧ ∀ (r : R) {x : A}, x ∈ s → r • x ∈ s
        theorem NonUnitalSubalgebra.ext {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S T : NonUnitalSubalgebra R A} (h : ∀ (x : A), x ∈ S ↔ x ∈ T) :
        S = T
        theorem NonUnitalSubalgebra.ext_iff {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S T : NonUnitalSubalgebra R A} :
        S = T ↔ ∀ (x : A), x ∈ S ↔ x ∈ T
        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.

        Equations
        • S.copy s hs = { toNonUnitalSubsemiring := S.copy s hs, smul_mem' := ⋯ }
        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) :
          ↑(S.copy s hs) = 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) :
          S.copy s hs = S

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

          Equations
          Instances For

            NonUnitalSubalgebras inherit structure from their NonUnitalSubsemiring / Semiring coercions.

            The forgetful map from NonUnitalSubalgebra to Submodule as an OrderEmbedding

            Equations
            Instances For

              NonUnitalSubalgebras inherit structure from their Submodule coercions. #

              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 ↥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 ↥S
              theorem NonUnitalSubalgebra.coe_add {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] {S : NonUnitalSubalgebra R A} (x y : ↥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 y : ↥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 : ↥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 y : ↥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} [SMul R' R] [SMul R' A] [IsScalarTower R' R A] (r : R') (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 : ↥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.

              Equations
              Instances For

                Transport a non-unital subalgebra via an algebra homomorphism.

                Equations
                Instances For
                  theorem NonUnitalSubalgebra.map_mono {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] {S₁ S₂ : NonUnitalSubalgebra R A} {f : F} :
                  S₁ ≤ S₂ → map f S₁ ≤ map f S₂
                  theorem NonUnitalSubalgebra.map_map {R : Type u} {A : Type v} {B : Type w} {C : Type w'} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [NonUnitalNonAssocSemiring C] [Module R A] [Module R B] [Module R C] (S : NonUnitalSubalgebra R A) (g : B →ₙₐ[R] C) (f : A →ₙₐ[R] B) :
                  map g (map f S) = map (g.comp f) S
                  @[simp]
                  theorem NonUnitalSubalgebra.mem_map {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] {S : NonUnitalSubalgebra R A} {f : F} {y : B} :
                  y ∈ map f S ↔ ∃ x ∈ S, f x = y
                  @[simp]
                  theorem NonUnitalSubalgebra.coe_map {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R A) (f : F) :
                  ↑(map f S) = ⇑f '' ↑S

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

                  Equations
                  Instances For
                    theorem NonUnitalSubalgebra.map_le {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] {S : NonUnitalSubalgebra R A} {f : F} {U : NonUnitalSubalgebra R B} :
                    map f S ≤ U ↔ S ≤ comap f U
                    @[simp]
                    theorem NonUnitalSubalgebra.mem_comap {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R B) (f : F) (x : A) :
                    x ∈ comap f S ↔ f x ∈ S
                    @[simp]
                    theorem NonUnitalSubalgebra.coe_comap {F : Type v'} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [NonUnitalNonAssocSemiring B] [Module R A] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (S : NonUnitalSubalgebra R B) (f : F) :
                    ↑(comap f S) = ⇑f ⁻¹' ↑S
                    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 ∈ p → y ∈ p → x * y ∈ p) :

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

                    Equations
                    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 ∈ p → y ∈ p → x * 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 ∈ p → y ∈ p → x * y ∈ p) :
                      ↑(p.toNonUnitalSubalgebra h_mul) = ↑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 ∈ p → y ∈ p → x * y ∈ p) :
                      p.toNonUnitalSubalgebra hmul = { carrier := ↑p, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯, smul_mem' := ⋯ }
                      @[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 ∈ p → y ∈ p → x * y ∈ p) :
                      def NonUnitalAlgHom.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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (φ : F) :

                      Range of an NonUnitalAlgHom as a non-unital subalgebra.

                      Equations
                      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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (φ : F) {y : B} :
                        y ∈ NonUnitalAlgHom.range φ ↔ ∃ (x : A), φ 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] [FunLike F A 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] [FunLike F A 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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (f : F) (S : NonUnitalSubalgebra R B) (hf : ∀ (x : A), f x ∈ S) :
                        A →ₙₐ[R] ↥S

                        Restrict the codomain of a non-unital algebra homomorphism.

                        Equations
                        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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (f : F) (S : NonUnitalSubalgebra R B) (hf : ∀ (x : A), f x ∈ S) (x : A) :
                          ↑((codRestrict f S hf) x) = f x
                          theorem NonUnitalAlgHom.injective_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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (f : F) (S : NonUnitalSubalgebra R B) (hf : ∀ (x : A), f x ∈ S) :
                          @[reducible, inline]

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

                          This is the bundled version of Set.rangeFactorization.

                          Equations
                          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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (ϕ ψ : F) :

                            The equalizer of two non-unital R-algebra homomorphisms

                            Equations
                            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] [FunLike F A B] [NonUnitalAlgHomClass F R A B] (φ ψ : F) (x : A) :
                              x ∈ 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.

                              Equations

                              The minimal non-unital subalgebra that includes s.

                              Equations
                              Instances For
                                @[simp]
                                theorem NonUnitalAlgebra.subset_adjoin (R : Type u) {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} :
                                s ⊆ ↑(adjoin R s)
                                theorem NonUnitalAlgebra.mem_adjoin_of_mem (R : Type u) {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} {x : A} (hx : x ∈ s) :
                                x ∈ adjoin R s

                                Galois insertion between adjoin and SetLike.coe.

                                Equations
                                Instances For
                                  theorem NonUnitalAlgebra.adjoin_le {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 : Set A} (hs : s ⊆ ↑S) :
                                  adjoin R s ≤ S
                                  @[simp]
                                  theorem NonUnitalAlgebra.adjoin_le_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 : Set A} :
                                  adjoin R s ≤ S ↔ s ⊆ ↑S
                                  theorem NonUnitalAlgebra.adjoin_mono {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s t : Set A} (H : s ⊆ t) :
                                  adjoin R s ≤ adjoin R t
                                  theorem NonUnitalAlgebra.adjoin_union {R : Type u} {A : Type v} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (s t : Set A) :
                                  adjoin R (s ∪ t) = adjoin R s ⊔ adjoin R t
                                  @[simp]
                                  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 : A) → x ∈ adjoin R s → Prop} (mem : ∀ (x : A) (hx : x ∈ s), p x ⋯) (add : ∀ (x y : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s), p x hx → p y hy → p (x + y) ⋯) (zero : p 0 ⋯) (mul : ∀ (x y : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s), p x hx → p y hy → p (x * y) ⋯) (smul : ∀ (r : R) (x : A) (hx : x ∈ adjoin R s), p x hx → p (r • x) ⋯) {x : A} (hx : x ∈ adjoin R s) :
                                  p x hx

                                  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 : (x y : A) → x ∈ adjoin R s → y ∈ adjoin R s → Prop} (mem_mem : ∀ (x y : A) (hx : x ∈ s) (hy : y ∈ s), p x y ⋯ ⋯) (zero_left : ∀ (x : A) (hx : x ∈ adjoin R s), p 0 x ⋯ hx) (zero_right : ∀ (x : A) (hx : x ∈ adjoin R s), p x 0 hx ⋯) (add_left : ∀ (x y z : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s) (hz : z ∈ adjoin R s), p x z hx hz → p y z hy hz → p (x + y) z ⋯ hz) (add_right : ∀ (x y z : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s) (hz : z ∈ adjoin R s), p x y hx hy → p x z hx hz → p x (y + z) hx ⋯) (mul_left : ∀ (x y z : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s) (hz : z ∈ adjoin R s), p x z hx hz → p y z hy hz → p (x * y) z ⋯ hz) (mul_right : ∀ (x y z : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s) (hz : z ∈ adjoin R s), p x y hx hy → p x z hx hz → p x (y * z) hx ⋯) (smul_left : ∀ (r : R) (x y : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s), p x y hx hy → p (r • x) y ⋯ hy) (smul_right : ∀ (r : R) (x y : A) (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s), p x y hx hy → p x (r • y) hx ⋯) {x y : A} (hx : x ∈ adjoin R s) (hy : y ∈ adjoin R s) :
                                  p x y hx hy
                                  @[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} :
                                  @[deprecated NonUnitalAlgebra.toNonUnitalSubring_top (since := "2026-01-03")]

                                  Alias of NonUnitalAlgebra.toNonUnitalSubring_top.

                                  @[deprecated NonUnitalAlgebra.toNonUnitalSubring_eq_top (since := "2026-01-01")]

                                  Alias of NonUnitalAlgebra.toNonUnitalSubring_eq_top.

                                  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 T : NonUnitalSubalgebra R A} {x : A} :
                                  x ∈ S → x ∈ 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 T : NonUnitalSubalgebra R A} {x : A} :
                                  x ∈ T → x ∈ 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 T : NonUnitalSubalgebra R A} {x 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 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 T : NonUnitalSubalgebra R A} {x : A} :
                                  x ∈ S ⊓ T ↔ x ∈ S ∧ x ∈ T
                                  @[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 ∈ S, ↑s
                                  @[simp]
                                  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 ∈ S, x ∈ p
                                  @[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)
                                  @[simp]
                                  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
                                  theorem NonUnitalAlgebra.map_iInf {F : Type u_1} {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [FunLike F A B] [NonUnitalAlgHomClass F R A B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_2} [Nonempty ι] [IsScalarTower R B B] [SMulCommClass R B B] (f : F) (hf : Function.Injective ⇑f) (S : ι → NonUnitalSubalgebra R A) :
                                  NonUnitalSubalgebra.map f (⨅ (i : ι), S i) = ⨅ (i : ι), NonUnitalSubalgebra.map f (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) :
                                  (⨅ (i : ι), S i).toSubmodule = ⨅ (i : ι), (S i).toSubmodule
                                  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.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

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

                                  Equations
                                  • S.prod S₁ = { carrier := ↑S ×ˢ ↑S₁, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯, smul_mem' := ⋯ }
                                  Instances For
                                    @[simp]
                                    theorem NonUnitalSubalgebra.coe_prod {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] (S : NonUnitalSubalgebra R A) [NonUnitalNonAssocSemiring B] [Module R B] (S₁ : NonUnitalSubalgebra R B) :
                                    ↑(S.prod S₁) = ↑S ×ˢ ↑S₁
                                    @[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 ∈ S.prod S₁ ↔ x.1 ∈ S ∧ x.2 ∈ S₁
                                    theorem NonUnitalSubalgebra.prod_mono {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] [IsScalarTower R B B] [SMulCommClass R B B] {S T : NonUnitalSubalgebra R A} {S₁ T₁ : NonUnitalSubalgebra R B} :
                                    S ≤ T → S₁ ≤ T₁ → S.prod S₁ ≤ T.prod T₁
                                    @[simp]
                                    theorem NonUnitalSubalgebra.prod_inf_prod {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] [IsScalarTower R B B] [SMulCommClass R B B] {S T : NonUnitalSubalgebra R A} {S₁ T₁ : NonUnitalSubalgebra R B} :
                                    S.prod S₁ ⊓ T.prod T₁ = (S ⊓ T).prod (S₁ ⊓ T₁)
                                    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 T : NonUnitalSubalgebra R A} (h : S ≤ T) :
                                    ↥S →ₙₐ[R] ↥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.inclusion, or Subring.inclusion

                                    Equations
                                    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 T : NonUnitalSubalgebra R A} (h : S ≤ T) (x : A) (hx : x ∈ S) :
                                      (inclusion h) ⟨x, hx⟩ = ⟨x, ⋯⟩
                                      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 T : NonUnitalSubalgebra R A} (h : S ≤ T) (x : ↥T) (m : ↑x ∈ S) :
                                      (inclusion h) ⟨↑x, 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 T U : NonUnitalSubalgebra R A} (hst : S ≤ T) (htu : T ≤ U) (x : ↥S) :
                                      (inclusion htu) ((inclusion hst) x) = (inclusion ⋯) x
                                      @[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 T : NonUnitalSubalgebra R A} (h : S ≤ T) (s : ↥S) :
                                      ↑((inclusion h) s) = ↑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] {ι : Sort u_1} [Nonempty ι] {S : ι → NonUnitalSubalgebra R A} (dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) 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] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_1} [Nonempty ι] (K : ι → NonUnitalSubalgebra R A) (dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) K) (f : (i : ι) → ↥(K i) →ₙₐ[R] B) (hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)) (T : NonUnitalSubalgebra R A) (hT : T = iSup K) :
                                      ↥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.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        theorem NonUnitalSubalgebra.iSupLift_inclusion {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_1} [Nonempty ι] {K : ι → NonUnitalSubalgebra R A} {dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) K} {f : (i : ι) → ↥(K i) →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : ↥(K i)) (h : K i ≤ T) :
                                        (iSupLift K dir f hf T hT) ((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] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_1} [Nonempty ι] {K : ι → NonUnitalSubalgebra R A} {dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) K} {f : (i : ι) → ↥(K i) →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (h : K i ≤ T) :
                                        (iSupLift K dir f hf T hT).comp (inclusion h) = f i
                                        @[simp]
                                        theorem NonUnitalSubalgebra.iSupLift_mk {R : Type u} {A : Type v} {B : Type w} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_1} [Nonempty ι] {K : ι → NonUnitalSubalgebra R A} {dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) K} {f : (i : ι) → ↥(K i) →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : ↥(K i)) (hx : ↑x ∈ T) :
                                        (iSupLift K dir f hf T hT) ⟨↑x, 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] [NonUnitalNonAssocSemiring B] [Module R B] [IsScalarTower R A A] [SMulCommClass R A A] {ι : Sort u_1} [Nonempty ι] {K : ι → NonUnitalSubalgebra R A} {dir : Directed (fun (x1 x2 : NonUnitalSubalgebra R A) => x1 ≤ x2) K} {f : (i : ι) → ↥(K i) →ₙₐ[R] B} {hf : ∀ (i j : ι) (h : K i ≤ K j), f i = (f j).comp (inclusion h)} {T : NonUnitalSubalgebra R A} {hT : T = iSup K} {i : ι} (x : ↥T) (hx : ↑x ∈ K i) :
                                        (iSupLift K dir f hf T hT) x = (f i) ⟨↑x, 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 ∈ center A) :
                                        r • a ∈ 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.

                                        Equations
                                        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 ∈ 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 ∈ s.centralizer) :

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

                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem NonUnitalSubalgebra.coe_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) :
                                            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 ∈ centralizer R s ↔ ∀ g ∈ s, g * z = z * g
                                            theorem NonUnitalSubalgebra.centralizer_le (R : Type u_1) {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (s t : Set A) (h : s ⊆ t) :
                                            theorem NonUnitalAlgebra.commute_of_mem_adjoin_of_forall_mem_commute {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {a b : A} {s : Set A} (hb : b ∈ adjoin R s) (h : ∀ b ∈ s, Commute a b) :
                                            theorem NonUnitalAlgebra.commute_of_mem_adjoin_singleton_of_commute {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {a b c : A} (hc : c ∈ adjoin R {b}) (h : Commute a b) :
                                            theorem NonUnitalAlgebra.commute_of_mem_adjoin_self {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {a b : A} (hb : b ∈ adjoin R {a}) :
                                            @[reducible, inline]
                                            abbrev NonUnitalAlgebra.adjoinNonUnitalCommSemiringOfComm (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} (hcomm : ∀ a ∈ s, ∀ b ∈ s, a * b = b * a) :

                                            If all elements of s : Set A commute pairwise, then adjoin R s is a non-unital commutative semiring.

                                            See note [reducible non-instances].

                                            Equations
                                            Instances For
                                              @[reducible, inline]
                                              abbrev NonUnitalAlgebra.adjoinNonUnitalCommRingOfComm (R : Type u_3) {A : Type u_4} [CommRing R] [NonUnitalRing A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] {s : Set A} (hcomm : ∀ a ∈ s, ∀ b ∈ s, a * b = b * a) :

                                              If all elements of s : Set A commute pairwise, then adjoin R s is a non-unital commutative ring.

                                              See note [reducible non-instances].

                                              Equations
                                              Instances For

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

                                                Equations
                                                Instances For

                                                  A non-unital subring is a non-unital ℤ-subalgebra.

                                                  Equations
                                                  Instances For