Documentation

Mathlib.LinearAlgebra.PiTensorProduct.DirectSum

Tensor products of direct sums #

This file shows that taking PiTensorProducts commutes with taking DirectSums in all arguments.

Main results #

noncomputable def PiTensorProduct.ofDirectSumEquiv {R : Type u_1} {ι : Type u_2} {κ : ιType u_3} {M : (i : ι) → κ iType 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.

Equations
Instances For
    @[simp]
    theorem PiTensorProduct.ofDirectSumEquiv_tprod_lof {R : Type u_1} {ι : Type u_2} {κ : ιType u_3} {M : (i : ι) → κ iType 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 : ι) → κ iType 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 : ι) → κ iType 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) :
    (ofDirectSumEquiv ((tprod R) x)) p = (tprod R) fun (i : ι) => (x i) (p i)