mathlib documentation

algebra.algebra.subalgebra

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 ring_theory.adjoin.

structure subalgebra (R : Type u) (A : Type v) [comm_semiring R] [semiring A] [algebra R A] :
Type v

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

def subalgebra.to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (self : subalgebra R A) :

Reinterpret a subalgebra as a subsemiring.

@[instance]
def subalgebra.set_like {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
Equations
@[simp]
theorem subalgebra.mem_carrier {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {s : subalgebra R A} {x : A} :
x s.carrier x s
@[ext]
theorem subalgebra.ext {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} (h : ∀ (x : A), x S x T) :
S = T
@[simp]
theorem subalgebra.mem_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S : subalgebra R A} {x : A} :
@[simp]
theorem subalgebra.coe_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
def subalgebra.copy {R : Type u} {A : Type v} [comm_semiring 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
@[simp]
theorem subalgebra.coe_copy {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (s : set A) (hs : s = S) :
(S.copy s hs) = s
theorem subalgebra.copy_eq {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (s : set A) (hs : s = S) :
S.copy s hs = S
theorem subalgebra.algebra_map_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (r : R) :
theorem subalgebra.srange_le {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
theorem subalgebra.range_subset {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
theorem subalgebra.range_le {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
theorem subalgebra.one_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
1 S
theorem subalgebra.mul_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x y : A} (hx : x S) (hy : y S) :
x * y S
theorem subalgebra.smul_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x : A} (hx : x S) (r : R) :
r x S
theorem subalgebra.pow_mem {R : Type u} {A : Type v} [comm_semiring 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} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
0 S
theorem subalgebra.add_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x y : A} (hx : x S) (hy : y S) :
x + y S
theorem subalgebra.neg_mem {R : Type u} {A : Type v} [comm_ring 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} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) {x y : A} (hx : x S) (hy : y S) :
x - y S
theorem subalgebra.nsmul_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x : A} (hx : x S) (n : ) :
n x S
theorem subalgebra.gsmul_mem {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) {x : A} (hx : x S) (n : ) :
n x S
theorem subalgebra.coe_nat_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (n : ) :
n S
theorem subalgebra.coe_int_mem {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) (n : ) :
n S
theorem subalgebra.list_prod_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {L : list A} (h : ∀ (x : A), x Lx S) :
L.prod S
theorem subalgebra.list_sum_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {L : list A} (h : ∀ (x : A), x Lx S) :
L.sum S
theorem subalgebra.multiset_prod_mem {R : Type u} {A : Type v} [comm_semiring R] [comm_semiring A] [algebra R A] (S : subalgebra R A) {m : multiset A} (h : ∀ (x : A), x mx S) :
m.prod S
theorem subalgebra.multiset_sum_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {m : multiset A} (h : ∀ (x : A), x mx S) :
m.sum S
theorem subalgebra.prod_mem {R : Type u} {A : Type v} [comm_semiring R] [comm_semiring A] [algebra R A] (S : subalgebra R A) {ι : Type w} {t : finset ι} {f : ι → A} (h : ∀ (x : ι), x tf x S) :
∏ (x : ι) in t, f x S
theorem subalgebra.sum_mem {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {ι : Type w} {t : finset ι} {f : ι → A} (h : ∀ (x : ι), x tf x S) :
∑ (x : ι) in t, f x S
def subalgebra.to_add_submonoid {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

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

Equations
def subalgebra.to_submonoid {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

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

Equations
def subalgebra.to_subring {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) :

A subalgebra over a ring is also a subring.

Equations
@[simp]
theorem subalgebra.mem_to_subring {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] {S : subalgebra R A} {x : A} :
@[simp]
theorem subalgebra.coe_to_subring {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) :
@[instance]
def subalgebra.inhabited {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
Equations

subalgebras inherit structure from their subsemiring / semiring coercions.

@[instance]
def subalgebra.to_semiring {R : Type u_1} {A : Type u_2} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.to_comm_semiring {R : Type u_1} {A : Type u_2} [comm_semiring R] [comm_semiring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.to_ring {R : Type u_1} {A : Type u_2} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.to_comm_ring {R : Type u_1} {A : Type u_2} [comm_ring R] [comm_ring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.to_ordered_ring {R : Type u_1} {A : Type u_2} [comm_ring R] [ordered_ring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.to_ordered_comm_ring {R : Type u_1} {A : Type u_2} [comm_ring R] [ordered_comm_ring A] [algebra R A] (S : subalgebra R A) :
Equations

There is no linear_ordered_comm_semiring.

def subalgebra.to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

Convert a subalgebra to submodule

Equations
@[simp]
theorem subalgebra.mem_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x : A} :
@[simp]
theorem subalgebra.coe_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
theorem subalgebra.to_submodule_inj {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S U : subalgebra R A} :

subalgebras inherit structure from their submodule coercions.

@[instance]
def subalgebra.module' {R' : Type u'} {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [semiring R'] [has_scalar R' R] [module R' A] [is_scalar_tower R' R A] :
Equations
@[instance]
def subalgebra.module {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.is_scalar_tower {R' : Type u'} {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [semiring R'] [has_scalar R' R] [module R' A] [is_scalar_tower R' R A] :
@[instance]
def subalgebra.algebra' {R' : Type u'} {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [comm_semiring R'] [has_scalar R' R] [algebra R' A] [is_scalar_tower R' R A] :
Equations
@[instance]
def subalgebra.algebra {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
Equations
@[instance]
def subalgebra.nontrivial {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [nontrivial A] :
@[instance]
@[simp]
theorem subalgebra.coe_add {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (x y : S) :
(x + y) = x + y
@[simp]
theorem subalgebra.coe_mul {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (x y : S) :
x * y = (x) * y
@[simp]
theorem subalgebra.coe_zero {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
0 = 0
@[simp]
theorem subalgebra.coe_one {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
1 = 1
@[simp]
theorem subalgebra.coe_neg {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] {S : subalgebra R A} (x : S) :
@[simp]
theorem subalgebra.coe_sub {R : Type u} {A : Type v} [comm_ring R] [ring A] [algebra R A] {S : subalgebra R A} (x y : S) :
(x - y) = x - y
@[simp]
theorem subalgebra.coe_smul {R' : Type u'} {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [semiring R'] [has_scalar R' R] [module R' A] [is_scalar_tower R' R A] (r : R') (x : S) :
(r x) = r x
@[simp]
theorem subalgebra.coe_algebra_map {R' : Type u'} {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) [comm_semiring R'] [has_scalar R' R] [algebra R' A] [is_scalar_tower R' R A] (r : R') :
@[simp]
theorem subalgebra.coe_pow {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (x : S) (n : ) :
(x ^ n) = x ^ n
@[simp]
theorem subalgebra.coe_eq_zero {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) {x : S} :
x = 0 x = 0
@[simp]
theorem subalgebra.coe_eq_one {R : Type u} {A : Type v} [comm_semiring 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} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

Embedding of a subalgebra into the algebra.

Equations
@[simp]
theorem subalgebra.coe_val {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
theorem subalgebra.val_apply {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) (x : S) :
(S.val) x = x
@[simp]
theorem subalgebra.to_subsemiring_subtype {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
@[simp]
theorem subalgebra.to_subring_subtype {R : Type u_1} {A : Type u_2} [comm_ring R] [ring A] [algebra R A] (S : subalgebra R A) :
@[simp]
theorem subalgebra.mul_self {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

As submodules, subalgebras are idempotent.

def subalgebra.to_submodule_equiv {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :

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

Equations
def subalgebra.map {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R A) (f : A →ₐ[R] B) :

Transport a subalgebra via an algebra homomorphism.

Equations
theorem subalgebra.map_mono {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S₁ S₂ : subalgebra R A} {f : A →ₐ[R] B} :
S₁ S₂S₁.map f S₂.map f
theorem subalgebra.map_injective {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S₁ S₂ : subalgebra R A} (f : A →ₐ[R] B) (hf : function.injective f) (ih : S₁.map f = S₂.map f) :
S₁ = S₂
@[simp]
theorem subalgebra.map_id {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
S.map (alg_hom.id R A) = S
theorem subalgebra.map_map {R : Type u} {A : Type v} {B C : Type w} [comm_semiring 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) :
(S.map f).map g = S.map (g.comp f)
theorem subalgebra.mem_map {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S : subalgebra R A} {f : A →ₐ[R] B} {y : B} :
y S.map f ∃ (x : A) (H : x S), f x = y
def subalgebra.comap' {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R B) (f : A →ₐ[R] B) :

Preimage of a subalgebra under an algebra homomorphism.

Equations
theorem subalgebra.map_le {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S : subalgebra R A} {f : A →ₐ[R] B} {U : subalgebra R B} :
S.map f U S U.comap' f
theorem subalgebra.gc_map_comap {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (f : A →ₐ[R] B) :
galois_connection (λ (S : subalgebra R A), S.map f) (λ (S : subalgebra R B), S.comap' f)
@[simp]
theorem subalgebra.mem_comap {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R B) (f : A →ₐ[R] B) (x : A) :
x S.comap' f f x S
@[simp]
theorem subalgebra.coe_comap {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R B) (f : A →ₐ[R] B) :
@[instance]
def subalgebra.no_zero_divisors {R : Type u_1} {A : Type u_2} [comm_ring R] [semiring A] [no_zero_divisors A] [algebra R A] (S : subalgebra R A) :
@[instance]
def subalgebra.is_domain {R : Type u_1} {A : Type u_2} [comm_ring R] [ring A] [is_domain A] [algebra R A] (S : subalgebra R A) :
def alg_hom.range {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (φ : A →ₐ[R] B) :

Range of an alg_hom as a subalgebra.

Equations
@[simp]
theorem alg_hom.mem_range {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (φ : A →ₐ[R] B) {y : B} :
y φ.range ∃ (x : A), φ x = y
theorem alg_hom.mem_range_self {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (φ : A →ₐ[R] B) (x : A) :
φ x φ.range
@[simp]
theorem alg_hom.coe_range {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (φ : A →ₐ[R] B) :
def alg_hom.cod_restrict {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (S : subalgebra R B) (hf : ∀ (x : A), f x S) :

Restrict the codomain of an algebra homomorphism.

Equations
@[simp]
theorem alg_hom.val_comp_cod_restrict {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (S : subalgebra R B) (hf : ∀ (x : A), f x S) :
S.val.comp (f.cod_restrict S hf) = f
@[simp]
theorem alg_hom.coe_cod_restrict {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (S : subalgebra R B) (hf : ∀ (x : A), f x S) (x : A) :
((f.cod_restrict S hf) x) = f x
theorem alg_hom.injective_cod_restrict {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (S : subalgebra R B) (hf : ∀ (x : A), f x S) :
def alg_hom.range_restrict {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) :

Restrict the codomain of a alg_hom f to f.range.

This is the bundled version of set.range_factorization.

Equations
def alg_hom.equalizer {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (ϕ ψ : A →ₐ[R] B) :

The equalizer of two R-algebra homomorphisms

Equations
@[simp]
theorem alg_hom.mem_equalizer {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (ϕ ψ : A →ₐ[R] B) (x : A) :
x ϕ.equalizer ψ ϕ x = ψ x
@[instance]
def alg_hom.fintype_range {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] [fintype A] [decidable_eq 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 alg_equiv.of_left_inverse {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] {g : B → A} {f : A →ₐ[R] B} (h : function.left_inverse g f) :

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

This is a computable alternative to alg_equiv.of_injective.

Equations
@[simp]
theorem alg_equiv.of_left_inverse_apply {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] {g : B → A} {f : A →ₐ[R] B} (h : function.left_inverse g f) (x : A) :
@[simp]
theorem alg_equiv.of_left_inverse_symm_apply {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] {g : B → A} {f : A →ₐ[R] B} (h : function.left_inverse g f) (x : (f.range)) :
def alg_equiv.of_injective {R : Type u} {A : Type v} {B : Type w} [comm_semiring 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
@[simp]
theorem alg_equiv.of_injective_apply {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [semiring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (hf : function.injective f) (x : A) :
def alg_equiv.of_injective_field {R : Type u} [comm_semiring R] {E : Type u_1} {F : Type u_2} [division_ring 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
def algebra.adjoin (R : Type u) {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (s : set A) :

The minimal subalgebra that includes s.

Equations
theorem algebra.gc {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
def algebra.gi {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :

Galois insertion between adjoin and coe.

Equations
@[simp]
theorem algebra.coe_top {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
@[simp]
theorem algebra.mem_top {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {x : A} :
@[simp]
theorem algebra.top_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
@[simp]
theorem algebra.top_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
@[simp]
theorem algebra.coe_inf {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) :
(S T) = S T
@[simp]
theorem algebra.mem_inf {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} {x : A} :
x S T x S x T
@[simp]
theorem algebra.inf_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) :
@[simp]
theorem algebra.inf_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) :
@[simp]
theorem algebra.coe_Inf {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : set (subalgebra R A)) :
(Inf S) = ⋂ (s : subalgebra R A) (H : s S), s
theorem algebra.mem_Inf {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S : set (subalgebra R A)} {x : A} :
x Inf S ∀ (p : subalgebra R A), p Sx p
@[simp]
theorem algebra.Inf_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : set (subalgebra R A)) :
@[simp]
theorem algebra.Inf_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : set (subalgebra R A)) :
@[simp]
theorem algebra.coe_infi {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {ι : Sort u_1} {S : ι → subalgebra R A} :
(⨅ (i : ι), S i) = ⋂ (i : ι), (S i)
theorem algebra.mem_infi {R : Type u} {A : Type v} [comm_semiring 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.infi_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {ι : Sort u_1} (S : ι → subalgebra R A) :
(⨅ (i : ι), S i).to_submodule = ⨅ (i : ι), (S i).to_submodule
@[instance]
def algebra.subalgebra.inhabited {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
Equations
theorem algebra.mem_bot {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {x : A} :
theorem algebra.to_submodule_bot {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
@[simp]
theorem algebra.coe_bot {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :
theorem algebra.eq_top_iff {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S : subalgebra R A} :
S = ∀ (x : A), x S
@[simp]
theorem algebra.map_top {R : Type u} {A : Type v} {B : Type w} [comm_semiring 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} [comm_semiring 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} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (f : A →ₐ[R] B) :
def algebra.to_top {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :

alg_hom to ⊤ : subalgebra R A.

Equations
theorem algebra.bijective_algebra_map_iff {R : Type u_1} {A : Type u_2} [field R] [semiring A] [nontrivial A] [algebra R A] :
def algebra.bot_equiv_of_injective {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (h : function.injective (algebra_map R A)) :

The bottom subalgebra is isomorphic to the base ring.

Equations
def algebra.bot_equiv (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
def algebra.top_equiv {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] :

The top subalgebra is isomorphic to the field.

Equations
theorem alg_hom.subsingleton {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] [subsingleton (subalgebra R A)] :

For performance reasons this is not an instance. If you need this instance, add

in the section that needs it.

theorem alg_equiv.subsingleton_left {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] [subsingleton (subalgebra R A)] :
theorem alg_equiv.subsingleton_right {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] [subsingleton (subalgebra R B)] :
theorem subalgebra.range_val {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
S.val.range = S
def subalgebra.inclusion {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} (h : S T) :

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

This is the subalgebra version of submodule.of_le, or subring.inclusion

Equations
theorem subalgebra.inclusion_injective {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} (h : S T) :
@[simp]
theorem subalgebra.inclusion_self {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S : subalgebra R A} :
@[simp]
theorem subalgebra.inclusion_right {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} (h : S T) (x : T) (m : x S) :
@[simp]
theorem subalgebra.inclusion_inclusion {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T U : subalgebra R A} (hst : S T) (htu : T U) (x : S) :
@[simp]
theorem subalgebra.coe_inclusion {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {S T : subalgebra R A} (h : S T) (s : S) :
def subalgebra.equiv_of_eq {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) (h : S = T) :

Two subalgebras that are equal are also equivalent as algebras.

This is the subalgebra version of linear_equiv.of_eq and equiv.set.of_eq.

Equations
@[simp]
theorem subalgebra.equiv_of_eq_apply {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) (h : S = T) (x : S) :
(S.equiv_of_eq T h) x = x, _⟩
@[simp]
theorem subalgebra.equiv_of_eq_symm {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T : subalgebra R A) (h : S = T) :
@[simp]
theorem subalgebra.equiv_of_eq_rfl {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S : subalgebra R A) :
@[simp]
theorem subalgebra.equiv_of_eq_trans {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] (S T U : subalgebra R A) (hST : S = T) (hTU : T = U) :
(S.equiv_of_eq T hST).trans (T.equiv_of_eq U hTU) = S.equiv_of_eq U _
def subalgebra.prod {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R A) (S₁ : subalgebra R B) :
subalgebra R (A × B)

The product of two subalgebras is a subalgebra.

Equations
@[simp]
theorem subalgebra.coe_prod {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R A) (S₁ : subalgebra R B) :
(S.prod S₁) = S.prod S₁
theorem subalgebra.prod_to_submodule {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] (S : subalgebra R A) (S₁ : subalgebra R B) :
@[simp]
theorem subalgebra.mem_prod {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S : subalgebra R A} {S₁ : subalgebra R B} {x : A × B} :
x S.prod S₁ x.fst S x.snd S₁
@[simp]
theorem subalgebra.prod_top {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] :
theorem subalgebra.prod_mono {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S T : subalgebra R A} {S₁ T₁ : subalgebra R B} :
S TS₁ T₁S.prod S₁ T.prod T₁
@[simp]
theorem subalgebra.prod_inf_prod {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {S T : subalgebra R A} {S₁ T₁ : subalgebra R B} :
S.prod S₁ T.prod T₁ = (S T).prod (S₁ T₁)
theorem subalgebra.coe_supr_of_directed {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {ι : Type u_1} [nonempty ι] {S : ι → subalgebra R A} (dir : directed has_le.le S) :
(supr S) = ⋃ (i : ι), (S i)
def subalgebra.supr_lift {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {ι : Type u_1} [nonempty ι] (K : ι → subalgebra R A) (dir : directed has_le.le K) (f : Π (i : ι), (K i) →ₐ[R] B) (hf : ∀ (i j : ι) (h : K i K j), f i = (f j).comp (subalgebra.inclusion h)) (T : subalgebra R A) (hT : T = supr K) :

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

Equations
@[simp]
theorem subalgebra.supr_lift_inclusion {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {ι : Type u_1} [nonempty ι] {K : ι → subalgebra R A} {dir : directed has_le.le K} {f : Π (i : ι), (K i) →ₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = (f j).comp (subalgebra.inclusion h)} {T : subalgebra R A} {hT : T = supr K} {i : ι} (x : (K i)) (h : K i T) :
(subalgebra.supr_lift K dir f hf T hT) ((subalgebra.inclusion h) x) = (f i) x
@[simp]
theorem subalgebra.supr_lift_comp_inclusion {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {ι : Type u_1} [nonempty ι] {K : ι → subalgebra R A} {dir : directed has_le.le K} {f : Π (i : ι), (K i) →ₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = (f j).comp (subalgebra.inclusion h)} {T : subalgebra R A} {hT : T = supr K} {i : ι} (h : K i T) :
@[simp]
theorem subalgebra.supr_lift_mk {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {ι : Type u_1} [nonempty ι] {K : ι → subalgebra R A} {dir : directed has_le.le K} {f : Π (i : ι), (K i) →ₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = (f j).comp (subalgebra.inclusion h)} {T : subalgebra R A} {hT : T = supr K} {i : ι} (x : (K i)) (hx : x T) :
(subalgebra.supr_lift K dir f hf T hT) x, hx⟩ = (f i) x
theorem subalgebra.supr_lift_of_mem {R : Type u} {A : Type v} {B : Type w} [comm_semiring R] [semiring A] [algebra R A] [semiring B] [algebra R B] {ι : Type u_1} [nonempty ι] {K : ι → subalgebra R A} {dir : directed has_le.le K} {f : Π (i : ι), (K i) →ₐ[R] B} {hf : ∀ (i j : ι) (h : K i K j), f i = (f j).comp (subalgebra.inclusion h)} {T : subalgebra R A} {hT : T = supr K} {i : ι} (x : T) (hx : x K i) :
(subalgebra.supr_lift K dir f hf T hT) x = (f i) x, hx⟩

Actions by subalgebras #

These are just copies of the definitions about subsemiring starting from subring.mul_action.

@[instance]
def subalgebra.mul_action {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} [mul_action A α] (S : subalgebra R A) :

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

Equations
theorem subalgebra.smul_def {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} [mul_action A α] {S : subalgebra R A} (g : S) (m : α) :
g m = g m
@[instance]
def subalgebra.smul_comm_class_left {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} {β : Type u_2} [mul_action A β] [has_scalar α β] [smul_comm_class A α β] (S : subalgebra R A) :
@[instance]
def subalgebra.smul_comm_class_right {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} {β : Type u_2} [has_scalar α β] [mul_action A β] [smul_comm_class α A β] (S : subalgebra R A) :
@[instance]
def subalgebra.is_scalar_tower_left {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} {β : Type u_2} [has_scalar α β] [mul_action A α] [mul_action A β] [is_scalar_tower A α β] (S : subalgebra R A) :

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

@[instance]
def subalgebra.has_faithful_scalar {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} [mul_action A α] [has_faithful_scalar A α] (S : subalgebra R A) :
@[instance]
def subalgebra.distrib_mul_action {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} [add_monoid α] [distrib_mul_action A α] (S : subalgebra R A) :

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

Equations
@[instance]
def subalgebra.module_left {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {α : Type u_1} [add_comm_monoid α] [module A α] (S : subalgebra R A) :

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

Equations
@[instance]
def subalgebra.to_algebra {α : Type u_1} {R : Type u_2} {A : Type u_3} [comm_semiring R] [comm_semiring A] [semiring α] [algebra R A] [algebra A α] (S : subalgebra R A) :

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

Equations
theorem subalgebra.algebra_map_eq {α : Type u_1} {R : Type u_2} {A : Type u_3} [comm_semiring R] [comm_semiring A] [semiring α] [algebra R A] [algebra A α] (S : subalgebra R A) :
@[simp]
theorem subalgebra.srange_algebra_map {R : Type u_1} {A : Type u_2} [comm_semiring R] [comm_semiring A] [algebra R A] (S : subalgebra R A) :
@[simp]
theorem subalgebra.range_algebra_map {R : Type u_1} {A : Type u_2} [comm_ring R] [comm_ring A] [algebra R A] (S : subalgebra R A) :
@[instance]
def subalgebra.under {R : Type u} {A : Type v} [comm_semiring R] [comm_semiring A] {i : algebra R A} (S : subalgebra R A) (T : subalgebra S A) :

If S is an R-subalgebra of A and T is an S-subalgebra of A, then T is an R-subalgebra of A.

Equations
@[simp]
theorem subalgebra.mem_under {R : Type u} {A : Type v} [comm_semiring R] [comm_semiring A] {i : algebra R A} {S : subalgebra R A} {T : subalgebra S A} {x : A} :
x S.under T x T
@[instance]
def subalgebra.pointwise_mul_action {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {R' : Type u_1} [semiring R'] [mul_semiring_action R' A] [smul_comm_class R' R A] :

The action on a subalgebra corresponding to applying the action to every element.

This is available as an instance in the pointwise locale.

Equations
@[simp]
theorem subalgebra.coe_pointwise_smul {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {R' : Type u_1} [semiring R'] [mul_semiring_action R' A] [smul_comm_class R' R A] (m : R') (S : subalgebra R A) :
(m S) = m S
@[simp]
theorem subalgebra.pointwise_smul_to_subsemiring {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {R' : Type u_1} [semiring R'] [mul_semiring_action R' A] [smul_comm_class R' R A] (m : R') (S : subalgebra R A) :
@[simp]
theorem subalgebra.pointwise_smul_to_submodule {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {R' : Type u_1} [semiring R'] [mul_semiring_action R' A] [smul_comm_class R' R A] (m : R') (S : subalgebra R A) :
@[simp]
theorem subalgebra.pointwise_smul_to_subring {R' : Type u_1} {R : Type u_2} {A : Type u_3} [semiring R'] [comm_ring R] [ring A] [mul_semiring_action R' A] [algebra R A] [smul_comm_class R' R A] (m : R') (S : subalgebra R A) :
theorem subalgebra.smul_mem_pointwise_smul {R : Type u} {A : Type v} [comm_semiring R] [semiring A] [algebra R A] {R' : Type u_1} [semiring R'] [mul_semiring_action R' A] [smul_comm_class R' R A] (m : R') (r : A) (S : subalgebra R A) :
r Sm r m S
def subalgebra_of_subsemiring {R : Type u_1} [semiring R] (S : subsemiring R) :

A subsemiring is a -subalgebra.

Equations
@[simp]
theorem mem_subalgebra_of_subsemiring {R : Type u_1} [semiring R] {x : R} {S : subsemiring R} :
def subalgebra_of_subring {R : Type u_1} [ring R] (S : subring R) :

A subring is a -subalgebra.

Equations
@[simp]
theorem mem_subalgebra_of_subring {R : Type u_1} [ring R] {x : R} {S : subring R} :