ñòð. 12 
and virtually every language that implements a complex number type treats them
separately.
Suppose, further, there is a sketch Trig whose operations implement the
trigonometric functions by means of power series or other approximations which
have the same algorithm for real and for complex numbers. This sketch will use
four formal arithmetic operations on an abstract data type d which admits the
arithmetic operations and absolute value, but is not otherwise speciÂ¯ed. These
Â¯ve operations are determined by a sketch Arith which has an arrow to all of
Real; Complex; Trig.
If we now form the pushout
Arith  Real
? ?
 RealTrig
Trig
we get a sketch for the real type with trigonometric functions and if we replace
Real by Complex, we get a sketch for complex trigonometry.
3.3 The model category functor 33
3.2.8 Exercise
1. If is the pushout of Diagram (ES 3.1), describe precisely the nodes in
which must become a singleton in a model in Set.
3.3 The model category functor
Sketch is a category whose objects are sketches. If is a Â¯xed category, then each
sketch produces a category of models of the sketch in (see 7.4.4). The category
of models in of a sketch we will call Mod ( ). (Mod ( ) might very
well be the empty category.)
Most of the examples in this book have had = Set, which regrettably obscures
one of the major advantages sketches have over standard logical theories: the fact
that their models can be in any suitable category.
Â¡!
3.3.1 For each sketch homomorphism F : we will now describe a func
tor Mod (F ) : Mod ( ) Â¡ Mod ( ) (note the reversal). Mod (F ) is also
!
denoted F , and is called the functor induced by F . F Â¤ is deÂ¯ned by MF{1
Â¤
then F Â¤ (M ) is a model of .
and MF{2 below. If M is a model of
MF{1 The object function of F Â¤ is deÂ¯ned by F Â¤ (M ) = M Â± F . Thus if g is a
and M is a model of , then F Â¤ (M )(g) =
node or arrow of the graph of
M (F (g)).
MF{2 If Â® : M Â¡ N is a homomorphism of models of , deÂ¯ne F Â¤ (Â®) to be the
!
natural transformation Â®F as deÂ¯ned in Section 4.4. Thus at a node g of
the graph of ,
F Â¤ (Â®)(g) = (Â®F )g = Â®F (g) : M (F (g)) Â¡ N (F (g))
!
Â¡
!
3.3.2 Proposition For each model M of and homomorphism F : ,
F Â¤ (M ) is a model of .
Proof. Since M is among other things a graph homomorphism and so is F , and
the composite of graph homomorphisms is a graph homomorphism, MF{1 makes
F Â¤ (M ), which is M Â± F , respect the source and target of arrows of the graph, so
that it is a graph homomorphism to as a model should be.
If D is a diagram of , then because F is a homomorphism of sketches, F Â± D
is a diagram of . Since M is a model of , F Â¤ (M ) Â± D = M Â± F Â± D commutes.
Suppose v Â¡ D is a cone of . Then F (v) Â¡ F Â± D is a cone of which must
! !
Â¤
be taken to a limit cone by M . Since F (M )(v Â¡ D) = M (F (v)) Â¡ M Â± F Â± D,
! !
Â¤
F (M ) takes v Â¡ D to a limit cone. A similar argument deals with cocones.
!
34 The category of sketches
3.3.3 Proposition For each homomorphism Â® : M Â¡ N of models of
! and
Â¡
!
homomorphism F : of sketches, Mod (F )(Â®) as deÂ¯ned by MF{2 is a
homomorphism of models of .
Proof. By MF{2, F Â¤ (Â®) is the natural transformation Â®F deÂ¯ned in 4.4.1. Since
its domain and codomain are models, it is a homomorphism of models by deÂ¯ni
tion.
For any sketch , let Mod ( ) be the category of models of in (we
Â¡!
called this Mod( ; ) in Section ES 2.1. If F : is a homomorphism of
sketches, we have deÂ¯ned a functor Mod (F ) : Mod ( ) Â¡ Mod ( ).
!
Mod : Sketchop Â¡ Cat is a functor.
!
3.3.4 Proposition
The proof involves some simple checking and is left as an exercise.
3.3.5 Example In Section 3.1, we gave several examples of underlying set
functors U : Â¡ Set. In general, such functors are induced by a homomorphism
!
of sketches from the trivial sketch deÂ¯ned in ES 3.1.2 to a particular node of the
sketch . For example, the underlying set functor U : Sem Â¡ Set (see 3.1.8) is
!
induced by the unique sketch homomorphism from to the sketch for semigroups
that takes the only node of to s. This follows directly from MF{1 and MF{
2 and the fact that a model of in Set is essentially a set (Exercise ES 1 of
Section ES 3.2). Similarly the underlying arrow and node functors A : Grf Â¡ Set
!
and N : Grf Â¡ Set (see 3.1.9) are induced by the sketch homomorphisms from
!
to the sketch for graphs that take e to a and to n respectively.
3.3.6 Example The sketch homomorphism of Example ES 3.1.3 induces the
functor from the category of graphs to the arrow category of Set that takes a
graph to its source function. The homomorphism of Example ES 3.1.4 that in
cludes the sketch for graphs into the sketch for simple graphs induces the under
lying functor that forgets that a graph is simple. Similarly the functor of ES 3.1.5
that includes the sketch for semigroups into the sketch for Â¯elds induces the
underlying functor from Â¯elds to semigroups that takes a Â¯eld to its additive
semigroup.
3.3.7 Example Sketches usually include only the minimal information that
is needed to describe a theory. There is a cost to this in that they may omit
crucial information needed to deÂ¯ne morphisms. Here is an uncontrived example
that illustrates the point. We begin by observing that in any category, if 1 is a
terminal object (vertex of a cone with empty base) and S Â£ S is a product of two
3.3 The model category functor 35
copies of S, then the square

SÂ£S S
? ?
1
S
is a pullback. Now consider the functor from the category Mon of monoids to the
category Cat of small categories that takes a monoid to the corresponding cate
gory with one object (see 2.3.12). One expects that this functor would be induced
by a sketch homomorphism from the sketch for categories given by ES 2.1.5 to
the sketch for monoids given by 7.2.1 as augmented by 7.3.2. Since the underlying
set of the monoid is the set of arrows of the corresponding category, the sketch
homomorphism should take the node c1 of ES 2.1.5 to the node s of 7.2.1, and
the arrow c of ES 2.1.5 (which we will call comp here to avoid confusion) should
go to the multiplication c of 7.2.1. Since comp has domain c2 and c has domain
s Â£ s, c2 should go to s Â£ s. Unfortunately, s Â£ s is the vertex of a discrete cone
and c2 is the vertex of a pullback cone. And besides, where should c0 go?
The key is to map c0 to the object 1 of the sketch for monoids, so that s and
t are forced to go to the unique map from s to 1. This would force the pullback
cone
c2
Â¡ @
ñòð. 12 