Physlib

Physlib.Mathematics.PiTensorProduct

22 declarations

theorem

Linear maps on (s1)(s2)(\bigotimes s_1) \otimes (\bigotimes s_2) are determined by elementary tensors

#induction_tmul

Let RR be a commutative ring and MM be an RR-module. Let s1s_1 and s2s_2 be families of RR-modules indexed by the sets ι1\iota_1 and ι2\iota_2, respectively. Suppose ff and gg are RR-linear maps from the tensor product of two Pi tensor products, (iι1s1(i))R(jι2s2(j))\left(\bigotimes_{i \in \iota_1} s_1(i)\right) \otimes_R \left(\bigotimes_{j \in \iota_2} s_2(j)\right), to MM. If for all elements piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), the maps satisfy f((iι1pi)(jι2qj))=g((iι1pi)(jι2qj)),f\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes \left(\bigotimes_{j \in \iota_2} q_j\right)\right) = g\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes \left(\bigotimes_{j \in \iota_2} q_j\right)\right), then f=gf = g. Here, pi\bigotimes p_i denotes the canonical image (elementary tensor) of the element pp in the Pi tensor product.

theorem

Linear maps on (s1)(s2)(s3)(\bigotimes s_1) \otimes (\bigotimes s_2) \otimes (\bigotimes s_3) are determined by elementary tensors

#induction_assoc

Let RR be a commutative ring and MM be an RR-module. Let ι1,ι2,ι3\iota_1, \iota_2, \iota_3 be index sets, and let s1,s2,s3s_1, s_2, s_3 be families of RR-modules indexed by these sets. Suppose ff and gg are RR-linear maps from the triple tensor product (iι1s1(i))R(jι2s2(j))R(kι3s3(k))(\bigotimes_{i \in \iota_1} s_1(i)) \otimes_R (\bigotimes_{j \in \iota_2} s_2(j)) \otimes_R (\bigotimes_{k \in \iota_3} s_3(k)) to MM. If for all piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i), qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), and mkι3s3(k)m \in \prod_{k \in \iota_3} s_3(k), the maps satisfy f((iι1pi)(jι2qj)(kι3mk))=g((iι1pi)(jι2qj)(kι3mk))f\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes \left(\bigotimes_{j \in \iota_2} q_j\right) \otimes \left(\bigotimes_{k \in \iota_3} m_k\right)\right) = g\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes \left(\bigotimes_{j \in \iota_2} q_j\right) \otimes \left(\bigotimes_{k \in \iota_3} m_k\right)\right) then f=gf = g.

theorem

Agreement on pure tensors implies f=gf = g on ((s1s2)s3)((\bigotimes s_1 \otimes \bigotimes s_2) \otimes \bigotimes s_3)

#induction_assoc'

Let RR be a ring and MM an RR-module. Let s1,s2,s3s_1, s_2, s_3 be families of RR-modules indexed by ι1,ι2,ι3\iota_1, \iota_2, \iota_3 respectively. Let V1=iι1s1(i)V_1 = \bigotimes_{i \in \iota_1} s_1(i), V2=iι2s2(i)V_2 = \bigotimes_{i \in \iota_2} s_2(i), and V3=iι3s3(i)V_3 = \bigotimes_{i \in \iota_3} s_3(i) be the corresponding Pi tensor products over RR. For any two RR-linear maps f,g:(V1RV2)RV3Mf, g : (V_1 \otimes_R V_2) \otimes_R V_3 \to M, if the maps agree on all pure tensors of the form ((tprod(p)tprod(q))tprod(m))((\text{tprod}(p) \otimes \text{tprod}(q)) \otimes \text{tprod}(m)) for all ps1,qs2,ms3p \in \prod s_1, q \in \prod s_2, m \in \prod s_3, then f=gf = g. Here, tprod\text{tprod} denotes the canonical multilinear map from the Cartesian product of a family of modules into its Pi tensor product.

theorem

Elementary tensors determine linear maps on (iιsi)N\left(\bigotimes_{i \in \iota} s_i\right) \otimes N

#induction_tmul_mod

Let RR be a commutative ring, MM and NN be RR-modules, and {s1(i)}iι1\{s_1(i)\}_{i \in \iota_1} be a family of RR-modules indexed by ι1\iota_1. Let f,g:(iι1s1(i))RNMf, g : \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \otimes_R N \to M be RR-linear maps. If f((iι1pi)m)=g((iι1pi)m)f\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes m\right) = g\left(\left(\bigotimes_{i \in \iota_1} p_i\right) \otimes m\right) for all families of elements piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and all mNm \in N, then f=gf = g. Here iι1pi\bigotimes_{i \in \iota_1} p_i denotes the canonical image of the family pp in the Pi tensor product.

theorem

Elementary tensors determine linear maps on N(iιsi)N \otimes (\bigotimes_{i \in \iota} s_i)

#induction_mod_tmul

Let RR be a commutative ring, ι1\iota_1 an indexing set, and {s1(i)}iι1\{s_1(i)\}_{i \in \iota_1} a family of RR-modules. Let NN and MM be RR-modules. Given two RR-linear maps f,g:NR(iι1s1(i))Mf, g : N \otimes_R \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \to M, if f(m(iι1pi))=g(m(iι1pi))f(m \otimes (\otimes_{i \in \iota_1} p_i)) = g(m \otimes (\otimes_{i \in \iota_1} p_i)) for all mNm \in N and all families of elements piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i), then f=gf = g.

instance

Each type in the sum of families s1s_1 and s2s_2 is an additive commutative monoid.

#instAddCommMonoidElim_physlib

Let ι1\iota_1 and ι2\iota_2 be indexing sets, and let s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type} be families of types such that each s1(i)s_1(i) and s2(j)s_2(j) is an additive commutative monoid. For the disjoint union of the indexing sets ι1ι2\iota_1 \oplus \iota_2, this definition provides an additive commutative monoid structure for each type in the combined family s:ι1ι2Types: \iota_1 \oplus \iota_2 \to \text{Type} defined by the sum of s1s_1 and s2s_2. Specifically, for any index iι1ι2i \in \iota_1 \oplus \iota_2, the corresponding type inherits the additive commutative monoid instance from s1s_1 if ii is in the left injection or from s2s_2 if ii is in the right injection.

instance

Each type in the sum of families s1s_1 and s2s_2 is an RR-module

#instModuleElim_physlib

Let RR be a commutative ring, ι1\iota_1 and ι2\iota_2 be indexing sets, and s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type} be families of types such that each s1(i)s_1(i) and s2(j)s_2(j) is an RR-module. For the disjoint union ι1ι2\iota_1 \oplus \iota_2, this definition provides an RR-module structure for each type in the combined family s:ι1ι2Types: \iota_1 \oplus \iota_2 \to \text{Type} defined by the sum of s1s_1 and s2s_2. Specifically, for any index kι1ι2k \in \iota_1 \oplus \iota_2, the corresponding type inherits the RR-module instance from s1(i)s_1(i) if k=inl ik = \text{inl } i or from s2(j)s_2(j) if k=inr jk = \text{inr } j.

definition

Restriction of a function on ι1ι2\iota_1 \oplus \iota_2 to ι1\iota_1

#pureInl

Given two index sets ι1\iota_1 and ι2\iota_2 and families of types s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type}, let ff be a dependent function defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that for any iι1i \in \iota_1, f(inl i)s1(i)f(\text{inl } i) \in s_1(i), and for any jι2j \in \iota_2, f(inr j)s2(j)f(\text{inr } j) \in s_2(j). This function returns the restriction of ff to the first index set ι1\iota_1, mapping each iι1i \in \iota_1 to f(inl i)f(\text{inl } i).

definition

Restriction of a sum-indexed function to the right component ι2\iota_2

#pureInr

Given two families of types s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type}, and a function ff defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(i)s1(i)f(i) \in s_1(i) for iι1i \in \iota_1 and f(i)s2(i)f(i) \in s_2(i) for iι2i \in \iota_2, the function `pureInr` returns the restriction of ff to the index set ι2\iota_2. Specifically, it is the map finr:ι2s2f \circ \text{inr} : \iota_2 \to s_2.

theorem

Restriction to ι1\iota_1 Commutes with Updates on the Left Component

#pureInl_update_left

Let ι1\iota_1 and ι2\iota_2 be index sets and s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} be families of types. Let ff be a dependent function defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(i)s1(i)f(i) \in s_1(i) for iι1i \in \iota_1 and f(i)s2(i)f(i) \in s_2(i) for iι2i \in \iota_2. Let fι1f|_{\iota_1} denote the restriction of ff to the index set ι1\iota_1 (mapping iι1i \in \iota_1 to f(inl i)f(\text{inl } i)). For any xι1x \in \iota_1 and v1s1(x)v_1 \in s_1(x), updating ff at the index inl x\text{inl } x with the value v1v_1 and then restricting the result to ι1\iota_1 is equal to updating the restricted function fι1f|_{\iota_1} at index xx with v1v_1.

theorem

Updating a function on the left component ι1\iota_1 preserves its restriction to the right component ι2\iota_2

#pureInr_update_left

Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type} be families of types. Let ff be a function defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(i)s1(i)f(i) \in s_1(i) for iι1i \in \iota_1 and f(i)s2(i)f(i) \in s_2(i) for iι2i \in \iota_2. Let pureInr(f)\text{pureInr}(f) denote the restriction of ff to the index set ι2\iota_2, specifically defined as the map jf(inr j)j \mapsto f(\text{inr } j) for all jι2j \in \iota_2. For any index xι1x \in \iota_1 and any value vs1(x)v \in s_1(x), let ff' be the function ff updated at the position inl(x)\text{inl}(x) with value vv. Then the restriction of ff' to the index set ι2\iota_2 is equal to the restriction of the original function ff to ι2\iota_2. In mathematical notation: pureInr(update f(inl x)v)=pureInr f\text{pureInr}(\text{update } f (\text{inl } x) v) = \text{pureInr } f.

theorem

Restriction to ι2\iota_2 Commutes with Updates on the Right Component

#pureInr_update_right

Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type} be families of types. Let ff be a dependent function defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(i)s1(i)f(i) \in s_1(i) for iι1i \in \iota_1 and f(i)s2(i)f(i) \in s_2(i) for iι2i \in \iota_2. Let pureInr(f)\text{pureInr}(f) denote the restriction of ff to the index set ι2\iota_2, specifically defined as the map jf(inr j)j \mapsto f(\text{inr } j) for all jι2j \in \iota_2. For any index xι2x \in \iota_2 and any value vs2(x)v \in s_2(x), updating ff at the position inr(x)\text{inr}(x) with value vv and then restricting the result to ι2\iota_2 is equal to updating the restricted function pureInr(f)\text{pureInr}(f) at index xx with the value vv. In mathematical notation: pureInr(update f(inr x)v)=update (pureInr f)xv\text{pureInr}(\text{update } f (\text{inr } x) v) = \text{update } (\text{pureInr } f) x v.

theorem

Updating a function on the right component ι2\iota_2 preserves its restriction to the left component ι1\iota_1

#pureInl_update_right

Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1 : \iota_1 \to \text{Type} and s2:ι2Types_2 : \iota_2 \to \text{Type} be families of types. Let ff be a dependent function defined on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(inl i)s1(i)f(\text{inl } i) \in s_1(i) for iι1i \in \iota_1 and f(inr j)s2(j)f(\text{inr } j) \in s_2(j) for jι2j \in \iota_2. Let pureInl(f)\text{pureInl}(f) denote the restriction of ff to the index set ι1\iota_1, defined as the map if(inl i)i \mapsto f(\text{inl } i) for all iι1i \in \iota_1. For any index xι2x \in \iota_2 and any value vs2(x)v \in s_2(x), let ff' be the function ff updated at the position inr(x)\text{inr}(x) with value vv. Then the restriction of ff' to the index set ι1\iota_1 is equal to the restriction of the original function ff to ι1\iota_1. In mathematical notation: pureInl(update f(inr x)v)=pureInl f\text{pureInl}(\text{update } f (\text{inr } x) v) = \text{pureInl } f.

definition

Multilinear map splitting a sum-indexed product into a tensor of Pi tensor products (ι1ι2)(ι1)(ι2)(\bigotimes_{\iota_1 \oplus \iota_2}) \to (\bigotimes_{\iota_1}) \otimes (\bigotimes_{\iota_2})

#domCoprod

Let RR be a commutative ring. Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} be families of RR-modules. This definition constructs an RR-multilinear map from the family of modules indexed by the disjoint union ι1ι2\iota_1 \oplus \iota_2 (where the module at kι1ι2k \in \iota_1 \oplus \iota_2 is s1(i)s_1(i) if k=inl ik = \text{inl } i and s2(j)s_2(j) if k=inr jk = \text{inr } j) to the tensor product of two Pi tensor products: \[ \text{MultilinearMap}_R \left( \text{Sum.elim } s_1 s_2, \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \otimes_R \left( \bigotimes_{j \in \iota_2} s_2(j) \right) \right) \] For a given dependent function fkι1ι2(Sum.elim s1s2)kf \in \prod_{k \in \iota_1 \oplus \iota_2} (\text{Sum.elim } s_1 s_2)_k, the map is defined by: \[ f \mapsto \left( \bigotimes_{i \in \iota_1} f(\text{inl } i) \right) \otimes \left( \bigotimes_{j \in \iota_2} f(\text{inr } j) \right) \] where the right-hand side is the tensor product of the pure tensors formed from the restrictions of ff to ι1\iota_1 and ι2\iota_2 respectively.

definition

Linear map (iι1ι2Mi)(iι1Mi)(jι2Mj)(\bigotimes_{i \in \iota_1 \oplus \iota_2} M_i) \to (\bigotimes_{i \in \iota_1} M_i) \otimes (\bigotimes_{j \in \iota_2} M_j) expanding a Pi tensor product over a sum of index sets

#tmulSymm

Let RR be a commutative ring. Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} be families of RR-modules. This definition constructs an RR-linear map from the Pi tensor product indexed by the disjoint union ι1ι2\iota_1 \oplus \iota_2 to the tensor product of two Pi tensor products: \[ \left( \bigotimes_{k \in \iota_1 \oplus \iota_2} (\text{Sum.elim } s_1 s_2)_k \right) \to \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \otimes_R \left( \bigotimes_{j \in \iota_2} s_2(j) \right) \] where Sum.elim s1s2\text{Sum.elim } s_1 s_2 is the family of modules where the module at index kk is s1(i)s_1(i) if k=inl ik = \text{inl } i and s2(j)s_2(j) if k=inr jk = \text{inr } j. For any pure tensor kι1ι2f(k)\bigotimes_{k \in \iota_1 \oplus \iota_2} f(k), the map is defined by: \[ \bigotimes_{k \in \iota_1 \oplus \iota_2} f(k) \mapsto \left( \bigotimes_{i \in \iota_1} f(\text{inl } i) \right) \otimes \left( \bigotimes_{j \in \iota_2} f(\text{inr } j) \right) \] In other words, it expands a Pi tensor product whose index set is a disjoint union into a tensor product of two Pi tensor products.

definition

Combination of functions pp and qq on the disjoint union ι1ι2\iota_1 \oplus \iota_2

#elimPureTensor

Given two index sets ι1\iota_1 and ι2\iota_2, two families of types s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type}, and two functions piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), this definition constructs a function ff on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that f(i)=p(i)f(i) = p(i) for iι1i \in \iota_1 and f(j)=q(j)f(j) = q(j) for jι2j \in \iota_2. This function is used to represent the underlying map of a pure tensor in the product iι1ι2(Sum.elim s1s2)i\bigotimes_{i \in \iota_1 \oplus \iota_2} (\text{Sum.elim } s_1 s_2)_i.

theorem

`elimPureTensor` commutes with function updates on the second argument

#elimPureTensor_update_right

Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} be families of types. Suppose piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j) are functions. Let elimPureTensor(p,q)\text{elimPureTensor}(p, q) be the function on the disjoint union ι1ι2\iota_1 \oplus \iota_2 that restricts to pp on ι1\iota_1 and qq on ι2\iota_2. For any yι2y \in \iota_2 and rs2(y)r \in s_2(y), updating the function qq at index yy with value rr before combining it with pp is equivalent to updating the combined function elimPureTensor(p,q)\text{elimPureTensor}(p, q) at the corresponding index inr y\text{inr } y with the value rr. That is, elimPureTensor(p,q[yr])=(elimPureTensor(p,q))[inr yr]\text{elimPureTensor}(p, q[y \mapsto r]) = (\text{elimPureTensor}(p, q))[\text{inr } y \mapsto r] where f[xv]f[x \mapsto v] denotes the update of function ff at index xx with value vv.

theorem

`elimPureTensor` commutes with `Function.update` on the left argument

#elimPureTensor_update_left

Let ι1\iota_1 and ι2\iota_2 be index sets, and let s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} be families of types. For any functions piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), let elimPureTensor(p,q)\text{elimPureTensor}(p, q) denote the combined function on the disjoint union ι1ι2\iota_1 \oplus \iota_2 such that its restriction to ι1\iota_1 is pp and its restriction to ι2\iota_2 is qq. For any index xι1x \in \iota_1 and value rs1(x)r \in s_1(x), the following identity holds: elimPureTensor(update(p,x,r),q)=update(elimPureTensor(p,q),inl(x),r)\text{elimPureTensor}(\text{update}(p, x, r), q) = \text{update}(\text{elimPureTensor}(p, q), \text{inl}(x), r) where update(f,i,v)\text{update}(f, i, v) denotes the function ff with the value at index ii replaced by vv, and inl:ι1ι1ι2\text{inl}: \iota_1 \to \iota_1 \oplus \iota_2 is the canonical injection.

definition

Multilinear map p(qpq)p \mapsto (q \mapsto p \otimes q) for Pi tensor products over ι1ι2\iota_1 \oplus \iota_2

#elimPureTensorMulLin

Let RR be a commutative ring. Given two families of RR-modules s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type}, this definition constructs an RR-multilinear map from the product iι1s1(i)\prod_{i \in \iota_1} s_1(i) to the space of RR-multilinear maps from jι2s2(j)\prod_{j \in \iota_2} s_2(j) to the Pi tensor product kι1ι2Sk\bigotimes_{k \in \iota_1 \oplus \iota_2} S_k, where SS is the combined family of modules defined on the disjoint union of the index sets ι1ι2\iota_1 \oplus \iota_2. Specifically, for any piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), the map sends pp to a multilinear map that, when applied to qq, results in the pure tensor pqp \otimes q within the product space kι1ι2Sk\bigotimes_{k \in \iota_1 \oplus \iota_2} S_k.

definition

Linear map (iι1s1(i))(jι2s2(j))kι1ι2s(k)(\bigotimes_{i \in \iota_1} s_1(i)) \otimes (\bigotimes_{j \in \iota_2} s_2(j)) \to \bigotimes_{k \in \iota_1 \oplus \iota_2} s(k)

#tmul

Let RR be a commutative ring and ι1,ι2\iota_1, \iota_2 be indexing sets. Given two families of RR-modules s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type}, let s:ι1ι2Types: \iota_1 \oplus \iota_2 \to \text{Type} be the combined family defined by the sum of s1s_1 and s2s_2 (where s(inl i)=s1(i)s(\text{inl } i) = s_1(i) and s(inr j)=s2(j)s(\text{inr } j) = s_2(j)). This definition is the RR-linear map (iι1s1(i))R(jι2s2(j))kι1ι2s(k) \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \otimes_R \left( \bigotimes_{j \in \iota_2} s_2(j) \right) \to \bigotimes_{k \in \iota_1 \oplus \iota_2} s(k) which collapses the binary tensor product of two Pi tensor products into a single Pi tensor product indexed by the disjoint union of the original index sets. On pure tensors, this map sends (iι1pi)(jι2qj)(\bigotimes_{i \in \iota_1} p_i) \otimes (\bigotimes_{j \in \iota_2} q_j) to the pure tensor kι1ι2xk\bigotimes_{k \in \iota_1 \oplus \iota_2} x_k, where xx is the concatenation of the families of elements pp and qq.

definition

Linear equivalence (iι1s1(i))(jι2s2(j))kι1ι2s(k)(\bigotimes_{i \in \iota_1} s_1(i)) \otimes (\bigotimes_{j \in \iota_2} s_2(j)) \cong \bigotimes_{k \in \iota_1 \oplus \iota_2} s(k)

#tmulEquiv

Let RR be a commutative ring and ι1,ι2\iota_1, \iota_2 be indexing sets. Given two families of RR-modules s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type}, let s:ι1ι2Types: \iota_1 \oplus \iota_2 \to \text{Type} be the combined family defined by the sum of s1s_1 and s2s_2 (specifically, s(inl i)=s1(i)s(\text{inl } i) = s_1(i) and s(inr j)=s2(j)s(\text{inr } j) = s_2(j)). This definition provides the RR-linear equivalence \[ \left( \bigotimes_{i \in \iota_1} s_1(i) \right) \otimes_R \left( \bigotimes_{j \in \iota_2} s_2(j) \right) \cong \bigotimes_{k \in \iota_1 \oplus \iota_2} s(k) \] formed by combining a binary tensor product of two Pi tensor products into a single Pi tensor product indexed by the disjoint union of the original index sets. On pure tensors, this equivalence maps (iι1pi)(jι2qj)(\bigotimes_{i \in \iota_1} p_i) \otimes (\bigotimes_{j \in \iota_2} q_j) to the pure tensor kι1ι2xk\bigotimes_{k \in \iota_1 \oplus \iota_2} x_k, where xx is the concatenation of the families pp and qq.

theorem

`tmulEquiv` maps the tensor product of pure tensors to a single pure tensor over ι1ι2\iota_1 \oplus \iota_2

#tmulEquiv_tmul_tprod

Let RR be a commutative ring and let ι1,ι2\iota_1, \iota_2 be indexing sets. Suppose s1:ι1Types_1: \iota_1 \to \text{Type} and s2:ι2Types_2: \iota_2 \to \text{Type} are families of RR-modules. For any functions piι1s1(i)p \in \prod_{i \in \iota_1} s_1(i) and qjι2s2(j)q \in \prod_{j \in \iota_2} s_2(j), the linear equivalence tmulEquiv\text{tmulEquiv} maps the tensor product of the pure tensors, (iι1pi)R(jι2qj)(\bigotimes_{i \in \iota_1} p_i) \otimes_R (\bigotimes_{j \in \iota_2} q_j), to the pure tensor kι1ι2xk\bigotimes_{k \in \iota_1 \oplus \iota_2} x_k, where xx is the combination of pp and qq on the disjoint union ι1ι2\iota_1 \oplus \iota_2 (i.e., x(i)=p(i)x(i) = p(i) for iι1i \in \iota_1 and x(j)=q(j)x(j) = q(j) for jι2j \in \iota_2).