Physlib

Physlib.Mathematics.PiTensorProduct

Pi Tensor Products

The purpose of this file is to define some results about Pi tensor products not currently in Mathlib.

At some point these should either be up-streamed to Mathlib or replaced with definitions already in Mathlib.

induction principals for pi tensor products

Dependent type version of PiTensorProduct.tmulEquiv

22 declarations

theorem

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

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

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)

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

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)

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.

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

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

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

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

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

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

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

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})

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: MultilinearMapR(Sum.elim s1s2,(iι1s1(i))R(jι2s2(j))) \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(iι1f(inl i))(jι2f(inr j)) 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

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: (kι1ι2(Sum.elim s1s2)k)(iι1s1(i))R(jι2s2(j)) \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: kι1ι2f(k)(iι1f(inl i))(jι2f(inr j)) \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

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

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

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

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)

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)

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 (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) \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

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).