0% found this document useful (0 votes)
56 views16 pages

Cartesian Spaces and Smooth Functions

1. The document defines smooth functions and Cartesian spaces. Smooth functions are differentiable functions whose derivatives also exist and are continuous. 2. Cartesian spaces are n-tuples of real numbers, written as Rn. Smooth functions between Cartesian spaces must have continuous partial derivatives. 3. The document establishes that Cartesian spaces form a category, where the objects are the spaces Rn and the morphisms are smooth functions between them. Various properties of smooth functions on Cartesian spaces are discussed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views16 pages

Cartesian Spaces and Smooth Functions

1. The document defines smooth functions and Cartesian spaces. Smooth functions are differentiable functions whose derivatives also exist and are continuous. 2. Cartesian spaces are n-tuples of real numbers, written as Rn. Smooth functions between Cartesian spaces must have continuous partial derivatives. 3. The document establishes that Cartesian spaces form a category, where the objects are the spaces Rn and the morphisms are smooth functions between them. Various properties of smooth functions on Cartesian spaces are discussed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Cartesian spaces and smooth functions

Definition 1.1. A function of sets 𝑓: ℝ ⟶ ℝ is called a smooth function if, coinductively:

𝑑𝑓
1. the derivative 𝑑𝑥 𝑓: ℝ ⟶ ℝ exists;
2. and is itself a smooth function.

We write C(R) Set for the set of aaall smooth functions on R\mathbb{R}.

Remark 1.2. The superscript “∞{}^\infty” in “C∞(R)C^\infty(\mathbb{R})” refers to the


order of the derivatives that exist for smooth functions. More generally for k∈Nk \in
\mathbb{N} one writes Ck(R)C^k(\mathbb{R}) for the set of kk-fold differentiable
functions on R\mathbb{R}. These will however not play much of a role for our discussion
here.

Definition 1.3. For n∈Nn \in \mathbb{N}, the Cartesian space Rn\mathbb{R}^n is the set

Rn={(x1,⋯,xn)|xi∈R}\mathbb{R}^n = \{ (x^1 , \cdots, x^{n}) | x^i \in \mathbb{R} \}

of nn-tuples of real numbers. For 1≤k≤n1 \leq k \leq n write

ik:R→Rni^k : R⟶R^n

for the function such that ik(x)=(0,⋯,0,x,0,⋯,0)i^k(x) = (0, \cdots, 0,x,0,\cdots,0) is


the tuple whose kkth entry is xx and all whose other entries are 0∈R0 \in \mathbb{R};
and write

𝕡k:Rn→R\mathbb{p}^k : \mathbb{R}^n \to \mathbb{R}

for the function such that pk(x1,⋯,xn)=xkp^k(x^1, \cdots, x^n) = x^k.

A homomorphism of Cartesian spaces is a smooth function

f:Rn1→Rn2,f : \mathbb{R}^{n_1} \to \mathbb{R}^{n_2}\,,

hence a function f:Rn1→Rn2f : \mathbb{R}^{n_1} \to \mathbb{R}^{n_2} such that


all partial derivatives exist and are continuous (…).

Example 1.4. Regarding Rn\mathbb{R}^n as an R\mathbb{R}-vector space, every linear


function Rn1→Rn2\mathbb{R}^{n_1} \to \mathbb{R}^{n_2} is in particular a smooth
function.

Remark 1.5. But a homomorphism of Cartesian spaces in def. 1.3 is not required to be
a linear map. We do not regard the Cartesian spaces here as vector spaces.
Definition 1.6. A smooth function f:Rn1→Rn2f : \mathbb{R}^{n_1} \to
\mathbb{R}^{n_2} is called a diffeomorphism if there exists another smooth
function Rn2→Rn1\mathbb{R}^{n_2} \to \mathbb{R}^{n_1} such that the underlying
functions of sets are inverse to each other

f∘g=idf \circ g = id

and

g∘f=id.g \circ f = id\,.

Proposition 1.7. There exists a diffeomorphism Rn1→Rn2\mathbb{R}^{n_1} \to


\mathbb{R}^{n_2} precisely if n1=n2n_1 = n_2.

Definition 1.8. We will also say equivalently that

1. a Cartesian space Rn\mathbb{R}^n is an abstract coordinate system;


2. a smooth function Rn1→Rn2\mathbb{R}^{n_1} \to \mathbb{R}^{n_2} is
an abstract coordinate transformation;
3. the function pk:Rn→Rp^k : \mathbb{R}^{n} \to \mathbb{R} is
the kkth coordinate of the coordinate system Rn\mathbb{R}^n. We will also
write this function as xk:Rn→Rx^k : \mathbb{R}^{n} \to \mathbb{R}.
4. for f:Rn1→Rn2f : \mathbb{R}^{n_1} \to \mathbb{R}^{n_2} a smooth function,
and 1≤k≤n21 \leq k \leq n_2 we write
1. fk≔pk∘ff^k \coloneqq p^k\circ f
2. (f1,⋯,fn)≔f(f^1, \cdots, f^n) \coloneqq f.

Remark 1.9. It follows with this notation that

idRn=(x1,⋯,xn):Rn→Rn.id_{\mathbb{R}^n} = (x^1, \cdots, x^n) : \mathbb{R}^n \to


\mathbb{R}^n\,.

Hence an abstract coordinate transformation

f:Rn1→Rn2f : \mathbb{R}^{n_1} \to \mathbb{R}^{n_2}

may equivalently be written as the tuple

(f1(x1,⋯,xn1),⋯,fn2(x1,⋯,xn1)).\left(f^1 \left( x^1, \cdots, x^{n_1}


\right),\cdots,f^{n_2}\left( x^1, \cdots, x^{n_1} \right)\right)\,.

Propositions 1.10. Abstract coordinate systems according to prop. 1.8 form a category –
to be denoted CartSp – whose
 objects are the abstract coordinate systems Rn\mathbb{R}^{n} (the class of
objects is the set N\mathbb{N} of natural numbers nn);
 morphisms f:Rn1→Rn2f : \mathbb{R}^{n_1} \to \mathbb{R}^{n_2} are the
abstract coordinate transformations = smooth functions.

Composition of morphisms is given by composition of functions.

We have that

1. The identity morphisms are precisely the identity functions.


2. The isomorphisms are precisely the diffeomorphisms.

Definition 1.11. Write CartSpop{}^{op} for the opposite category of CartSp.

This is the category with the same objects as CartSpCartSp, but where a
morphism Rn1→Rn2\mathbb{R}^{n_1} \to \mathbb{R}^{n_2} in CartSpopCartSp^{op} is
given by a morphism Rn1←Rn2\mathbb{R}^{n_1} \leftarrow
\mathbb{R}^{n_2} in CartSpCartSp.

We will be discussing below the idea of exploring smooth spaces by laying out abstract
coordinate systems in them in all possible ways. The reader should begin to think of the
sets that appear in the following definition as the set of ways of laying out a given abstract
coordinate systems in a given space. This is discussed in more detail below in Smooth
spaces.

Definition 1.12. A functor X:CartSpop→SetX : CartSp^{op} \to Set (a “presheaf”) is

1. for each abstract coordinate system UU a set X(U)X(U)


2. for each coordinate transformation f:Rn1→Rn2f : \mathbb{R}^{n_1} \to
\mathbb{R}^{n_2} a function X(f):X(Rn1)→X(Rn2)X(f) : X(\mathbb{R}^{n_1})
\to X(\mathbb{R}^{n_2})

such that

1. identity is respected X(idRn)=idX(Rn)X(id_{\mathbb{R}^n}) =


id_{X(\mathbb{R}^n)};
2. composition is respected X(f2)∘X(f1)=X(f2∘f1)X(f_2)\circ X(f_1) = X(f_2 \circ
f_1)

The fundamental theorems about smooth functions

The special properties smooth functions that make them play an important role different
from other classes of functions are the following.

1. existence of bump functions and partitions of unity


2. the Hadamard lemma and Borel's theorem
Or maybe better put: what makes smooth functions special is that the first of these
properties holds, while the second is still retained.

(…)

{}

This ends the “Model layer”-part of the discussion of coordinate systems. In


the Semantics layer below we continue with a more sophisticated perspective on this
topic. The reader wishing to stick to more elementary discussion for the moment should
skip ahead to the next “Model layer”-discussion of Smooth spaces below.

Semantic Layer
In this Sem Layer we discuss the concrete general aspects of abstract coordinate
systems, def. 1.8: the fact that they naturally form:

1. an algebraic theory,
2. a site.

The algebraic theory of smooth algebras

Propositions 1.13.

 The category CartSp has all finite products.


 Every object is a finite product of the object R\mathbb{R} (the real line itself).
 The terminal object is R0\mathbb{R}^0, the point.

Hence CartSp is (the syntactic category) of an algebraic theory (a Lawvere theory).

This is called the theory of smooth algebras.

Definition 1.14. A product-preserving functor

A:CartSp→SetA : CartSp \to Set

is a smooth algebra. A homomorphism of smooth algebras is a natural


transformation between the corresponding functors.

The basic example is:

Example 1.15. For n∈Nn \in \mathbb{N}, the smooth


algebra C∞(Rn)C^\infty(\mathbb{R}^n) is the functor CartSp→SetCartSp \to Set which
is functor corepresented by Rn∈\mathbb{R}^n \in CartSp. This means that
to Rk∈CartSp\mathbb{R}^k \in CartSp it assigns the set
HomCartSp(Rn,Rk)=C∞(Rn,Rk)Hom_{CartSp}(\mathbb{R}^n , \mathbb{R}^k)=
C^\infty(\mathbb{R}^n, \mathbb{R}^k)

of smooth functions from Rn\mathbb{R}^n to Rk\mathbb{R}^k, and to a smooth


function f:Rk1→Rk2f \colon \mathbb{R}^{k_1} \to \mathbb{R}^{k_2} it assigns the
function

f∘(−):C∞(Rn,Rk1)→C∞(Rn,Rk2)f\circ (-)\colonC^\infty(\mathbb{R}^n,
\mathbb{R}^{k_1})\toC^\infty(\mathbb{R}^n, \mathbb{R}^{k_2})

given by postcomposition with ff.

Remark 1.16. Example 1.15 shows how we are to think of a functor A:CartSp→SetA
\colon CartSp \to Set as encoding an algebra: such a functor assigns to Rn\mathbb{R}^n a
set to be interpreted as a set of “smooth functions on something with values
in Rn\mathbb{R}^n”, only that the “something” here is not pre-defined, but is instead
indirectly characterized by this assignment.

Due to this we will often denote smooth algebras as “C∞(X)C^\infty(X)”, even if “XX” is
not a pre-defined object, and write their value
on Rn\mathbb{R}^n as C∞(X,Rn)C^\infty(X,\mathbb{R}^n).

This is illustrated by the next example.

Example 1.17. The smooth algebra of dual numbers C∞(D)C^\infty(\mathbf{D}) is the


smooth algebra which assigns to Rn\mathbb{R}^nthe Cartesian product

C∞(D,Rn)≔Rn×RnC^\infty(D,\mathbb{R}^n)\coloneqq\mathbb{R}^n \times
\mathbb{R}^n

of two copies of Rn\mathbb{R}^n, which we will write as

{(ϵ↦(x⇀+ϵv⇀))|x⇀,v⇀∈Rn}.\left\{(\epsilon \mapsto (\vec x + \epsilon \vec v))|\vec


x , \vec v \in \mathbb{R}^n\right\}\,.

Moreover, a smooth function f:Rn1→Rn2f \colon \mathbb{R}^{n_1} \to


\mathbb{R}^{n_2} is sent to the function

C∞(D,f):C∞(D,Rn1)→C∞(D,Rn2)C^\infty(D, f)\colonC^\infty(D, \mathbb{R}^{n_1})\to


C^\infty(D, \mathbb{R}^{n_2})

given by

(ϵ↦(x⇀+ϵv⇀))(ϵ↦f(x⇀)+(df)(v⇀))↦(ϵ↦(f(x⇀)+∑n2j=1(∑n1i=1∂fj∂xivi)e⇀j)).\begin{a
ligned}\left(\epsilon \mapsto \left(\vec x + \epsilon \vec v\right)\right)\\\left(\epsilon
\mapsto f(\vec x) + (\mathbf{d}f)(\vec v)\right)&\mapsto \left(\epsilon\mapsto
\left(f\left(\vec x\right) + \sum_{j = 1}^{n_2}\left(\sum_{i = 1}^{n_1}\frac{\partial
f^j}{\partial x^i} v^i\right)\vec e_j \right)\right)\end{aligned}\,.

Remark 1.18. As the notation suggests, we may think of C∞(D)C^\infty(D) as the


functions on a first order infinitesimal neighbourhood of the origin in Rn\mathbb{R}^n.

The coverage of differentially good open covers

We discuss a standard structure of a site on the category CartSp. Following Johnstone --


Sketches of an Elephant, it will be useful and convenient to regard a site as a (small)
category equipped with a coverage. This generates a genuine Grothendieck topology, but
need not itself already be one.

Definition 1.19. For n∈Nn \in \mathbb{N} the standard open n-ball is the subset

Dn={(xi)ni=1∈Rn|∑i=1n(xi)2<1}↪Rn.D^n = \{ (x_i)_{i =1}^n \in \mathbb{R}^n | \sum_{i =


1}^n (x_i)^2 \lt 1 \} \hookrightarrow \mathbb{R}^n\,.

Proposition 1.20. There is a diffeomorphism

Rn→≃Dn.\mathbb{R}^n \stackrel{\simeq}{\to} D^n\,.

Definition 1.21. A differentially good open cover of a Cartesian space Rn\mathbb{R}^n is a


set {Ui↪Rn}\{U_i \hookrightarrow \mathbb{R}^n\} of open subset inclusions of
Cartesian spaces such that these cover Rn\mathbb{R}^n and such for each non-empty
finite intersection there exists a diffeomorphism

Rn→≃Ui1∩⋯∩Uik\mathbb{R}^n \stackrel{\simeq}{\to} U_{i_1} \cap \cdots \cap U_{i_k}

that identifies the kk-fold intersection with a Cartesian space itself.

Remark 1.22. Differentiably good covers are useful for computations. Their full impact is
however on the homotopy theory of simplicial presheaves over CartSp. This we discuss
further below, around prop.
\ref{DifferentiablyGoodCoverGivesSPlitHyperCoverOverCartSp}.

Proposition 1.23. Every open cover refines to a differentially good open cover, def. 1.21.

A proof is at good open cover.

Remark 1.24. Despite its appearance, this is not quite a classical statement. The classical
statement is only that every open cover is refined by a topologically good open cover. See
the comments here in the references-section at open ball for the situation concerning this
statement in the literature.

Remark 1.25. The good open covers do not yet form a Grothendieck topology on CartSp.
One of the axioms of a Grothendieck topology is that for every covering family also
its pullback along any morphism in the category is a covering family. But while the
pullback of every open cover is again an open cover, and hence open covers form a
Grothendieck topology on CartSp, not every pullback of a good open cover is again good.

Example 1.26. Let {R2↪ϕiR2}i∈{1,2}\{\mathbb{R}^2\stackrel{\phi_{i}}{\hookrightarrow}\m


athbb{R}^2\}_{i \in \{1,2\}} be the open cover of the plane by an open left half space

R2≃{(x1,x2)∈R2|x1<1}↪ϕ1R2\mathbb{R}^2 \simeq \{ (x_1,x_2) \in \mathbb{R}^2 | x_1


\lt 1 \} \stackrel{\phi_1}{\hookrightarrow} \mathbb{R}^2

and a right open half space

R2≃{(x1,x2)∈R2|x1>−1}↪ϕ2R2.\mathbb{R}^2 \simeq \{ (x_1,x_2) \in \mathbb{R}^2 |


x_1 \gt -1 \} \stackrel{\phi_2}{\hookrightarrow} \mathbb{R}^2\,.

The intersection of the two is the open strip

R2≃{(x1,x2)∈R2|−1<x1<1}↪R2.\mathbb{R}^2 \simeq \{ (x_1, x_2) \in \mathbb{R}^2 | -


1 \lt x_1 \lt 1 \}\hookrightarrow \mathbb{R}^2\,.

So this is a good open cover of R2\mathbb{R}^2.

But consider then the smooth function

2(cos(2π(−)),sin(2π(−))):R1→R22(\cos(2 \pi (-)), \sin(2 \pi (-))) \colon \mathbb{R}^1 \to


\mathbb{R}^2

which sends the line to a curve in the plane that periodically goes around the circle of
radius 2 in the plane.

Then the pullback of the above good open cover


on R2\mathbb{R}^2 to R1\mathbb{R}^1 along this function is an open
cover of R\mathbb{R} by two open subsets, each being a disjoint union of countably
many open intervals in R\mathbb{R}. Each of these open intervals is an open 1-ball hence
diffeomorphic to R1\mathbb{R}^1, but their disjoint union is not contractible (it does not
contract to the point, but to many points!).

So the pullback of the good open cover that we started with is an open cover which is
not good anymore. But it has an evident refinement by a good open cover.

This is a special case of what the following statement says in generality.

Proposition 1.27. The differentially good open covers, def. 1.21, constitute
a coverage on CartSp.

Hence CartSp equipped with that coverage is a site.


Proof. By definition of coverage we need to check that for {Ui↪Rn}i∈I\{U_i
\hookrightarrow \mathbb{R}^n\}_{i \in I} any good open cover and f:Rk→Rnf \colon
\mathbb{R}^k \to \mathbb{R}^n any smooth function, we can find a good open
cover {Kj→Rk}j∈J\{K_j \to \mathbb{R}^k\}_{j \in J} and a function J→IJ \to I such that for
each j∈Jj \in J there is a smooth function ϕ:Kj→Uρ(j)\phi \colon K_j \to U_{\rho(j)} that
makes this diagram commute:

Kj↓Rk→ϕ→fUi(j)↓Rn.\array{K_j &\stackrel{\phi}{\to}& U_{i(j)}\\\downarrow &&


\downarrow\\\mathbb{R}^k &\stackrel{f}{\to}& \mathbb{R}^n}\,.

To obtain this, let {f∗Ui→Rk}\{f^* U_i \to \mathbb{R}^k\} be the pullback of the original
covering family, in that

f∗Ui≔{x∈Rk|f(x)∈Ui}↪Rk.f^* U_i \coloneqq \{ x \in \mathbb{R}^k | f(x) \in U_i


\}\hookrightarrow \mathbb{R}^k\,.

This is evidently an open cover, albeit not necessarily a good open cover. But by
prop. 1.23 there does exist a good open cover {K˜j˜↪Rk}j˜∈J˜\{\tilde K_{\tilde j}
\hookrightarrow \mathbb{R}^k\}_{\tilde j \in \tilde J} refining it, which in turn means that
for all j˜\tilde j there is

K˜j˜↓Rk→→=Kj(j˜)↓Rk.\array{\tilde K_{\tilde j} &\to& K_{j(\tilde j)}\\\downarrow &&


\downarrow \\\mathbb{R}^k &\stackrel{=}{\to}& \mathbb{R}^k}\,.

Therefore then the pasting composite of these commuting squares

K˜j˜↓Rk→→=Kj(j˜)↓Rk→→fUi(j(j˜))↓Rn\array{\tilde K_{\tilde j} &\to& K_{j(\tilde j)}


&\to& U_{i(j(\tilde j))}\\\downarrow && \downarrow && \downarrow\\\mathbb{R}^k
&\stackrel{=}{\to}& \mathbb{R}^k&\stackrel{f}{\to}& \mathbb{R}^n}

solves the condition required in the definition of coverage. ▮

By example 1.26 this good open cover coverage is not a Grothendieck topology. But as
any coverage, it uniquely completes to one which has the same sheaves.

Proposition 1.28. The Grothendieck topology induced on CartSp by the differentially good
open cover coverage of def. 1.27 has as covering families the ordinary open covers.

Remark 1.29. This means that for every sheaf-theoretic construction to follow we can just
as well consider the Grothendieck topology of open covers on CartSpCartSp. The
sheaves of the open cover topology are the same as those of the good open cover
coverage. But the latter is (more) useful for several computational purposes in the
following. It is the good open cover coverage that makes manifest, below, that sheaves
on CartSpCartSp form a locally connected topos and in consequence then a cohesive
topos. This kind of argument becomes all the more pronounced as we pass further
below to (∞,1)-sheaves on CartSp. This will be discussed in Smooth n-groupoids –
Semantic Layer – Local Infinity-Connectedness below.

The slice category

(…)

 slice category CartSpRnCartSp_{\mathbb{R}^n}


 subterminal object, open cover

(…)

Syntactic Layer
In this Syn Layer we discuss the abstract generals of abstract coordinate systems,
def. 1.8: the internal language of a category with products, which is type
theory with product types.

Judgments about types and terms

We now introduce a different notation for objects and morphisms in a category (such as
the category CartSpof def. 1.10). This notation is designed to, eventually, make more
transparent what exactly it is that happens when we reason
deductively about objects and morphisms of a category.

But before we begin to make any actual deductions about objects and morphisms in a
category below, in this section here we express the given objects and morphisms at hand
in the first place. Such basic statements of the form “There is an object called AA” are to
be called judgments, in order not to confuse these with genuine propositions that we
eventually formalize within this metalanguage.

To express that there is an object

X∈CX \in \mathcal{C}

in a category C\mathcal{C}, we write now equivalently the string of symbols (called


a sequent)

⊢X:Type.\vdash \; X \colon Type\,.

We say that these symbols express the judgment that XX is a type. We also say
that ⊢X:Type\vdash \; X \colon Type is the syntax of which X∈CX \in \mathcal{C} is
the categorical semantics.

For instance the terminal object *∈C* \in \mathcal{C} we call the categorical
semantics of the unit type and write syntactically as
⊢Unit:Type.\vdash \; Unit \colon Type\,.

If we want to express that we do assume that a terminal object indeed exists, hence that
we want to be able to deduce the existence of a terminal object from no hypothesis, then
we write this judgment below a horizontal line

⊢Unit:Type.\frac{}{\vdash \; Unit \colon Type}\,.

We will see more interesting such horizontal-line statements below.

Next, to express an element of the object XX in C\mathcal{C}, hence a morphism

*→xX* \stackrel{x}{\to} X

in C\mathcal{C} we write equivalently the sequent

⊢x:X\vdash \; x \colon X

and call this the judgment that xx is a term of type XX.

Notice that every object X∈CX \in \mathcal{C} becomes the terminal object in the slice
category C/X\mathcal{C}_{/X}. Let A→XA \to X be any morphism in C\mathcal{C},
regarded as an object in the slice category

A∈C/X.A \in \mathcal{C}_{/X}\,.

We declare that the syntax of which this is the categorical semantics is given by
the sequent

x:X⊢A(x):Type.x \colon X \;\vdash \; A(x) \colon Type\,.

We say that this expresses the judgement that AA is an XX-dependent type; or a type in
the context of a free variable xx of type XX.

Notice that an element of A∈C/XA \in \mathcal{C}_{/X} is a generalized


element of AA in C\mathcal{C}, namely a morphism X→AX \to A which fits into
a commuting diagram

XidX↘→aX↙A\array{X &&\stackrel{a}{\to}&& A\\& {}_{\mathllap{id_X}}\searrow &&


\swarrow_{}\\&& X}

in C\mathcal{C}.

We declare that the syntax of which such

a∈A(inC/X)a \in A \;\;\;\; (in \mathcal{C}_{/X})


is this the categorical semantics is the sequent

x:X⊢a(x):A(x).x\colon X \;\vdash\; a(x) : A(x)\,.

We say that this expresses the judgment that a(x)a(x) is a term depending on the free
variable xx of type XX.

This completes the list of judgment syntax to be considered. Notice that if the
category C\mathcal{C} has products then, even though it does not explicitly appear
above, this is sufficient to express any morphism X→fYX \stackrel{f}{\to}
Y in C\mathcal{C} as the semantics of a term: we regard this morphism naturally as being
the corresponding morphism in the slice category C/X\mathcal{C}_{/X} which as
a commuting diagram in C\mathcal{C} itself is

XidX↘−→−−(f,idX)X↙p2Y×X.\array{X && \stackrel{(f,id_X)}{\to} && Y\times X\\&


{}_{\mathllap{id_X}}\searrow && \swarrow_{\mathrlap{p_2}}\\&& X}\,.

This is the categorical semantics for which the syntax is simply

x:X⊢y(x):Y,x \colon X \;\vdash\; y(x) \colon Y\,,

being the judgment which expresses that y(x)y(x) is a term in context of an XX-
dependent type YY in the special degenerate case that YY does not actually vary
with x:Xx \colon X.

Natural deduction rules for product types

With the above symbolic notation for making judgments about the presence
of objects and morphisms in a category C\mathcal{C}, we now consider a system of rule
of deduction that tells us how we may process these symbols (how to do computations)
such that the new symbols we obtain in turn express new objects and new morphisms
in C\mathcal{C} that we can build out of the given ones by universal constructions in the
sense of category theory.

This way of deducing new expressions from given ones is very basic as well as very natural
and hence goes by the technical term natural deduction. For every kind
of type (every universal construction in category theory) there is, in natural deduction,
one set of rules for how to deductively reason about it. This set of rules, in turn, always
consists of four kinds of rules, called the

1. type formation rule


2. term introduction rule
3. term elimination rule
4. computation rule.
These are going to be the syntax in type theory of which universal
constructions in category theory is the categorical semantics.

In our running example where C=\mathcal{C} = CartSp, the only universal


construction available is that of forming products. We therefore introduce now
the natural deduction rules by way of example of the special case of product types.

1. type formation rule Let

A,B∈CA , B \in \mathcal{C}

be two objects in a category with products. Then there exists the product object

A×B∈C.A \times B \in \mathcal{C}\,.

We now declare that the syntax of which this state of affairs is the categorical
semantics is the collection of symbols of the form

A:TypeB:TypeA×B:Type.\frac{A \colon Type \;\;\;\;\; B \colon Type}{ A \times B \colon


Type}\,.

Here on top of the horizontal line we have the two judgments which express
that, syntactically, AA is a typeand BB is a type, and semantically that A∈CA \in
\mathcal{C} and B∈CB \in \mathcal{C}. Below the horizontal line is, in turn,
the judgmentwhich expresses that there is, syntactically, a product type, which
semantically is the product A×B∈CA \times B \in \mathcal{C}. The horizontal line itself is
to indicate that if we are given the (symbols of) the collection of judgments on top, then
we are entitled to also obtain the judgment on the bottom.

Remark (Computation) All this may seem, on first sight, like being a lot of fuss about
something of grandiose banality. To see what is gradually being accomplished here
despite of this appearance, as we proceed in this discussion, the reader can and should
think of this as the first steps in the definition of a programming language: the notion of
judgment is a syntactic rule for strings of symbols that a computer is to read in, and
a natural deduction-step as the type formation rule above is an operation that this
computer validates as being an allowed step of transforming a memory state with a given
collection of such strings into a new memory state to which the string below the
horizontal line is added. As we add the remaining rules below, what looks like a grandiose
banality so far will remain grandiose, but no longer be a banality. The reader feeling in
need of more motivational remarks along these lines might want to take a break here and
have a look at the entry computational trinitarianism first, that provides more pointers
to the grandiose picture which we are approaching here.

Next, the second natural deduction rule for product types is the

2. term elimination rule. The fact that A×B∈CA \times B \in \mathcal{C} is equipped with
two projection morphisms
A←p1A×B→p2B\array{A \stackrel{p_1}{\leftarrow} A \times B \stackrel{p_2}{\to} B}

means that from every element tt of A×BA \times B we may deduce the existence
of elements p1(t)p_1(t) and p2(t)p_2(t) of AAand BB, respectively. We declare now that
this is the categorical semantics of which the natural deductionsyntax is:

⊢t:A×B⊢p1(t):A⊢t:A×B⊢p2(t):B.\frac{\vdash \; t \colon A \times B}{\vdash \; p_1(t)


\colon A}\;\;\;\;\;\;\;\;\;\frac{\vdash \; t \colon A \times B}{\vdash \; p_2(t) \colon B}\,.

As before, this is to say that if syntactically we are given strings of symbols


expressing judgments as on the top of these horizontal lines, then we may “naturally
deduce” also the judgment of the string of symbols on the bottom of this line.

3. term introduction rule. The first part of the universal property of


the product in category theory is that for Q∈CQ \in \mathcal{C} any
other object equipped with morphisms

Aa↙Q↘bB\array{&& Q\\& {}^{\mathllap{a}}\swarrow && \searrow^{\mathrlap{b}}\\A


&& && B}

in C\mathcal{C}, we obtain a canonical morphism

Q→A×BQ \to A \times B

in C\mathcal{C}. This is now declared to be the categorical semantics of which the natural
deduction syntax is

⊢a:A⊢b:B⊢(a,b):A×B.\frac{\vdash\; a \colon A \;\;\;\;\;\; \vdash\; b \colon B}{\vdash


(a,b) \colon A \times B}\,.

With the elements that are the semantics of the terms appearing here made explicit, this
is the syntax for a diagram

Aa↙Q↓(a,b)A×B↘bB.\array{&& Q\\& {}^{\mathllap{a}}\swarrow


&\downarrow^{\mathrlap{(a,b)}}& \searrow^{\mathrlap{b}}\\A && A \times B && B}\,.

4. computation rule. The next part of the universal property of the product in category
theory is that the resulting diagram

Aa↙←−−p1Q↓A×B↘b−→p2B\array{&& Q\\ & {}^{\mathllap{a}}\swarrow


&\downarrow& \searrow^{\mathrlap{b}}\\A &\stackrel{p_1}{\leftarrow}& A \times B &
\stackrel{p_2}{\to} & B}

is in fact a commuting diagram. Syntactically this is, clearly, the rule that the following
identifications of strings of symbols are to be enforced
p1(a,b)=ap2(a,b)=b.p_1(a,b) = a \;\;\;\;\;\; p_2(a,b) = b\,.

This concluces the description of the natural


deduction about objects, morphisms and products in a categoryusing its type
theory syntax. We summarize the dictionary between category theory and type
theorydiscussed so far below.

In the next section we promote our running example category C\mathcal{C}, which
admits only very few universal constructions (just products), to a richer category,
the sheaf topos over it. That richer category then accordingly comes with a
richer syntax of natural deduction inside it, namely with full dependent type theory. This
we discuss in the Syn Layer below.

Natural deduction rules for dependent sum types

(…) dependent sum type (…)

Dictionary: type theory / category theory

The dictionary between dependent type theory with product types and category
theory of categories with products.

type theory category theory


syntax semantics
judgment diagram
type object in category
⊢A:Type\vdash\; A
A∈CA \in \mathcal{C}
\colon Type
term element
⊢a:A\vdash\; a \colon A *→aA* \stackrel{a}{\to} A
dependent type object in slice category
x:X⊢A(x):Typex \colon X
\;\vdash\; A(x) \colon A↓X∈C/X\array{A \\ \downarrow \\ X} \in \mathcal{C}_{/X}
Type
term in context generalized elements/element in slice category
XidX↘→aX↙A\array{X &&\stackrel{a}{\to}&& A \\ &
x:X⊢a(x):A(x)x \colon X
{}_{\mathllap{id_X}}\searrow && \swarrow_{\mathrlap{}} \\
\;\vdash \; a(x)\colon A(x)
&& X}
XidX↘−→−−(idX,a)X↙p1X×A\array{X
x:X⊢a(x):Ax \colon X &&\stackrel{(id_X,a)}{\to}&& X \times A \\ &
\;\vdash \; a(x)\colon A {}_{\mathllap{id_X}}\searrow && \swarrow_{\mathrlap{p_1}}
\\ && X}

\,
type theory category theory
syntax semantics
natural deduction universal construction
substitution……………………. pullback
x_2 \, f∗A↓X1→→fA↓X2\array{ f^*
x2:X2⊢A(x2):Typex1:X1⊢f(x1):X2x1:X1⊢A(f(x1)):Type\frac{
\colon X_2\; \vdash\; A(x_2) \colon Type \;\;\;\; x_1 A &\to& A \\ \downarrow &&
\colon X_1\; \vdash \; f(x_1)\colon X_2}{ x_1 \colon \downarrow \\ X_1
X_1 \;\vdash A(f(x_1)) \colon Type} &\stackrel{f}{\to}& X_2 }

\,

type theory category theory


syntax semantics
natural deduction universal construction
product type product
⊢A:Type⊢B:Type⊢A×B:Type\frac{\vdash
type \;A \colon Type \;\;\;\;\; \vdash \;B A,B∈C⇒A×B∈CA,B \in \mathcal{C}
formation \colon Type}{\vdash A \times B \Rightarrow A \times B \in \mathcal{C}
\colon Type}
Aa↙Q↓(a,b)A×B↘bB\array{ && Q\\ &
term ⊢a:A⊢b:B⊢(a,b):A×B\frac{\vdash\; a {}^{\mathllap{a}}\swarrow
introductio \colon A\;\;\;\;\; \vdash\; b \colon &\downarrow_{\mathrlap{(a,b)}}&
n B}{ \vdash \; (a,b) \colon A \times B} \searrow^{\mathrlap{b}}\\ A &&A
\times B&& B }
⊢t:A×B⊢p1(t):A⊢t:A×B⊢p2(t):B\frac{\vdas
A←p1Q↓tA×B→p2B\array{ && Q\\
h\; t \colon A \times B}{\vdash\;
term &&\downarrow^{t} && \\ A
p_1(t) \colon A}
elimination &\stackrel{p_1}{\leftarrow}& A \times
\;\;\;\;\;\frac{\vdash\; t \colon A
B &\stackrel{p_2}{\to}& B}
\times B}{\vdash\; p_2(t) \colon B}
Aa↙←−−p1Q↓(a,b)A×B↘b−→p2B\arr
ay{ && Q \\ &
{}^{\mathllap{a}}\swarrow
computatio p1(a,b)=ap2(a,b)=bp_1(a,b) =
&\downarrow_{(a,b)}&
n rule a\;\;\; p_2(a,b) = b
\searrow^{\mathrlap{b}} \\ A
&\stackrel{p_1}{\leftarrow}& A \times
B& \stackrel{p_2}{\to} & B}

\,

type theory category theory


syntax semantics
natural deduction universal construction
dependent sum type dependent sum
type theory category theory
⎛⎝⎜A↓p1X∈C⎞⎠⎟⇒(A∈C)\l
⊢X:Typex:X⊢A(x):Type⊢(∑x:XA(x)):Type\frac{\vda
eft( \array{ A \\
sh\: X \colon Type \;\;\;\;\; x \colon X
type \downarrow^{\mathrlap{p_1}} \\
\;\vdash\; A(x)\colon Type}{\vdash \;
formation X} \; \in \mathcal{C}\right)
\left(\sum_{x \colon X}
\Rightarrow \left( A \in
A\left(x\right)\right) \colon Type}
\mathcal{C}\right)
x:X⊢a:A(x)⊢(x,a):∑x':XA(x')\frac{x \colon X Q−→−ax↘AX\array{ Q
term
\;\vdash\; a \colon A(x)}{\vdash (x,a) &\stackrel{a}{\to}& A \\ &
introductio
\colon \sum_{x' \colon X} A\left(x'\right) {}_{\mathllap{x}}\searrow & \\ &&
n
} X}
⊢t:(∑x:XA(x))⊢p1(t):X⊢p2(t):A(p1(t))\frac{\vdash\
Q−→−(x,a)A↓p1X\array{ Q
; t \colon \left(\sum_{x \colon X}
term &\stackrel{(x,a)}{\to}& A \\ & &
A\left(x\right)\right)}{\vdash\; p_1(t)
elimination \downarrow^{\mathrlap{p_1}} \\
\colon X\;\;\;\;\; \vdash\; p_2(t) \colon
&& X }
A(p_1(t))}
Q−→−(x,a)x↘A↓p1X\array{
Q
&\stackrel{(x,a)}{\to}& A \\ &
computatio p1(x,a)=xp2(x,a)=ap_1(x,a) = x\;\;\;\;
{}_{\mathllap{x}}\searrow &
n rule p_2(x,a) = a
\downarrow^{\mathrlap{p_1}} \\
&& X }

Below in Smooth spaces - Syntactic Layer we complete this dictionary to one


between dependent type theory with dependent products and toposes.

Revised on September 8, 2016 10:19:19 by Matt Earnshaw (87.81.151.195)

Edit | Back in time (1 revision) | See changes | History | Views: Print | TeX | Source
This site is running on Instiki 0.19.7(MML+)
Powered by Ruby on Rails 2.3.18

You might also like