Tensor products of direct sums #
This file shows that taking PiTensorProducts commutes with taking DirectSums in all arguments.
Main results #
ofDirectSumEquiv: the linear equivalence between aPiTensorProductofDirectSums and theDirectSumof thePiTensorProducts.
noncomputable def
PiTensorProduct.ofDirectSumEquiv
{R : Type u_1}
{ι : Type u_2}
{κ : ι → Type u_3}
{M : (i : ι) → κ i → Type u_4}
[CommSemiring R]
[(i : ι) → (j : κ i) → AddCommMonoid (M i j)]
[(i : ι) → (j : κ i) → Module R (M i j)]
[Finite ι]
:
(PiTensorProduct R fun (i : ι) => DirectSum (κ i) fun (j : κ i) => M i j) ≃ₗ[R] DirectSum ((i : ι) → κ i) fun (p : (i : ι) → κ i) => PiTensorProduct R fun (i : ι) => M i (p i)
The n-ary tensor product distributes over m-ary direct sums.
Instances For
@[simp]
theorem
PiTensorProduct.ofDirectSumEquiv_tprod_lof
{R : Type u_1}
{ι : Type u_2}
{κ : ι → Type u_3}
{M : (i : ι) → κ i → Type u_4}
[CommSemiring R]
[(i : ι) → (j : κ i) → AddCommMonoid (M i j)]
[(i : ι) → (j : κ i) → Module R (M i j)]
[Fintype ι]
[(i : ι) → DecidableEq (κ i)]
(p : (i : ι) → κ i)
(x : (i : ι) → M i (p i))
:
ofDirectSumEquiv ((tprod R) fun (i : ι) => (DirectSum.lof R (κ i) (M i) (p i)) (x i)) = (DirectSum.lof R ((i : ι) → κ i) (fun (i : (i : ι) → κ i) => PiTensorProduct R fun (i_1 : ι) => M i_1 (i i_1)) p)
((tprod R) fun (i : ι) => x i)
@[simp]
theorem
PiTensorProduct.ofDirectSumEquiv_symm_lof_tprod
{R : Type u_1}
{ι : Type u_2}
{κ : ι → Type u_3}
{M : (i : ι) → κ i → Type u_4}
[CommSemiring R]
[(i : ι) → (j : κ i) → AddCommMonoid (M i j)]
[(i : ι) → (j : κ i) → Module R (M i j)]
[Fintype ι]
[(i : ι) → DecidableEq (κ i)]
(p : (i : ι) → κ i)
(x : (i : ι) → M i (p i))
:
ofDirectSumEquiv.symm
((DirectSum.lof R ((i : ι) → κ i) (fun (p : (i : ι) → κ i) => PiTensorProduct R fun (i : ι) => M i (p i)) p)
((tprod R) x)) = (tprod R) fun (i : ι) => (DirectSum.lof R (κ i) (M i) (p i)) (x i)
@[simp]
theorem
PiTensorProduct.ofDirectSumEquiv_tprod_apply
{R : Type u_1}
{ι : Type u_2}
{κ : ι → Type u_3}
{M : (i : ι) → κ i → Type u_4}
[CommSemiring R]
[(i : ι) → (j : κ i) → AddCommMonoid (M i j)]
[(i : ι) → (j : κ i) → Module R (M i j)]
[Finite ι]
(x : (i : ι) → DirectSum (κ i) fun (j : κ i) => M i j)
(p : (i : ι) → κ i)
: