# mathlibdocumentation

algebra.algebra.bilinear

# Facts about algebras involving bilinear maps and tensor products #

We move a few basic statements about algebras out of algebra.algebra.basic, in order to avoid importing linear_algebra.bilinear_map and linear_algebra.tensor_product unnecessarily.

def algebra.lmul (R : Type u_1) (A : Type u_2) [semiring A] [ A] :

The multiplication in an algebra is a bilinear map.

A weaker version of this for semirings exists as add_monoid_hom.mul.

Equations
@[simp]
theorem algebra.lmul_apply {R : Type u_1} {A : Type u_2} [semiring A] [ A] (p q : A) :
( A) p) q = p * q
def algebra.lmul_left (R : Type u_1) {A : Type u_2} [semiring A] [ A] (r : A) :

The multiplication on the left in an algebra is a linear map.

Equations
@[simp]
theorem algebra.lmul_left_to_add_monoid_hom (R : Type u_1) {A : Type u_2} [semiring A] [ A] (r : A) :
def algebra.lmul_right (R : Type u_1) {A : Type u_2} [semiring A] [ A] (r : A) :

The multiplication on the right in an algebra is a linear map.

Equations
@[simp]
theorem algebra.lmul_right_to_add_monoid_hom (R : Type u_1) {A : Type u_2} [semiring A] [ A] (r : A) :
def algebra.lmul_left_right (R : Type u_1) {A : Type u_2} [semiring A] [ A] (vw : A × A) :

Simultaneous multiplication on the left and right is a linear map.

Equations
theorem algebra.commute_lmul_left_right (R : Type u_1) {A : Type u_2} [semiring A] [ A] (a b : A) :
commute a) b)
def algebra.lmul' (R : Type u_1) {A : Type u_2} [semiring A] [ A] :
A →ₗ[R] A

The multiplication map on an algebra, as an R-linear map from A ⊗[R] A to A.

Equations
@[simp]
theorem algebra.lmul'_apply {R : Type u_1} {A : Type u_2} [semiring A] [ A] {x y : A} :
(x ⊗ₜ[R] y) = x * y
@[simp]
theorem algebra.lmul_left_apply {R : Type u_1} {A : Type u_2} [semiring A] [ A] (p q : A) :
p) q = p * q
@[simp]
theorem algebra.lmul_right_apply {R : Type u_1} {A : Type u_2} [semiring A] [ A] (p q : A) :
p) q = q * p
@[simp]
theorem algebra.lmul_left_right_apply {R : Type u_1} {A : Type u_2} [semiring A] [ A] (vw : A × A) (p : A) :
vw) p = vw.fst * p * vw.snd
@[simp]
theorem algebra.lmul_left_one {R : Type u_1} {A : Type u_2} [semiring A] [ A] :
@[simp]
theorem algebra.lmul_left_mul {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a b : A) :
(a * b) = a).comp b)
@[simp]
theorem algebra.lmul_right_one {R : Type u_1} {A : Type u_2} [semiring A] [ A] :
@[simp]
theorem algebra.lmul_right_mul {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a b : A) :
(a * b) = b).comp a)
@[simp]
theorem algebra.lmul_left_zero_eq_zero {R : Type u_1} {A : Type u_2} [semiring A] [ A] :
= 0
@[simp]
theorem algebra.lmul_right_zero_eq_zero {R : Type u_1} {A : Type u_2} [semiring A] [ A] :
= 0
@[simp]
theorem algebra.lmul_left_eq_zero_iff {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a : A) :
= 0 a = 0
@[simp]
theorem algebra.lmul_right_eq_zero_iff {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a : A) :
= 0 a = 0
@[simp]
theorem algebra.pow_lmul_left {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a : A) (n : ) :
^ n = (a ^ n)
@[simp]
theorem algebra.pow_lmul_right {R : Type u_1} {A : Type u_2} [semiring A] [ A] (a : A) (n : ) :
^ n = (a ^ n)
theorem algebra.lmul_left_injective {R : Type u_1} {A : Type u_2} [ring A] [ A] {x : A} (hx : x 0) :
theorem algebra.lmul_right_injective {R : Type u_1} {A : Type u_2} [ring A] [ A] {x : A} (hx : x 0) :
theorem algebra.lmul_injective {R : Type u_1} {A : Type u_2} [ring A] [ A] {x : A} (hx : x 0) :