2.6 Cartesian product types
Given types A and B, consider the cartesian product type A×B.
For any elements x,y:A×B and a path p:x=A×By, by functoriality we can extract paths 𝗉𝗋1(p):𝗉𝗋1(x)=A𝗉𝗋1(y) and 𝗉𝗋2(p):𝗉𝗋2(x)=B𝗉𝗋2(y).
Thus, we have a function
(x=A×By)→(𝗉𝗋1(x)=A𝗉𝗋1(y))×(𝗉𝗋2(x)=B𝗉𝗋2(y)). | (2.6.1) |
Theorem 2.6.2.
For any x and y, the function (2.6.1) is an equivalence.
Read logically, this says that two pairs are equal if they are equal
componentwise. Read category-theoretically, this says that the
morphisms in a product groupoid
are pairs of morphisms. Read
homotopy-theoretically, this says that the paths in a product
space are pairs of paths.
Proof.
We need a function in the other direction:
(𝗉𝗋1(x)=A𝗉𝗋1(y))×(𝗉𝗋2(x)=B𝗉𝗋2(y))→(x=A×By). | (2.6.3) |
By the induction rule for cartesian products, we may assume that x and y are both pairs, i.e. x≡(a,b) and y≡(a′,b′) for some a,a′:A and b,b′:B.
In this case, what we want is a function
(a=Aa′)×(b=Bb′)→((a,b)=A×B(a′,b′)). |
Now by induction for the cartesian product in its domain, we may assume given p:a=a′ and q:b=b′.
And by two path inductions, we may assume that a≡a′ and b≡b′ and both p and q are reflexivity.
But in this case, we have (a,b)≡(a′,b′) and so we can take the output to also be reflexivity.
It remains to prove that (2.6.3) is quasi-inverse to (2.6.1).
This is a simple sequence of inductions, but they have to be done in the right order.
In one direction, let us start with r:x=A×By.
We first do a path induction on r in order to assume that x≡y and r is reflexivity.
In this case, since 𝖺𝗉𝗉𝗋1 and 𝖺𝗉𝗉𝗋2 are defined by path induction, (2.6.1) takes r≡𝗋𝖾𝖿𝗅x to the pair (𝗋𝖾𝖿𝗅𝗉𝗋1x,𝗋𝖾𝖿𝗅𝗉𝗋2x).
Now by induction on x, we may assume x≡(a,b), so that this is (𝗋𝖾𝖿𝗅a,𝗋𝖾𝖿𝗅b).
Thus, (2.6.3) takes it by definition to 𝗋𝖾𝖿𝗅(a,b), which (under our current assumptions) is r.
In the other direction, if we start with s:(𝗉𝗋1(x)=A𝗉𝗋1(y))×(𝗉𝗋2(x)=B𝗉𝗋2(y)), then we first do induction on x and y to assume that they are pairs (a,b) and (a′,b′), and then induction on s:(a=Aa′)×(b=Bb′) to reduce it to a pair (p,q) where p:a=a′ and q:b=b′. Now by induction on p and q, we may assume they are reflexivities 𝗋𝖾𝖿𝗅a and 𝗋𝖾𝖿𝗅b, in which case (2.6.3) yields 𝗋𝖾𝖿𝗅(a,b) and then (2.6.1) returns us to (𝗋𝖾𝖿𝗅a,𝗋𝖾𝖿𝗅b)≡(p,q)≡s. ∎
In particular, we have shown that (2.6.1) has an inverse (2.6.3), which we may denote by
𝗉𝖺𝗂𝗋=:(𝗉𝗋1(x)=𝗉𝗋1(y))×(𝗉𝗋2(x)=𝗉𝗋2(y))→(x=y). |
Note that a special case of this yields the propositional uniqueness principle for products: z=(𝗉𝗋1(z),𝗉𝗋2(z)).
It can be helpful to view 𝗉𝖺𝗂𝗋= as a constructor or introduction rule for x=y, analogous to the “pairing” constructor of A×B itself, which introduces the pair (a,b) given a:A and b:B. From this perspective, the two components of (2.6.1):
𝖺𝗉𝗉𝗋1 | :(x=y)→(𝗉𝗋1(x)=𝗉𝗋1(y)) | ||
𝖺𝗉𝗉𝗋2 | :(x=y)→(𝗉𝗋2(x)=𝗉𝗋2(y)) |
are elimination rules. Similarly, the two homotopies which witness (2.6.3) as quasi-inverse to (2.6.1) consist, respectively, of propositional computation rules:
𝖺𝗉𝗉𝗋1(𝗉𝖺𝗂𝗋=(p,q)) | =p | ||
and a propositional uniqueness principle:
We can also characterize the reflexivity, inverses, and composition of paths in componentwise:
The same is true for the rest of the higher groupoid structure considered in §2.1 (http://planetmath.org/21typesarehighergroupoids).
All of these equations can be derived by using path induction on the given paths and then returning reflexivity.
We now consider transport in a pointwise product of type families. Given type families , we abusively write for the type family defined by . Now given and , we can transport along to obtain an element of .
Theorem 2.6.4.
In the above situation, we have
Proof.
By path induction, we may assume is reflexivity, in which case we have
Thus, it remains to show . But this is the propositional uniqueness principle for product types, which, as we remarked above, follows from Theorem 2.6.2 (http://planetmath.org/26cartesianproducttypes#Thmprethm1). ∎
Finally, we consider the functoriality of under cartesian products. Suppose given types and functions and ; then we can define a function by .
Theorem 2.6.5.
In the above situation, given and and , we have
Proof.
Note first that the above equation is well-typed. On the one hand, since we have . On the other hand, since and , we also have .
Now, by induction, we may assume and , in which case we have and . Thus, by path induction, we may assume and are reflexivity, in which case the desired equation holds judgmentally. ∎
Title | 2.6 Cartesian product types |
---|---|
\metatable |