mathlib3 documentation

monlib / linear_algebra.my_tensor_product

Some lemmas about tensor_product #

@[protected]
theorem tensor_product.ext_iff {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [comm_semiring R] [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid P] [module R M] [module R N] [module R P] {g h : tensor_product R M N →ₗ[R] P} :
g = h (x : M) (y : N), g (x ⊗ₜ[R] y) = h (x ⊗ₜ[R] y)
theorem tensor_product.ext'_iff {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} {Q : Type u_5} [comm_semiring R] [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R P] [module R Q] {g h : tensor_product R (tensor_product R M N) Q →ₗ[R] P} :
( (x : tensor_product R (tensor_product R M N) Q), g x = h x) (x : M) (y : N) (z : Q), g (x ⊗ₜ[R] y ⊗ₜ[R] z) = h (x ⊗ₜ[R] y ⊗ₜ[R] z)
@[simp]
theorem tensor_product.map_apply {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} {Q : Type u_5} [comm_semiring R] [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R P] [module R Q] (f : M →ₗ[R] P) (t : N →ₗ[R] Q) (x : M) (y : N) :
theorem tensor_product.assoc_comp_map {R : Type u_1} [comm_semiring R] {M : Type u_2} {N : Type u_3} {M₂ : Type u_4} {N₂ : Type u_5} {P : Type u_6} {Q : Type u_7} [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid M₂] [add_comm_monoid N₂] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R M₂] [module R N₂] [module R P] [module R Q] (f : M →ₗ[R] P) (t : N →ₗ[R] Q) (s : M₂ →ₗ[R] N₂) :
theorem tensor_product.ext_threefold' {R : Type u_1} [comm_semiring R] {M : Type u_2} {N : Type u_3} {P : Type u_4} {Q : Type u_5} [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R P] [module R Q] {g h : tensor_product R M (tensor_product R N P) →ₗ[R] Q} (H : (x : M) (y : N) (z : P), g (x ⊗ₜ[R] (y ⊗ₜ[R] z)) = h (x ⊗ₜ[R] (y ⊗ₜ[R] z))) :
g = h
theorem tensor_product.assoc_symm_comp_map {R : Type u_1} [comm_semiring R] {M : Type u_2} {N : Type u_3} {M₂ : Type u_4} {N₂ : Type u_5} {P : Type u_6} {Q : Type u_7} [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid M₂] [add_comm_monoid N₂] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R M₂] [module R N₂] [module R P] [module R Q] (f : M →ₗ[R] P) (t : N →ₗ[R] Q) (s : M₂ →ₗ[R] N₂) :
theorem tensor_product.comm_map {R : Type u_1} [comm_semiring R] {M : Type u_2} {N : Type u_3} {P : Type u_4} {Q : Type u_5} [add_comm_monoid M] [add_comm_monoid N] [add_comm_monoid P] [add_comm_monoid Q] [module R M] [module R N] [module R P] [module R Q] (f : M →ₗ[R] P) (t : N →ₗ[R] Q) :
@[protected]
theorem tensor_product.map_sum {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] (x : M₁ →ₗ[R] M₂) {α : Type u_6} (s : finset α) (n : α (N₁ →ₗ[R] N₂)) :
tensor_product.map x (s.sum (λ (a : α), n a)) = s.sum (λ (a : α), tensor_product.map x (n a))
theorem tensor_product.sum_map {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] {α : Type u_6} (s : finset α) (n : α (N₁ →ₗ[R] N₂)) (x : M₁ →ₗ[R] M₂) :
tensor_product.map (s.sum (λ (a : α), n a)) x = s.sum (λ (a : α), tensor_product.map (n a) x)
@[protected]
theorem tensor_product.map_smul {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] (x : M₁ →ₗ[R] M₂) (y : N₁ →ₗ[R] N₂) (a : R) :
theorem tensor_product.smul_map {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] (x : M₁ →ₗ[R] M₂) (y : N₁ →ₗ[R] N₂) (a : R) :
theorem tensor_product.add_map {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] (x y : M₁ →ₗ[R] M₂) (z : N₁ →ₗ[R] N₂) :
@[protected]
theorem tensor_product.map_zero {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {N₁ : Type u_3} {M₂ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid N₁] [add_comm_monoid M₂] [add_comm_monoid N₂] [module R M₁] [module R N₁] [module R M₂] [module R N₂] (x : M₁ →ₗ[R] N₁) :
@[protected]
theorem tensor_product.zero_map {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {N₁ : Type u_3} {M₂ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid N₁] [add_comm_monoid M₂] [add_comm_monoid N₂] [module R M₁] [module R N₁] [module R M₂] [module R N₂] (x : M₁ →ₗ[R] N₁) :
theorem tensor_product.tmul_eq_zero {R : Type u_1} [field R] {M : Type u_2} {N : Type u_3} [add_comm_group M] [add_comm_group N] [module R M] [module R N] {x : M} {y : N} :
x ⊗ₜ[R] y = 0 x = 0 y = 0
theorem tensor_product.zero_tmul_zero {R : Type u_1} [comm_semiring R] {M : Type u_2} {N : Type u_3} [add_comm_group M] [add_comm_group N] [module R M] [module R N] :
0 = 0 ⊗ₜ[R] 0
theorem tensor_product.map_mul'_commute_iff {R : Type u_1} {M : Type u_2} {N : Type (max u_3 u_4)} [comm_semiring R] [non_unital_non_assoc_semiring M] [non_unital_non_assoc_semiring N] [module R M] [module R N] [smul_comm_class R M M] [smul_comm_class R N N] [is_scalar_tower R M M] [is_scalar_tower R N N] {f : M →ₗ[R] N} :
(linear_map.mul' R N).comp (tensor_product.map f f) = f.comp (linear_map.mul' R M) (x y : M), f (x * y) = f x * f y
theorem algebra.tensor_product.map_to_linear_map {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} {Q : Type u_5} [comm_semiring R] [semiring M] [semiring N] [semiring P] [semiring Q] [algebra R M] [algebra R N] [algebra R P] [algebra R Q] (f : M →ₐ[R] N) (g : P →ₐ[R] Q) :
theorem alg_hom.commute_map_mul'_apply {R : Type u_1} {M : Type u_2} {N : Type u_3} [comm_semiring R] [semiring M] [semiring N] [algebra R M] [algebra R N] (f : M →ₐ[R] N) (x : tensor_product R M M) :
theorem tensor_product.map_add {R : Type u_1} [comm_semiring R] {M₁ : Type u_2} {M₂ : Type u_3} {N₁ : Type u_4} {N₂ : Type u_5} [add_comm_monoid M₁] [add_comm_monoid M₂] [add_comm_monoid N₁] [add_comm_monoid N₂] [module R M₁] [module R M₂] [module R N₁] [module R N₂] (x y : M₁ →ₗ[R] M₂) (z : N₁ →ₗ[R] N₂) :