Quickly add a free MyWikiBiz directory listing!
User:Jon Awbrey/Mathematical Notes
MyWikiBiz, Author Your Legacy — Monday November 19, 2018
 Mathematical Notes
 CAT. Category Theory
 DIF. Differential Geometry For Engineers
 GRAPH. Graph Theory
 HOC. Higher Order Categorical Logic
 INF. Information Flow
 MOD. Model Theory
 PAS. Probability And Statistics
 SEM. Program Semantics
 SET. Set Theory
 TOP. Topology
 MAT. Meta Links
Contents
 1 CAT. Category Theory
 1.1 CAT. Note 1
 1.2 CAT. Note 2
 1.3 CAT. Note 3
 1.4 CAT. Note 4
 1.5 CAT. Note 5
 1.6 CAT. Note 6
 1.7 CAT. Note 7
 1.8 CAT. Note 8
 1.9 CAT. Note 9
 1.10 CAT. Note 10
 1.11 CAT. Note 11
 1.12 CAT. Note 12
 1.13 CAT. Note 13
 1.14 CAT. Note 14
 1.15 CAT. Note 15
 1.16 CAT. Note 16
 1.17 CAT. Note 17
 1.18 CAT. Note 18
 1.19 CAT. Note 19
 1.20 CAT. Note 20
 1.21 CAT. Note 21
 1.22 CAT. Note 22
 1.23 CAT. Note 23
 1.24 CAT. Note 24
 2 CAT. Category Theory • Discussion
 3 CAT. Category Theory • Work Area
 4 DIF. Differential Geometry For Engineers
 5 GRAPH. Graph Theory
 6 HOC. Higher Order Categorical Logic
 6.1 HOC. Note 1
 6.2 HOC. Note 2
 6.3 HOC. Note 3
 6.4 HOC. Note 4
 6.5 HOC. Note 5
 6.6 HOC. Note 6
 6.7 HOC. Note 7
 6.8 HOC. Note 8
 6.9 HOC. Note 9
 6.10 HOC. Note 10
 6.11 HOC. Note 11
 6.12 HOC. Note 12
 6.13 HOC. Note 13
 6.14 HOC. Note 14
 6.15 HOC. Note 15
 6.16 HOC. Note 16
 6.17 HOC. Note 17
 6.18 HOC. Note 18
 6.19 HOC. Note 19
 6.20 HOC. Note 20
 6.21 HOC. Note 21
 6.22 HOC. Note 22
 6.23 HOC. Note 23
 6.24 HOC. Note 24
 6.25 HOC. Note 25
 6.26 HOC. Note 26
 6.27 HOC. Note 27
 6.28 HOC. Note 28
 6.29 HOC. Note 29
 6.30 HOC. Note 30
 6.31 HOC. Note 31
 7 HOC. Higher Order Categorical Logic • Discussion
 7.1 HOC. Discussion Note 1
 7.2 HOC. Discussion Note 2
 7.3 HOC. Discussion Note 3
 7.4 HOC. Discussion Note 4
 7.5 HOC. Discussion Note 5
 7.6 HOC. Discussion Note 6
 7.7 HOC. Discussion Note 7
 7.8 HOC. Discussion Note 8
 7.9 HOC. Discussion Note 9
 7.10 HOC. Discussion Note 10
 7.11 HOC. Discussion Note 11
 7.12 HOC. Discussion Note 12
 8 HOC. Higher Order Categorical Logic • Work Area
 9 HOC. Higher Order Categorical Logic • Document History
 10 HOC. Higher Order Categorical Logic • Discussion History
 11 INF. Information Flow
 12 MOD. Model Theory
 12.1 MOD. Note 1
 12.2 MOD. Note 2
 12.3 MOD. Note 3
 12.4 MOD. Note 4
 12.5 MOD. Note 5
 12.6 MOD. Note 6
 12.7 MOD. Note 7
 12.8 MOD. Note 8
 12.9 MOD. Note 9
 12.10 MOD. Note 10
 12.11 MOD. Note 11
 12.12 MOD. Note 12
 12.13 MOD. Note 13
 12.14 MOD. Note 14
 12.15 MOD. Note 15
 12.16 MOD. Note 16
 12.17 MOD. Note 17
 12.18 MOD. Note 18
 12.19 MOD. Note 19
 12.20 MOD. Note 20
 12.21 MOD. Note 21
 12.22 MOD. Note 22
 12.23 MOD. Note 23
 12.24 MOD. Note 24
 12.25 MOD. Note 25
 12.26 MOD. Note 26
 12.27 MOD. Note 27
 12.28 MOD. Note 28
 12.29 MOD. Note 29
 12.30 MOD. Note 30
 12.31 MOD. Note 31
 12.32 MOD. Note 32
 12.33 MOD. Note 33
 12.34 MOD. Note 34
 12.35 MOD. Note 35
 12.36 MOD. Note 36
 12.37 MOD. Note 37
 12.38 MOD. Note 38
 12.39 MOD. Note 39
 12.40 MOD. Note 40
 13 PAS. Probability And Statistics
 14 PAS. Probability And Statistics • Document History
 15 SEM. Program Semantics
 16 SET. Set Theory
 16.1 SET. Note 1
 16.2 SET. Note 2
 16.3 SET. Note 3
 16.4 SET. Note 4
 16.5 SET. Note 5
 16.6 SET. Note 6
 16.7 SET. Note 7
 16.8 SET. Note 8
 16.9 SET. Note 9
 16.10 SET. Note 10
 16.11 SET. Note 11
 16.12 SET. Note 12
 16.13 SET. Note 13
 16.14 SET. Note 14
 16.15 SET. Note 15
 16.16 SET. Note 16
 16.17 SET. Note 17
 17 TOP. Topology
 17.1 TOP. Note 1
 17.2 TOP. Note 2
 17.3 TOP. Note 3
 17.4 TOP. Note 4
 17.5 TOP. Note 5
 17.6 TOP. Note 6
 17.7 TOP. Note 7
 17.8 TOP. Note 8
 17.9 TOP. Note 9
 17.10 TOP. Note 10
 17.11 TOP. Note 11
 17.12 TOP. Note 12
 17.13 TOP. Note 13
 17.14 TOP. Note 14
 17.15 TOP. Note 15
 17.16 TOP. Note 16
 17.17 TOP. Note 17
 17.18 TOP. Note 18
 17.19 TOP. Note 19
 17.20 TOP. Note 20
 17.21 TOP. Note 21
 17.22 TOP. Note 22
 17.23 TOP. Note 23
 17.24 TOP. Note 24
 17.25 TOP. Note 25
 17.26 TOP. Note 26
 17.27 TOP. Note 27
 17.28 TOP. Note 28
 17.29 TOP. Note 29
 17.30 TOP. Note 30
 17.31 TOP. Note 31
 18 MAT. Mathematical Notes
 19 MAT. Mathematical Notes • New Versions
 20 MAT. Mathematical Notes • Meta Links
CAT. Category Theory
CAT. Note 1
 Excerpts from 'Categories for the Working Mathematician' by Saunders Mac Lane

 Introduction

 Category theory starts with the observation that many properties of
 mathematical systems can be unified and simplified by a presentation
 with diagrams of arrows. Each arrow f : X > Y represents a function;
 that is, a set X, a set Y, and a rule x ~> f x which assigns to each
 element x in X an element f x in Y; whenever possible we write f x
 and not f(x), omitting unneccessary parentheses. A typical diagram
 of sets and functions is:

 Y
 o
 ^ \
 / \
 f / \ g
 / \
 / v
 o>o
 X h Z

 It is commutative when h is h = g o f, where g o f is the usual composite
 function g o f : X > Z, defined by x ~> g(f x). The same diagrams apply
 in other mathematical contexts; thus in the "category" of all topological
 spaces, the letters X, Y, and Z represent topological spaces while f, g,
 and h stand for continuous maps. Again, in the "category" of all groups,
 X, Y, and Z stand for groups, f, g, and h for homomorphisms.

 Mac Lane, 'Cat Work Math', p. 1.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 2
 Introduction (cont.)

 Many properties of mathematical constructions may
 be represented by universal properties of diagrams.
 Consider the cartesian product X x Y of two sets,
 consisting as usual of all ordered pairs <x, y>
 of elements x in X and y in Y. The projections
 <x, y> ~> x, <x, y> ~> y of the product on its
 "axes" X and Y are functions p : X x Y > X,
 q : X x Y > Y. Any function h : W > X x Y
 from a third set W is uniquely determined by
 its composites p o h and q o h. Conversely,
 given W and two functions f and g as in the
 diagram below, there is a unique function h
 which makes the diagram commute; namely,
 h w = <f w, g w> for each w in W.

 W
 o
 /\
 /  \
 /  \
 /  \
 f /  \ g
 /  \
 /  \
 /  \
 v v v
 o<o>o
 X p XxY q Y

 Thus, given X and Y, <p, q> is "universal" among pairs of
 functions from some set to X and Y, because any other such
 pair <f, g> factors uniquely (via h) through the pair <p, q>.
 This property describes the cartesian product X x Y uniquely
 (up to a bijection); the same diagram, read in the category
 of topological spaces or of groups, describes uniquely the
 cartesian product of spaces or the direct product of groups.

 Mac Lane, 'Cat Work Math', p. 1.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 3
 Introduction (cont.)

 W
 o
 /\
 /  \
 /  \
 /  \
 f /  \ g
 /  \
 /  \
 /  \
 v v v
 o<o>o
 X p XxY q Y

 Adjointness is another expression for these universal properties. If we write
 hom(W, X) for the set of all functions f : W > X and hom(<U, V>, <X, Y>) for
 the set of all pairs of functions f : U > X, g : V > Y, the correspondence
 h ~> <p h, q h> = <f, g> indicated in the diagram above is a bijection:

 hom(W, X x Y) ~=~ hom(<W, W>, <X, Y>).

 This bijection is "natural" in the sense (to be made more precise later)
 that it is defined in "the same way" for all sets W and for all pairs of
 sets <X, Y> (and it is likewise "natural" when interpreted for topological
 spaces or for groups). This natural bijection involves two constructions
 on sets: The construction W ~> W, W which sends each set to the diagonal
 pair !D!W = <W, W>, and the construction <X, Y> ~> X x Y which sends each
 pair of sets to its cartesian product. Given the bijection above, we say
 that the construction X x Y is a 'right adjoint' to the construction !D!,
 and that !D! is left adjoint to the product. Adjoints, as we shall see,
 occur throughout mathematics.

 Mac Lane, 'Cat Work Math', pp. 12.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 4
 Introduction (cont.)

 The construction "cartesian product" is called a "functor"
 because it applies suitably to sets 'and' to the functions
 between them; two functions k : X > X' and h : Y > Y'
 have a function k x h as their cartesian product:

 k x h : X x Y > Y x Y', <x, y> ~> <k x, h y>.

 Observe also that the onepoint set 1 = {0} serves as an identity
 under the operation "cartesian product", in view of the bijections:

 !q! !r!
 (1). 1 x X > X < X x 1

 given by !q!<0, x> = x, !r!<x, 0> = x.

 Mac Lane, 'Cat Work Math', p. 2.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
Nota Bene. I am having to change the names of some of Mac Lane's maps,
due to his use of letters like "l" and the Greek lambda !l! that do not
asciify without risk of confusion with the number 1 and the identity !1!.
CAT. Note 5
 Introduction (cont.)

 The notion of a monoid (a semigroup with identity)
 plays a central role in category theory. A monoid M
 may be described as a set M together with two functions:

 (2). !m! : M x M > M

 !h! : 1 > M

 such that the following two diagrams in !m! and !h! commute:

 (3).
 1 x !m!
 M x M x M o>o M x M
  
  
  
 !m! x 1   !m!
  
  
 v v
 M x M o>o M
 !m!

 !h! x 1 M x M 1 x !h!
 1 x M o>o>o M x 1
   
   
   
 !q!   !m!  !r!
   
   
 v v v
 M o===================o===================o M
 M

 Here 1 in 1 x !m! is the identity function M > M, and 1 in 1 x M
 is the onepoint set 1 = {0}, while !q! and !r! are the bijections
 of (1) above. To say that these diagrams commute means that the
 following composites are equal:

 !m! o (1 x !m!) = !m! o (!m! x 1)

 !m! o (!h! x 1) = !q!

 !m! o (1 x !h!) = !r!

 These diagrams may be rewritten with elements, writing the function !m! (say)
 as a product !m!(x, y) = x y for x, y in M and replacing the function !h! on
 the onepoint set 1 = {0} by its (only) value, an element !h!(0) = u in M.
 The diagrams above then become:

 <x, y, z> o>o <x, yz>
  
  
  
  
  
  
 v v
 <xy, z> o>o (xy)z = x(yz)

 <0, x> o>o <u, x>
  
  
  
  
  
  
 v v
 x o===================o u x

 <x, u> o<o <x, 0>
  
  
  
  
  
  
 v v
 x u o===================o x

 They are exactly the familiar axioms on a monoid, that the
 multiplication be associative and have an element u as
 left and right identity.

 This indicates, conversely, how algebraic identities
 may be expressed by commutative diagrams.

 Mac Lane, 'Cat Work Math', pp. 23.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 6
 Introduction (cont.)

 The same process applies to other identities; for example, one may describe
 a group as a monoid M equipped with a function !z! : M > M (of course, the
 function x ~> x^(1)) such that the following diagram commutes:

 (4).
 !d! M x M 1 x !z!
 M o>o>o M x M
  
  
  
   !m!
  
  
 v v
 1 o>o M

 <x, x>
 x o>o>o <x, x^(1)>
  
  
  
  
  
  
 v v
 0 o>o u = x x^(1)

 Here !d! : M > M x M is the diagonal function x ~> <x, x> for x in M, while
 the unnamed vertical arrow M > 1 = {0} is the evident (and unique) function
 from M to the onepoint set. As indicated [in the elementmapping diagram],
 this diagram does state that !z! assigns to each element x in M an element
 x^(1) which is a right inverse to x.

 This definition of a group by arrows !m!, !h!, and !z!
 in such commutative diagrams makes no explicit mention
 of group elements, so applies to other circumstances:

 If the letter 'M' stands for a topological space (not just a set) and the arrows
 are continuous maps (not just functions), then the conditions (3) and (4) define
 a topological group  for they specify that M is a topological space with a
 binary operation !m! of multiplication which is continuous (simultaneously
 in its arguments) and which has a continuous right inverse, all satisfying
 the usual group axioms.

 Again, if the letter 'M' stands for a differentiable manifold (of class C^oo)
 while 1 is the onepoint manifold and the arrows !m!, !h!, and !z! are smooth
 mappings of manifolds, then the diagrams (3) and (4) become the definition of
 a Lie group.

 Thus groups, topological groups, and Lie groups can
 all be described as "diagrammatic" groups in the
 respective categories of sets, of topological
 spaces, and of differentiable manifolds.

 Mac Lane, 'Cat Work Math', pp. 34.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 7
 Introduction (concl.)

 Finally, an 'action' of a monoid <M, !m!, !h!> on a set S
 is defined to be a function !n! : M x S > S such that the
 following two diagrams commute:

 1 x !n!
 M x M x S o>o M x S
  
  
  
 !m! x 1   !n!
  
  
 v v
 M x S o>o S
 !n!

 !h! x 1
 1 x S o>o M x S
 \ 
 \ 
 \ 
 \ 
 !q! \  !n!
 \ 
 \ 
 \ 
 \ 
 o
 S

 If we write !n!(x, s) = x * s to denote the
 result of the action of the monoid element x
 on the element s in S, these diagrams state
 just that:

 x * (y * s) = (x y) * s

 u * s = s

 for all x, y in M and all s in S. These are the
 usual conditions for the action of a monoid on a
 set, familiar especially in the case of a group
 acting on a set as a group of transformations.
 If we shift from the category of sets to the
 category of topological spaces, we get the
 usual continuous action of a topological
 monoid M on a topological space S. ...

 Mac Lane, 'Cat Work Math', p. 5.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 8
 Excerpts from 'Categories for the Working Mathematician' by Saunders Mac Lane

 1. Categories, Functors, and Natural Transformations

 1.1. Axioms for Categories

 First we describe categories directly by means of axioms,
 without using any set theory, and call them "metacategories".
 Actually, we begin with a simpler notion, a (meta)graph.

 A 'metagraph' consists of:

 'objects' a, b, c, ...,

 'arrows' f, g, h, ...,

 and two operations, as follows:

 'Domain', which assigns to each arrow f an object a = dom f.

 'Codomain', which assigns to each arrow f an object b = cod f.

 These operations on f are best indicated by displaying f
 as an actual arrow starting at its domain (or "source")
 and ending at its codomain (or "target").

 f
 f : a > b or a > b.

 A finite graph may be readily exhibited:

 >
 Thus o>o>o or o o
 >

 A 'metacategory' is a metagraph with two additional operations:

 'Identity',

 which assigns to each object 'a'
 an arrow id_a = 1_a : a > a.

 'Composition',

 which assigns to each pair <g, f> of arrows with
 dom g = cod f an arrow g o f, called their 'composite',
 with g o f : dom f > cod g. This operation may be
 pictured by the diagram:

 b
 o
 ^ \
 / \
 f / \ g
 / \
 / v
 a o>o c
 g o f

 which exhibits all domains and codomains involved.

 These operations in a metacategory are subject to the two following axioms:

 'Associativity'.

 For given objects and arrows in the configuration:

 f g k
 a > b > c > d

 one always has the equality:

 k o (g o f) = (k o g) o f. (1)

 This axiom asserts that the associative law holds for
 the operation of composition whenever it makes sense (i.e.,
 whenever the composites on either side of (1) are defined).
 This equation is represented pictorially by the statement
 that the following diagram is commutative:

 k o (g o f) = (k o g) o f
 a o>o d
  . ^ 
  . g o f k o g . 
  . . 
  . . 
  . . 
  . . 
 f  .  k
  . . 
  . . 
  . . 
  . . 
  . . 
 v . v 
 b o>o c
 g

 'Unit law'.

 For all arrows f : a > b and g : b > c
 composition with the identity arrow 1_b gives:

 1_b o f = f and g o 1_b = g. (2)

 This axiom asserts that the identity arrow 1_b of each object b
 acts as an identity for the operation of composition, whenever
 this makes sense. The Eqs. (2) may be represented pictorially
 by the statement that the following diagram is commutative:

 f
 a o>o b
 \ \
 \  \
 \  \
 \  \
 f \ 1_b \ g
 \  \
 \  \
 \  \
 vv v
 b o>o c
 g

 We use many such diagrams consisting of vertices (labelled by objects
 of a category) and edges (labelled by arrows of the same category).
 Such a diagram is 'commutative' when, for each pair of vertices
 c and c', any two paths formed from directed edges leading from
 c to c' yield, by composition of labels, equal arrows from
 c to c'. A considerable part of the effectiveness of
 categorical methods rests on the fact that such
 diagrams in each situation vividly represent
 the actions of the arrows at hand.

 If b is any object of a metacategory C, the corresponding identity arrow
 1_b is uniquely determined by the properties (2). For this reason, it is
 sometimes convenient to identify the identity arrow 1_b with the object b
 itself, writing b : b > b. Thus 1_b = b = id_b, as may be convenient.

 Mac Lane, 'Cat Work Math', pp. 78.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 9
 1.1. Axioms for Categories (cont.)

 A metacategory is to be any interpretation which satisfies all these axioms.
 An example is the 'metacategory of sets', which has objects all sets and
 arrows all functions, with the usual identity functions and the usual
 composition of functions. Here "function" means a function with
 specified domain and specified codomain. Thus a function
 f : X > Y consists of a set X, its domain, a set Y,
 its codomain, and a rule x ~> fx (i.e., a suitable
 set of ordered pairs <x, fx>) which assigns, to
 each element x in X, an element fx in Y. These
 values will be written as fx, f_x, or f(x), as
 may be convenient. For example, for any set S,
 the assignment s ~> s for all s in S describes
 the 'identity function' 1_S : S > S; if S is a
 subset of Y, the assignment s ~> s also describes
 the 'inclusion' or 'insertion function' S > Y;
 these functions are 'different' unless S = Y.
 Given functions f : X > Y and g : Y > Z,
 the 'composite' function g o f : X > Z is
 defined by (g o f)x = g(fx) for all x in X.
 Observe that g o f will mean first apply f,
 then g  in keeping with the practice of
 writing each function f to the left of its
 argument. Note, however, that many authors
 use the opposite convention.

 To summarize, the metacatgory of all sets has as
 objects, all sets, as arrows, all functions with the
 usual composition. The metacategory of all groups is
 described similarly: Objects are all groups G, H, K;
 arrows are all those functions f from the set G to
 the set H for which f : G > H is a homomorphism
 of groups. There are many other metacategories:
 All topological spaces with continuous functions
 as arrows; all compact Hausdorff spaces with the
 same arrows; all ringed spaces with their morphisms,
 etc. The arrows of any metacategory are often called
 its 'morphisms'.

 Mac Lane, 'Cat Work Math', pp. 89.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 10
 1.1. Axioms for Categories (concl.)

 Since the objects of a metacategory correspond exactly to
 its identity arrows, it is technically possible to dispense
 altogether with the objects and deal only with arrows. The
 data for an 'arrowsonly metacategory' C consist of arrows,
 certain ordered pairs <g, f>, called the composable pairs of
 arrows, and an operation assigning to each composable pair
 <g, f> an arrow g o f, called their composite. We say
 "g o f" is defined" for "<g, f> is a composable pair".

 With these data one 'defines' an identity of C to be an arrow u
 such that f o u = f whenever the composite f o u is defined and
 u o g = g whenever u o g is defined. The data are then required
 to satisfy the following three axioms:

 1. The composite (k o g) o f is defined if and only if
 the composite k o (g o f) is defined. When either is
 defined, they are equal (and this 'triple composite' is
 written as k o g o f).

 2. The triple composite k o g o f is defined
 whenever both composites k o g and g o f
 are defined.

 3. For each arrow g of C there exist identity arrows
 u and u' of C such that u' o g and g o u are defined.

 In view of the explicit definition given above for
 identity arrows, the last axiom is a quite powerful
 one; it implies that u' and u are unique in (3), and
 it gives for each arrow g a codomain u' and a domain u.
 These axioms are equivalent to the preceding ones. More
 explicitly, given a metacategory of objects and arrows,
 its arrows, with the given composition, satisfy the
 "arrowsonly" axioms; conversely, an arrowsonly
 metacategory satisfies the objectsandarrows
 axioms when the identity arrows, defined as
 above, are taken as the objects (Proof as
 exercise).

 Mac Lane, 'Cat Work Math', p. 9.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 11
 1.2. Categories

 A category (as distinguished from a metacategory) will
 mean any interpretation of the category axioms within
 set theory. Here are the details. A 'directed graph'
 (also called a "diagram scheme") is a set O of objects,
 a set A of arrows, and two functions:

 dom
 >
 A O (1)
 >
 cod

 In this graph, the set of composable pairs of arrows is the set:

 A x_O A = {<g, f> : g, f in A and dom g = cod f},

 called the "product over O".

 A 'category' is a graph with two additional functions:

 id o
 1. O > A, 2. A x_O A > A,
 (2)
 c ~~~~~~> id_c, <g, f> ~~~~~> g o f,

 called identity and composition,
 [the latter] also written as g f,
 such that:

 dom(id_a) = a = cod(id_a),

 dom(g o f) = dom f,

 cod(g o f) = cod g, (3)

 for all objects a in O and all composable pairs
 of arrows <g, f> in A x_O A, and such that the
 associativity and unit axioms (1.1) and (1.2)
 hold. In treating a category C, we usually
 drop the letters A and O, and write:

 c in C, f in C (4)

 for "c is an object of C" and "f is an arrow of C",
 respectively. We also write:

 hom(b, c) = {f : f in C, dom f = b, cod f = c} (5)

 for the set of arrows from b to c. Categories can
 be defined directly in terms of composition acting
 on these "homsets" (Section 8 below); we do not
 follow this custom because we put the emphasis
 not on sets (a rather special category), but
 on axioms, arrows, and diagrams of arrows.
 We will later observe that our definition
 of a category amounts to saying that a
 category is a monoid for the product
 x_O, in the general sense described
 in the introduction.

 Mac Lane, 'Cat Work Math', p. 10.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 12
NB. Mac Lane uses a symbol for the one object and one (identity) arrow
category that looks like a dot with a sling out of it and an arrow
back into it. I will use a "Greek amphora" or "emphattic at" sign
for this, like so "!@!".
 1.2. Categories (cont.)

 For the moment, we consider examples.

 $0$ is the empty category (no objects, no arrows).

 $1$ is the category !@! with one object and one (identity) arrow.

 $2$ is the category !@! > !@! with two objects a, b,
 and just one arrow a > b not the identity.

 $3$ is the category with three objects whose nonidentity arrows
 are arranged as in the triangle [in the "transitive" manner]:

 o
 ^ \
 / v
 o>o

 $$ is the category with two objects a, b and just two
 arrows a > b not the identity arrows. We call two
 such arrows 'parallel arrows'.

 In each of the cases above there is only
 one possible definition of composition.

 Mac Lane, 'Cat Work Math', pp. 1011.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 13
 1.2. Categories (cont.)

 Discrete Categories. A category is 'discrete' when every arrow
 is an identity. Every set X is the set of objects of a discrete
 category (just add one identity arrow x > x for each x in X),
 and every discrete category is so determined by its set of
 objects. Thus, discrete categories are sets.

 Monoids. A monoid is a category with one object. Each monoid is thus
 determined by the set of all its arrows, by the identity arrow, and
 by the rule for the composition of arrows. Since any two arrows
 have a composite, a monoid may then be described as a set M with
 a binary operation M x M > M which is associative and has an
 identity (= unit). Thus a monoid is exactly a semigroup with
 identity element. For any category C and any object a in C,
 the set hom(a, a) of all arrows a > a is a monoid.

 Groups. A group is a category with one object in which
 every arrow has a (twosided) inverse under composition.

 Matrices. For each commutative ring K, the set Matr_K of
 all rectangular matrices with entries in K is a category;
 the objects are all positive integers m, n, ..., and each
 m x n matrix A is regarded as an arrow A : n > m, with
 composition the usual matrix product.

 Sets. If V is any set of sets, we take Ens_V to be the category
 with objects all sets X in V, arrows 'all' functions f : X > Y,
 with the usual composition of functions. By Ens we mean any one
 of these categories.

 Mac Lane, 'Cat Work Math', p. 11.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 14
 1.2. Categories (cont.)

 Preorders. By a preorder we mean a category P in which, given objects
 p and p', there is at most one arrow p > p'. In any preorder P, define
 a binary relation =< on the objects of P with p =< p' if and only if there
 is an arrow p > p' in P. This binary relation is reflexive (because there
 is an identity arrow p > p for each p) and transitive (because arrows can be
 composed). Hence a preorder is a set (of objects) equipped with a reflexive
 and transitive binary relation. Conversely, any set P with such a relation
 determines a preorder, in which the arrows p > p' are exactly those ordered
 pairs <p, p'> for which p =< p'. Since the relation is transitive, there is
 a unique way of composing these arrows; since it is reflexive, there are the
 necessary identity arrows.

 Preorders include 'partial orders' (preorders with the added axiom that
 p =< p' and p' =< p imply p = p') and 'linear orders' (partial orders
 such that, given p and p', either p =< p' or p' =< p).

 Mac Lane, 'Cat Work Math', p. 11.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 15
 1.2. Categories (cont.)

 Ordinal Numbers. We regard each ordinal number n as the linearly ordered
 set of all the preceding ordinals n = {0, 1, ..., n1}; in particular, 0
 is the empty set, while the first infinite ordinal is !w! = {0, 1, 2, ...}.
 Each ordinal n is linearly ordered, and hence is a category (a preorder).
 For example, the categories $1$, $2$, and $3$ listed above are the preorders
 belonging to the (linearly ordered) ordinal numbers 1, 2, and 3. Another
 example is the linear order !w! [omega]. As a category, it consists of
 the arrows:

 0 > 1 > 2 > 3 > ...,

 all their composites, and the identity arrows for each object.

 !D! is the category with objects all finite ordinals and arrows
 f : m > n all orderpreserving functions (i =< j in m implies
 f_i =< f_j in n). This category !D! [Delta], sometimes called
 the 'simplicial category', plays a central role (Chapter 7).

 Finord = Set_!w! is the category with objects all finite ordinals n
 and arrows f : m > n all functions from m to n. This is essentially
 the category of all finite sets, using just one finite set n for each
 finite cardinal number n.

 Mac Lane, 'Cat Work Math', pp. 1112.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 16
 1.2. Categories (concl.)

 Large Categories. In addition to the metacategory of all sets 
 which is not a set  we want an actual category Set, the category
 of all 'small' sets. We shall assume that there is a big enough set
 U, the "universe", then describe a set x as "small" if it is a member
 of the universe, and take Set to be the category whose set U of objects
 is the set of all small sets, with arrows all functions from one small set
 to another. With this device (details in Section 7 below) we construct other
 familiar large categories, as follows:

 Set. Objects, all small sets;
 arrows, all functions between them.

 Set_*. Pointed sets: Objects, small sets each with a selected base point;
 arrows, basepointpreserving functions.

 Ens. Category of all sets and functions within a (variable) set V.

 Cat. Objects, all small categories;
 arrows, all functors (Section 3).

 Mon. Objects, all small monoids;
 arrows, all morphisms of monoids.

 Grp. Objects, all small groups;
 arrows, all morphisms of groups.

 Ab. Objects, all small (additive) abelian groups,
 with morphisms of such.

 Rng. All small rings, with the ring homomorphisms
 (preserving units) between them.

 CRng. All small commutative rings and their morphisms.

 RMod. All small left modules over the ring R, with linear maps.

 ModR. Small right Rmodules.

 KMod. Small modules over the commutative ring K.

 Top. Small topological spaces and continuous maps.

 Toph. Topological spaces, with arrows homotopy classes of maps.

 Top_*. Spaces with selected base point,
 basepointpreserving maps.

 Particular categories (like these) will always appear
 in boldface type [not shown here]. Script capitals
 are used by many authors to denote categories.

 Mac Lane, 'Cat Work Math', p. 12.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 17
 1.3. Functors

 A 'functor' is a morphism of categories. In detail, for
 categories C and B a functor T : C > B with domain C and
 codomain B consists of two suitably related functions: The
 'object function' T, which assigns to each object c of C an
 object Tc of B and the 'arrow function' (also written T) which
 assigns to each arrow f : c > c' of C an arrow Tf : Tc > Tc'
 of B, in such a way that:

 T(1_c) = 1_Tc, T(g o f) = Tg o Tf, (1)

 the latter whenever the composite g o f is defined in C. A functor,
 like a category, can be described in the "arrowsonly" fashion: It
 is a function T from arrows f of C to arrows Tf of B, carrying each
 identity of C to an identity of B and each composable pair <g, f>
 in C to a composable pair <Tg, Tf> in B, with Tg o Tf = T(g o f).

 A simple example is the power set functor $P$ : Set > Set. Its object
 function assigns to each set X the usual power set $P$X, with elements
 all subsets S c X; its arrow function assigns to each f : X > Y that
 map $P$f : $P$X > $P$Y which sends each S c X to its image fS c Y.
 Since both $P$(1_X) = 1_$P$X and $P$(g o f) = $P$g o $P$f, this
 clearly defines a functor $P$ : Set > Set.

 Mac Lane, 'Cat Work Math', p. 13.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 18
NB. When necessary to embolden characters,
I will use percent brackets, for example:
%R% = the real numbers, %Z% = the integers.
 1.3. Functors (cont.)

 Functors were first explicitly recognized in algebraic topology,
 where they arise naturally when geometric properties are described
 by means of algebraic invariants.

 For example, singular homology in a given dimension n (n a natural number)
 assigns to each topological space X an abelian group H_n (X), the n^th
 homology group of X, and also to each continuous map f : X > Y of
 spaces a corresponding homomorphism H_n (f) : H_n (X) > H_n (Y)
 of groups, and this in such a way that H_n becomes a functor
 Top > Ab.

 For example, if X = Y = S^1 is the circle, H_1 (S^1) = %Z%, so
 the group homomorphism H_1 (f) : %Z% > %Z% is determined by
 an integer d (the image of 1); this integer is the usual
 "degree" of the continuous map f : S^1 > S^1. In this
 case and in general, homotopic maps f, g : X > Y yield
 the same homomorphism H_n (X) > H_n (Y), so H_n can
 actually be regarded as a functor Toph > Grp,
 defined on the homotopy category.

 The EilenbergSteenrod axioms for homology start with the axioms
 that H_n, for each natural number n, is a functor on Toph, and
 continue with certain additional properties of these functors.
 The more recently developed extraordinary homology and
 cohomology theories are also functors on Toph.

 The homotopy groups !p!_n (X) of a space X can also be regarded as
 functors; since they depend on the choice of a base point in X,
 they are functors Top_* > Grp.

 The leading idea in the use of functors in topology is that H_n or !p!_n
 gives an algebraic picture or image not just of the topological spaces,
 but also of all the continuous maps between them.

 Mac Lane, 'Cat Work Math', p. 13.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 19
 1.3. Functors (cont.)

 Functors arise naturally in algebra.

 To any commutative ring K the set of all nonsingular
 n x n matrices with entries in K is the usual general
 linear group GL_n (K); moreover, each homomorphism
 f : K > K' of rings produces in the evident way a
 homomorphism GL_n f : GL_n (K) > GL_n (K') of groups.
 These data define for each natural number n a functor
 GL_n : CRng > Grp.

 For any group G the set of all products of commutators x y x^(1) y^(1),
 (x, y in G), is a normal subgroup [G, G] of G, called the 'commutator'
 subgroup. Since any homomorphism G > H of groups carries commutators
 to commutators, the assignment G ~> [G, G] defines an evident functor
 Grp > Grp, while G ~> G/[G, G] defines a functor Grp > Ab, the
 factorcommutator functor. Observe, however, that the center Z(G)
 of G (all a in G with ax = xa for all x) does not naturally define
 a functor Grp > Grp, because a homomorphism G > H may carry an
 element in the center of G to one not in the center of H.

 A functor which simply "forgets" some or all of the structure of an
 algebraic object is commonly called a 'forgetful' functor (or, an
 'underlying' functor). Thus the forgetful functor U : Grp > Set
 assigns to each group G the set UG of its elements ("forgetting"
 the multiplication and hence the group structure), and assigns
 to each morphism f : G > G' of groups the same function f,
 regarded just as a function between sets. The forgetful
 functor U : Rng > Ab assigns to each ring R the additive
 abelian group of R and to each morphism f : R > R' of
 rings the same function, regarded just as a morphism
 of addition.

 Mac Lane, 'Cat Work Math', p. 14.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 20
 1.3. Functors (cont.)

 Functors may be composed. Explicitly, given functors:

 T S
 C > B > A

 between categories A, B, and C, the composite functions:

 c ~> S(Tc), f ~> S(Tf)

 on objects c and arrows f of C define a functor S o T : C > A, called the
 'composite' (in that order) of S with T. This composition is associative.
 For each category B there is an identity functor I_B : B > B, which acts as
 an identity for this composition. Thus we may consider the metacategory of
 all categories: its objects are all categories, its arrows are all functors
 with the composition above. Similarly, we may form the category Cat of all
 small categories  but not the category of all categories.

 Mac Lane, 'Cat Work Math', p. 14.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 21
 1.3. Functors (cont.)

 An 'isomorphism' T : C > B of categories is a functor
 T from C to B which is a bijection, both on objects and
 on arrows. Alternatively, but equivalently, a functor
 T : C > B is an isomorphism if and only if there is a
 functor S : B > C for which both composites S o T and
 T o S are identity functors; then S is the 'twosided
 inverse' S = T^(1).

 Certain properties much weaker than isomorphism will be useful.

 A functor T : C > B is 'full' when to every pair c, c' of objects of C
 and to every arrow g : Tc > Tc' of B, there is an arrow f : c > c' of C
 with g = Tf. Clearly the composite of two full functors is a full functor.

 A functor T : C > B is 'faithful' (or an embedding) when to every pair
 c, c' of objects of C and to every pair f_1, f_2 : c > c' of parallel
 arrows of C the equality Tf_1 = Tf_2 : Tc > Tc' implies f_1 = f_2.
 Again, composites of faithful functors are faithful. For example,
 the forgetful functor Grp > Set is faithful but not full and
 not a bijection on objects.

 These two properties may be visualized in terms of homsets (see (2.5)).
 Given a pair of objects c, c' in C, the arrow function of T : C > B
 assigns to each f : c > c' an arrow Tf : Tc > Tc' and so defines
 a function:

 T_c,c' : hom(c, c') > hom(Tc, Tc'), f ~> Tf.

 Then T is full when every such function is surjective, and faithful
 when every such function is injective. For a functor which is both
 full and faithful (i.e., "fully faithful"), every such function is
 a bijection, but this need not mean that the functor itself is an
 isomorphism of categories, for there may be objects of B not in
 the image of T.

 Mac Lane, 'Cat Work Math', pp. 1415.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 22
 1.3. Functors (concl.)

 A 'subcategory' S of a category C is a collection of
 some of the objects and some of the arrows of C, which
 includes with each arrow f both the object dom f and the
 object cod f, with each object s its identity arrow 1_s,
 and with each pair of composable arrows s > s' > s"
 their composite. These conditions ensure that these
 collections of objects and arrows themselves constitute
 a category S. Moreover, the injection (inclusion) map
 S > C which sends each object and each arrow of S to
 itself (in C) is a functor, the 'inclusion functor'.
 This inclusion functor is automatically faithful.

 We say that S is a 'full subcategory' of C when the inclusion functor
 S > C is full. A full subcategory, given C, is thus determined by
 giving just the set of its objects, since the arrows between any two
 of these objects s, s' are all morphisms s > s' in C. For example,
 the category Set_f of all finite sets is a full subcategory of the
 category Set.

 Mac Lane, 'Cat Work Math', p. 15.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 23
 1.4. Natural Transformations

 Given two functors S, T : C > B, a 'natural transformation'
 !t! : S > T is a function which assigns to each object c of C
 an arrow !t!_c = !t!c : Sc > Tc of B in such a way that every
 arrow f : c > c' in C yields a diagram:

 !t!c
 c o Sc o>o Tc
   
   
 f  Sf   Tf (1)
   
 v v v
 c' o Sc' o>o Tc'
 !t!c'

 which is commutative. When this holds, we also say that
 !t!_c : Sc > Tc is 'natural' in c. If we think of the
 functor S as giving a picture in B of (all the objects
 and arrows of) C, then a natural transformation !t! is
 a set of arrows mapping (or, translating) the picture S
 to the picture T, with all squares (and parallegrams!)
 like that above commutative:

 a Sa !t!a Ta
 o o>o
 \ \ \
  \ f  \ Sf  \ Tf
  \  \  \
  v  v Sb Th  v
 h  o b Sh  o>o Tb
  /  / !t!b  /
  /  /  /
  / g  / Sg  / Tg
 vv vv vv
 o o>o
 c Sc !t!c Tc

 We call !t!a, !t!b, !t!c, ..., the 'components'
 of the natural transformation !t!.

 A natural transformation is often called a 'morphism of functors';
 a natural transformation !t! with every component !t!c invertible in
 B is called a 'natural equivalence' or better a 'natural isomorphism';
 in symbols, !t! : S ~=~ T. In this case, the inverses (!t!c)^(1) in B
 are the components of a natural isomorphism !t!^(1) : T > S.

 Mac Lane, 'Cat Work Math', p. 16.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Note 24
 1.4. Natural Transformations (cont.)


 Mac Lane, 'Cat Work Math', p. 16.

 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Category Theory • Discussion
CAT. Discussion Note 1
I have tried to get through the IFF proposal several times now,
and even though I have a basic acquaintance with category theory
as used in math and computer science, it's been pretty rough going.
I thought of trying to start an online review of this material, but
second thought tells me that it won't be possible for us to evaluate
this work unless we sort it out by layers of complexity and usability.
Third thought tells me that we probably can't do a good job of this
without doing a bit of spadework in category theory first. So, in
support of all of these aims, I will start running an introduction
to category theory on the generic ontology list. In order to stick
with an authoritative standard text, I will use selected excerpts from
Mac Lane's "Categories for the Working Mathematician", which is a book
that everybody should have, mathematically employed or not. We will be
accomplishing a lot if we can even get through the first 30 pages or so.
I will also run a separate discussion thread, in or out of the main SUO
group, as the need arises, in which I will try to explain in plainer
language the use and the significance of these basic formal tools.
I am hoping that the IFF proposers will try to relate their ideas
to this basic groundwork whenever it seems appropriate.
CAT. Discussion Note 2
Links to the first three installments from Mac Lane are given below.
I am chunking this into small pieces specifically to facilitate the
group's discussion of content, formalism, motivation, or whatever.
In the 5 pages of his Introduction, Mac Lane is giving merely a
quick overview of some leading ideas and typical constructions,
so don't worry about the speed of it, as all of these things
will be gone back over in full detail, as time goes by.
For anybody who's up to a comparative study, all of the same basic notions
of category theory are covered from the standpoint of logical applications
in Lambek & Scott's 'Higher Order Categorical Logic', and there are links
to a sampling of that work below.
Category Theory, 0103.
Higher Order Categorical Logic, 0130.
CAT. Discussion Note 3
JS = John Sowa
JS: When a reader with the expected level of prerequisites
finds it difficult to read a text, even after making
several diligent attempts, the fault is the author's.
JS: Although I have been sympathetic to the IFF efforts, I have repeatedly
pointed out that the current document is not suitable as a standard.
It should be considered the developers' first attempt at writing a
technical report that could be used (by them) as the basis for a
standard. Readers are expected to meet an author halfway, but
the author is also expected to meet the readers halfway.
JS: As an example of the level of formality that is appropriate
for the IFF, I recommend any decent textbook of computer science
for firstyear computer science graduate students. Anything that
is unreadable by students who have been accepted for a CS graduate
program at a good university is inappropriate as a standards document.
JS: Those excerpts that you extracted from textbooks on
category theory are intended to be read by advanced
undergraduates and beginning graduate students 
i.e., by the kind of people who might be expected
to read the IFF document. Yet they are much more
readable than the IFF document.
JS: I recognize that the IFF developers have tackled a very large complex task,
and they are trying to state the standard at a very high level of generality
and abstraction. I commend them for their ambition. But I believe that it
is now time to scale back the project to something that is more easily (1)
readable by people who have a BS degree in computer science, (2) salable to
people who see the need for ontology but not the need for an opaque formalism,
and last but not least, (3) implementable.
JS: For several years now, I have been arguing for a lattice of theories
as a framework for relating various ontologies. The IFF developers
have assured me that their framework is general enough to accommodate
the lattice I would like to see as a special case. I believe that is
probably true. I also believe that category theory is the proper
formalism to use for what the IFF is supposed to do.
JS: But if the IFF developers cannot write a readable document that
presents their ideas, I suggest that they scale back version 1.0
of the proposed standard to something that isn't much more than
the simple lattice I have been proposing. Then at some point
in the future, after people have started using and implementing
version 1.0, they can develop version 2.0 with all the power
and glory that they are now trying to document.
JS: As an example of the level of readability and formality that I
believe would be appropriate for the IFF standard, I recommend
my tutorial on math and logic:
http://www.jfsowa.com/logic/math.htm
Everything you say is quite apt and I join in recommending all the goodies
on your web pages. I am operating on the principle that the IFF proposal
is our only current starter document, and so I am looking for ways that
I can add some value to it. I will have my criticisms down the road,
but I think that one of the big futilities that we've had over the
past few years is wrangling about the finer facets before we've
roughed out or even mined the stone. So I will stick for the
time being with the basic category theory, which along with
naive set theory needs no apology, as it used on a routine
basis to carry on the everyday business of mathematics 
the original "upper ontology" if anything ever was one 
not to mention computer science, and even more and more
engineering these days via the systems theory connection.
And it's the main way that I ever learned for talking about
lattices and all kinds of other orders. So this common core
of category theory will probably have to be a central part of
the scientific components of any standard upper ontology, if not
necessarily the commonsense classification, naive ontology modules.
CAT. Discussion Note 4
Yesterday's discussion of the "lattice of theories" brings back
to mind a number of recurring issues, and these in turn lead me
to think of a generic criticism that I would have about most of
the projects, formal or informal, advanced in this group so far.
Let us call it the "Forgetfulness Of Semiotic Computability".
The lattice is a fine and proper place to store our ideas.
But lattices and their elements are mathematical objects.
This means that we are not given these objects directly,
but only the signs of them. When I was a mathematician
I spake as a mathematician, which means that I remained
bissfully oblivious most of the time as to what it might
take to connect a concrete sign with its abstract object.
But when I put aside the larger part of that heavenly
paradise and started to focus on what was computable,
the world began to look a whole lot different, and
a lot of what I'd taken for granted as solid ground
became pure blue sky to my new computational and
signtheoretic eyes. I still see a whole lot
of blue sky being kited in this group. And
one of the reasons for this is that nobody,
but me, of course, is even thinking to ask
what the computational properties of all
their highflown expresssiveness might
actually turn out to be in the end.
I already know what happens to
projects when people do this.
You can read about it in
the Bible, under Babel.
In case it isn't clear, I'm talking about something over and above parsing syntax 
I'm talking about computing denotations and interpretants of signs, and what it
actually takes in practical computational terms to get from a theory, which is
just a set of syntactic elements called sentences, to its proper place in the
object lattice. This is the really big gap that will have to be crossed in
order to realize any of the envisioned plans for a lattice of theories.
So, don't get me wrong  I'm all on board with this lattice of theories stuff.
Have been for a long time. But the next questions that I have to ask all have
to do with what it would take to make it real, and I'm still getting a lot of
the kind of handwaving that I already know won't cut it.
To Contemplate for Next Time  The Great Mandala or The Web Of Maya?
oo
 
 Language 1 Object Domain Language 2 
 
 oo oo 
 / s s s ... \~~~~~~~~~~~~~o~~~~~~~~~~~~~/ s s s ... \ 
 / oo \ / \ / oo \ 
 / \ / \ / \ 
 oo \ / \ oo \ 
  s s s ... ~~~~~~~~\~~~~~o~~~~~~~\~~~~~~ s s s ...  \ 
 oo \ \ \ oo \ 
 \ \ \ \ \ \ 
 \ oo \ \ \ oo 
 \  s s s ... ~~~~~~\~~~~~~~o~~~~~\~~~~~~~~ s s s ...  
 \ oo \ / \ oo 
 \ / \ / \ / 
 \ oo / \ / \ oo / 
 \ s s s ... /~~~~~~~~~~~~~o~~~~~~~~~~~~~\ s s s ... / 
 oo oo 
 
oo
Figure 1. Lattice of Objects Inducing a Diversity of Sign Partitions
CAT. Discussion Note 5
In connection with the ontological use of category theory 
and while we're waiting for Robert Kent's opus to ope 
I would like to bring to the group's attention the
following work of Robert Marty, who I think is
saying something extremely right about the
way that we can use categorical notions
to construct or to discover invariant
objects in the b(l)ooming, buzzing
manifolds of phenomenal data.
Robert Marty, "Foliated Semantic Networks: Concepts, Facts, Qualities"
http://www.univperp.fr/see/rch/lts/marty/semanticns/
http://www.univperp.fr/see/rch/lts/marty/semanticns/abstract11.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/introduction11.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/concept1.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/formal1.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/composit1.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/extending1.htm †
http://www.univperp.fr/see/rch/lts/marty/semanticns/application1.htm
http://www.univperp.fr/see/rch/lts/marty/semanticns/reference1.htm
CAT. Discussion Note 6
JS = John Sowa
MW = Matthew West
Well, if the Ontology Archive ever gets working again,
I am hoping to lead some kind of an eseminar there,
starting out with MacLane's book, which is the one
that most math folks read if they read only one.
In practice, though, most of this gets learned informally,
in the process of working on some other subject of interest,
with category theory being one of the main tools that gets
used when the going gets tough.
As a person who uses a lot of mappings between different domains
in his work, I think that you would especially benefit from some
of the work that's been done over the years to address precisely
these kinds of tasks.
The official "decade of birth" of category theory is usually given as the 1940's 
though of course you can trace all the main ideas back into the mists, to Riemann
and maybe even to Kant  but what happened in the 40's was that mathematicians
were getting really bogged down trying to formalize what they do, so long as
they tried to do it in axiomatic set theory and formalized logic, and there
was a sense that most of the real work was falling between the cracks of
what these official doctrines were able to cover.
One of the important things to understand here is these folks were practical people,
with work to do, and if it could not be done effectively and efficiently in the way
that "philosophers of math" said they should be doing it, then they had no choice
but to reflect on the conduct of their own practice and to hammer out their own
tools to the task.
It appears to be a popular misconception, promulgated by the
sort of "philosopher of math" who never does much actual math 
how could they, if they stick to the methods they try to sell
others?  that your average working theorist spends his days
proving stuff in axiomatic set theory with first order logic.
This is just not how it is  unless an individual takes up
a special interest in working with both hands tied behind
his or her back.
Of course, some folks will go on to develop baroque and roccoco variations
on just about any subject you give them, if they have a lot of spare time
on their hands, but most of these tools were forged and hammered out to
do solid work on mathematical objects of definite interest.
The fact is that many of the problems that category theory was carved out to solve
are closely analogous to the problems of interrelation between different views and
takes on the world, of the sort that we have before us in the standard ontology job.
It would be a crying shame just to go out and wipe the slate clean and to waste all
of the knowledge that has already been mined, just for the lack of a little effort
to learn the practical methods that were used to mine it.
So I think that there has just got to be a way of explaining
all of this stuff in applicable, practical, sensible terms.
MW: I have been reading (in fits and starts) the book John recommends below.
>
> It is intended as a undergraduate text. When John says it has
> been used in High School I am surprised rather than incredulous.
>
> The book comes in sections each with an exposition of some theory
> and then a number of tutorials with worked examples (and some for
> you to do if you wish) tackling real questions which real students
> asked.
>
> The main thing I find lacking is any sense of what I would use
> this for  but this is not so unusual with pure maths.
JS: Category theory is usually considered an esoteric subject
> > because (1) it is not taught in high school and (2) most
> > textbooks are written at an advanced level.
> >
> > But there is a textbook of category theory that has been
> > used for teaching highschool students, and it contains
> > large numbers of examples to illustrate the concepts:
> >
> > 'Conceptual Mathematics: A First Introduction to Categories',
> > by F. William Lawvere and Stephen Hoel Schanuel,
> > Cambridge University Press.
> >
> > The first 100 pages could be read by a highschool student
> > with a little help from a teacher or tutor. The material
> > gets deeper and proceeds faster later in the book, but the
> > presentation is completely selfcontained, and it could be
> > used for selfstudy by people who have forgotten most of the
> > mathematics they learned in college.
> >
> > I recommend it to anyone who might be interested in learning
> > the IFF system in order to (1) use it or (2) evaluate it.
CAT. Discussion Note 7
One way to get the motivation for category theory
is to look at some of the types of problems that
it was developed to solve. I will try to give
just my personal intuitions about the kinds of
settings where it becomes indispensable, and
why I feel like these are closely analogous
to the very sorts of problems that face us
in designing conceptual systems that are
capable of supporting communication and
cooperation among different views of
common realities, whether these are
embodied in people or in software.
I think that it all starts with the gap between
realities and representations, in other ways of
stating it, between terrains and maps, or maybe
the constrast between the role of an object and
the role of a sign. The big problem is that we
tend to think that the objective reality is one,
at least until there is good evidence otherwise,
whereas the big headache about the appearances,
datasets, maps, representations, sign systems,
or variant views of the terrain is that there
is just so darn many of them.
This is a problem that went critical quite some time
ago in mathematics, shortly after Descartes invented
analytic geometry, because instead of thinking about
geometric figures as unitary objects like most folks
intuit them to be in the synthesis of the mind's eye,
all of a sudden there is an embarrassing richness of
different coordinate systems, reference frames, and
points of view, assigning different coordinates to
objects, and all of which differing accounts have
to be reconciled among themselves if we want to
reconstruct the unity of the original figure.
So the first picture I get of the subject looks like this:
reality
?
/ \
/ \
/ \
/ \
/ \
v v
o<T>o
representations
The objective reality in question, marked by a question mark "?",
is not a total unknown to us, but it is known to us only in terms
of many different representations. These are typically expressed
in different coordinate systems, amounting to or being analogous
to data that's gathered from different points of view on things.
So the problem becomes a lot like that of stereoscopic vision,
to recover a more solid sense of the object from the mosaic
of different facets of data that is canvassed by a welter
of diverse reference frames. Reconstructing the object
depends on finding the proper correspondences between
the elements of the many splintered representations,
which involves us in contemplating the families of
transformations T that exist between each pair of
perspectives.
Anyway, that is how I see it getting started.
CAT. Category Theory • Work Area
"John kicks the cart."
could be translated to
(exists (?EV ?OBJ)
(and
(instance ?EV Impelling)
(instance ?OBJ Device)
(instance John1 Human)
(agent ?EV John1)
(patient ?EV ?OBJ))
Zeke buys the farm.
Zeke bites the dust.
Zeke kicks the bucket.
(exists (?EV ?OBJ)
(and (instance ?EV Impelling)
(instance ?OBJ Device)
(instance Zeke Human)
(agent ?EV Zeke)
(patient ?EV ?OBJ))
DIF. Differential Geometry For Engineers
DIF. Note 1
Collateral with my exposition of differential logic,
it will be useful to pursue a few standard accounts
of differential geometry. I'll begin with excerpts
from the following text, adopted with a weather eye
out for applications to control systems engineering:
 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
From the Preface:
 This book has been written to acquaint engineers, especially control
 engineers, with the basic concepts and terminology of modern global
 differential geometry. The ideas discussed are applied here mainly
 as an introduction to the Lie theory of differential equations and
 to the role of Grassmannians in control systems analysis. To reach
 these topics, the fundamental notions of manifolds, tangent spaces,
 vector fields, and Lie algebras are discussed and exemplified.
Biographical Data for Marius Sophus Lie (18421899):
http://wwwgroups.dcs.stand.ac.uk/~history/Mathematicians/Lie.html
DIF. Note 2
 1. Introduction

 This book presents some basic concepts, facts of global
 differential geometry, and some of its uses to a control
 engineer. It is not a mathematical treatise; the subject
 matter is well developed in many excellent books, for example,
 in references [1], [2], and [3], which, however, are intended
 for the reader with an extensive mathematical background. Here,
 only some basic ideas and a minimum of theorems and proofs are
 presented. Indeed, a proof occurs only if its presence strongly
 aids understanding. Even among basic ideas of the subject, many
 directions and results have been neglected. Only those needed
 for viewing control systems from the standpoint of vector fields
 are discussed.

 Differential geometry treats of curves and surfaces,
 the functions that define them, and transformations
 between the coordinates that can be used to specify
 them. It also treats the differential relations
 that stitch pieces of curves or surfaces together
 or that tell one where to go next.

 In thinking of functions that can define surfaces in space, one is
 likely to think of real functions (functions assigning a real number
 to a given point of their argument) of threespace variables such as
 the kinetic energy of a particle, or the distribution of temperature
 in a room. Differential geometry examines properties inherent in the
 surfaces these functions define that, of course, are due to the sources
 of energy or temperature in the surroundings. Or, given enough of these
 functions, one might use them as proper coordinates of a problem. Then
 the generalities of differential geometry show how to operate with them
 when they are used, for example, to describe a dynamic evolution.

 Differential geometry, in sum, derives general properties from the study of
 functions and mappings so that methods of characterization or operation can
 be carried over from one situation to another. Global differential geometry
 refers to the description of properties and operations that are over "large"
 portions of space.

 Doolin & Martin, DGFE, pages 12.

 Bibliography, page 155.

 1. R. Hermann,
 'Differential Geometry and the Calculus of Variations',
 Academic Press, New York, NY, 1968.

 2. W.M. Boothby,
 'An Introduction to Differentiable Manifolds and Riemannian Geometry',
 Academic Press, New York, NY, 1977.

 3. L. Auslander & R.E. MacKenzie,
 'Introduction to Differentiable Manifolds',
 Dover Publications, New York, NY, 1977.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 3
 1. Introduction (cont.)

 Though the studies of differential geometry began in geodesy and in dynamics
 where intuition can be a faithful guide, the spaces now in this geometry's
 concern are far more general. Instead of considering a set of three or
 six real functions on a space of vectors of three or six dimensions,
 spaces can be described by longer ordered strings of numbers, by
 sets of numbers ordered in various ways, or by ordered sets of
 products of numbers. Examples are ndimensional vector spaces,
 matrices, or multilinear objects like tensors. It is not just
 these sets of numbers, but also the rules one has of passing
 from one set to another that form the proper subject matter
 of differential geometry, linking it to matters of interest
 in control.

 All analytic considerations of geometry begin with a space filled with stacks
 of numbers. Before one can proceed to discuss the relations that associate
 one point with another or dictate what point follows another, one has to
 establish certain ground rules. The ground rules that say if one point
 can be distinguished from another, or that there is a point close enough
 to wherever you want to go, are referred to as topological considerations.
 The basic description of the topological spaces underlying all the geometry
 of this paper is given in an appendix on fundamentals of vector calculus.
 This appendix discusses such desired topological characteristics
 as compactness and continuity, which is needed to preserve these
 characteristics in passing from one space to another. The appendix
 concludes by recalling two theorems from vector calculus that provide
 the basic glue by which manifolds, the word for the fundamental spaces
 of global differential geometry, are assembled. Since this discussion is
 fundamental to differential geometry, we briefly review it. The review is
 relegated to an appendix, however, because it is not the topic of this book,
 nor should one dwell on it.

 The first two chapters of the body of the book describe manifolds, the spaces
 of our geometry. Some simple manifolds are mentioned. Several definitions are
 given, starting with one closest to intuition then passing to one perhaps more
 abstract, but actually less demanding to verify in cases of interest in control
 engineering. Then mappings between manifolds are considered. A special space,
 the tangent space, is discussed in chapter 3. A tangent space is attached to
 every point in the manifold. Since this is where the calculus is done, it and
 its relations to neighboring tangent spaces and to the manifold that supports it
 must be carefully described.

 Computation in these spaces is the topic of the next few chapters.
 Calculus on manifolds is given in chapter 4 on vector fields and
 their algebra, where the connection between global differential
 geometry and linear and nonlinear control begins to become clear.
 Chapters 5 and 6, which treat some algebraic rules, conclude our
 exposition of the fundamentals of the geometry.

 The examples given as the development unfolds should not only help the reader
 understand the topic under discussion but should also provide a basic set for
 testing ideas presented in the current literature. Chapter 7 is intended to
 give the reader a glimpse of the structure supporting the spaces in which
 linear control operates. More comprehensive applications of differential
 geometry to control are given in the final major chapter of the paper.

 Doolin & Martin, DGFE, pages 24.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 4
 2. Manifolds And Their Maps

 The first part of this chapter is devoted to the concept of a manifold.
 It is defined first by a projection then by a more useful though less
 intuitive definition. Finally, it is seen how implicitly defined
 functions give manifolds. Examples are considered both to enhance
 intuition and to bring out conceptual details. The idea of a
 manifold is brought out more clearly by considering mappings
 between manifolds. The properties of these mappings occupy
 the last part of this chapter.

 2.1. Differentiable Manifolds

 Although the detailed global description of a manifold
 can be quite complicated, basically a differentiable
 manifold is just a topological space (X, !W!) that
 in the neighborhood of each point looks like an
 open subset of R^k. (In the notation (X, !W!),
 X is some set and !W! consists of all the sets
 defined as open in X and that characterize its
 topology. As to the notation R^k, each point
 in R^k is specified as an ordered set of k
 real numbers. These and other notions
 arising below are discussed in the
 appendix.) This description can
 be formalized into a definition:

 2.1. Definition. A subset M of R^n is a kdimensional manifold
 if for each x in M there are: open subsets U and V of R^n
 with x in U, and a diffeomorphism f from U to V such that:

 f(U ^ M) = {y in V : y_(k+1) = ... = y_n = 0}.

 Thus, a point y in the image of f has a representation like:

 y = (y_1 (x), y_2 (x), ..., y_k (x), 0, ..., 0).

 A straight line is a simple example of a onedimensional manifold,
 a manifold in R^1. It is a manifold in R^1 even if it is given, for
 example, in R^2. There it might represent the surface of solutions of
 the equation of a particle of unit mass under no forces: x`` = 0 and
 with given initial momentum: x`(t=0) = a. [The (`) is a fluxion dot.]
 In the coordinate system y_1 = x, y_2 = x`  a, the manifold is given by
 the points (y_1, 0). To the particle, its whole world looks like part of
 R^1 though we see its tracks clearly as part of R^2. Any open subset of
 the straight line is also a onedimensional manifold, but a closed subset
 of it is not.

 The sphere in R^3 is an example of a twodimensional manifold.
 It is an example of a closed manifold and is often denoted as
 S^2. Thus, for a point P in R^3: P = (x_1, x_2, x_3), the
 manifold is given as the set:

 S^2 = {P in R^3 : (x_1)^2 + (x_2)^2 + (x_3)^2  1 = 0}.

 Its twodimensional character is clear when a point in S^2 is
 given in terms of two variables, say, latitude and longitude.

 Doolin & Martin, DGFE, pages 57.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 5
 2. Manifolds And Their Maps

 2.1. Differentiable Manifolds (cont.)

 The examples of one and twodimensional manifolds so far have been sets
 given in some R^n and mapped into R^1 or R^2. Sets forming manifolds are
 not always described naturally in some R^n. To embed them in an R^n before
 showing that the definition is satisfied may be an undesirably awkward task.
 In fact, it is not necessary, and we will extend our previous definition so
 as to avoid it. That labor, however, will be avoided only at the expense
 of introducing more formalism now.

 Let M be a second countable, Hausdorff topological space. A 'chart' in M is
 a pair (V, !a!) with V an open set and !a! a C^oo function onto an open set
 in R^n and having a C^oo inverse. A C^oo 'atlas' is a set of such charts,
 {(V_i, !a!_i)} = !A!, with the following properties:

 1. M = _ V_i

 2. If (V_1, !a!_1) and (V_2, !a!_2) are in !A!

 and V_1 ^ V_2 =/= Ø, then

 (!a!_2) o (!a!_1)^(1) : !a!_1 (V_1 ^ V_2) > !a!_2 (V_1 ^ V_2)

 is a C^oo diffeomorphism.

 [In the Figure below, let W = V_1 ^ V_2 and !t! = (!a!_2) o (!a!_1)^(1).]

 oo
  M 
  
  oo oo 
  / \ / \ 
  / o \ 
  / / \ \ 
  / / W \ \ 
  / / \ \ 
  o o o o 
    V_1   
      
   V_1  ^  V_2  
      
    V_2   
  o o o o 
  \ \ / / 
  \ \ / / 
  \ \ / / 
  \ o / 
  \  / \  / 
  oo oo 
    
    
 oo
  
 !a!_1   !a!_2
  
 oo oo
  R^n v   v R^n 
    
  oo   oo 
  / \   / \ 
  / o   o \ 
  / / \   / \ \ 
  / / \   / \ \ 
  o o o   o o o 
      !t!     
    >   
          
   !a!_1 (W)       !a!_2 (W)  
          
  o o o   o o o 
  \ \ /   \ / / 
  \ \ /   \ / / 
  \ o   o / 
  \ /   \ / 
  oo   oo 
    
    
 oo oo

 Figure 2.2. Sketch (b)

 Sketch (b), which illustrates the subsets V_1 and V_2 and
 the maps !a!_1 and !a!_2 may aid in picturing the content
 of condition (2). With this formalism established, our
 second definition of a manifold can now be given:

 2.2. Definition. A C^oo 'manifold' is a pair (M, !A!) where M
 is a second countable Hausdorff topological space, and !A!
 is a maximal C^oo atlas.

 The conditions on the topology guarantee that the number of charts required to
 cover M is countable. The word "maximal" gives a technical condition. It makes
 the atlas the class of collections of just enough charts to form a countable basis
 of charts. By referring to the class, one is not tied to a representation given by
 a particular set of charts.

 Although the definition seems unduly complicated, it turns out to be just what
 is necessary to meet our intuition. Every mdimensional manifold determined by
 the definition can in fact be considered as a subset of R^n for some n such that
 m =< n =< 2m + 1. Any weakening of the definition can allow objects which cannot
 be embedded in some R^n.

 Doolin & Martin, DGFE, pages 910.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 6
 2. Manifolds And Their Maps

 2.1. Differentiable Manifolds (cont.)

 We opened this discussion of differentiable manifolds with the remark
 that basically a differentiable manifold is a topological space that
 in the neighborhood of each point looks like an open subset of R^k.
 The first definition said that each neighborhood, even though
 expressed as a subset of R^n, was equivalent to R^k. That is,
 the space expressed in R^n really only had k, not n, degrees
 of freedom. Another way of saying this is by saying that a
 kdimensional manifold can be expressed using n variables
 with n  k conditions imposed on them.

 These remarks are made because, in practice, manifolds are often given
 as the set of points where a certain function vanishes. The implicit
 function theorem gives conditions under which the vanishing of the
 function gives k constraints (exchanging the k and the n  k of the
 previous paragraph), so that only n  k of the variables are free,
 and the space is a manifold with dimension n  k if the theorem
 is satisfied everywhere. Then the manifold is said to be given
 implicitly, or by the implicit function theorem.

 Formalizing the above remarks, we consider a C^oo function F with
 domain A c R^n and range in R^k. That is, for every choice of n
 real numbers (x_1, ..., x_n) in A, the function F has the k real
 numbers F = (f_1, ..., f_k). Let M be the set:

 M = {x : F(x) = 0 = (0, 0, ..., 0)}.

 If the rank of the Jacobian matrix F' is equal to k for all x in M,
 then M is an (nk)dimensional manifold.

 Under the conditions stated, the implicit function theorem says that k of
 the variables can be expressed in terms of the other n  k, and the latter
 can be given values arbitrarily. Another statement of the implicit function
 theorem (see [4, p. 43]) shows that a coordinate transformation can be found
 that assigns the value zero to the k explicit functions. In other words, the
 conditions of the first definition of a manifold are satisfied.

 Doolin & Martin, DGFE, pages 1012.

 References:

 4. M. Spivak,
 'Calculus on Manifolds',
 W.A. Benjamin, New York, NY, 1965.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 7
 2. Manifolds And Their Maps

 2.2. Examples

 Another trivial but important example of a class of manifolds is
 afforded by any open subset of R^n. There the atlas may consist
 of the set itself, together with the identity map. Thus, the
 notion that manifolds are spaces that locally look like open
 subsets of R^n is at least selfconsistent. This example
 is important because the whole idea of the definition
 of manifolds is to be able to see how calculations
 valid in R^n carry over into any other manifold.

 Another example of a manifold, which is
 an open set of Euclidean space and which
 is important in systems theory, follows.
 Let:

 x` = Ax + bu

 be a singleinput controllable system.
 Recall that controllability is equivalent
 to having the rank of the matrix:

 [b, A b, A^2 b, ..., A^(n1) b]

 equal to n, where A is an n x n matrix.
 Now let M be the set of pairs (A, b)
 such that a system is controllable:

 M = {(A, b) : x` = Ax + bu is controllable}.

 The complement of this set is the
 set that satisfies the condition:

 det [b, A b, A^2 b, ..., A^(n1) b] = 0.

 Since this is a closed set in R^(n^2 + n), the set M
 is open in R^(n^2 + n), and therefore is a manifold.

 The system, being of single input, is a special case.
 In general, when the control distribution function B
 is an n x m matrix, M* is also a manifold where M* is
 the set:

 M* = {(A, B) : x` = Ax + Bu is controllable}.

 Although the conditions are more involved and less
 easy to describe than the determinant condition above,
 a similar argument shows that the controllable pairs are
 an open subset of R^n(n+m).

 A more general example along these same lines is the set
 of triples of matrices (A, B, C) representing the system:

 x` = Ax + Bu

 y = Cx

 If the system is controllable and observable, it can be shown
 that this set of triples is also an open subset of a suitable
 Euclidean space.

 Related to this manifold is a set of matrix transfer functions
 T(s). These are matrices of rational functions that arise as the
 Laplace transforms of the above systems. Whether this set {T(s)} is
 a manifold is a deep question in systems theory. It has been answered
 affirmatively by Martin Clark [5], Roger Brockett [6], and independently
 by Michiel Hazewinkel [7], and by Christopher Byrnes and N.E. Hurt [8].
 Much of the study in linear systems is involved with various properties
 of this manifold.

 Doolin & Martin, DGFE, pages 1718.

 5. J.M.C. Clark,
 "The Consistent Selection of Parameterizations in System Identification",
 'Proceedings of the Joint Automatic Control Conference', July 2730, 1976,
 Purdue University, West Lafayette, IN, pages 576585.
 American Society of Mechanical Engineers, New York, NY.

 6. R.W. Brockett,
 "Some Geometric Questions in the Theory of Linear Systems",
 'IEEE Transactions on Automatic Control', vol. AC21:4,
 August 1976, pages 449455.

 7. M. Hazewinkel & R.E. Kalman,
 "On Invariance, Canonical Forms, and Moduli for Linear
 Constant, FiniteDimensional, Dynamical Systems", in:
 'Lecture Notes on Economics & Mathematical System Theory',
 vol. 131, pages 440454, SpringerVerlag, Berlin, 1976.

 8. C.I. Byrnes & N.E. Hurt,
 "On the Moduli of Linear Dynamical Systems", 'Advances in Mathematics',
 Suppl. Series, vol. 4, 1978, pages 83122. Academic Press, New York, NY.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 8
 2. Manifolds And Their Maps

 2.3. Manifold Maps

 We have described manifolds and seen a few examples of them.
 Now we can describe the requirements on functions that allow
 them to be maps between manifolds, say, the manifolds M and N.

 A function f,

 f : M > N,

 is a 'manifold map' if for every x in M and chart (V, !a!) with x in V,
 there is a chart (U, !b!) for N with f(V) c U such that the composite
 function !b! o f o !a!^1,

 !b! o f o !a!^1 : !a!(V) > !b!(U),

 is a C^oo diffeomorphism.

 [Example omitted.]

 A final consideration for this section is that of forming manifolds
 from the cartesian products of manifolds. If we have a manifold M
 with atlas !A!, we can construct a new manifold:

 M x M = {(X, Y) : X, Y in M}

 from M and !A!. The charts are constructed from
 the charts of !A! in the natural way as products,
 that is, if (V_1, !a!_1) and (V_2, !a!_2) are
 charts in !A!. Then a chart for M x M is
 given by (V_1 x V_2, !a!_1 x !a!_2) where:

 (!a!_1 x !a!_2)(X, Y) = (!a!_1 (X), !a!_2 (Y)).

 Doolin & Martin, DGFE, pages 1822.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 9
 3. Tangent Spaces

 The previous chapter defines manifolds and gives several examples of them.
 This chapter considers a basic construction of one manifold from another.
 While the method of construction itself is of interest insofar as it
 illustrates general procedures of modern differential geometry,
 the particular result, the tangent space, is an object of
 great importance. It is by way of the tangent space
 that calculus can be done in general situations.

 To gain familiarity with the idea of a tangent space, it is worthwhile to
 spend some time with an example, that of the tangent space to the sphere.
 The information in the previous section concerning charts for the sphere
 allows charts to be constructed for this new space. The atlas resulting
 from the construction is examined in the light of the earlier definitions
 to see that this tangent space forms a manifold. The example is useful, too,
 for giving insight into such things as the dimensionality of a tangent space
 and the fact that its maps preserve its linear and differentiable structure.
 Part of the problem of constructing an atlas is that a map must be inverted
 and that its composition with another map be a diffeomorphism. Reducing our
 example from a sphere to a circle simplifies this calculation considerably.

 Next, preparatory to considering the general construction of a tangent space,
 the notion of equivalence classes of curves on a manifold, and their addition
 and scalar multiplication is explored. This study provides the guide to the
 constructions that follow, and to the confirmation that the tangent space is
 a manifold.

 The rest of the chapter is devoted to the tangent space in general.
 It is seen to be a manifold whose charts and chart maps are derived
 from those of the underlying manifold. It is seen to have vector
 space properties. Similar properties of maps between tangent
 manifolds are examined. The differentiating properties of
 these induced maps are noted.

 Doolin & Martin, DGFE, pages 2324.

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
DIF. Note 10
 3. Tangent Spaces

 3.1. The Tangent Space of Sphere


 Doolin & Martin, DGFE, pages 24

 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
GRAPH. Graph Theory
Ontology & SUO Groups
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/ontology/msg00221.html
 http://web.archive.org/web/20091122134752/http://suo.ieee.org/email/msg02653.html
 http://web.archive.org/web/20041220131023/http://suo.ieee.org/email/msg02706.html
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/email/msg07595.html
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/email/msg07597.html
 http://web.archive.org/web/20060504095418/http://suo.ieee.org/email/msg07622.html
 http://web.archive.org/web/20070718110457/http://suo.ieee.org/email/msg07975.html
Other Resources
 http://www.utm.edu/departments/math/graph/
 http://www.utm.edu/departments/math/graph/index.html
 http://www.utm.edu/departments/math/graph/glossary.html
 http://www.utm.edu/cgibin/caldwell/tutor/departments/math/graph/intro
 http://www.math.lsa.umich.edu/~mathsch/summ97/graph/graph1/
 http://www.math.lsa.umich.edu/~mathsch/summ97/graph/index.html
 http://www.dmoz.org/Science/Math/Combinatorics/Graph_Theory/
 http://web.archive.org/web/20011203081944/http://graphs.memes.net/index.php3?request=displaypage&NodeID=3
HOC. Higher Order Categorical Logic
HOC. Note 1
 Part 0. Introduction to Category Theory

 1. Categories and Functors

 In this section we present what our reader is expected
 to know about category theory. We begin with a rather
 informal definition.

 Definition 1.1. A 'concrete category' is a collection of two kinds
 of entities, called 'objects' and 'morphisms'. The former are sets
 which are endowed with some kind of structure, and the latter are
 mappings, that is, functions from one object to another, in some
 sense preserving that structure. Among the morphisms, there is
 attached to each object A the 'identity mapping' 1_A : A > A
 such that 1_A(a) = a for all a in A. Moreover, morphisms
 f : A > B and g : B > C may be 'composed' to produce
 a morphism gf : A > C such that (gf)(a) = g(f(a))
 for all a in A.

 Examples of concrete categories abound in mathematics;
 here are just three:

 Example C1. The category of 'sets'. Its objects are
 arbitrary sets and its morphisms are arbitrary mappings.
 We call this category "Sets".

 Example C2. The category of 'monoids'. Its objects are
 monoids, that is, semigroups with unity element, and its
 morphisms are homomorphisms, that is, mappings which
 preserve multiplication (the semigroup operation)
 and the unity element.

 Example C3. The category of 'preordered sets'.
 Its objects are preordered sets, that is, sets
 with a transitive and reflexive relation on them,
 and its morphisms are monotone mappings, that is,
 mappings which preserve this relation.

 The reader will be able to think of many other examples:
 the categories of rings, topological spaces, and Banach
 algebras, to name just a few. In fact, one is tempted
 to make a generalization, which may be summed up as
 follows, provided we understand "object" to mean
 "structured set".

 Slogan 1. Many objects of interest in mathematics
 congregate in concrete categories.

 L&S, page 4.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 2
 We shall now progress from concrete categories
 to abstract ones, in three easy stages.

 Definition 1.2. A 'graph' (usually called a 'directed graph') consists
 of two classes: the class of 'arrows' (or 'oriented edges') and the class
 of 'objects' (usually called 'nodes' or 'vertices') and two mappings from
 the class of arrows to the class of objects, called 'source' and 'target'
 (often also 'domain' and 'codomain').

 oo source oo
   >  
  Arrows   Objects 
   >  
 oo target oo

 One writes "f : A > B" for "source f = A and target f = B".
 A graph is said to be 'small' if the classes of objects and
 arrows are sets.

 Example C4. The category of small 'graphs' is another concrete category.
 Its objects are small graphs and its morphisms are functions F which send
 arrows to arrows and vertices to vertices so that, whenever f : A > B,
 then F(f) : F(A) > F(B).

 A 'deductive system' is a graph in which to each object A there
 is associated an arrow 1_A : A > A, the 'identity' arrow, and to
 each pair of arrows f : A > B and g : B > C there is associated
 an arrow gf : A > C, the 'composition' of f with g. A logician
 may think of the objects as 'formulas' and of the arrows as
 'deductions' or 'proofs', hence of

 f : A > B g : B > C
 
 gf : A > C

 as a 'rule of inference'.

 (Deductive systems will be discussed further in Part 1.)

 A 'category' is a deductive system in which the following equations hold,
 for all f : A > B, g : B > C, and h : C > D.

 f 1_A = f = 1_B f,

 (hg)f = h(gf).

 Of course, all concrete categories are categories. A category is
 said to be 'small' if the classes of arrows and objects are sets.
 While the concrete categories described in examples 1 to 4 are not
 small, a somewhat surprising observation is summarized as follows:

 Slogan 2. Many objects of interest to mathematicians
 are themselves small categories.

 L&S, page 5.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 3
 Example C1'. Any set can be viewed as a category: a small 'discrete'
 category. The objects are its elements and there are no arrows except
 the obligatory identity arrows.

 Example C2'. Any monoid can be viewed as a category. There is only
 one object, which may remain nameless, and the arrows of the monoid
 are its elements. In particular, the identity arrow is the unity
 element. Composition is the binary operation of the monoid.

 Example C3'. Any preordered set can be viewed as a category.
 The objects are its elements and, for any pair of objects (a, b),
 there is at most one arrow a > b, exactly one when a =< b.

 L&S, pages 56.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 4
 It follows from slogans 1 and 2 that small categories
 themselves should be the objects of a category worthy
 of study.

 Example C5. The category Cat has as objects small categories
 and as morphisms functors, which we shall now define.

 Definition 1.3. A 'functor' F : $A$ > $B$ is
 first of all a morphism of graphs (see Example C4),
 that is, it sends objects of $A$ to objects of $B$
 and arrows of $A$ to arrows of $B$ such that, if
 f : A > A', then F(f) : F(A) > F(A'). Moreover,
 a functor preserves identities and composition;
 thus:

 F(1_A) = 1_F(A),

 F(gf) = F(g)F(f).

 In particular, the identity functor 1_$A$ : $A$ > $A$ leaves
 objects and arrows unchanged and the composition of functors
 F : $A$ > $B$ and G : $B$ > $C$ is given by:

 (GF)(A) = G(F(A)),

 (GF)(f) = G(F(f)),

 for all objects A of $A$ and all arrows f : A > A' in $A$.

 The reader will now easily check the following assertion.

 Proposition 1.4. When sets, monoids, and preordered sets
 are regarded as small categories, the morphisms between
 them are the same as the functors between them.

 The above definition of a functor F : $A$ > $B$ applies equally well
 when $A$ and $B$ are not necessarily small, provided we allow mappings
 between classes. Of special interest is the situation when $B$ = Sets
 and $A$ is small.

 Slogan 3. Many objects of interest to mathematicians
 may be viewed as functors from small categories to Sets.

 Example F1. A set may be viewed as a functor
 from a discrete oneobject category to Sets.

 Example F2. A small graph may be viewed
 as a functor from the small category

 . > .
 >

(with identity arrows not shown) to Sets.

 Example F3. If $M$ = (M, 1, .) is a monoid
 viewed as a oneobject category, an $M$set
 may be regarded as a functor from $M$ to Sets.
(An $M$set is a set A together with a mapping
 M x A > A, usually denoted by (m, a) ~> ma,
 such that 1a = a and (m.m')a = m(m'a) for all
 a in A, m and m' in M.)

 L&S, pages 67.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 5
 One we admit that functors $A$ > $B$ are interesting objects to study,
 we should see in them the objects of yet another category. We shall
 study such functor categories in the next section. For the present,
 let us mention two other ways of forming new categories from old.

 Example C6. From any category (or graph) $A$ one forms
 a new category (respectively graph) $A$^op with the same
 objects but with arrows reversed, that is, with the two
 mappings "source" and "target" interchanged. $A$^op is
 called the 'opposite' or 'dual' of $A$. A functor from
 $A$^op to $B$ is often called a 'contravariant' functor
 from $A$ to $B$, but we shall avoid this terminology
 except for occasional emphasis.

 Example C7. Given two categories $A$ and $B$, one forms a new category
 $A$ x $B$ whose objects are pairs (A, B), A in $A$ and B in $B$, and whose
 arrows are pairs (f, g) : (A, B) > (A', B'), where f : A > A' in $A$ and
 g : B > B' in $B$. Composition of arrows is defined componentwise.

 L&S, page 7.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 6
 Definition 1.5. An arrow f : A > B in a category is called an 'isomorphism'
 if there is an arrow g : B > A such that gf = 1_A and fg = 1_B. One writes
 A ~=~ B to mean that such an isomorphism exists and says that A is 'isomorphic'
 with B.

 In particular, a functor F : $A$ > $B$ between two categories is an isomorphism
 if there is a functor G : $B$ > $A$ such that GF = 1_$A$ and FG = 1_$B$. We also
 remark that a group is a oneobject category in which all arrows are isomorphisms.

 To end this section, we shall record three basic isomorphisms.
 Here $1$ is the category with one object and one arrow.

 Proposition 1.6. For any categories $A$, $B$, $C$,

 $A$ x $1$ ~=~ $A$,

 $A$ x $B$ ~=~ $B$ x $A$,

 $A$ x ($B$ x $C$) ~=~ ($A$ x $B$) x $C$.

 L&S, page 7.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 7
 2. Natural Transformations

 In this section we shall investigate morphisms between functors.

 Definition 2.1. Given functors F, G : $A$ > $B$,
 a 'natural transformation' t : F > G is a family
 of arrows t(A) : F(A) > G(A) in $B$, one arrow for
 each object A of $A$, such that the following square
 commutes for all arrows f : A > B in $A$:

 t(A)
 F(A) o>o G(A)
  
  
 F(f)   G(f)
  
 v v
 F(B) o>o G(B)
 t(B)

 that is to say, such that

 G(f)t(A) = t(B)F(f).

 It is this concept about which it has been said that it
 necessitated the invention of category theory. We shall
 give examples of natural transformations later. For the
 moment, we are interested in another example of a category.

 Example C8. Given categories $A$ and $B$, the 'functor category' $B$^$A$ has
 as objects functors F : $A$ > $B$ and as arrows natural transformations.
 The 'identity' natural transformation 1_F : F > F is of course given
 by stipulating that (1_F)(A) = 1_(F(A)) for each object A of $A$.
 If t : F > G and u : G > H are natural transformations,
 their 'composition' u o t is given by stipulating that

 (u o t)(A) = u(A)t(A)

 for each object A of $A$.

 L&S, page 8.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
Remark On Notation. An expression like "1_F(A)"
should be interpreted as equivalent to "1_(F(A))".
HOC. Note 8
 To appreciate the usefulness of natural transformations,
 the reader should prove for himself the following, which
 supports Slogan 3.

 Proposition 2.2. When objects such as sets, small graphs, and
 $M$sets are viewed as functors into Sets (see Examples F1 to F3
 in Section 1), the morphisms between two objects are precisely the
 natural transformations. Thus, the categories of sets, small graphs,
 and $M$sets may be identified with the functor categories Sets^$1$,
 Sets^(o>>o), and Sets^$M$, respectively.

 Of course, morphisms between sets are mappings, morphisms between graphs
 were described in Definition 1.3, and morphisms between $M$sets are
 $M$homomorphisms. (An $M$homomorphism f : A > B between $M$sets
 is a mapping such that f(ma) = mf(a) for all m in M and a in A.

 We record three more basic isomorphisms in the spirit of Proposition 1.6.

 Proposition 2.3. For any categories $A$, $B$, $C$,

 $A$^$1$ ~=~ $A$,

 $C$^($A$ x $B$) ~=~ ($C$^$B$)^$A$,

 ($A$ x $B$)^$C$ ~=~ $A$^$C$ x $B$^$C$.

 We shall leave the lengthy proof of this to the reader. We only mention here
 the functor $C$^($A$ x $B$) > ($C$^$B$)^$A$, which will be used later.
 We describe its action on objects by stipulating that it assigns to
 a functor F : $A$ x $B$ > $C$ the functor F* : $A$ > $C$^$B$
 which is defined as follows:

 For any object A of $A$,

 the functor F*(A) : $B$ > $C$
 is given by

 F*(A)(B) = F(A, B),
 F*(A)(g) = F(1_A, g),

 for any object B of $B$
 and any arrow g : B > B' in $B$.

 For any arrow f : A > A',

 the natural transformation F*(A) > F*(A')
 is given by

 F*(f)(B) = F(f, 1_B),

 for all objects B of $B$.

 Finally, to any natural transformation t : F > G
 between functors F, G : $A$ x $B$ > $C$ we assign
 the natural transformation t* : F* > G* which is
 given by

 t*(A)(B) = t(A, B)

 for all objects A of $A$ and B of $B$.

 L&S, pages 89.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
Remark on Notation. In this transcription the symbol "o>>o"
indicates the small category that is otherwise represented,
minus identity arrows, by either of the following diagrams:
. > .
>
or
oo oo
  >  
   
  >  
oo oo
HOC. Note 9
 This may be as good a place as any to mention that
 natural transformations may also be composed with
 functors.

 Definition 2.4. In the situation

 F
 L > K
 $D$ > $A$ $B$ > $C$,
 >
 G

 if t : F > G is a natural transformation, one obtains natural
 transformations Kt : KF > KG between functors from $A$ to $C$
 and tL : FL > GL between functors from $D$ to $B$ defined as
 follows:

 (Kt)(A) = K(t(A)),

 (tL)(D) = t(L(D)),

 for all objects A of $A$ and D of $D$.

 If H : $A$ > $B$ is another functor and
 u : G > H another natural transformation,
 then the reader will easily check the
 following "distributive laws":

 K(u o t) = (Ku) o (Kt),

 (u o t)L = (uL) o (tL).

 L&S, pages 910.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 10
 If we compare Slogans 1 and 3, we are led to ask:
 which categories may be viewed as categories of
 functors into Sets? In preparation for an answer
 to that question we need another definition.

 Definition 2.5. If A and B are objects of a category $A$,
 we denote by Hom_$A$ (A, B) the class of arrows A > B.
 (Later, the subscript $A$ will often be omitted.)
 If it so happens that Hom_$A$ (A, B) is a set
 for all objects A and B, $A$ is said
 to be 'locally small'.

 One purpose of this definition is
 to describe the following functor.

 Example F4. If $A$ is a locally small category,
 then there is a functor

 Hom_$A$ : $A$^op x $A$ > Sets.

 For an object (A, B) of $A$^op x $A$, the value of this
 functor is Hom_$A$ (A, B), as suggested by the notation.
 For an arrow (g, h) : (A, B) > (A', B') of $A$^op x $A$,
 where g : A' > A and h : B > B' in $A$, Hom_$A$ (g, h)
 sends f in Hom_$A$ (A, B) to hfg in Hom_$A$ (A', B').

 Applying the isomorphism

 Sets^($A$^op x $A$) > (Sets^$A$)^($A$^op)

 of Proposition 2.3, we obtain a functor

 (Hom_$A$)* : $A$^op > Sets^$A$

 and, dually, a functor

 (Hom_$A$^op)* : $A$ > Sets^($A$^op).

 We shall see that the latter functor allows us to assert that
 $A$ is isomorphic to a "full" subcategory of Sets^($A$^op).

 L&S, page 10.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 11
 Definition 2.6. A 'subcategory' $C$ of a category $B$ is any category whose
 class of objects and arrows is contained in the class of objects and arrows
 of $C$ respectively and which is closed under the "operations" source, target,
 identity, and composition. By saying that a subcategory $C$ of $B$ is 'full'
 we mean that, for any objects C, C' of $C$, Hom_$C$ (C, C') = Hom_$B$ (C, C').

 For example, a proper subgroup of a group is a subcategory
 which is not full, but the category of Abelian groups is
 a full subcategory of the category of all groups.

 The arrows F > G in Sets^($A$^op) are natural transformations.
 We therefore write Nat(F, G) in place of Hom(F, G) in Sets^($A$^op).

 Objects of the latter category are sometimes called "contravariant" functors
 from $A$ to Sets. Among them is the functor h_A = Hom_$A$ (, A) which sends
 the object A' of $A$ onto the set Hom_$A$ (A', A) and the arrow f : A' > A"
 onto the mapping Hom_$A$ (f, 1_A) : Hom_$A$ (A", A) > Hom_$A$ (A', A).

 The following is known as Yoneda's Lemma.

 Proposition 2.7. If $A$ is locally small and F : $A$^op > Sets,
 then Nat(h_A, F) is in onetoone correspondence with F(A).

 Proof. If a is in F(A), we obtain a natural transformation ?a? : h_A > F
 by stipulating that ?a?(B) : Hom_$A$ (B, A) > F(B) sends g : B > A onto
 F(g)(a). (Notice that F is contravariant, so F(g) : F(A) > F(B).) Conversely,
 if t : h_A > F is a natural transformation, we obtain the element t(A)(1_A)
 in F(A). It is a routine exercise to check that the mappings a ~> ?a? and
 t ~> t(A)(1_A) are inverse to one another.

 L&S, pages 1011.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 12
 Definition 2.8. A functor H : $A$ > $B$ is
 said to be 'faithful' if the induced mappings

 Hom_$A$ (A, A') > Hom_$B$ (H(A), H(A'))

 sending f : A > A' onto H(f) : H(A) > H(A')
 for all A, A' in $A$ are injective and 'full'
 if they are surjective. A 'full embedding'
 is a full and faithful functor which is also
 injective on objects, that is, for which
 H(A) = H(A') implies A = A'.

 Corollary 2.9. If $A$ is locally small, the Yoneda functor

 (Hom_$A$^op)* : $A$ > Sets^($A$^op)

 is a full embedding.

 Proof. Writing H = (Hom_$A$^op)*,
 we see that the induced mapping

 Hom(A, A') > Nat(H(A), H(A'))

 sends f : A > A' onto the natural transformation
 H(f) : H(A) > H(A') which, for all objects B of $A$,
 gives rise to the mapping

 H(f)(B) = Hom(1_B, f) : Hom(B, A) > Hom(B, A').

 Now f is in H(A')(A), hence ?f? : H(A) > H(A'),
 as defined in the proof of Proposition 2.7,
 is given by

 ?f?(B)(g) = H(A')(g)(f)

 = Hom_$A$ (g, 1_A')(f)

 = fg

 = Hom_$A$ (1_B, f)(g)

 = H(f)(B)(g),

 hence ?f? = H(f).

 Thus the mapping f ~> H(f) is a bijection
 and so H is full and faithful.

 Finally, to show that H is injective on objects,
 assume H(A) = H(A'), then Hom(A, A) = Hom (A, A'),
 so A' must be the target of the identity arrow 1_A,
 thus A' = A.

 L&S, page 11.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 13
I am skipping ahead to Part 1 of L&S  we have been reading
from Part 0 (Introduction to Category Theory) all this time 
in order to pick up a quantum of motivation for the endeavor.
 Part 1. Cartesian Closed Categories & Lambda Calculus

 Introduction to Part 1

 Lambda calculus or combinatory logic is a topic that logicians have studied
 since 1924. Cartesian closed categories are more recent in origin, having
 been invented by Lawvere (1964, see also Eilenberg & Kelly, 1966). Both are
 attempts to describe axiomatically the process of substitution, so it is not
 surprising to find that these two subjects are essentially the same. More
 precisely, there is an equivalence of categories between the category of
 cartesian closed categories and the category of typed lambda calculi with
 surjective pairing. This remains true if cartesian closed categories are
 provided with a weak natural numbers object and if typed lambda calculi
 are assumed to have a natural numbers type with iterator.

 This result depends crucially on the 'functional completeness' of cartesian
 closed categories, which goes back to the functional completeness of combinatory
 logic due to Schoenfinkel and Curry. It asserts, in particular, that every arrow
 !f!(x) : 1 > B expressible as a polynomial in an indeterminate arrow x : 1 > A
 over a cartesian closed category $A$ (with given objects A and B) is uniquely
 of the form

 x f
 1 > A > B,

 where f is an arrow in $A$ not depending on x.

 Functional completeness is closely related to the 'deduction theorem' for
 positive intuitionistic propositional calculi presented as deductive systems.
 In our version, it associates with each proof T  B on the assumption T  A
 a proof of A  B without assumptions. However, functional completeness goes
 beyond this; it asserts that the proof of T  B on the assumption T  A is,
 in some sense, 'equivalent' to the proof by transitivity:

 T  A A  B
 .
 T  B

 Deductive systems are also used to construct free cartesian closed categories
 generated by graphs, whose arrows A > B are equivalence classes of proofs.

 L&S, page 41.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 14
 Historical Perspective on Part 1

 For the purpose of this discussion, it will suffice
 to define a 'cartesian closed category' as a category
 with an object 1 and operations () x () and ()^()
 on objects satisfying conditions which assure that:

 1. Hom(A, 1) ~=~ {*},

 2. Hom(C, A x B) ~=~ Hom(C, A) x Hom(C, B),

 3. Hom(A, C^B) ~=~ Hom(A x B, C).

 Here {*} is supposed a typical oneelement set,
 chosen once and for all.

 It will be instructive to reverse the historical process
 and see how combinatory logic could have been discovered
 by rigorous application of Occam's razor.

 Condition 1 says that, for each object A, there is only
 one arrow A > 1, hence we might as well forget about
 the object 1 and the arrow leading to it. However,
 the arrows 1 > A must be preserved, let us call
 them 'entities of type A'.

 Condition 2 says that the arrows C > A x B are in onetoone
 correspondence with pairs of arrows C > A and C > B, hence
 we might as well forget about the arrows going into A x B.

 Condition 3 says that the arrows A x B > C are in onetoone
 correspondence with the arrows A > C^B, hence we might as well
 forget about the arrows coming out of A x B too. Consequently,
 we might as well forget about A x B altogether.

 We end up with a category with a binary operation "exponentiation"
 on objects. Of course, this will have to satisfy some conditions,
 but these may be a little difficult to state. It is interesting
 to note that Eilenberg and Kelly went on a similar 'tour de force'
 and ended up with a category with exponentiation in which some
 monstrous diagrams had to commute.

 We may go a little further and forget about the category structure
 as well, since arrows A > B are in onetoone correspondence with
 entities of type B^A, which we shall write B <= A for typographical
 reasons. Composition of arrows is then represented by a single
 entity of type ((C <= A) <= (C <= B)) <= (B <= A). However, we
 do need a binary operation on entities called "application":
 given entities f of type B^A and a of type A, there is
 an entity f`a (read "f of a") of type B.

 We have now arrived at typed combinatory logic. But even this
 came rather late in the thinking of logicians, although type
 theory had already been introduced by Russell and Whitehead.
 Let us continue on our journey backwards in time and apply
 Occam's razor still further.

 An arrow A > B in a category has a source A and a target B.
 But what if there is only one object? Such a category is called
 a monoid and, indeed, the original presentation of combinatory logic
 by Curry does describe a monoid with additional structure. (The binary
 operation of multiplication is defined in terms of the primitive operation
 of application.) Underlying untyped combinatory logic there is a tacit
 ontological assumption, namely that all entities are functions and
 that each function can be applied to any entity.

 To present the work of Schoenfinkel and Curry in the modern language of
 universal algebra, one should think of an algebra A = (A, `, I, K, S),
 where A is a set, (`) is a binary operation, and I, K, S are elements
 of A, or nullary operations. According to Schoenfinkel, these had to
 satisfy the following identities:

 I`a = a,

 (K`a)`b = a,

 ((S`f)`g)`c = (f`c)`(g`c),

 for all elements a, b, c, f, g in A. (Actually, he defined I in terms of
 K and S, but this is beside the point here.) The reader may think of I as the
 identity function and of K as the function which assigns to every entity a the
 function with constant value a. It is a bit more difficult to put S into words
 and we shall refrain from doing so.

 Schoenfinkel (1924) discovered a remarkable result, usually called
 "functional completeness". In modern terms this may be expressed
 as follows: Every polynomial !f!(x) in an indeterminate x over
 a Schoenfinkel algebra A can be written in the form f`x, where
 f is in A.

 From now on in our exposition,
 the arrow of time will point
 in its customary direction.

 L&S, pages 4244.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 15
Notation. The Greek letters phi and lambda
are represented as !f! and lam, respectively.
 Curry (1930) rediscovered Schoenfinkel's results, but went further in his
 thinking. He discovered that a finite set of additional identities would
 assure that the element f representing the polynomial !f!(x) was uniquely
 determined. We shall not reproduce these identities here, but reserve the
 name "Curry algebra" for a Schoenfinkel algebra which satisfies them.

 Using the terminology of Church (1941), one writes f as lam_x !f!(x),
 which must then satisfy two equations:

 beta. (lam_x !f!(x))`a = !f!(a),

 eta. lam_x (f`x) = f.

 (Many mathematicians write x ~> !f!(x) in place of lam_x !f!(x).)

 A lambda calculus is a formal language built up from variables x, y, z, ...
 by means of term forming operations ()`() and lam_x (), the latter
 being assumed to bind all free occurrences of the variable x occurring
 in (), such that the two given identities hold. The basic entities
 I, K, S may then be defined formally by:

 I = lam_x x,

 K = lam_x lam_y x,

 S = lam_u lam_v lam_z ((u`z)`(v`z)).

 (Actually, Church would have called such a language
 a lambdaKcalculus and Curry might have called it
 a lambdabetaetacalculus, but never mind.)

 L&S, page 44.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 16
 Both Curry and Church realized the importance of introducing types into
 combinatory logic or lambda calculus. To do this one just has to observe
 that, if f has type B <= A and a has type A, then f`a has type B, as already
 pointed out. In particular, the basic entities I, K, and S, suitably equipped
 with subscripts, should have prescribed types. Thus I_A, K_A,B, and S_A,B,C
 have types:

 I_A : A <= A,

 K_A,B : (A <= B) <= A,

 S_A,B,C : ((A <= C) <= (B <= C)) <= ((A <= B) <= C),

 respectively.

 As pointed out in the book by Curry and Feys, these three types are precisely
 the axioms of intuitionistic implicational logic. Moreover, the rule which
 computes the type of f`a from those of f and a corresponds to modus ponens:
 from B <= A and A one may infer B. In fact, Schoenfinkel's definition of
 I in terms of K and S is exactly the same as the known proof that A <= A
 may be derived from the other two axioms.

 Incidentally, several early texts on propositional logic
 used only implication and negation as primitive connectives,
 having eliminated conjunction and other connectives by suitable
 definitions, again inspired by Occam's razor. The observation that
 it is more natural to retain conjunction and other connectives as
 primitive is probably due to Gentzen and was made again by Lawvere
 in a categorical context.

 Curry and Feys also realized that the proof of Schoenfinkel's version
 of functional completeness was really the same as the proof of the usual
 deduction theorem: if one can prove B on the assumption A then one can
 prove B <= A without any assumption. In fact, it asserts that the proof
 of B on the assumption A is "equivalent" to the proof by modus ponens:

 B <= A A
 .
 B

 From our viewpoint, Curry's version of functional completeness,
 which insists on the uniqueness of f such that !f!(x) equals f`x,
 then presupposes that entities are not proofs but equivalence
 classes of proofs.

 L&S, pages 4445.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 17
 In connection with cartesian closed categories,
 the analogy with propositional logic requires that
 1, A x B, and B^A be written as T, A & B, and B <= A,
 respectively. (For other structured categories, the
 senior author had pointed out and exploited a similar
 analogy with certain deductive systems, beginning with
 the socalled "syntactic calculus" (see Lambek, 1961b,
 Appendix 2), which traces the idea back to joint work
 with George D. Findlay in 1956.) The relation between
 lambda calculi with product types and cartesian closed
 categories then suggests the observation:

 types = formulas,

 terms = proofs,

 or rather equivalence classes of proofs. Independently,
 W. Howard in 1969 privately circulated an influential
 manuscript on the equivalence of typed lambda terms
 (there called "constructions") and derivations in
 various calculi, which finally appeared in the
 1980 Curry Festschrift (see also Stenlund 1972).

 L&S, page 45.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 18
 Up to this point we have avoided discussing natural numbers.
 In an untyped lambda calculus natural numbers are easily
 defined (Church 1941). Writing

 f o g = lam_x (f`(g`x)),

 one regards 2 as the process which assigns to every function f
 its iterate f o f, so 2`f = f o f. Formally, one defines

 0 = lam_x I,

 1 = lam_x x = I,

 2 = lam_x (x o x),

 ... .

 The successor function and the usual operations
 on natural numbers are defined by

 s`n = lam_y (y o (n`y)),

 m+n = lam_y ((m`y) o (n`y)),

 m n = m o n,

 m^n = n`m.

 Unfortunately, there are difficulties with this as soon as one introduces
 types. For, if a has type A, then f and g in (f o g)`a both have types
 A^A = B say. For n`f to make sense, n will have to be of type B^B, and
 for n`m to make sense, m will have to be of type B. If m and n are to
 have the same type, we are thus led to require that B^B = B, which is
 certainly not true in general, although Dana Scott (1972) showed that
 one may have B^B ~=~ B.

 One way to get around this difficulty is to postulate a type N
 of natural numbers, a term 0 of type N, and term forming operations
 s()(successor) and i(, , )(iterator) such that s(n) has type N and
 i(a, h, n) has type A for all n of type N, a of type A, and h of type A^A.
 These must satisfy suitable equations to assure that i(a, h, n) means (h^n)`a.

 The analogous concept for cartesian closed categories is
 a 'weak natural numbers object': an object N with arrows
 0 : 1 > N and s : N > N and a process which assigns to all
 arrows a : 1 > A and h : A > A an arrow g : N > A such that
 the following diagram commutes:

 0 s
 1 > N > N
   
   
   g  g
   
 v v v
 1 > A > A
 a h

 Lawvere had defined a (strong) natural numbers object
 to be such that the arrow g : N > A with the above
 property is unique.

 For us, a typed lambda calculus contains by definition the
 structure given by N, 0, s, and i. In stating Theorem 11.3
 on the equivalence between typed lambda calculus and cartesian
 closed categories, we stipulate that the latter be equipped with
 a weak natural numbers object. Such categories were first studied
 formally by MarieFrance Thibault (1977, 1982), who called them
 "prerecursive categories", although they are implicit in the
 work of logicians, e.g. in Goedel's functionals of finite
 type (1958).

 We would have preferred to state Theorem 11.3 for
 strong natural numbers objects in Lawvere's sense.
 Unfortunately, we do not yet know how to handle
 the corresponding notion in typed lambda calculus
 equationally. As far as we can see, the iterators
 appearing in the literature (e.g. Troelstra 1973)
 mostly correspond to weak natural numbers objects.
 See however Sanchis (1967).

 For further historical comments
 the reader is referred to
 the end of Part 1.

 L&S, pages 4547.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 19
 1. Propositional Calculus as a Deductive System

 We recall (Part 0, Definition 1.2) that, for categories,
 a 'graph' consists of two classes and two mappings
 between them:

 oo source oo
   >  
  Arrows   Objects 
   >  
 oo target oo

 In graph theory the arrows are usually called "oriented edges"
 and the objects "nodes" or "vertices", but in various branches
 of mathematics other words may be used. Instead of writing

 source(f) = A,

 target(f) = B,
 f
 one often writes f : A > B or A > B. We shall
 look at graphs with additional structure which are
 of interest in logic.

 A 'deductive system' is a graph with a specified arrow

 1_A
 R1a. A > A,

 and a binary operation on arrows ('composition')

 f g
 A > B B > C
 R1b. 
 gf
 A > C

 Logicians will think of the objects of a deductive system
 as 'formulas', of the arrows as 'proofs' (or 'deductions'),
 and of an operation on arrows as a 'rule of inference'.

 Logicians should note that a deductive system is concerned
 not just with unlabelled entailments or sequents A > B
 (as in Gentzen's proof theory), but with deductions or
 proofs of such entailments. In writing f : A > B
 we think of f as the "reason" why A entails B.

 L&S, page 47.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 20
 A 'conjunction calculus' is a deductive system dealing with truth and
 conjunction. Thus we assume that there is given a formula 'T' (= true)
 and a binary operation '&' (= and) for forming the conjunction A & B of
 two given formulas A and B. Moreover, we specify the following additional
 arrows and rules of inference:

 O_A
 R2. A > T,

 p1_A,B
 R3a. A & B > A,

 p2_A,B
 R3b. A & B > B,

 f g
 C > A C > B
 R3c. .
 <f, g>
 C > A & B

 Here is a sample proof of the socalled commutative law for conjunction:

 p2_A,B p1_A,B
 A & B > B A & B > A
 .
 <p2_A,B, p1_A,B>
 A & B > B & A

 The presentation of this proof in treeform, while instructive,
 is superfluous. It suffices to denote it by <p2_A,B, p1_A,B>
 or even by <p2, p1> when the subscripts are understood.

 Another example is the proof of the associative law

 !a!_A,B,C : (A & B) & C > A & (B & C).

 It is given by:

 1.1. !a!_A,B,C = <p1_A,B o p1_A&B,C, <p2_A,B o p1_A&B,C, p2_A&B,C>>

 or just by !a! = <p1 p1, <p2 p1, p2>>.

 If we compose operations on proofs, we obtain "derived" rules of inference.
 For example, consider the derived rule:

 p1_A,C f p2_A,C g
 A & C > A A > B A & C > C C > D
  
 A & C > B A & C > D
 .
 f & g
 A & C > B & D

 It asserts that from proofs f and g one can construct the proof

 f & g = <f p1_A,C, g p2_A,C>.

 Thus we may write simply

 f g
 A > B C > D
 .
 f & g
 A & C > B & D

 L&S, pages 4748.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 21
 A 'positive intuitionistic propositional calculus' is a conjunction calculus
 with an additional binary operation '<=' (= if). Thus, if A and B are formulas,
 so are T, A & B, and A <= B. (Yes, most people write B => A instead.) We also
 specify the following new arrow and rule of inference:

 !e!_A,B
 R4a. (A <= B) & B > A,

 h
 C & B > A
 R4b. .
 h*
 C > A <= B

 Actually we should have written h* = !L!^C_A,B (h),
 but the subscripts are usually understood from context.

 We note that from R4b, with the help of R4a, one may derive

 !h!_C,B
 R'4b. C > (C & B) <= B,

 g
 D > A
 R'4c. .
 g <= 1_B
 (D <= B) > (A <= B)

 To derive these, we put

 !h!_C,B = (1_C&B)*,

 (g <= 1_B) = (g !e!_D,B)*.

 Conversely, one may derive R4b from R'4b and R'4c by putting

 h* = (h <= 1_B) !h!_C,B.

 For future reference, we also note the following two
 derived rules of inference:

 f
 A > B
 ,
 #f
 T > B <= A

 g
 T > B <= A
 ,
 g`
 A > B

 where

 #f = (f p2_1,A)*,

 g` = !e!_B,A <g O_A, 1_A>.

 L&S, pages 4849.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 22
 An 'intuitionistic propositional calculus' is more than a
 positive one; it requires also falsehood and disjunction,
 that is, a formula 'F' (= false) and an operation 'v' (= or)
 on formulas, together with the following additional arrows:

 []_A
 R5. F > A,

 k1_A,B
 R6a. A > A v B,

 k2_A,B
 R6b. B > A v B,

 !z!^C_A,B
 R6c. (C <= A) & (C <= B) > C <= (A v B).

 The last mentioned arrow gives rise to and may be derived from the rule:

 f g
 A > C B > C
 R'6c. .
 [f, g]
 A v B > C

 Indeed, we may put

 [f, g] = (!z!^C_A,B <#f, #g>)`.

 If we want 'classical' propositional logic, we must also require:

 R7. F <= (F <= A) > A.

 L&S, pages 4950.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 23
 2. The Deduction Theorem

 The usual deduction theorem asserts:

 if A & B  C then A  C <= B.

 This result is here incorporated into R4,
 with the deduction symbol '' replaced
 by actual arrows in the appropriate
 deductive system $L$:

 h : A & B > C
 .
 h* : A > C <= B

 However, at a higher level, the horizontal bar
 functions as a deduction symbol, and we obtain
 a new form of the deduction theorem. It deals
 with proofs from an 'assumption' x : T > A.

 In other words, we form a new deductive system $L$(x) by adjoining a new
 arrow x : T > A and talk about proofs !f!(x) : B > C in this new system.
 More precisely, $L$(x) has the same formulas (= objects) as $L$ and its
 proofs (= arrows) !f!(x) are freely generated from those of $L$ and the
 new arrow x by the appropriate rules of inference (= operations).
 Clearly, if $L$ is a conjunction calculus (positive calculus,
 intuitionistic calculus, classical calculus, respectively),
 so is the new deductive system $L$(x).

 Proposition 2.1. (Deduction Theorem). In a conjunction,
 positive, intuitionistic, or classical calculus, with every
 proof !f!(x) : B > C from the assumption x : T > A there is
 associated a proof f : A & B > C in $L$ not depending on x.

 We write

 f = !k!_x:A !f!(x),

 where the subscript "x : A"
 indicates that x is of type A.

 Proof. [L&S, pages 5152].

 Remark 2.1. Logicians don't usually talk of an assumption x : T > A
 if there is a known proof a : T > A or another assumption y : T > A,
 but from our algebraic viewpoint this does not matter.

 The reader is warned that we do not distinguish notationally
 between composition of proofs g o f in $L$ and in $L$(x).

 In $L$

 !k!_x:A (gf) = g f p2_A,B,

 and in $L$(x) it is

 !k!_x:A (gf) = g p2_A,B <p1_A,B, f p2_A,B>.

 L&S, pages 5052.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 24
 3. Cartesian Closed Categories Equationally Presented

 A 'category' is a deductive system in which
 the following equations hold between proofs:

 E1. f 1_A = f,

 1_B f = f,

 (hg)f = h(gf),

 for all f : A > B, g : B > C, h : C > D.

 Thus, from any deductive system one may obtain a category
 by imposing a suitable equivalence relation between proofs.

 A 'cartesian category' is both a category
 and a conjunction calculus satisfying the
 additional equations:

 E2. f = O_A, for all f : A > T.

 E3a. p1_A,B <f, g> = f,

 E3b. p2_A,B <f, g> = g,

 E3c. <p1_A,B h, p2_A,B h> = h,

 for all f : C > A, g : C > B, h : C > A & B.

 E2 asserts T is a 'terminal object'.
 One usually writes T = 1, and
 we shall do so from now on.
 An equivalent formulation
 of E2 is:

 E'2. 1_1 = O_1,

 O_B f = O_A,

 for all f : A > B.

 E3 asserts that A & B is a product of A and B
 with projections p1_A,B and p2_A,B. We shall
 adopt the usual notation A & B = A x B.

 As a consequence of E3, let us record the 'distributive law':

 <f, g> h = <fh, gh>

 for all f : C > A, g : C > B, h : D > C.

 Proof. We show this as follows, omitting subscripts:

 <f, g> h = <p1(<f, g> h), p2(<f, g> h)>

 = <(p1<f, g>) h, (p2<f, g> h)>

 = <fh, gh>.

 We shall also write

 f x g = f & g = <f p1_A,C, g p2_A,C>,

 whenever f : A > B and g : C > D, and note
 that x : $A$ x $A$ > $A$ is a functor (see
 Part 0, Definition 1.3). Indeed, we have:

 1_A x 1_C = <1_A p1_A,C, 1_C p2_A,C>

 = <p1_A,C, p2_A,C>

 = <p1_A,C 1_AxC, p2_A,C 1_AxC>

 = 1_AxC,

 and, omitting subscripts, by the distributive law,

 (f x g)(f' x g') = <f p1, g p2> <f' p1, g' p2>

 = <f p1 <f' p1, g' p2>, g p2 <f' p1, g' p2>

 = <f f' p1, g g' p2>

 = f f' x g g'.

 L&S, pages 5253.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 25
 A 'cartesian closed category' is a cartesian category $A$ with
 additional structure R4 satisfying the additional equations:

 E4a. !e!_A,B <h* p1_C,B, p2_C,B> = h,

 E4b. (!e!_A,B <k p1_C,B, p2_C,B>)* = k,

 for all h : C & B > A, k : C > (A <= B).

 Thus, a cartesian closed category is
 a positive intuitionistic propositional
 calculus satisfying the equations E1 to E4.
 This illustrates the general principle that
 one may obtain interesting categories from
 deductive systems by imposing an appropriate
 equivalence relation on proofs.

 Inasmuch as we have decided to write C & B = C x B,
 we shall also write A <= B = A^B. The equations E4
 assure that the mapping

 *
 Hom(C x B, A) > Hom(C, A^B)

 is a onetoone correspondence. In fact,
 one has the following universal property
 of the arrow

 !e!_A,B : A^B x B > A:

 given any arrow h : C x B > A, there is
 a unique arrow h* : C > A^B such that

 !e!_A,B (h* x 1_B) = h.

 The reader who recalls the notion of
 adjoint functor [Part 0, Section 3]
 will recognize that therefore

 U_B = ()^B

 is right adjoint to the functor

 F_B = () x B : $A$ > $A$

 with coadjunction

 !e!_B : F_B U_B > 1_$A$

 defined by

 !e!_B (A) = !e!_A,B.

 Thus, an equivalent description
 of cartesian closed categories
 makes use of the adjunction

 !h!_B : 1_$A$ > U_B F_B

 in place of *, where

 !h!_B (C) = !h!_C,B : C > (C x B)^B,

 and stipulates equations expressing the
 functoriality of U_B and the naturality
 of !e!_B and !h!_B as well as the two
 adjunction equations. Here:

 U_B (f) = f^B = (f <= 1_B) = (f !e!_A,B)*,

 for all f : A > A'. (For !h!_B see R'4b in Section 1.)

 L&S, pages 5354.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 26
 We shall state another useful equation,
 which may also be regarded as a kind of
 distributive law.

 h*k = (h <k p1_D,B, p2_D,B>)*,

 where h : A x B > C and k : D > A.

 Proof. We show this as follows,
 omitting subscripts:

 h*k = (!e! <h*k p1, p2>)*

 = (!e! <h*p1, p2> <k p1, p2>)*

 = (h <k p1, p2>)*.

 Quite important is the following bijection,
 which holds in any cartesian closed category.

 Hom(A, B) ~=~ Hom(1, B^A).

 Proof. As in Section 1, with any f : A > B
 we associate #f : 1 > B^A, called the 'name'
 of f by Lawvere, given by

 #f = (f p2_1,A)*,

 and with any g : 1 > B^A we associate
 g` : A > B, read "g of", given by

 g` = !e!_B,A <g O_A, 1_A>.

 We then calculate

 (#f)` = f,

 #(g`) = g.

 L&S, pages 5455.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 27
I return to Part 0 to pick up one or two bits
of indispensable material that I skipped over.
 3. Adjoint Functors

 Perhaps the most important concept which category theory has helped
 to formulate is that of adjoint functors. Aspects of this idea were
 known even before the advent of category theory and we shall begin by
 looking at one such.

 We recall from Proposition 1.4 that a functor $A$ > $B$ between two
 preordered sets $A$ = (A, =<) and $B$ = (B, =<) regarded as categories is
 an order preserving mapping F : A > B, that is, such that, for all elements
 a, a' of A, if a =< a' then F(a) =< F(a'). A functor G : $B$ > $A$ in the
 opposite direction is said to be 'right adjoint' to F provided, for all
 a in A and b in B,

 F(a) =< b if and only if a =< G(b).

 Classically, a pair of order preserving mappings (F, G) is called
 a covariant 'Galois correspondence' if it satisfies this condition.

 Once we have such a Galois correspondence, we see immediately that
 GF : $A$ > $A$ is a 'closure operation', that is, for all a, a' in A,

 a =< GF(a),

 GFGF(a) =< GF(a),

 if a =< a' then GF(a) =< GF(a').

 Similarly, FG : $B$ > $B$ may be called an 'interior operation':
 it satisfies the conditions dual to the above.

 In a preordered set an isomorphism a ~=~ a' just means that
 a =< a' and a' =< a. (In a 'poset', or 'partially ordered set',
 one has the antisymmetry law: if a ~=~ a' then a = a'.) We note
 that it follows from the above that GFGF(a) ~=~ GF(a) and, dually,
 FGFG(b) ~=~ FG(b), for all a in A and b in B.

 The most interesting consequence of a Galois correspondence is
 this: the functors F and G set up a onetoone correspondence between
 isomorphism classes of "closed" elements a of A such that GF(a) ~=~ a
 and isomorphism classes of "open" elements b of B such that FG(b) ~=~ b.
 We also say that F and G determine an 'equivalence' between the preordered
 set $A$_0 of closed elements of $A$ and the preordered set $B$_0 of open
 elements of $B$. The following picture illustrates this principle of
 "unity of opposites", which will be generalized later in this section.

 F
 >
 $A$ < $B$
 ^ G ^
  
  
  
 inclusion   inclusion
  
  
  
  
 $A$_0 <> $B$_0
 equivalence

 L&S, page 12.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 28
 Before carrying out the promised generalization, let us
 look at a couple of examples of Galois correspondence;
 others will be found in the exercises.

 Example G1. Take both $A$ and $B$ to be (N, =<),
 the set of natural numbers with the usual ordering,
 and let:

 F(0) = 0,

 F(a) = p_a = the a^th prime number, when a > 0,

 G(b) = !p!(b) = the number of primes =< b.

 Then F and G form a pair of adjoint functors and
 the "unity of opposites" describes the biunique
 correspondence between positive integers and
 prime numbers.

 Many examples arise from a binary relation L c X x Y between two sets X and Y.
 Take $A$ = (Pow(X), <c), the set of subsets of X ordered by inclusion ['<c'],
 and $B$ = (Pow(Y), >c), ordered by inverse inclusion ['>c'], and put

 F(A) = {y in Y : for all x in A, (x, y) is in L},

 G(B) = {x in X : for all y in B, (x, y) is in L},

 for all A c X and B c Y.

 This situation is called a 'polarity'; it gives rise to an isomorphism between
 the lattice $A$_0 of "closed" subsets of X and the lattice $B$_0 of "closed"
 subsets of Y. (Notice that the open elements of $B$ are closed subsets of Y.)

 Example G2. Take X to be the set of points of a plane, Y the set of halfplanes,
 and write "(x, y) in L" for "x in y". Then, for any set A of points, GF(A) is the
 intersection of all halfplanes containing A, in other words, the 'convex hull' of A.
 The "unity of opposites" here asserts that there are two equivalent ways of describing
 a convex set: by the points on it or by the halfplanes containing it.

 L&S, page 13.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 29
 We shall now generalize the notion of adjoint functor from
 preordered sets to arbitrary categories. In so doing, we
 shall bow to a notational prejudice of many categorists
 and replace the letter "G" by the letter "U".
 ("U" is for "underlying", "F" for "free".)

 Definition 3.1. An 'adjointness' between categories
 $A$ and $B$ is given by a quadruple (F, U, !h!, !e!),
 where F : $A$ > $B$ and U : $B$ > $A$ are functors
 and !h! : 1_$A$ > UF and !e! : FU > 1_$B$ are
 natural transformations such that

 (U !e!) o (!h! U) = 1_U,

 (!e! F) o (F !h!) = 1_F.

 One says that U is 'right adjoint' to F
 or that F is 'left adjoint' to U and one
 calls !h! and !e! the two 'adjunctions'.

 Before going into examples, let us give another formulation of what
 will turn out to be an equivalent concept (in Proposition 3.3 below).

 Definition 3.2. A solution to the 'universal mapping problem'
 for a functor U : $B$ > $A$ is given by the following data:
 for each object A of $A$ an object F(A) of $B$ and an arrow
 !h!(A) : A > UF(A) such that, for each object B of $B$ and
 each arrow f : A > U(B) in $A$, there exists a unique arrow
 f* : F(A) > B in $B$ such that U(f*)!h!(A) = f.

 o F(A)
 \
 \
 UF(A) o \
 ^\ \ f*
  \ \
  \ \
  U(f*) v
  \ o B
  \
  v
 !h!(A)  o U(B)
  ^
  /
  /
  / f
  /
  /
 /
 A o

 Example U1. Let $B$ be the category of monoids, $A$ the category of sets,
 U : $B$ > $A$ the forgetful (= underlying) functor, F(A) the free monoid
 generated by the set A, and !h!(A) the obvious mapping of A into the
 underlying set of the monoid F(A).

 Definition 3.2'. Of special interest is the case of
 Definition 3.2 in which $B$ is a full subcategory of $A$
 and U : $B$ > $A$ is the inclusion. Then !h!(A) : A > F(A)
 may be called the 'best approximation' of A by an object of $B$
 in the sense that, for each arrow f : A > B with B in $B$, there is
 a unique arrow f* : F(A) > B such that f*!h!(A) = f. One then says
 that $B$ is a full 'reflective' subcategory of $A$ with 'reflector' F
 and 'reflection' !h!.

 Example U2. Let $A$ be the category of Abelian groups,
 $B$ the full subcategory of torsion free Abelian groups,
 and F(A) = A/T(A), where T(A) is the torsion subgroup of A.

 L&S, pages 1314.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 30
 Proposition 3.3. Given two categories $A$ and $B$, there is a
 onetoone correspondence between adjointnesses (F, U, !h!, !e!)
 and solutions (F, !h!, *) of the universal mapping problem for
 U : $B$ > $A$.

 Proof. If (F, U, !h!, !e!) is given, put f* = !e!(B)F(f).
 Conversely, if U and (F, !h!, *) are given, for each f : A > A',
 put F(f) = (!h!(A')f)* and check that this makes F a functor and
 !h! a natural transformation; moreover, define !e!(B) = (1_U(B))*.

 It follows from symmetry considerations that an adjointness is also
 equivalent to a "couniversal mapping problem", obtained by dualizing
 Definition 3.2. (A left adjoint to $B$ > $A$ is a right adjoint to
 $B$^op > $A$^op.)

 There is yet another way of looking at adjoint functors,
 at least when $A$ and $B$ are locally small.

 Proposition 3.4. An adjointness (F, U, !h!, !e!)
 between locally small categories $A$ and $B$ gives
 rise to and is determined by a natural isomorphism:

 Hom_$B$ (F(), ) ~=~ Hom_$A$ (, U())

 between functors $A$^op x $B$ > Sets.

 We leave the proof of this to the reader.

 Even if $A$ is not locally small, there is a natural bijection between
 arrows FA > B in $B$ and arrows A > UB in $A$. Logicians may think
 of such a bijection as comprising two rules of inference; and this
 point of view has been quite influential in the development of
 categorical logic. An analogous situation in the propositional
 calculus would be the bijection between proofs of the entailments
 C & A  B and A  C => B (see Exercise 4 below). Inasmuch as
 implication is a more sophisticated notion than conjunction,
 the adjointness here explains the emergence of one concept
 from another. This point of view, due to Lawvere, may be
 summarized by yet another slogan, illustrations of which
 will be found throughout this book (see, for instance,
 Exercise 6 below).

 Slogan 4. Many important concepts in mathematics arise
 as adjoints, right or left, to previously known functors.

 We summarize two important properties of adjoint functors,
 which will be useful later.

 Proposition 3.5.

 1. Adjoint functors determine each other uniquely
 up to natural isomorphisms.

 2. If (U, F) and (U', F') are pairs of adjoint functors,
 as in the diagram:

 U' U
 > >
 $C$ $B$ $A$,
 < <
 F' F

 then (UU', F'F) is also an adjoint pair.

 L&S, pages 1415.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Note 31
 4. Equivalence of Categories

 ...

 L&S, pages 1617.

 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
HOC. Higher Order Categorical Logic • Discussion
HOC. Discussion Note 1
MA = Murray Altheim
L&S = Lambek & Scott
MA: You recommended I read Lambek and Scott's "Introduction to
Higher Order Categorical Logic", so I ordered a copy from
Cambridge University Press. It came over the holidays.
I suppose I should have heeded the series title:
"Cambridge Studies in *Advanced* Mathematics",
because I feel completely stupid. I can't claim
to understand more than the first page or two,
which I wouldn't want to be quizzed on either.
The stuff I can understand leads me to believe
it's very interesting domain, but it also makes
me think that sometimes I'm just not cut out
for certain types of thinking, or have received
literally no training necessary to grok this:
L&S:  Let [squiggle] be the category of Abelian groups and [another_squiggle]
 the opposite of the category of topological Abelian groups. Let K be the
 compact group of the reals modulo the integers: K [equal sign with three
 lines] ['R' in an outline font]/['Z' in an outline font]. For any abstract
 Abelian group A, define F(A) as the group of all homomorphisms of A into K,
 with the topology induced by K. For any topological Abelian group B, define
 U(B) as the group of all continuous homomorphisms of B into K. Then U and F
 can easily (!!!) be seen to be the object parts of a pair of adjoint functors.
 Here [squirrellyA sub 0] is [squirrelyA], while [squirrellyB sub 0] is the
 opposite of the category of compact Abelian groups. The 'unity of opposites'
 asserts the wellknown (!!!) Pontrjagin (no, I did not misspell that) duality
 between abstract and compact Abelian groups. The last statement of Proposition
 4.2 tells us that the compact Abelian groups form a reflective subcategory of
 the category of all topological Abelian groups.
MA: This is on page 18. By page 137 it's pretty much all formulae composed
of symbols I've never even seen before. *sigh* This is pretty much
completely opaque to me, and I can't imagine being able to spend
the time in the next five years to understand it well enough
to make any use of it.
Actually, if could you get as far as understanding the definition
of a natural transformation on page 8, that would be a lot. But
there's no reason to expect that you could do that on your own.
I spent a lot of time on the SUO list trying to get across basic
categorytheoretic ways of thinking in concrete contexts without
ever mentioning the legion of officious titles, ideas which folks
would need to grasp before they could understand 1/10 of what RK
is talking about, but they seem to prefer the razzledazzle to
the nittygritty.
What you ran into is the sort of place where the authors try
to impress people who have had a couple of years of graduate
courses in algebra and topology with the fact that they can
sum up those two years of study in a single paragraph. But
that is just a sideshow bit, and you can ignore all of it.
In my notes to the Ontology List I skipped from page 11 to
page 41 just by way of getting to the logical motivations
a little quicker.
Category theory is really just a study in metaphors.
And, well, metaphors between metaphors (= functors).
And, well, metaphors between functors (= nat.trans).
In one of my first courses in this stuff we got to
do a "creative" final paper, and I wrote an intro
to the main ideas in the form of a science fiction
story. Probably still have it buried in a basement
box somewhere, but don't know if I could find it now.
The stuff that I append here could provide us with a good couple
of months of study, but then you'd have the most essential bits.
[HOC. Higher Order Categorical Logic. Notes 0107]
HOC. Discussion Note 2
JA = Jon Awbrey
L&S = Lambek & Scott
MA = Murray Altheim
JA: Actually, if could you get as far as understanding the definition
of a natural transformation on page 8, that would be a lot. But
there's no reason to expect that you could do that on your own.
I spent a lot of time on the SUO list trying to get across basic
categorytheoretic ways of thinking in concrete contexts without
ever mentioning the legion of officious titles, ideas which folks
would need to grasp before they could understand 1/10 of what RK
is talking about, but they seem to prefer the razzledazzle to
the nittygritty.
MA: Both the razzledazzle and the nittygritty are snowing me right now.
JA: What you ran into is the sort of place where the authors try
to impress people who have had a couple of years of graduate
courses in algebra and topology with the fact that they can
sum up those two years of study in a single paragraph. But
that is just a sideshow bit, and you can ignore all of it.
In my notes to the Ontology List I skipped from page 11 to
page 41 just by way of getting to the logical motivations
a little quicker.
MA: So basically, you're saying to ignore the "Introduction to Category Theory"
section and jump straight to "Cartesian closed categories and Lambda Calculus"?
After understanding through page 8?
MA: Part of the difficult is language: I don't have any experience
in this particular use of English. Even simple stuff is not so
simple without the background, and I tend to not like to guess.
E.g., the idea that a morphism "sends objects of $A$ to objects
of $B$ and arrows of $A$ to arrows of $B$" might sound ostensibly
like some kind of "morphing", but I have no idea what it really
means in practice. "sends"? How is that different from "maps"?
"maps" and "sends" are just synonyms here.
in the beginning one starts with concrete categories:
HOC. http://suo.ieee.org/ontology/thrd36.html#03373
HOC 1. http://suo.ieee.org/ontology/msg03373.html
L&S:  Part 0. Introduction to Category Theory

 1. Categories and Functors

 In this section we present what our reader is expected
 to know about category theory. We begin with a rather
 informal definition.

 Definition 1.1. A 'concrete category' is a collection of two kinds
 of entities, called 'objects' and 'morphisms'. The former are sets
 which are endowed with some kind of structure, and the latter are
 mappings, that is, functions from one object to another, in some
 sense preserving that structure. Among the morphisms, there is
 attached to each object A the 'identity mapping' 1_A : A > A
 such that 1_A(a) = a for all a in A. Moreover, morphisms
 f : A > B and g : B > C may be 'composed' to produce
 a morphism gf : A > C such that (gf)(a) = g(f(a))
 for all a in A.
this is the checklist for any category:
1. what are the objects?
2. what are the arrows?
3. is there an identity arrow for each object?
4. is there a composition operation on arrows?
for a concrete category, the objects are sets.
for a concrete category, the arrows are mappings between sets.
(in concrete categories, the arrows are usually called morphisms).
L&S:  Example C1. The category of 'sets'. Its objects are
 arbitrary sets and its morphisms are arbitrary mappings.
 We call this category "Sets".
Category C1 = Sets.
C1 takes any set to be an object of the category.
C1 takes any mapping between sets to be an arrow.
(this is a case of trivial structure to preserve.)
the next examples are sets plus "structure",
in these cases, something like a "sums table",
a "times table", or a "less than" relation is
defined on the sets of the category and also
preserved by the arrows of the category.
L&S:  Example C2. The category of 'monoids'. Its objects are
 monoids, that is, semigroups with unity element, and its
 morphisms are homomorphisms, that is, mappings which
 preserve multiplication (the semigroup operation)
 and the unity element.
a classic example would be the logarithm mapping from
a domain (D, *) of real numbers under multiplication (*)
to a domain (E, +) of real numbers under addition (+).
1. log : (D, *) > (E, +).
the log function maps the object D to the object E,
mapping the structure of (*) to the structure of (+).
2. log(1) = 0.
the log function maps the multiplicative identity 1
to the additive identity 0.
3. log(x * y) = log(x) + log(y)
one says: "the image of the product is the sum of the images".
this describes a form of analogy or metaphor between (*) and (+).
L&S:  Example C3. The category of 'preordered sets'.
 Its objects are preordered sets, that is, sets
 with a reflexive and transitive relation on them,
 and its morphisms are monotone mappings, that is,
 mappings that preserve this relation.
say that (D, <) is a reflexive and transitive order relation on D.
say that (E, =<) is a reflexive and transitive order relation on E.
a "monotone" (orderpreserving) mapping f : D > E is one such that:
x < y implies f(x) =< f(y),
again, we can think of f as describing or establishing an analogy or
a metaphor between the ordering (<) on D and the ordering (=<) on E.
JA: Category theory is really just a study in metaphors.
And, well, metaphors between metaphors (= functors).
And, well, metaphors between functors (= nat.trans).
In one of my first courses in this stuff we got to
do a "creative" final paper, and I wrote an intro
to the main ideas in the form of a science fiction
story. Probably still have it buried in a basement
box somewhere, but don't know if I could find it now.
MA: While stories like that sometimes help, they also sometimes
just mask the actual content. What would be great would be
a discussion of this in plain English, if that were possible.
JA: The stuff that I append here could provide us with a good couple
of months of study, but then you'd have the most essential bits.
MA: ??? You have appended the literal contents of pages 48 of the book.
yes, just that much.
MA: And I must say that while the symbols in the book are difficult,
their transformations into ASCII make it quite a bit harder to
deal with.
you get used to it. and it's quick.
MA: Maybe if we just honed in on something at the beginning?
Say, Example C4, where we see definitions for deductive
systems and categories.
okay, tomorrow ...
HOC. Discussion Note 3
JP = Jack Park
JP: My sentiments, precisely.
JP: I must say, however, that the book 'Conceptual Mathematics:
A first introductiton to categories' by F. William Lawvere
and Stephen H. Schanuel really do start out simple diagrams,
spreadsheet tables, and realworld examples worked out to
introduce the concepts. I'm getting a lot from it.
yes, that's a good book. the reason for tackling the lambek and scott,
though, was because of the connection they make to logic and computation.
JP: What I have asked for is something akin to some realworld problem.
One that's, at once, simple, and potentially hairy, one that can start
simple and grow like mad. Rosen introduced a "metabolismrepair" object
as the canonical living organism that his teacher Raschevsky was looking
for. When he drew it as a commutative diagram, he noticed that reproduction
fell out for free. I'd like to understand how that can come to pass. Then,
I'd really like to imagine or learn how to take the nodes in that commutative
diagram and expand on them, turning them into some higherorder organism with
real, functional, relational components. In the end, I see that as a prototype
for a lot of realworld things, like social systems, diseases, and everything
that's not driven by pure newtonian mechanics.
can you draw me a copy of this here, or supply a link?
i only looked into rosen once many years ago, and have
hysterical amnesia for my time on the complexity list.
HOC. Discussion Note 4
JP = Jack Park
JP: You know, I got to thinking about arrows and identity arrows.
It occurred to me that a fully fleshedout topic is one of
those. It has identity, and it has arrows that point to
other topics.
what is the composition?
HOC. Discussion Note 5
JA = Jon Awbrey
L&S = Lambek & Scott
MA = Murray Altheim
JA: "maps" and "sends" are just synonyms here.
MA: Okay. (he says, thinking he might be on firm ground but never
sure if the mud will suddenly slide out from under him ...)
a function f is a set of ordered pairs f = {<x1, y1>, <x2, y2>, ...}.
we say that f associates, maps, sends, etc. x1 to y1, x2 to y2, ... .
and all of those are just conventional idioms for the ordered pairs.
in short, functions have a purely formal existence, but we can use
their forms to describe more concrete things like associations of
ideas, maps in geography, processes that take place in time, etc.
the set of all ordered pairs that you can form by taking
the first element from X and the second element from Y
is called the "cartesian product" X x Y.
we write S c T for "S is a subset of T".
a "2adic relation" L between X and Y is an arbitrary set of ordered pairs
with the first from X and the second from Y, that is, any subset of X x Y,
so we can say that L c X x Y.
a "function" f : X > Y is a special case of a 2adic relation f c X x Y
that has just this one additional property: every element x in X appears
in one and only one ordered pair of f.
so functions all look like this:
1 2 3 4 5 6
o o o o o o X
\  /  / /
\  /  / / f
\/ / /
o o o o o Y
1 2 3 4 5
JA: in the beginning one starts with concrete categories:
HOC. http://suo.ieee.org/ontology/thrd36.html#03373
HOC 1. http://suo.ieee.org/ontology/msg03373.html
L&S:  Part 0. Introduction to Category Theory

 1. Categories and Functors

 In this section we present what our reader is expected
 to know about category theory. We begin with a rather
 informal definition.

 Definition 1.1. A 'concrete category' is a collection of two kinds
 of entities, called 'objects' and 'morphisms'. The former are sets
 which are endowed with some kind of structure, and the latter are
 mappings, that is, functions from one object to another, in some
 sense preserving that structure. Among the morphisms, there is
 attached to each object A the 'identity mapping' 1_A : A > A
 such that 1_A(a) = a for all a in A. Moreover, morphisms
 f : A > B and g : B > C may be 'composed' to produce
 a morphism gf : A > C such that (gf)(a) = g(f(a))
 for all a in A.
MA: Okay. Baby steps. I'm not going to
pretend to understand something I'm
not sure I actually do understand.
JA: this is the checklist for any category:
1. what are the objects?
2. what are the arrows?
3. is there an identity arrow for each object?
MA: What does this mean? That there is an arrow connecting
the object to some other object establishing its identity?
What constitutes "identity" in this context? If we're not
connecting these objects to things in the real world (I'm
assuming given my hand was recently slapped that we're solely
in the realm of abstract mathematics), that "identity" has some
mathematical definition.
a concrete category C consists of a set of objects, called Obj(C),
and a set of arrows, or (homo)morphisms, called Arr(C), or Hom(C).
(the extra language is left over from a recent cultural revolution).
in a concrete category C the objects are just sets,
let's say there's the set X = {1, 2, 3, 4, 5} in C
and the set Y = {1, 2, 3, 4, 5, 6} in C.
1 2 3 4 5
o o o o o X
o o o o o o Y
1 2 3 4 5 6
the definition then demands that 1_X, the identity arrow for X,
and 1_Y, the identity arrow for Y, must be included in Arr(C),
that is, listed among the arrows of C.
concretely considered, 1_X is the mapping from X to X that
looks like this, reading the ordered pairs down the page:
1 2 3 4 5
o o o o o X
    
     1_X
    
o o o o o X
1 2 3 4 5
one writes 1_X (x) = x for all x in X.
concretely considered, 1_Y is the mapping from Y to Y that
looks like this, reading the ordered pairs down the page:
1 2 3 4 5 6
o o o o o o Y
     
      1_Y
     
o o o o o o Y
1 2 3 4 5 6
One writes 1_Y (x) = x for all x in Y.
You could stop right there and have a valid example of a category,
as the identity arrows trivially compose according to the rules,
1_X o 1_X = 1_X and 1_Y o 1_Y = 1_Y. (We sometimes use "o" for
emphasis to indicate the composition operation.)
JA: 4. Is there a composition operation on arrows?
MA: What does this mean? ("composition operation")
on the arrows rather than the objects?
In a concrete category, composition of arrows
is just the usual composition of functions.
An ordered pair of functions, f : U > V and g : X > Y,
in that order, is "composable" if V = X. that is to say,
the target of f is the source of g. At this point, folks
will follow different conventions, and even shift paradigms
from one context to the next. Unfortunately, it is slightly
more popular to do things backasswards, in the following way:
If we have f : X > Y and g : Y > Z, then the composition of g on f
is the function written g o f : X > Z, or just gf : X > Z, and this
is defined by the equation (g o f)(x) = gf(x) = g(f(x)) for all x in X.
By way of illustration, suppose we have X and Y as above,
and suppose we add the object Z = {1, 2, 3, 4, 5, 6, 7}.
Consider the function f : X > Y that looks like this:
1 2 3 4 5
o o o o o X
\ \ \ \ 
\ \ \ \  f
\ \ \ \
o o o o o o Y
1 2 3 4 5 6
Consider the function g : Y > Z that looks like this:
1 2 3 4 5 6
o o o o o o Y
\ \ \ \ \ 
\ \ \ \ \  g
\ \ \ \ \
o o o o o o o Z
1 2 3 4 5 6 7
The composition g o f : X > Z can be visualized
by following up f with g in the following manner:
1 2 3 4 5
o o o o o X
\ \ \ \ 
\ \ \ \  f
\ \ \ \
o o o o o o Y
\ \ \ \ \ 
\ \ \ \ \  g
\ \ \ \ \
o o o o o o o Z
1 2 3 4 5 6 7
Then you just replace each 2edge path with
a 1edge path, ignoring the multiplicities:
1 2 3 4 5
o o o o o X
\ \ \ \ 
\ \ \ \  g o f
\ \ \ \
o o o o o o o Z
1 2 3 4 5 6 7
JA: For a concrete category, the objects are sets.
For a concrete category, the arrows are mappings between sets.
(In concrete categories, the arrows are usually called morphisms).
MA: So this is not simple graph theory, since the graph objects
are themselves graphs (I'm assuming that a set can be modeled
as a graph?)
Yes, this is more like an "application of graph theory" to codify
at a fairly high level of abstraction the structure in a category.
(Graph theorists simpliciter usually do not talk this way, and would
insist on calling them "labeled digraphs" or labeled directed graphs.)
Thus, a node in one of these directed graphs stands for a whole set of
elements, and a single directed edge stands for a function between sets.
L&S:  Example C1. The category of 'sets'. Its objects are
 arbitrary sets and its morphisms are arbitrary mappings.
 We call this category "Sets".
JA: Category C1 = Sets.
C1 takes any set to be an object of the category.
C1 takes any mapping between sets to be an arrow.
(This is a case of trivial structure to preserve.)
MA: This seems fairly clear.
JA: The next examples are sets plus "structure",
in these cases, something like a "sums table",
a "times table", or a "less than" relation is
defined on the sets of the category and also
preserved by the arrows of the category.
L&S:  Example C2. The category of 'monoids'. Its objects are
 monoids, that is, semigroups with unity element, and its
 morphisms are homomorphisms, that is, mappings which
 preserve multiplication (the semigroup operation)
 and the unity element.
MA: The unity element being "="? What does the
phrase "preserve multiplication" mean?
A "semigroup" is a set with a 2ary operation (*)
subject to an associative law, a*(b*c) = (a*b)*c.
Sometimes you think of (*) as multiplication,
and write a*b as ab. Other times you think
of (*) as addition, and write a*b as a+b.
The "unity element" is just another name
for the identity element in the system.
If you are thinking of (*) on analogy
with multiplication, you will use "1"
and write 1*a = a = a*1. If you are
thinking of (*) on analogy with sum,
you use "0" and write 0+a = a = a+0.
Have to break here. Will pick up at "preserve".
HOC. Discussion Note 6
JA: The next examples are sets plus "structure",
in these cases, something like a "sums table",
a "times table", or a "less than" relation is
defined on the sets of the category and also
preserved by the arrows of the category.
L&S:  Example C2. The category of 'monoids'. Its objects are
 monoids, that is, semigroups with unity element, and its
 morphisms are homomorphisms, that is, mappings which
 preserve multiplication (the semigroup operation)
 and the unity element.
MA: The unity element being "="? What does the
phrase "preserve multiplication" mean?
JA: A "semigroup" is a set with a 2ary operation (*)
subject to an associative law, a*(b*c) = (a*b)*c.
Sometimes you think of (*) as multiplication,
and write a*b as ab. Other times you think
of (*) as addition, and write a*b as a+b.
JA: The "unity element" is just another name
for the identity element in the system.
If you are thinking of (*) on analogy
with multiplication, you will use "1"
and write 1*a = a = a*1. If you are
thinking of (*) on analogy with sum,
you use "0" and write 0+a = a = a+0.
JA: A classic example would be the logarithm mapping from
a domain (D, *) of real numbers under multiplication (*)
to a domain (E, +) of real numbers under addition (+).
1. log : (D, *) > (E, +).
The log function maps the object D to the object E,
mapping the structure of (*) to the structure of (+).
2. log(1) = 0.
The log function maps the multiplicative identity 1
to the additive identity 0.
3. log(x * y) = log(x) + log(y)
One says: "the image of the product is the sum of the images".
this describes a form of analogy or metaphor between (*) and (+).
MA: I *think* I understand this.
That figure of speech  called "chiasma" or "chiasmus" in literary circles 
is one of the recognizable signatures by which you may know that a morphism
has set its hand to the work. Here, the word "image" refers to the morphic
image, that is, the functional result of the structurepreserving function.
Let's try to get at the notion of morphisms as "structurepreserving maps".
Suppose we have two structured sets (X, L) and (Y, M) and a map f : X > Y.
What does it mean that f maps the structure L on X to the structure M on Y?
The use of the word "preserve" for a correspondence established between two
structures will make more sense if you remember that the paradigmatic case
is one where both L and M are thought of under the same name, say (*), (+),
(=<), etc., even if that is strictly speaking an act of great abstraction
wrapped in a figure of hardly heard homophony.
The ingredients of a potential morphism are as follows:
1. We have a set X with a certain "structure" L that is defined on it.
It could a 2adic relation L c X x X that has the properties of an
order relation, or it could be a 3adic relation L c X x X x X that
is associated with a 2ary operation like addition, multiplication,
or any one of several 2ary logical connectives.
2. We have a set Y with a comparable structure M that is defined on it.
For the sake of a concrete example, let's say that both L and M are 3adic
relations of the kind that are associated with 2ary operations. Thus we
can write (X, L) = (X, *) and (Y, M) = (Y, +), where L c X^3 and M c Y^3.
As a generic name for the result of an operation, I'll use "resultant".
3. We are given a mapping f : X > Y, and we would like to test whether
f maps the structure L on X to the structure M on Y, in which case
we will bow to tradition and say that f preserves the respective
attachments of structure in the passage from X to Y.
Here is one way to formulate the property that we need to test.
In order to say that f : X > Y preserves the form of L in the
form of M, the following equation must hold for all u, v in X.
f(u * v) = f(u) + f(v)
In the idiom that is commonly used, we are asking whether the
following parable, properly interpreted, is a constant truth:
The image of the resultant is the resultant of the images.
In order to read this right, you have to keep in mind that
"image of" means "f evaluated at", the first "resultant"
refers to L or (*) evaluated on a pair u, v in X, and
the second "resultant" refers to M or (+) evaluated
on the corresponding pair f(u), f(v) in Y.
Saved by the dinner bell ...
I will use the interval
to rustle up some kinds
of pictures that might
help with this mess.
HOC. Discussion Note 7
Here is a simple example of a morphism f : (X, L) > (Y, M).
Let X be the integers, X = {..., 3, 2, 1, 0, 1, 2, 3, ...},
and let L c X^3 be the 3adic relation on X whose 3tuples we
commonly represent by means of the following "addition table":
... ... ... ... ... ... ...
... [2, 2, 0] [1, 2, 1] [ 0, 2, 2] [ 1, 2, 3] [ 2, 2, 4] ...
... [2, 1, 1] [1, 1, 0] [ 0, 1, 1] [ 1, 1, 2] [ 2, 1, 3] ...
... [2, 0, 2] [1, 0, 1] [ 0, 0, 0] [ 1, 0, 1] [ 2, 0, 2] ...
... [2, 1, 3] [1, 1, 2] [ 0, 1, 1] [ 1, 1, 0] [ 2, 1, 1] ...
... [2, 2, 4] [1, 2, 3] [ 0, 2, 2] [ 1, 2, 1] [ 2, 2, 0] ...
... ... ... ... ... ... ...
The entries in the table have the form [x_1, x_2, x_3], where x_1 + x_2 = x_3.
Let Y be the integers modulo 2, to wit, Y = {0, 1},
and take M c Y^3 as the 3adic relation on Y whose
3tuples are given by the following addition table:
+  0 1
ooo
0  0  1 
ooo
1  1  0 
ooo
The column heads give y_1, the row heads give y_2,
and the entries in the table give y_3 = y_1 + y_2.
The obvious morphism in this case is the map f : X > Y
that sends all even integers in X to the element 0 in Y
and sends all odd integers in X to the element 1 in Y.
We need to check that "the image of the sum is the sum of the images",
otherwise formulated, that f(x_1 + x_2) = f(x_1) + f(x_2), where the
first "+" uses the 1st table and the second "+" uses the 2nd table.
Bur all this just means that:
Evens plus Evens are Even,
Evens plus Odds are Odd,
Odds plus Evens are Odd,
Odds plus Odds are Even,
which is clear enough.
In summary, f gives the parity of an integer, 0 for Even, 1 for Odd,
and the parity of the integer sum is the mod two sum of the parities.
Finally, observe that "structurepreserving" does not imply that all
of the structure is preserved, but only an identifiable aspect of it.
Parity On, Dude!
HOC. Discussion Note 8
MW = Matthew West
MW: First, thank you for this excellent tutorial.
Even I can more or less follow you.
Thanks, and I will share the thanks all round,
as this form of semiautotutorial is largely
dependent on penetrating questions from the
participants to see through the f o g.
MW: Can I chip in a question here. You talk about
structurepreserving functions below. Is that
the same as an isomorphism? If not what is
the difference?
The full official name of a morphism is a "homomorphism",
which was chosen to suggest "same form, more or less",
whereas "isomorphism" means "same form, exactly".
An "isomorphism" f : X > Y is a special case of
a homomorphism from X to Y where f is "bijective",
that is, in some of the other language that gets
used here, f is both "injective" ("onetoone")
and "surjective" ("onto"). (That's the English
"onto", not the Greek "onto", by the way.)
That's how one thinks of it in concrete categories,
anyway, where the objects are just garden variety
sets and all the arrows are ordinary functions.
In categories more abstractly viewed, that is,
purely in terms of the axiomatic properties
that they exemplify, it is usual to give
more elegant definitions of isomorphism.
Lambek & Scott give an abstract definition of isomorphism on page 7.
HOC. http://suo.ieee.org/ontology/thrd36.html#03373
HOC 6. http://suo.ieee.org/ontology/msg03381.html
L&S:  Definition 1.5. An arrow f : A > B in a category
 is called an 'isomorphism' if there is an arrow
 g : B > A such that gf = 1_A and fg = 1_B.
 One writes A ~=~ B to mean that such an
 isomorphism exists and says that
 A is 'isomorphic' with B.
For instance, look at the example of a concrete morphism that I gave next:
HOC Discussion. http://suo.ieee.org/ontology/thrd37.html#05262
HOC Discussion 7. http://suo.ieee.org/ontology/msg05268.html
Here we have a morphism f : X > Y, where X is an infinite set
and Y is a finite set, so f cannot possibly be an isomorphism.
HOC. Discussion Note 9
JA = Jon Awbrey
L&S = Lambek & Scott
MA = Murray Altheim
L&S:  Example C3. The category of 'preordered sets'.
 Its objects are preordered sets, that is, sets
 with a transitive and reflexive relation on them,
 and its morphisms are monotone mappings, that is,
 mappings which preserve this relation.
JA: Say that (D, <) is a reflexive and transitive order relation on D.
Say that (E, =<) is a reflexive and transitive order relation on E.
JA: A "monotone" (orderpreserving) mapping f : D > E is one such that:
MA: Damn, the choices of words are so
strange. "Monotone" to me has to
do with frequencies of sound.
The ties that bind our Fab Four  Arithmetic, Geometry, Music, Physics 
into such a tight band go way way back, but hear the musician in them
borrows if not quiet covers the tune of a physical tension, to wit,
the stretch of a singular cord across the redounding monochord,
and though we might vie to redub our monotonous theme with
monoscalar variations, we'd still have to face the music.
JA: x < y implies f(x) =< f(y),
JA: Again, we can think of f as describing or establishing an analogy or
a metaphor between the ordering (<) on D and the ordering (=<) on E.
MA: "Analogy" and "metaphor"? Simile? Synonym? I suppose any field
borrows terms from other fields, but the cognitive dissonance
for outsiders is pretty high, sorta like learning Bulgarian.
No, actually, like learning Dutch.
No, and I'm guessing that it's probably become more obvious by now,
the use of the term "analogy"  what Aristotle called "paradigm",
that's Greek for "sideshow"  is quite precise in describing
a correspondence of formal structure between two domains. But
we'll be seeing lots more examples of that before we're done.
JA: Category theory is really just a study in metaphors.
And, well, metaphors between metaphors (= functors).
And, well, metaphors between functors (= nat.trans).
In one of my first courses in this stuff we got to
do a "creative" final paper, and I wrote an intro
to the main ideas in the form of a science fiction
story. Probably still have it buried in a basement
box somewhere, but don't know if I could find it now.
Incidentally, there's lots of formal recognition of this theme
in the AI literature. A couple of examples that come to mind
would be the joint work of Holland, Holyoak, Nisbett, Thagard
on induction and related inference processes, and also the work
of Forbus, Gentner, Stevens, et al. on analogy and mental models.
MA: And I must say that while the symbols in the book
are difficult, their transformations into ASCII
make it quite a bit harder to deal with.
JA: You get used to it. And it's quick.
MA: I'm guessing you have *somewhere* provided that ASCII mapping.
It helps that I've got Lambek and Scott in front of me, as this
is one of the first times I've seen the equivalents of your ASCII
given full font and glyph printing. Like $A$, I would never have
guessed what it looked like. I can't imagine what some of those
squiggles look like in ASCII.
At the time, I was using bangbars like !a! for Greek characters
and scripbars like $A$ for script (or Fraktur or Gothic) letters.
But these days I try to get by with one level of fanciness, using
bangbars for both Greek and script, and leaving the resolution of
character to the developing context and the discerning reader's eye.
Most of the other markup is pretty standard: carets to mark superscripts,
like X^3, underscores to mark subscripts, like x_2, single quotes to mark
italics, like 'this'. The isomorphism symbol I transcribe like so, ~=~,
otherwise there's a risk that readers would read "~=" as "not equal".
Plus, no sense trying to be too pretty, as it's obviously a book
that everybody will want to buy sooner or later, anyway.
HOC. Discussion Note 10
While I recover my strength for the imminent trek through Emyn Muil,
here's a conglomerate of concrete material on the relations between
various species of functions and relations in general:
RIG. Relations In General. http://suo.ieee.org/ontology/thrd14.html#04721
01. http://suo.ieee.org/ontology/msg04721.html
02. http://suo.ieee.org/ontology/msg04722.html
03. http://suo.ieee.org/ontology/msg04723.html
04. http://suo.ieee.org/ontology/msg04724.html
A slightly more leisurely introduction to category theory
and a useful supplement to Lambek & Scott can be found in
Mac Lane's 'Categories for the Working Mathematician',
some excerpts from which are collected here:
CAT. Category Theory. http://suo.ieee.org/ontology/thrd14.html#04789
CAT. Category Theory. Links 0123.
HOC. Discussion Note 11
I will now introduce a number of different ways of
looking at morphisms as structure preserving maps.
Let's suppose we have three functions, f : X > Y,
G : X x X > X, and H : Y x Y > Y, that satisfy
the following equation for all pairs u, v in X.
f(G(u, v)) = H(f(u), f(v))
Our morphic leitmotif can be rubricized by way of the following slogan:
The image of the resultant is the resultant of the images.
Here, f produces the images, G the first resultant, and H the second resultant.
Figure 1 presents a diagram of the situation in question.
oo
 
 G H 
 @ @ 
 /\ /\ 
 /  \ /  \ 
 /  v /  v 
 o o o o o o 
 X X X Y Y Y 
 o o o o o o 
 \ \ \ ^ ^ ^ 
 \ \ \ / / 
 \ \ / \ / / 
 \ \ \ / 
 \ / \ / \ / 
 @ @ @ 
 f f f 
 
oo
Figure 1. Structure Preserving Map f : (X, G) > (Y, H)
Figure 1 uses arrows to indicate the relational domains at which
each of the relations f, G, H happens to be functional. That is,
it is more like the feathers of the arrows that serve to mark the
relational domains at which the relations f, G, H are functional,
but it would take yet another construction to make this precise,
as the feathers are not uniquely appointed but many splintered.
Table 2 shows the constraint matrix version of the same thing.
Table 2. f(G(u, v)) = H(f(u), f(v))
ooooo
 % f  f  f 
o=========o=========o=========o=========o
 G % X  X  X 
ooooo
 H % Y  Y  Y 
ooooo
One way to read this Table is in terms of the informational redundancies
that it schematizes. In particular, it can be read to say that when one
satisfies the constraint in the G row, along with all of the constraints
in the f columns, then the constraint in the H row is automatically true.
This is the same information as the equation, f(G(u, v)) = H(f(u), f(v)).
HOC. Discussion Note 12
JA = Jon Awbrey
JP = Jack Park
Re: HOC Discussion 3. http://suo.ieee.org/ontology/msg05264.html
In: HOC Discussion. http://suo.ieee.org/ontology/thrd37.html#05262
JP: My sentiments, precisely.
JP: I must say, however, that the book 'Conceptual Mathematics:
A first introductiton to categories' by F. William Lawvere
and Stephen H. Schanuel really do start out simple diagrams,
spreadsheet tables, and realworld examples worked out to
introduce the concepts. I'm getting a lot from it.
JA: yes, that's a good book. the reason for tackling the lambek and scott,
though, was because of the connection they make to logic and computation.
JP: What I have asked for is something akin to some realworld problem.
One that's, at once, simple, and potentially hairy, one that can start
simple and grow like mad. Rosen introduced a "metabolismrepair" object
as the canonical living organism that his teacher Raschevsky was looking
for. When he drew it as a commutative diagram, he noticed that reproduction
fell out for free. I'd like to understand how that can come to pass. Then,
I'd really like to imagine or learn how to take the nodes in that commutative
diagram and expand on them, turning them into some higherorder organism with
real, functional, relational components. In the end, I see that as a prototype
for a lot of realworld things, like social systems, diseases, and everything
that's not driven by pure newtonian mechanics.
JA: can you draw me a copy of this here, or supply a link?
i only looked into rosen once many years ago, and have
hysterical amnesia for my time on the complexity list.
JP: If you visit:
http://www.people.vcu.edu/~mikuleck/PPRISS3.html
and scroll down just past mid way,
you will see 10C6 drawn and discussed.
this is bizarre! i was just now thinking about all the
old chestnuts about (ill, well)posedness in connection
with the topic of information that was recently revived
on the global brain list.
okay, this helps. on looking into mikulecky's rosen, i begin
to remember that picture of the "modeling relation" and some
of the discussions that we had about it. mostly i remember
a passel of misencounters of the usual 2adic/3adic kind.
will get back to this ...
HOC. Higher Order Categorical Logic • Work Area
HOC. Discussion Work 1
Let's go back and take another look at what is most likely every
child's first example of a nontrivial morphism, namely, any one
of the mappings f : Reals > Reals (roughly speaking) that are
commonly known as "logarithm functions", where you get to pick
your favorite base. In this case, we have G(u, v) = u * v,
H(r, s) = r + s, and the defining formula of the logarithm
map f, namely, f(G(u, v)) = H(fu, fv) comes out looking
like f(u * v) = f(u) + f(v), writing a star (*) and
a plus sign (+) for the ordinary 2ary operations
of arithmetical multiplication and arithmetical
summation, respectively.
oo
 
 {*} {+} 
 @ @ 
 /\ /\ 
 /  \ /  \ 
 /  v /  v 
 o o o o o o 
 X X X Y Y Y 
 o o o o o o 
 \ \ \ ^ ^ ^ 
 \ \ \ / / 
 \ \ / \ / / 
 \ \ \ / 
 \ / \ / \ / 
 @ @ @ 
 f f f 
 
oo
Figure 3. Logarithm Arrow f : (X, *) > (Y, +)
Thus, where the "image" f is the logarithm map,
the first resultant G is the numerical product,
and the second resultant H is the numerical sum,
one then obtains the immemorial mnemonic motto:
 The image of the product is the sum of the images.

 f(u * v) = f(u) + f(v)

 f(G(u, v)) = H(fu, fv)
HOC. Discussion Work 2
LOR. Note 57
I'm going to elaborate a little further on the subject
of arrows, morphisms, or structurepreserving maps, as
a modest amount of extra work at this point will repay
ample dividends when it comes time to revisit Peirce's
"number of" function on logical terms.
The "structure" that is being preserved by a structurepreserving map
is just the structure that we all know and love as a 3adic relation.
Very typically, it will be the type of 3adic relation that defines
the type of 2ary operation that obeys the rules of a mathematical
structure that is known as a "group", that is, a structure that
satisfies the axioms for closure, associativity, identities,
and inverses.
For example, in the previous case of the logarithm map J, we have the data:
 J : R < R (properly restricted)

 K : R < R x R, where K(r, s) = r + s

 L : R < R x R, where L(u, v) = u . v
Real number addition and real number multiplication (suitably restricted)
are examples of group operations. If we write the sign of each operation
in braces as a name for the 3adic relation that constitutes or defines
the corresponding group, then we have the following setup:
 J : {+} < {.}

 {+} c R x R x R

 {.} c R x R x R
In many cases, one finds that both groups are written with the same
sign of operation, typically ".", "+", "*", or simple concatenation,
but they remain in general distinct whether considered as operations
or as relations, no matter what signs of operation are used. In such
a setting, our chiasmatic theme may run a bit like these two variants:
 The image of the sum is the sum of the images.

 The image of the product is the product of the images.
Figure 22 presents a generic picture for groups G and H.
oo
 
 G H 
 @ @ 
 /\ /\ 
 /  \ /  \ 
 v  \ v  \ 
 o o o o o o 
 X X X Y Y Y 
 o o o o o o 
 ^ ^ ^ / / / 
 \ \ \ / / 
 \ \ / \ / / 
 \ \ \ / 
 \ / \ / \ / 
 @ @ @ 
 J J J 
 
oo
Figure 22. Group Homomorphism J : G < H
In a setting where both groups are written with a plus sign,
perhaps even constituting the very same group, the defining
formula of a morphism, J(L(u, v)) = K(Ju, Jv), takes on the
shape J(u + v) = Ju + Jv, which looks very analogous to the
distributive multiplication of a sum (u + v) by a factor J.
Hence another popular name for a morphism: a "linear" map.
HOC. Higher Order Categorical Logic • Document History
Ontology List (Oct 2001)
 http://web.archive.org/web/20081204200346/http://suo.ieee.org/ontology/msg03373.html
 http://web.archive.org/web/20081204200607/http://suo.ieee.org/ontology/msg03375.html
 http://web.archive.org/web/20081204200947/http://suo.ieee.org/ontology/msg03376.html
 http://web.archive.org/web/20081121223306/http://suo.ieee.org/ontology/msg03377.html
 http://web.archive.org/web/20070302103422/http://suo.ieee.org/ontology/msg03378.html
 http://web.archive.org/web/20070302103431/http://suo.ieee.org/ontology/msg03381.html
 http://web.archive.org/web/20070302103442/http://suo.ieee.org/ontology/msg03383.html
 http://web.archive.org/web/20070302103500/http://suo.ieee.org/ontology/msg03384.html
 http://web.archive.org/web/20070302175225/http://suo.ieee.org/ontology/msg03392.html
 http://web.archive.org/web/20070302103242/http://suo.ieee.org/ontology/msg03393.html
 http://web.archive.org/web/20070302103505/http://suo.ieee.org/ontology/msg03394.html
 http://web.archive.org/web/20070302103230/http://suo.ieee.org/ontology/msg03395.html
 http://web.archive.org/web/20070302103517/http://suo.ieee.org/ontology/msg03396.html
 http://web.archive.org/web/20070302103303/http://suo.ieee.org/ontology/msg03398.html
 http://web.archive.org/web/20081121223647/http://suo.ieee.org/ontology/msg03399.html
 http://web.archive.org/web/20070302103539/http://suo.ieee.org/ontology/msg03400.html
 http://web.archive.org/web/20070302103550/http://suo.ieee.org/ontology/msg03401.html
 http://web.archive.org/web/20070302103559/http://suo.ieee.org/ontology/msg03402.html
 http://web.archive.org/web/20070302103609/http://suo.ieee.org/ontology/msg03403.html
 http://web.archive.org/web/20070302103619/http://suo.ieee.org/ontology/msg03404.html
 http://web.archive.org/web/20070302103630/http://suo.ieee.org/ontology/msg03405.html
 http://web.archive.org/web/20070302103639/http://suo.ieee.org/ontology/msg03406.html
 http://web.archive.org/web/20070302103650/http://suo.ieee.org/ontology/msg03409.html
 http://web.archive.org/web/20081121223918/http://suo.ieee.org/ontology/msg03410.html
 http://web.archive.org/web/20070302103712/http://suo.ieee.org/ontology/msg03411.html
 http://web.archive.org/web/20070302103722/http://suo.ieee.org/ontology/msg03412.html
 http://web.archive.org/web/20080906120100/http://suo.ieee.org/ontology/msg03415.html
 http://web.archive.org/web/20070302103742/http://suo.ieee.org/ontology/msg03416.html
 http://web.archive.org/web/20070302103752/http://suo.ieee.org/ontology/msg03417.html
 http://web.archive.org/web/20070302103802/http://suo.ieee.org/ontology/msg03418.html
HOC. Higher Order Categorical Logic • Discussion History
Inquiry List (Jan 2004)
 http://web.archive.org/web/20061013235830/http://stderr.org/pipermail/inquiry/2004January/001037.html
 http://web.archive.org/web/20061013235743/http://stderr.org/pipermail/inquiry/2004January/001038.html
 http://web.archive.org/web/20040331105109/http://stderr.org/pipermail/inquiry/2004January/001039.html
 http://web.archive.org/web/20061014000144/http://stderr.org/pipermail/inquiry/2004January/001040.html
 http://web.archive.org/web/20061013235834/http://stderr.org/pipermail/inquiry/2004January/001041.html
 http://web.archive.org/web/20040331104547/http://stderr.org/pipermail/inquiry/2004January/001042.html
 http://web.archive.org/web/20061013235923/http://stderr.org/pipermail/inquiry/2004January/001043.html
 http://web.archive.org/web/20040331104447/http://stderr.org/pipermail/inquiry/2004January/001044.html
 http://web.archive.org/web/20061013235859/http://stderr.org/pipermail/inquiry/2004January/001045.html
 http://web.archive.org/web/20061013235531/http://stderr.org/pipermail/inquiry/2004January/001047.html
 http://web.archive.org/web/20061013235946/http://stderr.org/pipermail/inquiry/2004January/001050.html
 http://web.archive.org/web/20061013235926/http://stderr.org/pipermail/inquiry/2004January/001052.html
Ontology List (Jan 2004)
 http://web.archive.org/web/20070302153905/http://suo.ieee.org/ontology/msg05262.html
 http://web.archive.org/web/20070302153917/http://suo.ieee.org/ontology/msg05263.html
 http://web.archive.org/web/20070302133411/http://suo.ieee.org/ontology/msg05264.html
 http://web.archive.org/web/20070302164529/http://suo.ieee.org/ontology/msg05265.html
 http://web.archive.org/web/20070302164538/http://suo.ieee.org/ontology/msg05266.html
 http://web.archive.org/web/20070302164548/http://suo.ieee.org/ontology/msg05267.html
 http://web.archive.org/web/20070302164558/http://suo.ieee.org/ontology/msg05268.html
 http://web.archive.org/web/20070302164608/http://suo.ieee.org/ontology/msg05270.html
 http://web.archive.org/web/20070302164618/http://suo.ieee.org/ontology/msg05271.html
 http://web.archive.org/web/20070302164638/http://suo.ieee.org/ontology/msg05273.html
 http://web.archive.org/web/20070302164659/http://suo.ieee.org/ontology/msg05277.html
 http://web.archive.org/web/20070302154121/http://suo.ieee.org/ontology/msg05285.html
INF. Information Flow
INF. Note 1
MOD. Model Theory
MOD. Note 1
 Model Theory

 1. Introduction

 1.1. What Is Model Theory?

 Model theory is the branch of mathematical logic which deals with the
 relation between a formal language and its interpretations, or models.
 We shall concentrate on the model theory of firstorder predicate logic,
 which may be called "classical model theory".

 Let us now take a short introductory tour of model theory.
 We begin with the models which are structures of the kind which
 arise in mathematics. For example, the cyclic group of order 5,
 the field of rational numbers, and the partiallyordered structure
 consisting of all sets of integers ordered by inclusion, are models
 of the kind we consider. At this point we could, if we wish, study
 our models at once without bringing the formal language into the
 picture. We would then be in the area known as universal algebra,
 which deals with homomorphisms, substructures, free structures,
 direct products, and the like. The line between universal
 algebra and model theory is sometimes fuzzy; our own
 usage is explained by the equation:

 universal algebra + logic = model theory.

 To arrive at model theory, we set up our formal language, the
 firstorder logic with identity. We specify a list of symbols
 and then give precise rules by which sentences can be built up
 from the symbols. The reason for setting up a formal language is
 that we wish to use the sentences to say things about the models.
 This is accomplished by giving a basic 'truth definition', which
 specifies for each pair consisting of a sentence and a model one
 of the truth values 'true' or 'false'.

 The truth definition is the bridge connecting the formal language with
 its interpretation by means of models. If the truth value "true" goes
 with the sentence !p! and model !A!, we say that !p! is 'true' in !A!
 and also that !A! is a 'model' of !p!. Otherwise we say that !p! is
 'false' in !A! and that !A! is not a model of !p!. Moreover, we say
 that !A! is a 'model' of a set !S! of sentences iff !A! is a model
 of each sentence in the set !S!.

 Chang & Keisler, 'Model Theory', pages 12.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 2
 1. Introduction

 1.1. What Is Model Theory? (cont.)

 What kinds of theorems are proved in model theory?
 We can already give a few examples. Perhaps the earliest
 theorem in model theory is Löwenheim's theorem (Löwenheim, 1915):
 If a sentence has an infinite model, then it has a countable model.
 Another classical result is the compactness theorem, due to Gödel (1930)
 and Malcev (1936): If each finite subset of a set !S! of sentences has a
 model, then the whole set !S! has a model. As a third example, we may state
 a more recent result, due to Morley (1965). Let us say that a set !S! of
 sentences is 'categorical' in power !a! iff there is, up to isomorphism,
 only one model of !S! of power !a!. Morley's theorem states that, if
 !S! is categorical in one uncountable power, then !S! is categorical
 in every uncountable power.

 These theorems are typical results of model theory. They say something
 negative about the "power of expression" of firstorder predicate logic.
 Thus Löwenheim's theorem shows that no consistent sentence can imply
 that a model is uncountable. Morley's theorem shows that firstorder
 predicate logic cannot, as far as categoricity is concerned, tell
 the difference between one uncountable power and another. And the
 compactness theorem has been used to show that many interesting
 properties of models cannot be expressed by a set of firstorder
 sentences  for instance, there is no set of sentences whose
 models are precisely all the finite models.

 The three theorems we have stated also say something positive about the
 existence of models having certain properties. Indeed, in almost all
 of the deeper theorems in model theory the key to the proof is to
 construct the right kind of a model. For instance, look again
 at Löwenheim's theorem. To prove that theorem, we must begin
 with an uncountable model of a given sentence and construct
 from it a countable model of the sentence. Likewise,
 to prove the compactness theorem we must construct
 a single model in which each sentence of !S! is
 true. Even Morley's theorem depends vitally
 on the construction of a model. To prove
 it we begin with the assumption that
 !S! has two different models of one
 uncountable power and construct
 two different models of every
 other uncountable power.

 Chang & Keisler, 'Model Theory', page 2.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 3
 1. Introduction

 1.1. What Is Model Theory? (cont.)

 There are a small number of extremely important ways in which models
 have been constructed. For example, for various purposes they can
 be constructed from individual constants, from functions, from
 Skolem terms, or from unions of chains. These constructions
 give the subject of model theory unity. To a large extent,
 we have organized this book according to these ways of
 constructing models.

 Another point which gives model theory unity is
 the distinction between 'syntax' and 'semantics'.
 Syntax refers to the purely formal structure of the
 language  for instance, the length of a sentence
 and the collection of symbols occurring in a sentence,
 are syntactical properties. Semantics refers to the
 interpretation, or meaning, of the formal language 
 the truth or falsity of a sentence in a model is
 a semantical property. As we shall soon see,
 much of model theory deals with the interplay
 of syntactical and semantical ideas.

 We now turn to a brief historical sketch.
 The mathematical world was forced to observe
 that a theory may have more than one model in the
 19th century, when Bolyai and Lobachevsky developed
 nonEuclidean geometry, and Riemann constructed a model
 in which the parallel postulate was false but all the
 other axioms were true. Later in the 19th century,
 Frege formally developed the predicate logic, and
 Cantor developed the intuitive set theory in which
 our models live.

 Model theory is a young subject. It was not clearly
 visible as a separate area of research in mathematics
 until the early 1950's. However, its historical roots
 go back to the older subjects of logic, universal algebra,
 and set theory  and some of the early work, such as
 Löwenheim's theorem, is now classified as model theory.
 Other important early developments which contributed to
 the theory are: the extension of Löwenheim's theorem by
 Skolem (1920) and Tarski; the completeness theorem of
 Gödel (1930) and its generalization by Malcev (1936);
 the characterization of definable sets of real numbers,
 the rigorous definition of the truth of a sentence
 in a model, and the study of relational systems by
 Tarski (1931, 1933, 1935a); the construction of a
 nonstandard model of number theory by Skolem (1934);
 and the study of equational classes initiated by
 Birkhoff (1935). Model theory owes a great deal to
 general methods which were originally developed for
 special purposes in older branches of mathematics.
 We shall come across many instances of this in our
 book; to mention just one, the important notion
 of a saturated model (Chapter 5) goes back to the
 !h!_!a! [eta sub alpha]structures in the theory
 of simple order, due to Hausdorff (1914). The
 subject grew rapidly after 1950, stimulated by
 the papers of Henkin (1949), Tarski (1950), and
 Robinson (1950). The phrase "theory of models"
 is due to Tarski (1954). Today the literature in
 the subject is quite extensive. There is a rather
 complete bibliography in Addison, Henkin, and Tarski
 (1965). In recent years, the theory of models has been
 applied to obtain significant results in other fields,
 notably set theory, algebra, and analysis. However,
 until now only a tiny part of the potential strength
 of model theory has been used in such applications.
 It will be interesting to see what happens when
 (and if) the full strength is used.

 Chang & Keisler, 'Model Theory', pages 24.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 4
 1. Introduction

 1.2. Model Theory for Sentential Logic

 In our introduction, Section 1.1, we gave a general idea of the
 flavor of model theory, but we were not yet ready to give many
 details. We shall now come down to earth and give a rigorous
 treatment of model theory for a very simple formal language,
 sentential logic (also known as propositional calculus).
 We shall quickly develop this "toy" model theory along
 lines parallel to the much deeper model theory for
 predicate logic. The basic ideas are the decision
 procedure via truth tables, due to Post (1921),
 and Lindenbaum's theorem with the compactness
 theorem which follows. This section will
 give a preview of what lies ahead in
 our book.

 We are assuming (see Preface) that the reader is already
 thoroughly familiar with sentential, and even predicate,
 logic. Thus we shall feel free to proceed at a fairly
 rapid pace. Nevertheless, we shall start from scratch,
 in order to show what sentential logic looks like when
 it is developed in the spirit of model theory.

 Classical sentential logic is designed to study a set $S$ of simple statements,
 and the compound statements built up from them. At the most intuitive level,
 an intended interpretation of these statements is a "possible world", in
 which each statement is either true or false. We wish to replace these
 intuitive interpretations by a collection of precise mathematical objects
 which we may use as our models. The first thing which comes to mind is
 a function F which associates with each simple statement S one of the
 truth values "true" or "false". Stripping away the inessentials,
 we shall instead take a model to be a subset A of $S$; the idea
 is that S in A indicates that the simple statement S is true,
 and S not in A indicates that the simple statement S is false.

 1.2.1. By a 'model' A for $S$ we simply mean a subset A of $S$.

 Thus the set of all models has the power 2^$S$. Several relations and
 operations between models come to mind; for example, A c B, $S$  A, and
 the intersection ^_(i in I) A_i of a set {A_i : i in I} of models.
 Two distinguished models are the empty set Ø and the set $S$ itself.

 Chang & Keisler, 'Model Theory', page 4.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 5
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We now set up the sentential logic as a formal language.
 The symbols of our language are as follows:

 1. Connectives '&' (and), '~' (not).

 2. Parentheses '(' and ')'.

 3. A nonempty set $S$ of sentence symbols.

 Intuitively, the sentence symbols stand for simple statements,
 and the connectives &, ~ stand for the words used to combine
 simple statements into compound statements. Formally,
 the 'sentences' of $S$ are defined as follows:

 1.2.2. [Definition of a 'sentence']

 1. Every sentence symbol S is a sentence.

 2. If p is a sentence, then (~p) is a sentence.

 3. If p, q are sentences, then (p & q) is a sentence.

 4. A finite sequence of symbols is a sentence
 only if it can be shown to be a sentence by
 a finite number of applications of (1, 2, 3).

 Chang & Keisler, 'Model Theory', page 5.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 6
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 Our definition of a sentence of $S$ may be
 restated as a recursive definition based on
 the length of a finite sequence of symbols:

 A single symbol is a sentence iff it is a sentential symbol;

 A sequence p of symbols of length n > 1 is a sentence
 iff there are sentences q and r of length less than n
 such that p is either (~q) or (q & r).

 Alternatively, our definition may be restated in settheoretical terms:

 The set of all sentences of $S$ is the least set !S!
 of finite sequences of symbols of $S$ such that each
 sentence symbol S belongs to !S! and, whenever q, r
 are in !S!, then (~q), (q & r) belong to !S!.

 No matter how we may think of sentences, the important thing is that
'properties of sentences can only be established through an induction
 based on 1.2.2'. More precisely, to show that every sentence p has
 a given property P, we must establish three things:

 1. Every sentence symbol S has the property P.

 2. If p is (~q) and q has the property P,
 then p has the property P.

 3. If p is (q & r) and q, r have the property P,
 then p has the property P.

 The reader may check his [or her] understanding
 of this point by proving through induction that
 every sentence p has the same number of right
 parentheses as it has left parentheses.

 How many sentences of $S$ are there? This depends on the number
 of sentence symbols S in $S$. Each sentence is a finite sequence
 of symbols. If the set $S$ is finite or countable, then there
 are countably many sentences of $S$. Of course, not every finite
 sequence of symbols is a sentence; for instance, (S_0 & (~S_5))
 is a sentence, but & & ) S_3 and S_0 & ~S_5 are not. If the set
 $S$ of sentence symbols has uncountable cardinal !a!, then the
 set of sentences of $S$ also has power !a!.

 Chang & Keisler, 'Model Theory', pages 56.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 7
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We shall introduce abbreviations to our language in the usual way,
 in order to make sentences more readable. The symbols 'v' (or),
 '=>' (implies), and '<=>' (if and only if) are abbreviations
 defined as follows:

 (p v q) for (~((~p) & (~q))),

 (p => q) for ((~p) v q),

 (p <=> q) for ((p => q) & (q => p)).

 Of course, v, =>, and <=> could just as well have been
 included in our list of symbols as three more connectives.
 However, there are certain advantages to keeping our list of
 symbols short. For instance, 1.2.2 and proofs by induction
 based on it are shorter this way. At the other extreme,
 we could have managed with only a single connective,
 whose English translation is "neither ... nor ...".
 We did not do this because "neither ... nor ..."
 is a rather unnatural connective.

 Another abbreviation which we shall adopt is to
 leave out unnecessary parentheses. For instance,
 we shall never bother to write outer parentheses in
 a sentence  thus ~S is our abbreviation for (~S).
 We shall follow the commonly accepted usage in dropping
 other parentheses. Thus ~ is considered more binding than
 & and v, which in turn are more binding than => and <=>.
 For instance, ~p v q => r & p means ((~p) v q) => (r & p).

 Hereafter we shall use the single symbol $S$ to denote both the
 set of sentence symbols and the language built on these symbols.
 There is no fear of confusion in this double usage since the
 language is determined uniquely, modulo the connectives,
 by the sentence symbols.

 Chang & Keisler, 'Model Theory', pages 67.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 8
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We are now ready to build a bridge between the language $S$ and its models,
 with the definition of the truth of a sentence in a model. We shall express
 the fact that a sentence p is true in a model A succinctly by the special
 notation:

 A = p.

 The relation A = p is defined as follows:

 1.2.3. [Definition of A = p, that is, A is a 'model' of p, or p 'holds' in A]

 1. If p is a sentence symbol S, then A = p holds if and only if S is in A.

 2. If p is q & r, then A = p if and only if both A = q and A = r.

 3. If p is ~q, then A = p iff it is not the case that A = q.

 When A = p, we say that p is 'true' in A, or that p 'holds' in A, or
 that A is a 'model' of p. When it is not the case that A = p, we say
 that p is 'false' in A, or that p 'fails' in A. The above definition of
 the relation A = p is an example of a recursive definition based on 1.2.2.
 The proof that the definition is unambiguous for each sentence p is, of course,
 a proof by induction based on 1.2.2.

 Chang & Keisler, 'Model Theory', page 7.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 9
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 An especially important kind of sentence is a 'valid sentence'.
 A sentence p is called 'valid', in symbols, = p, iff p holds in
 all models for $S$, that is, iff A = p for all A. Some notions
 closely related to validity are mentioned in the exercises.

 At first glance, it seems that we have to examine uncountably many
 different infinite models A in order to find out whether a sentence p
 is valid. This is because validity is a semantical notion, defined in
 terms of models. However, as the reader surely knows, there is a simple
 and uniform test by which we can find out in only finitely many steps
 whether or not a given sentence p is valid.

 This decision procedure for validity is based on a syntactical notion,
 the notion of a tautology. Let p be a sentence such that all the sentence
 symbols which occur in p are among the n + 1 symbols S_0, S_1, ..., S_n.
 Let a_0, a_1, ..., a_n be a sequence made up of the two letters 't', 'f'.
 We shall call such a sequence an 'assignment'.

 1.2.4. The 'value' of a sentence p for the assignment a_0, ..., a_n
 is defined recursively as follows:

 1. If p is the sentence symbol S_m, m =< n, then the value of p is a_m.

 2. If p is ~q, then the value of p is the opposite of the value of q.

 3. If p is q & r, then the value of p is t if the values of q and r
 are both t, and otherwise the value of p is f.

 Notice how similar Definitions 1.2.3 and 1.2.4 are. The only
 essential difference is that 1.2.3 involves an infinite model A,
 while 1.2.4 involves only a finite assignment a_0, ..., a_n.

 1.2.5. Let p be a sentence and let S_0, ..., S_n
 be all the sentence symbols occurring in p.
 The sentence p is said to be a 'tautology',
 in symbols,  p, iff p has the value t
 for every assignment a_0, ..., a_n.

 We shall use both of the symbols = and  in many
 ways throughout this book. To keep things straight,
 remember this:

 = is used for semantical ideas,

  is used for syntactical ideas.

 The value of a sentence p for an assignment a_0, ..., a_n may be very easily
 computed. We first find the values of the sentence symbols occurring in p
 and then work our way through the smaller sentences used in building up
 the sentence p. A table showing the value of p for each possible
 assignment a_0, ..., a_n is called a 'truth table' of p. We shall
 assume that truth tables are already quite familiar to the reader,
 and that he [or she] knows how to construct a truth table of a
 sentence. Truth tables provide a simple and purely mechanical
 procedure to determine whether a sentence p is a tautology 
 simply write down the truth table for p and check to see
 whether p has the value t for every assignment.

 1.2.6. Proposition. Suppose that all the sentence symbols occurring in p
 are among S_0, S_1, ..., S_n. Then the value of p for an assignment
 a_0, a_1, ..., a_n, ..., a_(n+m) is the same as the value of p for
 the assignment a_0, a_1, ..., a_n.

 Chang & Keisler, 'Model Theory', pages 78.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 10
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We now prove the first of a series of theorems
 which state that a certain syntactical condition
 is equivalent to a semantical condition.

 1.2.7. Theorem. (Completeness Theorem).

  p if and only if = p.

 In words, a sentence is a tautology
 if and only if it is valid.

 Proof. Let p be a sentence and let all the sentence symbols in p
 be among S_0, ..., S_n. Consider an arbitrary model A.
 For m = 0, 1, ..., n, put a_m = t if S_m is in A,
 and a_m = f if S_m is not in A. This gives us
 an assignment a_0, a_1, ..., a_n. We claim:

 1. A = p if and only if the value of p for
 the assignment a_0, a_1, ..., a_n is t.

 This can be readily proved by induction. It is immediate
 if p is a sentence symbol S_m. Assuming that (1) holds
 for p = q and for p = r, we see at once that (1) holds
 for p = ~q and p = q & r.

 Now let S_0, ..., S_n be all the sentence symbols occurring in p.
 If p is a tautology, then by (1), p is valid. Since every assignment
 a_0, a_1, ..., a_n can be obtained from some model A, it follows from (1)
 that, if p is valid, then p is a tautology. 

 Our decision procedure for  p now can be used to decide whether p is valid.
 Several times we shall have an occasion to use the fact that a particular
 sentence is a tautology, or is valid. We shall never take the trouble
 actually to give the proof that a sentence of $S$ is valid, because
 the proof is always the same  we simply look at the truth table.

 Chang & Keisler, 'Model Theory', pages 89.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 11
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 Let us now introduce the notion of
 a formal deduction in our logic $S$.

 The 'Rule of Detachment' (or 'Modus Ponens') states:

 From q and q => p, infer p.

 We say that p is 'inferred' from q and r
 by detachment iff r is the sentence q => p.

 Now consider a finite or infinite set !S! of $S$.

 A sentence p is 'deducible' from !S!, in symbols, !S!  p,
 iff there is a finite sequence q_0, q_1, ..., q_n of sentences
 such that p = q_n, and each sentence q_m is either a tautology,
 belongs to !S!, or is inferred from two earlier sentences of
 the sequence by detachment. The sequence q_0, q_1, ..., q_n
 is called a 'deduction' of p from !S!. Notice that p is
 deducible from the empty set of sentences if and only if
 p is a tautology.

 We shall say that !S! is 'inconsistent'
 iff we have !S!  p for all sentences p.
 Otherwise, we say that !S! is 'consistent'.

 Finally, we say that !S! is 'maximal consistent' iff
 !S! is consistent, but the only consistent set of
 sentences which includes !S! is !S! itself.

 The proposition below contains facts which
 can be found in most elementary logic texts.

 1.2.8. Proposition.

 1. If !S! is consistent
 and !C! is the set of all
 sentences deducible from !S!,
 then !C! is consistent.

 2. If !S! is maximal consistent
 and !S!  p, then p is in !S!.

 3. !S! is inconsistent if and only if
 !S!  S & ~S (for any S in $S$).

 4. Deduction Theorem.

 If !S! _ {q}  p, then !S!  q => p.

 Chang & Keisler, 'Model Theory', pages 910.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 12
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 1.2.9. Lemma. (Lindenbaum's Theorem).

 Any consistent set !S! of sentences can be enlarged
 to a maximal consistent set !C! of sentences.

 Proof. Let us arrange all of the sentences of $S$ in a list:

 p_0, p_1, p_2, ..., p_!a!, ...

 The order in which we list them is immaterial,
 as long as the list associates in a oneone
 fashion an ordinal number with each sentence.

 We shall form an increasing chain
 of consistent sets of sentences:

 !S! = !S!_0 c !S!_1 c !S!_2 c ... c !S!_!a! c ...

 If !S! _ {p_0} is consistent, define !S!_1 = !S! _ {p_0}.

 Otherwise, define !S!_1 = !S!.

 At the !a!^th stage, we define:

 1. !S!_(!a! + 1) = !S!_!a! _ {p_!a!}

 if !S!_!a! _ {p_!a!} is consistent;

 2. Otherwise define:

 !S!_(!a! + 1) = !S!_!a!.

 At limit ordinals !a! take unions:

 !S!_!a! = _^(!b! < !a!) !S!_!b!.

 Now let !C! be the union of all the sets !S!_!a!.

 We claim that !C! is consistent.

 Suppose not.

 Then there is a deduction

 q_0, q_1, ..., q_u

 of the sentence S & ~S from !C!, (see Proposition 1.2.8).

 Let r_1, ..., r_v be all the sentences in !C! which are
 used in this deduction. We may choose !a! so that all
 of r_1, ..., f_v belong to !S!_!a!. But this means
 that !S!_!a! is inconsistent (by Proposition 1.2.8),
 which is a contradiction.

 Having shown that !C! is consistent, we next claim that !C! is
 maximal consistent. For suppose !D! is consistent and !C! c !D!.
 Let p_!a! be in !D!. Then !S!_!a! _ {p_!a!} is consistent, hence:

 !S!_(!a! + 1) = !S!_!a! _ {p_!a!}.

 Thus p_!a! is in !C!, and hence !D! = !C!. 

 Chang & Keisler, 'Model Theory', page 10.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 13
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 1.2.10. Lemma. Suppose !C! is a maximal
 consistent set of sentences in $S$.

 Then:

 1. For each sentence p, exactly one of
 the sentences p, ~p belongs to !C!.

 2. For each pair of sentences {p, q},
 we have that p & q belongs to !C!
 if and only if both p and q
 belong to !C!.

 We leave the proof as an exercise.

 Now consider a set !S! of sentences of $S$.

 We shall say that A is a 'model' of !S!,
 in symbols,

 A = !S!,

 iff every sentence p in !S! is true in A.

 !S! is said to be 'satisfiable' iff it has at least one model.

 We now prove the most important theorem of sentential logic,
 which is a criterion for a set !S! to be satisfiable.

 1.2.11. Theorem. (Extended Completeness Theorem).

 A set !S! of sentences of $S$ is consistent
 if and only if !S! is satisfiable.

 Proof. Assume first that !S! is satisfiable, and let A = !S!.

 We show that every sentence deducible from !S! holds in A.

 Let q_0, q_1, ..., q_n be a deduction of q_n from !S!.

 Let m =< n.

 If q_m is in !S! or
 if q_m is a tautology,
 then q_m holds in A.

 If q_m is inferred from two sentences
 q_k and q_k => q_m which hold in A,
 then q_m must clearly hold in A.

 It follows by induction on m that each of
 the sentences q_0, q_1, ..., q_n holds in A.
 Since S & ~S does not hold in A, it is not
 deducible from !S!, so !S! is consistent.

 Now assume that !S! is consistent.

 By Lindenbaum's theorem we enlarge !S!
 to a maximal consistent set !C!.

 We now construct a model of !S!.

 Let A be the set of all sentence symbols S in $S$
 such that S is in !C!. We show by induction that,
 for each sentence p, we have:

 1. p in !C! if and only if A = p.

 By definition, (1) holds when p is a sentence symbol S_n.

 Lemma 1.2.10.1 guarantees that,
 if (1) holds when p = q,
 then (1) holds when p = ~q.

 Lemma 1.2.10.2 guarantees that,
 if (1) holds when p = q and when p = r,
 then (1) holds when p = q & r.

 From (1), it follows that A = !C!,
 and since !S! c !C!, that A = !S!. 

 We can obtain a purely semantical corollary.

 !S! is said to be 'finitely satisfiable' iff
 every finite subset of !S! is satisfiable.

 1.2.12. Corollary. (Compactness Theorem).

 If !S! is finitely satisfiable,
 then !S! is satisfiable.

 Proof. Suppose !S! is not satisfiable.

 Then by the extended completeness theorem !S! is inconsistent.

 Hence, !S!  S & ~S.

 In the deduction of the sentence S & ~S from !S!
 only a finite set !S!_0 of sentences of !S! is used.

 It follows that !S!_0  S & ~S, so !S!_0 is inconsistent.

 Then !S!_0 is not satisfiable, so !S! is not finitely satisfiable. 

 Notice that the converse of the compactness theorem is trivially true,
 that is, every satisfiable set of sentences is finitely satisfiable.

 Chang & Keisler, 'Model Theory', pages 1011.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 14
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We say that p is a 'consequence' of !S!,
 in symbols,

 !S! = p,

 iff every model of !S! is a model of p.

 The reader is asked to prove Exercises 1.2.31.2.6 as well as the following:

 1.2.13. Corollary. [Truth & Consequences].

 1. !S!  p if and only if !S! = p.

 2. If !S! = p,
 then there is a finite subset !S!_0 of !S! such that !S!_0 = p.

 We shall conclude our model theory for sentential logic with a few applications of
 the compactness theorem. In these applications, the true spirit of model theory
 will appear, but at a very rudimentary level. Since we shall often wish to
 combine a finite set of sentences into a single sentence, we shall use
 expressions like:

 p_1 & p_2 & ... & p_n

 and

 p_1 v p_2 v ... v p_n.

 In these expressions the parentheses are assumed,
 for the sake of definiteness, to be associated
 to the right; for instance:

 p_1 & p_2 & p_3 = p_1 & (p_2 & p_3).

 First we introduce a bit more terminology.

 A set !C! of sentences is called a 'theory'.

 A theory !C! is said to be 'closed' iff
 every consequence of !C! belongs to !C!.

 A set !D! of sentences is said to
 be a 'set of axioms' for a theory !C!
 iff !C! and !D! have the same consequences.

 A theory is called 'finitely axiomatizable'
 iff it has a finite set of axioms.

 Since we may form the conjunction of a finite
 set of axioms, a finitely axiomatizable theory
 actually always has a single axiom.

 The set !C!^c of all consequences of !C!
 is the unique closed theory which has !C!
 as a set of axioms.

 1.2.14. Proposition.

 !D! is a set of axioms for a theory !C!

 if and only if

 !D! has exactly the same models as !C!.

 1.2.15. Corollary.

 Let !C!_1 and !C!_2 be two theories such that:

 The set of all models of !C!_2

 is the complement of

 the set of all models of !C!_1.

 Then !C!_1 and !C!_2 are both finitely axiomatizable.

 Proof. The set !C!_1 _ !C!_2 is not satisfiable,
 so it is not finitely satisfiable. Thus,
 we may chose finite sets:

 !D!_1 c !C!_1 and !D!_2 c !C!_2

 such that !D!_1 _ !D!_2 is not satisfiable.

 If A = !D!_1 then A is not a model of !C!_2,

 and consequently A = !C!_1.

 It follows by Proposition 1.2.14 that

 !D!_1 is a finite set of axioms for !C!_1.

 Similarly,

 !D!_2 is a fimite set of axioms for !C!_2. 

 Chang & Keisler, 'Model Theory', pages 1112.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 15
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 The next group of theorems shows connections
 between mathematical operations on models and
 syntactical properties of sentences. The first
 result of this group concerns positive sentences.
 A sentence p is said to be 'positive' iff p is
 built up from sentence symbols using only the
 two connectives & and v. For example,

 (S_0 & (S_2 v S_3)) v S_16 is positive,

 while ~S_4 and S_3 <=> S_3 are not positive.

 A set !S! of sentences is called 'increasing'
 iff A = !S! and A c B implies B = !S!.

 1.2.16. Theorem.

 1. A c B

 if and only if

 every positive sentence which holds in A holds in B.

 2. A consistent theory !C! is increasing

 if and only if

 !C! has a set of positive axioms.

 3. A sentence p is increasing

 if and only if

 either p is equivalent to a positive sentence,
 p is valid, or ~p is valid.

 Proof. [C&K, pages 1314].

 A completely trivial fact which is analogous to part (1)
 of the above theorem is: A = B if and only if every sentence
 which holds in A holds in B. We shall see later on in this book
 that the situation is very different in predicate logic, where a
 maximal consistent theory ordinarily does not even come close to
 characterizing a single model. This is one thing which makes
 model theory for predicate logic so much more interesting
 and difficult than model theory for sentential logic.

 Chang & Keisler, 'Model Theory', pages 1314.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 16
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We now turn to another kind of sentence.
 By a 'conditional sentence' we mean a
 sentence p_1 & ... & p_n, where each
 p_i is one of the following kinds:

 1. S,

 2. ~S_1 v ~S_2 v ... v ~S_k,

 3. ~S_1 v ~S_2 v ... v ~S_k v S.

 A set !S! of sentences is said to be
 'preserved under finite intersections' iff
 A = !S! and B = !S! implies A ^ B = !S!.

 !S! is said to be 'preserved under arbitrary intersections'
 iff for every nonempty set {A_i : i in I} of models of !S!,
 the intersection ^_(i in I) A_i is also a model of !S!.

 1.2.17. Lemma.

 A theory !C! is preserved under finite intersections

 if and only if

 !C! is preserved under arbitrary intersections.

 Proof. Let !C! be preserved under finite intersections, let {A_i : i in I}
 be a nonempty set of models of !C!, and let B = ^_(i in I) A_i.
 Let !S! be the set of all sentences of the form S or ~S which hold
 in B. We show that !C! _ !S! is satisfiable. Let !S!_0 be an
 arbitrary finite subset of !S!, and let the negative sentences in
 !S!_0 be ~S_1, ..., ~S_k. If k = 0, all the sentences in !S!_0 are
 positive, and each of the models A_i is a model of !S!_0, because
 B c A_i. Let k > 0 and choose models A_i_1, ..., A_i_k from among
 the A_i such that S_1 is not in A_i_1, ..., S_k is not in A_i_k.
 Then A = A_i_1 ^ ... ^ A_i_k is a model of !S!_0. Since !C!
 is preserved under finite intersections, A is also a model of !C!.
 We have shown that !C! _ !S! is finitely satisfiable. By the
 compactness theorem, !C! _ !S! has a model. But the only model
 of !S! is B, so B is a model of !C!. 

 In view of the above lemma, we may as well simply say from now on
 that !C! is 'preserved under intersections', since it makes no
 difference whether we say finite or arbitrary intersections.

 Chang & Keisler, 'Model Theory', pages 1415.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 17
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 1.2.18. Theorem.

 1. A theory !C! is preserved under intersections
 if and only if !C! has a set of conditional axioms.

 2. A sentence p is preserved under intersections
 if and only if p is equivalent to a conditional sentence.

 Proof. 1. We leave to the reader the proof that every conditional
 sentence (and hence every set of conditional sentences)
 is preserved under intersections.

 Conversely, let !C! be preserved under intersections.
 Consider the set !D! of all conditional consequences
 of !C!. It suffices to show that every model of !D!
 is a model !C!. Let B be an arbitrary model of !D!.
 For each T in $S$  B, let !S!_T be the set of all
 sentences of the form

 S_1 & ... & S_k & ~T

 which hold in B. We also let the sentence ~T itself be
 in !S!_T. We first note that the conjunction of finitely
 many sentences in !S!_T is again equivalent to a sentence
 in !S!_T. Consider a sentence p in !S!_T. Then ~p is
 clearly equivalent to a conditional sentence q either
 of the form S or of the form

 ~S_1 v ... v ~S_k v T.

 But q fails in B, so q does not belong to !D!. This means that q,
 and hence ~p, is not a consequence of !C!, and it follows that
 !C! _ {p} is satisfiable. Since !S!_T is, up to equivalence,
 closed under finite conjunction, we see that !C! _ !S!_T is
 finitely satisfiable. Applying the Compactness Theorem, we
 may choose a model A_T of !C! _ !S!_T .

 For each T in $S$  B, we have T not in A_T and B c A_T.
 Thus, if $S$  B is not empty, then:

 B = ^_(T not in B) A_T.

 Since each A_T is a model of !C! and !C! is
 closed under intersections, we have B = !C!.

 In the remaining case B = $S$, we let !S!
 be the set of all sentences of the form

 S_1 & ... & S_k.

 Arguing as before, we find that !C! _ !S!
 is finitely satisfiable and thus has a model.

 But B is the only model of !S!, so again B is a model of !C!.

 We have now shown that every model of !D! is a model of !C!,
 and it follows that !D! is a set of conditional axioms for !C!.

 2. This follows from (1) by an argument
 similar to the last part of the proof
 of Theorem 1.2.16. 

 Chang & Keisler, 'Model Theory', pages 1516.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 18
 1. Introduction

 1.2. Model Theory for Sentential Logic (cont.)

 We conclude with a table which summarizes
 the semantical and syntactical notions that
 we have shown to be equivalent (some of these
 are done in the exercises).

 Table 1.2.1
 ooo
  Syntax  Semantics 
 ooo
   
  p is a tautology  p is valid 
   
   p  = p 
   
 ooo
   
  !S! is consistent  !S! is satisfiable 
   
 ooo
   
  p is inconsistent  p is refutable 
   
 ooo
   
  p is deducible from !S!  p is a consequence of !S! 
   
  !S!  p  !S! = p 
   
 ooo
   
  p is equivalent to  p is increasing and 
  a positive sentence  not valid or refutable 
   
 ooo
   
  p is equivalenct to  p is preserved 
  a conditional sentence  under intersections 
   
 ooo

 Chang & Keisler, 'Model Theory', page 16.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 19
 1. Introduction

 1.3. Languages, Models, and Satisfaction

 We begin here the development of firstorder languages in a way parallel
 to the treatment of sentential logic in Section 1.2. First, we shall
 define the notions of a firstorder predicate language $L$ and of a
 model for $L$. We introduce some basic relations between models 
 reductions and expansions, isomorphisms, submodels and extensions.
 We shall then develop the syntax of the language $L$, defining the
 sets of terms, formulas, and sentences, and presenting the axioms and
 rules of inference. Finally, we give the key definition of a sentence
 being true in a model for the language $L$. The precise formulation of
 this definition is much more of a challenge in firstorder logic than
 it was for sentential logic. At the end of this section, we state
 the completeness and compactness theorems (Theorems 1.3.20, 21, 22),
 but the proofs of these theorems are deferred until the next chapter.

 We first establish a uniform notation and set of conventions
 for such languages and their models. A 'language' $L$ is a
 collection of symbols. These symbols are separated into
 three groups, 'relation symbols', 'function symbols',
 and '(individual) constant symbols'. The relation
 and function symbols of $L$ will be denoted by
 capital Latin letters P, F, with subscripts.
 Lower case Latin letters c, with subscripts,
 range over the constant symbols of $L$.
 If $L$ is a finite set, we may display
 the symbols of $L$ as follows:

 $L$ = {P_0, ..., P_n, F_0, ..., F_m, c_0, ..., c_k}.

 Each relation symbol P of $L$ is assumed to be an nplaced relation for
 some n >= 1, depending on P. Similarly, each function symbol F of $L$ is
 an mplaced function symbol, where m >= 1 and m depends on F. Notice that
 we do not allow 0placed relation or function symbols. When dealing with
 several languages at the same time, we use the letters $L$, $L$’, $L$”,
 etc. If the symbols of the language are quite standard, as for example,
 '+' for addition, '=<' for an order relation, etc., we shall simply write:

 $L$ = {=<},

 $L$ = {=<, +, ·, 0},

 $L$ = {+, ·, , 0, 1},

 etc.,

 for such languages. The number of places of the various
 kinds of symbols is understood to follow the standard usage.
 The 'power', or 'cardinal' of the language $L$, denoted
 by $L$, is defined as:

 $L$ = !w! [omega] _ $L$.

 We say that a language $L$ is countable or uncountable
 depending on whether $L$ is countable or uncountable.

 We occasionally pass from a given language $L$ to another language $L$’ which
 has all the symbols of $L$ plus some additional symbols. In such cases we use
 the notation $L$ c $L$’ and say that the language $L$’ is an 'expansion' of $L$,
 and that $L$ is a 'reduction' of $L$’. In the special case where all the symbols
 in $L$’ but not in $L$ are constant symbols, $L$’ is said to be a 'simple expansion'
 of $L$. Since $L$ and $L$’ are just sets of symbols, the expansion $L$’ may be
 written $L$’ = $L$ _ X, where X is the set of new symbols.

 Chang & Keisler, 'Model Theory', pages 1819.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 20
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 Turning now to the models for a given language $L$, we first point out that
 the situation here is more complicated than for the sentential logic $S$
 in Section 1.2. There, each S in $S$ could take on at most two values,
 true or false. Thus the set of intended interpretations for $S$ has
 rather simple properties, as the reader discovered. This time, each
 nplaced relation symbol has as its intended interpretations all
 nplaced relations among the objects, each mplaced function
 symbol has as its intended interpretations all mplaced
 functions from objects to objects, and, finally, each
 constant symbol has as intended interpretations
 fixed or constant objects.

 Therefore, a "possible world", or model for $L$ consists, first of all,
 of a 'universe' A, a nonempty set. In this universe, each nplaced P
 corresponds to an nplaced 'relation' R c A^n on A, each mplaced F
 corresponds to an mplaced 'function' G : A^m > A on A, and each
 constant symbol 'c' corresponds to a 'constant' x in A.

 This correspondence is given by an 'interpretation' function $I$ mapping
 the symbols of $L$ to appropriate relations, functions, and constants in A.

 A 'model' for $L$ is a pair <A, $I$>.

 We use Gothic [$Script$] letters to range over models. Thus we write
 $A$ = <A, $I$>, $B$ = <B, $J$>, $C$ = <C, $K$>, etc., with appropriate
 subscripts and superscripts. We shall try to be quite consistent in this
 respect, so that the universes of the models $B$’, $B$”, $B$_i, $B$_j, etc.,
 are precisely the sets B’, B”, B_i, B_j, etc. The relations, functions,
 and constants of $A$ are, respectively, the images under $I$ of the
 relation symbols, function symbols, and constant symbols of $L$.

 Chang & Keisler, 'Model Theory', pages 1920.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 21
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 Notice that in a given universe A there are many different
 permissible interpretations of the symbols of $L$. Suppose
 that $A$ = <A, $I$> and $A$’ = <A’, $I$’> are models for $L$
 and that R and R’ are relations of $A$ and $A$’, respectively.
 We say that R’ is the 'corresponding relation' to R if they are
 the interpretations of the same relation symbol in $L$, that is:

 $I$(P) = R and $I$’(P) = R’ for some P in $L$.

 We introduce similar conventions as regards the functions and constants.

 When

 $L$ = {P_0, ..., P_n, F_0, ..., F_m, c_0, ..., c_k},

 we write the models for $L$ in displayed form as:

 $A$ = <A, R_0, ..., R_m, G_0, ..., G_m, x_0, ..., x_k>.

 When the symbols of $L$ are familiar, we shall agree to use, for instance,

 $A$ = <A, =<, +, ·>

 for models of the language

 $L$ = {=<, +, ·}.

 We may resort to

 $A$ = <A, =<_A, +_A, ·_A>,

 $B$ = <B, =<_B, +_B, ·_B>,

 etc.,

 if the context of the discussion requires it.

 If we start with a model $A$ for the language $L$
 we can always expand it to a model for the language
 $L$’ = $L$ _ X by giving appropriate interpretations
 for the symbols in X. If $I$’ is any interpretation for
 the symbols of X in $A$, and X is disjoint from $L$, then
 $A$’ = <A, $I$ _ $I$’> is a model for $L$’. In this case
 we say that $A$’ is an 'expansion' of $A$ to $L$’, and $A$ is
 the 'reduct' of $A$’ to $L$. Sometimes we use the shorter
 notation ($A$, $I$’) for $A$’. Clearly, there are many
 ways a model $A$ for $L$ can be expanded to a model
 $A$’ for $L$’. On the other hand, given a model
 $A$’ for $L$’, it has only one reduction $A$ to
 $L$. Namely, we form $A$ by restricting the
 interpretation function $I$’ on $L$ _ X
 to $L$. The processes of expansion and
 reduction do not change the universe
 of the model.

 The 'cardinal', or 'power', of the model $A$ is the cardinal A.
 $A$ is said to be finite, countable, or uncountable if A is
 finite, countable, or uncountable. Notice that on a finite
 universe A, while there can be only finitely many different
 relations, functions, and constants, the number of different
 interpretation functions $I$ can be very large and depends
 on $L$.

 Chang & Keisler, 'Model Theory', pages 2021.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 22
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 We next introduce some simple but basic notions and operations on models.
 The reader should go through the exercises at the end of this section in
 order to be familiar with them.

 Two models $A$ and $A$’ for $L$ are 'isomorphic' iff
 there is a 11 function f mapping A onto A’ satisfying:

 1. For each nplaced relation R of $A$ and
 the corresponding relation R’ of $A$’

 R(x_1 ... x_n) if and only if R’(f(x_1) ... f(x_n))

 for all x_1, ..., x_n in A.

 2. For each mplaced function G of $A$ and
 the corresponding function G’ of $A$’

 f(G(x_1 ... x_m)) = G’(f(x_1) ... f(x_m))

 for all x_1, ..., x_m in A.

 3. For each constant x of $A$ and the
 corresponding constant x’ of $A$’

 f(x) = x’.

 A function f that satisfies the above is called an 'isomorphism' of $A$ onto $A$’,
 or an 'isomorphism' between $A$ and $A$’. We use the notation f : $A$ ~=~ $A$’
 to denote that f is an isomorphism of $A$ onto $A$’, and we use $A$ ~=~ $A$’
 for $A$ is isomorphic to $A$’. For convenience we use ~=~ to denote the
 'isomorphism relation' between models for $L$. It is quite clear that
 ~=~ is an equivalence relation. Furthermore, it preserves powers,
 that is, if $A$ ~=~ $B$, then A = B. Indeed, unless we wish
 to consider the particular structure of each element of A or B,
 for all practical purposes $A$ and $B$ are the same if they
 are isomorphic.

 Chang & Keisler, 'Model Theory', page 21.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 23
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 A model $A$’ is called a 'submodel' of $A$
 if $A$’ c $A$ and:

 1. Each nplaced relation R’ of $A$’
 is the restriction to A’ of the
 corresponding relation R of $A$,
 that is: R’ = R ^ (A’)^n.

 2. Each mplaced function G’ of $A$’
 is the restriction to A’ of the
 corresponding function G of $A$,
 that is: G’ = G(A’)^m.

 3. Each constant of $A$’ is the
 corresponding constant of $A$.

 We use $A$’ ç $A$ to denote that $A$’ is a submodel of $A$, and
 the symbol 'ç' for the submodel relation between models for $L$.
 The reader should show that ç is a partialorder relation and
 that, if $A$ ç $B$, then A =< B. We say that $B$ is
 an 'extension' of $A$ if $A$ is a submodel of $B$.

 Combining the above two notions, we say that
 $A$ is 'isomorphically embedded' in $B$ if
 there is a model $C$ and an isomorphism f
 such that f : $A$ ~=~ $C$ and $C$ ç $B$.
 In this case we call the function f an
 'isomorphic embedding' of $A$ in $B$.
 If $A$ is isomorphically embedded
 in $B$, then $B$ is isomorphic
 to an extension of $A$.

 Chang & Keisler, 'Model Theory', pages 2122.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 24
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 To formalize a language $L$, we need the
 following 'logical symbols' (see the
 corresponding development for $S$
 in Section 1.2):

 1. Parentheses. '(' and ')'

 2. Variables. v_0, v_1, ..., v_n, ...

 3. Connectives. '&' (and), '~' (not)

 4. Quantifier. '`A`' (for all)

 and one binary relation symbol '=' (identity).

 We assume, of course, that no symbol in $L$
 occurs in the above list. Certain strings
 of symbols from the above list and from $L$
 are called 'terms'. They are defined as
 follows:

 1.3.1. [Definition of a 'term' of $L$].

 1. A variable is a term.

 2. A constant symbol is a term.

 3. If F is an mplaced function symbol
 and t_1, ..., t_m are terms, then

 F(t_1 ... t_m) is a term.

 4. A string of symbols is a term
 only if it can be shown to be
 a term by a finite number of
 applications of (1, 2, 3).

 The 'atomic formulas' of $L$ are strings of the form given below:

 1.3.2. [Definition of an 'atomic formula' of $L$].

 1. t_1 = t_2 is an atomic formula,
 where t_1 and t_2 are terms of $L$.

 2. If P is an nplaced relation symbol
 and t_1, ..., t_n are terms, then

 P(t_1 ... t_n) is an atomic formula.

 Finally, the 'formulas' of $L$ are defined as follows:

 1.3.3. [Definition of a 'formula' of $L$].

 1. An atomic formula is a formula.

 2. If p and q are formulas, then

 (p & q) and (~p) are formulas.

 3. If v is a variable and p is a formula, then

 (`A`v)p is a formula.

 4. A sequence of symbols is a formula
 only of it can be shown to be a
 formula by a finite number of
 applications of (1, 2, 3).

 Just as in the case of $S$, we may put definitions 1.3.1 and 1.3.3
 in a settheoretical setting. Namely, the set of terms of $L$ is
 the least set T such that:

 T contains all constant symbols and all variables v_n, n = 0, 1, 2, ...,
 and, whenever F is an mplaced function symbol and t_1, ..., t_m are in T,
 then F(t_1 ... t_m) is in T.

 Similarly, the set of formulas of $L$ is the least set Q such that:

 Every atomic formula belongs to Q and, whenever p and q are in Q
 and v is a variable, then (p & q), (~p), (`A`v)p all belong to Q.

 Notice that we have tacitly used the letters 't' (with subscripts)
 to range over terms, 'v' to range over variables, and p, q to range
 over formulas. Again, we empahsize that 'properties of terms and
 formulas of $L$ can only be established by an induction based on
 definitions 1.3.1 and 1.3.3'.

 We can now introduce the abbreviations v, =>, <=> as in
 Section 1.2. Furthermore, we adopt all the conventions
 introduced earlier. The new symbol '`E`' (there exists)
 is introduced as an abbreviation defined as:

 (`E`v)p for ~(`A`v)~p.

 Some new conventions are the following:

 p_1 & p_2 & ... & p_n for (p_1 & (p_2 & ... & p_n))

 p_1 v p_2 v ... v p_n for (p_1 v (p_2 v ... v p_n))

 (`A`x_1 x_2 ... x_n)p for (`A`x_1)(`A`x_2) ... (`A`x_n)p

 (`E`x_1 x_2 ... x_n)p for (`E`x_1)(`E`x_2) ... (`E`x_n)p

 At this point we assume that the reader has enough experience in firstorder
 predicate logic to continue the development on his [or her] own. In particular,
 we leave it to him [or her] to decide on the notions of 'subformulas', 'free' and
 'bound' occurrences of a variable in a formula, and to give a proper definition
 (based on definitions 1.3.1, 1.3.3) of 'substitution' of a term for a variable
 in a formula.

 Chang & Keisler, 'Model Theory', pages 2223.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 25
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 We now come to an extremely important
 convention of notation. To make sure
 that the reader does not miss it, we
 enclose it in a box:

 oo
  
  We use t(v_0 ... v_n) to denote a term t whose 
  
  variables form a subset of {v_0, ..., v_n}. 
  
  Similarly, 
  
  we use p(v_0 ... v_n) to denote a formula p whose 
  
  free variables form a subset of {v_0, ..., v_n}. 
  
 oo

 Notice that we do not require that all of the variables v_0, ..., v_n be free
 variables of p(v_0 ... v_n). In fact, p(v_0 ... v_n) could even have no free
 variables. Also, we make no restriction on the bound variables. For example,
 each of the following formulas is of the form p(v_0 v_1 v_2):

 (`A`v_1)(`E`v_3) R(v_0 v_1 v_3),

 R(v_0 v_1 v_2),

 S(v_0 v_2),

 (`A`v_4) S(v_4 v_4).

 A 'sentence' is a formula with no free variables.

 Notice that even if $L$ has no symbols, there are still formulas of $L$.
 These formulas are built up entirely from the identity symbol '=' and the
 other logical symbols listed. Such formulas are called 'identity formulas'
 and 'they occur in every language'. The following proposition is simple
 but important.

 1.3.4. Proposition. The cardinal of the set of all formulas of $L$ is $L$.

 To make all the above syntactical notions into a 'formal system' we
 need 'logical axioms' and 'rules of inference'. The logical axioms
 for $L$ are divided into three groups:

 1.3.5. Sentential Axioms.

 Every formula p of $L$ which can be obtained
 from a tautology q of $S$ by (simultaneously
 and uniformly) substituting formulas of $L$
 for the sentence symbols of q is a logical
 axiom for $L$. From now on we shall call
 such a formula p a 'tautology' of $L$.

 1.3.6. Quantifier Axioms.

 1. If p and q are formulas of $L$ and v is a variable not free in p,
 then the formula:

 (`A`v)(p => q) => (p => (`A`v)q)

 is a logical axiom.

 2. If p and q are formulas and q is obtained from p by freely
 substituting each free occurrence of v in p by the term t
 (that is, no variable x in t shall occur bound in q at
 the place where it is introduced), then the formula:

 (`A`v)p => q

 is a logical axiom.

 1.3.7. Identity Axioms.

 Suppose x, y are variables, t(v_0 ... v_n) is a term, and
 p(v_0 ... v_n) is an atomic formula. Then the formulas:

 x = x

 x = y => t(v_0 ... v_(i1) x v_(i+1) ... v_n) =
 t(v_0 ... v_(i1) y v_(i+1) ... v_n)

 x = y => p(v_0 ... v_(i1) x v_(i+1) ... v_n) =
 p(v_0 ... v_(i1) y v_(i+1) ... v_n)

 are logical axioms.

 There are two rules of inference:

 1.3.8. Rule of Detachment (or Modus Ponens).

 From p and p => q, infer q.

 1.3.9. Rule of Generalization.

 From p, infer (`A`x)p.

 Given the axioms and the rules of inference, we assume that the
 resulting notions of 'proof', 'length of proof', 'theorem' are
 already familiar to the reader. As we are dealing with the
 usual firstorder logic with identity, we shall assume as
 known and make free use of all of the basic theorems and
 metatheorems of such formal systems.

 Chang & Keisler, 'Model Theory', pages 2325.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 26
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 Following standard usage,  p means that p is a theorem of $L$.

 If !S! is a set of sentences of $L$, then !S!  p means
 that there is a proof of p from the logical axioms and !S!.
 If !S! = {!s!_1, ..., !s!_n} is finite, we write:

 !s!_1 ... !s!_n  p.

 As the logical axioms are always assumed,
 we say that 'there is a proof' of p from !S!,
 or p is 'deducible' from !S!, whenever !S!  p.

 !S! is 'inconsistent' iff every formula of $L$ can
 be deduced from !S!. Otherwise !S! is 'consistent'.
 A sentence !s! is consistent iff {!s!} is.

 !S! is 'maximal consistent' (in $L$) iff
 !S! is consistent and no set of sentences
 (of $L$) properly containing !S! is consistent.

 We list in the proposition below some useful, though
 simple, properties of consistent and maximal consistent
 sets of sentences. (Many of these properties are found
 also in Proposition 1.2.8.)

 1.3.10. Proposition.

 1. !S! is consistent if and only if every
 finite subset of !S! is consistent.

 2. Let !s! be a sentence.

 !S! _ {!s!} is inconsistent

 if and only if

 !S!  ~!s!.

 Whence !S! _ {!s!} is consistent

 if and only if

 ~!s! is not deducible from !S!.

 3. If !S! is maximal consistent, then, for any sentences !s! and !t!:

 !S!  !s! iff !s! belongs to !S!.

 !s! is not in !S! iff ~!s! belongs to !S!.

 !s! & !t! is in !S! iff !s! and !t! belong to !S!.

 4. Deduction Theorem.

 !S! _ {!s!}  !t! if and only if !S!  !s! => !t!.

 (Here, !s! is a sentence, although !t! need not be one.)

 Chang & Keisler, 'Model Theory', page 25.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 27
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 The next proposition duplicates Lemma 1.2.9. There is no change in the proof.

 1.3.11. Proposition. (Lindenbaum's Theorem).

 Any consistent set of sentences of $L$ can
 be extended to a maximal consistent set of
 sentences of $L$.

 We now come to the key definition of this section. In fact, the following
 definition of satisfaction is the cornerstone of model theory. We first
 give the motivation for the definition in a few remarks. If we compare
 the models of Section 1.2 and the models discussed here, we see that
 with the former we were only concerned with whether a statement is
 true or false in it, while here the situation is more complicated
 because the sentences of $L$ say something about the individual
 elements of the model. The whole question of the (firstorder)
 truths or falsities of a possible world (i.e., model) is just not
 a simple problem. For instance, there is no way to decide whether a
 given sentence of $L$ = {+, ·, S, 0} is true or false in the standard
 model <N, +, ·, S, 0> of arithmetic (where S is the successor function).
 Whereas we have already seen in Section 1.2 that there is such a decision
 procedure for every model for $S$ and for every sentence of $S$. To define
 the notion:

 the sentence !s! is true in the model $A$,

 we have first to break up !s! into smaller parts and to examine each part.
 If !s! is ~p or if !s! is p & q, then we see that the truth or falsity of !s!
 in $A$ follows once we know the truth or falsity of p and q in $A$. If, on the
 other hand, !s! is (`A`x)p, then the same method for deciding the truth of !s!
 breaks down as p may not be a sentence and it would be meaningless to ask if
 p is true or false in $A$.

 The free variable x in p is supposed to range over the elements
 of A. For each particular a in A it is meaningful to ask whether:

 the formula p is true in $A$ if p is talking about a.

 If for each a in A the answer to this question is yes, then we can
 say that !s! is true in $A$. If there exists an a in A so that the
 answer is no, then we can say that !s! is false in $A$. But in order
 to answer the above question, even for a fixed element of A, we shall
 run into the same difficulty if p happens to be (`A`y)q. Then we are
 led naturally to ask whether:

 q is true in $A$ if q is talking about a pair of elements a and b in A.

 It takes but a very small step before we see
 that the crucial question is the following:

 Given a formula p(v_0 ... v_k) and a sequence x_0, ..., x_k in A,
 what does it mean to say that p is true in $A$ if the variables
 v_0, ..., v_k are taken to be x_0, ..., x_k?

 Our plan is to give an answer to this question first for every atomic formula
 q(v_0 ... v_k) and all elements x_0, ..., x_k. Then, by an inductive procedure
 based on our inductive definition of a formula (1.3.11.3.3), we shall give an
 answer for all formulas p(v_0 ... v_k) and elements x_0, ..., x_k.

 There is still one difficulty with our plan: If all the free variables
 of a formula p are among v_0, ..., v_k, it does not follow that all the
 free variables of every subformula of p are among v_0, ..., v_k. For a
 quantifier make a free variable bound. This will cause trouble in the
 induction part of our plan. To overcome this difficulty we observe that
 the follwoing is true. If all the variables, free or bound, of a formula
 p are among v_0, ..., v_m, then all the variables of every subformula of p
 are also among v_0, ..., v_m. So we shall modify our plan thus: First, we
 answer the question for all atomic formulas q(v_0 ... v_m) and all elements
 x_0, ..., x_m. Then by an inductive procedure we answer the question for
 all formulas p such that all its 'free and bound' variables are among
 v_0, ..., v_m, and all elements x_0, ..., x_m. Finally we 'prove'
 that the answer to the question for a formula p(v_0 ... v_k) and
 elements x_0, ..., x_m, k =< m, depends only on the elements
 x_0, ..., x_k corresponding to the 'free' variables of p,
 so that the values of x_(p+1), ..., x_m are irrelevant.

 Chang & Keisler, 'Model Theory', pages 2627.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 28
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 We are now ready for the formal definition. The crucial notion to be defined
 is the following: Let p be any formula of $L$, all of whose free and bound
 variables are among v_0, ..., v_m, and let x_0, ..., x_m be any sequence
 of elements of A. We define the predicate:

 1.3.12. p is 'satisfied by' the sequence x_0, ..., x_m in $A$,

 or

 x_0, ..., x_m 'satisfies' p in $A$.

 The definition proceeds in three stages (compare with 1.3.1  1.3.3).

 Let $A$ be a fixed model for $L$.

 1.3.13. The 'value' of a term t(v_0 ... v_m) at x_0, ..., x_m is
 defined as follows (we let t[x_0 ... x_m] denote this value):

 1. If t = v_i,

 then t[x_0 ... x_m] = x_i.

 2. If t is a constant symbol c,

 then t[x_0 ... x_m] is the interpretation of c in $A$.

 3. If t = F(t_1 ... t_n), where F is an nplaced function symbol,

 then t[x_0 ... x_m] = G(t_1 [x_0 ... x_m] ... t_n [x_0 ... x_m]),

 where G is the interpretation of F in $A$.

 1.3.14. 1. Suppose p(v_0 ... v_m) is the atomic formula t_1 = t_2,

 where t_1 (v_0 ... v_m) and t_2 (v_0 ... v_m) are terms.

 Then x_0, ..., x_m 'satisfies' p

 if and only if

 t_1 [x_0 ... x_m] = t_2 [x_0 ... x_m].

 2. Suppose p(v_0 ... v_m) is the atomic formula P(t_1 ... t_n),

 where P is an nplaced relation symbol

 and t_1 (v_0 ... v_m), ..., t_n (v_0 ... v_m) are terms.

 Then x_0, ..., x_m 'satisfies' p

 if and only if

 R(t_1 [x_0 ... x_m] ... t_n [x_0 ... x_m]),

 where R is the interpretation of P in $A$.

 For brevity, we write:

 $A$ = p[x_0 ... x_m]

 for: x_0, ..., x_m satisfies p in $A$.

 Thus 1.3.14 can also be formulated as:

 1.3.14. 1. $A$ = (t_1 = t_2) [x_0 ... x_m]

 if and only if

 t_1 [x_0 ... x_m] = t_2 [x_0 ... x_m].

 2. $A$ = P(t_1 ... t_n) [x_0 ... x_m]

 if and only if

 R(t_1 [x_0 ... x_m] ... t_n [x_0 ... x_m]).

 1.3.15. Suppose that p is a formula of $L$
 and all free and bound variables
 of p are among v_0, ..., v_m.

 1. If p is r_1 & r_2

 then $A$ = p[x_0 ... x_m]

 if and only if

 both $A$ = r_1 [x_0 ... x_m]

 and $A$ = r_2 [x_0 ... x_m].

 2. If p is ~r

 then $A$ = p[x_0 ... x_m]

 if and only if

 not $A$ = r[x_0 ... x_m].

 3. If p is (`A`v_i) q

 where i =< m,

 then $A$ = p[x_0 ... x_m]

 if and only if

 for every x in A,

 $A$ = q[x_0 ... x_(i1) x x_(i+1) ... x_m].

 Our definition of 1.3.12 is now completed. As simple exercises,
 the reader should check that the abbreviations v, =>, <=>, `E`
 have their usual meanings.

 In particular:

 If p is (`E`v_i) q

 where i =< m,

 then $A$ = p[x_0 ... x_m]

 if and only if

 there exists x in A such that

 $A$ = q[x_0 ... x_(i1) x x_(i+1) ... x_m].

 More important, the reader should realize that we can formulate
 a precise definition of t[x_0 ... x_m] and $A$ = p[x_0 ... x_m]
 in set theory, based upon 1.3.13  1.3.15.

 Chang & Keisler, 'Model Theory', pages 2728.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 29
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 Having finished our definition, our first task
 is to prove the proposition that the relation:

 $A$ = p(v_0 ... v_k) [x_0 ... x_m]

 depends only on x_0, ..., x_k, where k < m.
 This is the last part of the plan we have
 outlined.

 1.3.16. Proposition.

 1. Let t(v_0 ... v_k) be a term and let
 x_0, ..., x_m and y_0, ..., y_n be two
 sequences such that k =< m and k =< n,
 and x_i = y_i whenever v_i is a free
 variable of t.

 Then t[x_0 ... x_m] = t[y_0 ... y_n].

 2. Let p be a formula all of whose free and
 bound variables are among v_0, ..., v_k
 and let x_0, ..., x_m and y_0, ..., y_n
 be two sequences with k =< m and k =< n,
 and x_i = y_i whenever v_i is a free
 variable of p.

 Then $A$ = p[x_0 ... x_m]

 iff $A$ = p[y_0 ... y_n].

 Remark. Proposition 1.3.16 shows that the value of a term t at x_0, ..., x_m
 and whether a formula p is satisfied or not by a sequence x_0, ..., x_m
 'depend only' on those values of x_i for which v_i is a free variable,
 and are 'independent' of the other values of the sequence as well as
 the length of the sequence. The length m of the sequence must be
 high enough to cover all the free and bound variables of t and p
 in order for the expressions t[x_0 ... x_m], $A$ = p[x_0 ... x_m]
 to be defined at all. We can now immediately infer that if !s! is
 a sentence, then $A$ = !s![x_0 ... x_m] is entirely independent of
 the sequence x_0, ..., x_m. The importance of the above proposition
 is that it allows us to make the following definition:

 1.3.17. Let p(v_0 ... v_k) be a formula all of whose free and bound variables
 are among v_0, ..., v_m, k =< m. Let x_0, ..., x_k be a sequence of
 elements of A. We say that p is 'satisfied' in $A$ by x_0, ..., x_k,

 $A$ = p[x_0 ... x_k],

 if and only if

 p is satisfied in $A$ by x_0, ..., x_k, ..., x_m for
 some (or, equivalently, every) x_(k+1), ..., x_m.

 Let p be a sentence all of whose bound variables are among
 v_0, ..., v_m. We say that $A$ 'satisfies' p, in symbols
 $A$ = p, if and only if p is satisfied in $A$ by some
 (or, equivalently, every) sequence x_0, ..., x_m.

 The proof of Proposition 1.3.16 is straightforward but tedious.
 We shall sketch it here as a first example of an inductive proof
 on the "complexity" of formulas. We shall often omit similar easy
 inductive proofs in the future.

 Proof of Proposition 1.3.16. [C&K, pages 3031].

 Chang & Keisler, 'Model Theory', pages 2831.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 30
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 We shall state one more elementary proposition which
 deals with the behavior of the satisfaction relation
 under the substitution of variables by terms. We omit
 the proof, which is another tedious but straightforward
 induction.

 1.3.18. Proposition.

 Let p(v_0 ... v_k) be a formula and let
 t_0 (v_0 ... v_k), ..., t_k (v_0 ... v_k)
 be terms. Suppose that no variable occurring
 in any of the terms t_0, ..., t_k occurs bound in p.

 Let x_0, ..., x_k be a sequence of elements of A and
 let p(t_0 ... t_k) be the formula obtained from p by
 substituting t_i for v_i (i = 0, ..., k).

 Then:

 $A$ = p(t_0 ... t_k) [x_0 ... x_k]

 if and only if

 $A$ = p[t_0 [x_0 ... x_k] ... t_k [x_0 ... x_k]].

 We have now completed the project started several paragraphs back.
 Namely, we say of a sentence !s! that:

 !s! is true in $A$

 iff and only if

 $A$ = !s![x_0 ... x_m]

 for some (or for every) sequence x_0, ..., x_m of A.

 We use the special notation $A$ = !s! to denote that !s! is true in $A$.
 This last phrase is equivalent to each of the following phrases:

 !s! holds in $A$

 $A$ satisfies !s!

 $A$ is a model of !s!

 !s! is satisfied in $A$

 When it is not the case that !s! holds in $A$, we say that
 !s! is 'false' in $A$, or that !s! 'fails' in $A$, or that
 $A$ is a model of ~!s!.

 Given a set !S! of sentences, we say $A$ is a 'model' of !S!
 iff $A$ is a model of each !s! in !S!, and it is convenient
 to use the notation $A$ = !S! for this notion.

 A sentence !s! that holds in every model for $L$ is called 'valid'.
 A sentence, or a set of sentences, is 'satisfiable' if and only if
 it has at least one model. Whence, !s! is satisfiable if and only
 if ~!s! is 'refutable'.

 = !s! denotes that !s! is a valid sentence.

 A sentence !t! is a 'consequence' of another sentence !s!,
 in symbols !s! = !t!, iff every model of !s! is a model of !t!.

 A sentence !t! is a 'consequence' of a set of sentences !S!,
 in symbols !S! = !t!, iff every model of !S! is a model of !t!.

 It follows that:

 !S! _ {!s!} = !t!

 if and only if

 !S! = !s! => !t!

 Two models $A$ and $B$ for $L$ are 'elementarily equivalent' iff
 every sentence that is true in $A$ is true in $B$ and vice versa.
 We express this relationship between models by !=!. It is easy to
 see that !=! is indeed an equivalence relation. The symbol we have
 chosen to denote elementary equivalence is exactly the same [in the
 original text] as the identity symbol for the language $L$. However,
 no confusion can ever arise because one is a relation between models
 for $L$ and the other is a relation between terms of $L$. If the
 context is clear, 'equivalent' shall mean elementarily equivalent.

 1.3.19. Proposition.

 If $A$ ~=~ $B$

 then $A$ !=! $B$.

 In case $A$ is finite, then the converse is also true.

 Chang & Keisler, 'Model Theory', pages 3132.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 31
 1. Introduction

 1.3. Languages, Models, and Satisfaction (cont.)

 We conclude this section by stating a number of important results
 without proofs, but whose proofs will be given in the next chapter.

 1.3.20. Theorem. (Gödel's Completeness Theorem).

 Given any sentence !s!,
 !s! is a theorem
 if and only if
 !s! is valid.

 1.3.21. Theorem. (Extended Completeness Theorem).

 Let !S! be any set of sentences.
 Then !S! is consistent
 iff !S! has a model.

 1.3.22. Theoreom. (Compactness Theorem).

 A set of sentences !S! has a model iff
 every finite subset of !S! has a model.

 As in Section 1.2, we conclude with a table of equivalent notions.

 Table 1.3.1
 ooo
  Syntax  Semantics 
 ooo
   
  p is a theorem  p is valid 
   
   p  = p 
   
 ooo
   
  !S! is consistent  !S! has a model 
   
 ooo
   
  p is deducible from !S!  p is a consequence of !S! 
   
  !S!  p  !S! = p 
   
 ooo

 Chang & Keisler, 'Model Theory', pages 3233.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 32
 1. Introduction

 1.4. Theories and Examples of Theories

 A (firstorder) theory T of $L$ is a collection of sentences of $L$.
 T is said to be 'closed' iff it is closed under the = relation.
 In view of Table 1.3.1, this is the same as requiring that T
 be closed under  . Since theories are sets of sentences
 of $L$, we may apply the expressions:

 a model of a theory,

 consistent theory,

 satisfiable theory,

 as introduced in Section 1.3.

 A theory T is called 'complete' (in $L$) if and only if its set of
 consequences is maximal consistent. If T is a theory of $L$, with
 $L$ c $L$’ and $L$ =/= $L$’, then T is not a closed theory of $L$’.
 On the other hand, it is easy to see that if $L$’ c $L$, then the
 'restriction' of a closed theory T to $L$’, in symbols T  $L$’,
 is always a closed theory of $L$’. T is a 'subtheory' of T’ iff
 T c T’. If T is a subtheory of T’, then T’ is an 'extension' of T.

 A 'set of axioms' of a theory T is a set of sentences with the
 same consequences as T. Clearly, T is a set of axioms of T, and
 the empty set is a set of axioms of T if and only if T is a set
 of valid sentences of $L$. Every set of sentences !S! is a set
 of axioms for the closed theory T = {p : !S! = p}. A theory T
 is 'finitely axiomatizable' iff it has a finite set of axioms.

 The most convenient and standard way of giving a theory T is by
 listing a finite or infinite set of axioms for it. Another way
 to give a theory is as follows: Let $A$ be a model for $L$;
 then the 'theory of' $A$ is the set of all sentences which
 hold in $A$. The theory of any model $A$ is obviously
 a complete theory.

 Historically, the importance of theories stems from the following
 two facts. Once the axioms of a theory are given, then by using
 the relation  we can find out, in a syntactical manner, all the
 consequences of T. On the other hand, by using the satisfaction
 relation, we can also study all the models of T.

 By the extended completeness theorem, these two approaches
 give basically the same results about consequences of T.
 However, owing to the fact that models of T also have
 nonfirstorder properties, such as isomorphism,
 submodels, extensions, plus many others, the
 second approach leads to the field now
 known as model theory.

 We shall give in the rest of this section some examples of theories
 and their models to show the intimate connections that model theory
 has with other branches of mathematics. In each example we describe
 a closed theory by a set of axioms. Some classical results will be
 stated without proof.

 Chang & Keisler, 'Model Theory', pages 3637.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 33
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.1. Example. [The Theory of Partial Order].

 Let $L$ consist of the single 2placed relation symbol =<.
 Using the usual notation for =<, we write x =< y for =<(x, y).
 The theory of 'partial order' has three axioms:

 1. (`A`xyz)(x =< y & y =< z => x =< z),

 2. (`A`xy) (x =< y & y =< x => x = y),

 3. (`A`x) (x =< x).

 They are, respectively, the transitive, antisymmetric, and reflexive properties of
 partial orders. Any model <A, =< > of this theory consists of a nonempty set A
 and a partial order relation =< on A. If we add the comparability axiom:

 4. (`A`xy) (x =< y or y =< x),

 we obtain the theory of 'simple order' (also called 'linear order').
 A model <A, =< > for this theory is a simplyordered set. Adding
 two more axioms (writing x =/= y for ~(x = y)):

 5. (`A`xy) (x =< y & x =/= y

 => (`E`z)(x =< z & z =/= x & z =< y & z =/= y)),

 6. (`E`xy) (x =/= y),

 we then have the theory of 'dense (simple) order'.
 The rationals with the usual =< is an example of
 a model of this theory. The theory of dense order
 has no finite models. If we wish to consider only
 dense orders 'without endpoints', we add the axioms:

 7. (`A`x)(`E`y)(x =< y & x =/= y),

 8. (`A`x)(`E`y)(y =< x & x =/= y).

 1.4.2. Proposition.

 Any two countable models of the theory
 of dense order without endpoints
 are isomorphic.

 Chang & Keisler, 'Model Theory', pages 3738.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 34
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.3. Example. [The Theory of Boolean Algebras].

 Let $L$ = {+, ·, ~, 0, 1},

 where + and · are 2placed function symbols,
 where ~ is a 1placed function symbol, and
 where 0 and 1 are constant symbols.

 The theory of 'Boolean algebras' has the following axioms,
 where we shall assume that the following formulas all have
 their free variables universally quantified in front:

 1. Associativity of + and ·

 x + (y + z) = (x + y) + z

 x · (y · z) = (x · y) · z

 2. Commutativity of + and ·

 x + y = y + x

 x · y = y · x

 3. Idempotent Laws

 x + x = x

 x · x = x

 4. Distributive Laws

 x + (y · z) = (x + y) · (x + z)

 x · (y + z) = (x · y) + (x · z)

 5. Absorption Laws

 x + (x · y) = x

 x · (x + y) = x

 6. De Morgan Laws

 ~(x + y) = ~x · ~y

 ~(x · y) = ~x + ~y

 7. Laws of Zero and One

 x + 0 = x

 x · 0 = 0

 x + 1 = 1

 x · 1 = x

 0 =/= 1

 x + ~x = 1

 x · ~x = 0

 8. Law of Double Negation

 ~~x = x

 A model $A$ = <A, +, ·, ~, 0, 1> of this theory is called a Boolean algebra.
 Strictly speaking, we should write +_$A$, ·_$A$, ~_$A$, 0_$A$, 1_$A$ in the
 above model. But following our conventions we shall drop the subscripts.

 A partial order =< can be defined on A by:

 x =< y if and only if x + y = y.

 It can be shown that =< has a largest element, namely 1,
 a smallest element, namely 0, and that, given any two elements
 x, y in A, the l.u.b. (least upper bound) of x and y is x + y,
 and the g.l.b. (greatest lower bound) of x and y is x · y.

 A 'field of sets' S is a collection of subsets of a nonempty set X
 such that both the empty set Ø and the set X are in S, and such that
 S is is closed under _, ¯, and ~ with respect to X. It is easy
 to see that if S is a field of sets, then:

 <S, _, ¯, ~, Ø, X>

 is a Boolean algebra. Conversely, we have:

 1.4.4. Proposition. (Representation Theorem for Boolean Algebras).

 Every Boolean algebra is isomorphic to a field of sets.

 An 'atom' of a Boolean algebra is an element x =/= 0 such that
 there is no element y which lies properly between 0 and x, i.e.,
 not (0 =< y =< x & 0 =/= y & y =/= x). A Boolean algebra is
 'atomic' if and only if every nonzero element x includes an atom.
 A Boolean algebra is 'atomless' if and only if it has no atoms.
 There are Boolean algebras which are neither atomic nor atomless.

 Adding the axiom (writing x =< y for x + y = y):

 a. (`A`x)(0 =/= x =>

 (`E`y)(y =< x & 0 =/= y &

 (`A`z)(z =< y => z = 0 or z = y)))

 gives us the theory of 'atomic Boolean algebras';
 while adding the axiom:

 å. ~(`E`y)(0 =/= y & (`A`z)(z =< y => z = 0 or z = y))

 gives us the theory of 'atomless Boolean algebras'.

 1.4.5. Proposition.

 Any two countable atomless Boolean algebras are isomorphic.

 Some other relevant facts about Boolean algebras can be found in the exercises.

 Chang & Keisler, 'Model Theory', pages 3839.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 35
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.6. Example. [The Theory of Groups].

 Let $L$ = {+, 0},

 where + is a 2placed function symbol
 and 0 is a constant symbol.

 The theory of 'groups' has the following axioms:

 1. Associativity

 x + (y + z) = (x + y) + z

 2. Identity

 x + 0 = x

 0 + x = x

 3. Existence of Inverse

 (`E`y) (x + y = 0 & y + x = 0)

 A model <G, +, 0> of this theory is a 'group'.
 We obtain the theory of 'Abelian groups' when
 we add the axiom:

 4. Commutativity

 x + y = y + x

 The 'order' of an element x of a group is the least n such that
 x + x + ... + x (n times) = 0. If no such n exists, the order
 of x is infinity. For a fixed n >= 1, we can write down the
 abbreviation nx for the expression:

 x + (x + ( ... (x + x) ... )), n times.

 Suppose p is a prime. The theory of 'Abelian groups
 with all elements of order p' has the extra axiom:

 5_p. Prime Order

 px = 0

 1.4.7. Proposition.

 Any two models of the theory of Abelian groups
 with all elements of order p of the same power
 are isomorphic.

 To obtain the theory of 'Abelian groups with all elements
 of order infinity (torsionfree)' we need an infinite list
 of axioms. For each n >= 1, we add the axiom:

 6_n. Torsion Free

 x =/= 0 => nx =/= 0

 This theory is our first example of a nonfinitelyaxiomatizable theory.
 If we add a further infinite list of axioms, one for each n >= 1, thus:

 7_n. Divisibility

 (`E`y)(ny = x)

 we have the theory of 'divisible torsionfree Abelian groups'.

 1.4.8. Proposition.

 Any two uncountable divisible torsionfree Abelian groups of the
 same power are isomorphic. There are countably many such groups
 which are countable and not isomorphic.

 Chang & Keisler, 'Model Theory', pages 3940.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 36
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.9. Example. [Commutative Rings to Ordered Fields].

 Let $L$ = {+, ·, 0, 1},

 where + and · are 2placed function symbols
 and 0 and 1 are constant symbols.

 The theory of 'commutative rings (with unit)' has
 the axioms (1, 2, 3, 4) listed above [copied here]
 plus the axioms (8, 9, 10, 11) given below:

 1. Associativity (+)

 x + (y + z) = (x + y) + z

 2. Identity (+)

 x + 0 = x

 0 + x = x

 3. Existence of Inverse (+)

 (`E`y) (x + y = 0 & y + x = 0)

 4. Commutativity (+)

 x + y = y + x

 8. Unit (·)

 1 · x = x

 x · 1 = x

 9. Associativity (·)

 x · (y · z) = (x · y) · z

 10. Commutativity (·)

 x · y = y · x

 11. Distributivity (· over +)

 x · (y + z) = (x · y) + (x · z)

 Adding one more axiom:

 12. Absence of Zero Divisors

 x · y = 0 => x = 0 or y = 0

 gives us the theory of 'integral domains'.

 Adding the two axioms:

 13. Distinct Identities

 0 =/= 1

 14. Existence of Inverse (·)

 x =/= 0 => (`E`y)(y · x = 1)

 gives us the important theory of 'fields'.
 For a fixed prime p, if we add the axiom:

 15_p. Prime Characteristic

 p1 = 0

 we have the theory of 'fields of characteristic p'.
 On the other hand, if we add for all primes p the
 negation of (15_p), namely, all the axioms:

 16. Characteristic Zero

 p1 =/= 0, with p a prime

 we have the theory of 'fields of characteristic zero'.
 We now introduce the abbreviation x^n for the expression:

 x · (x · ( ... (x · x) ... )), n times.

 The infinite list of axioms, one for each n >= 1, as follows:

 17_n. (`E`y)

 (x_n · y^n + x_(n1) · y^(n1) + ... + x_1 · y + x_0 = 0)

 or x_n = 0

 when added to the theory of fields, gives us
 the theory of 'algebraically closed fields'.

 1.4.10. Proposition.

 Any two uncountable algebraically closed fields of
 the same characteristic and power are isomorphic.

 Each axiom (17_n) says that every polynomial of degree n has a root.
 The theory of 'real closed fields' has as axioms all the axioms for
 fields plus the axiom:

 18. (`A`x)(`E`y) (y^2 = x or y^2 + x = 0)

 and two infinite lists of axioms. One is the infinite list (17_n)
 for all odd n, and the other is the infinite list that says that 0
 is not a sum of nontrivial squares:

 18_n. (x_0)^2 + (x_1)^2 + ... + (x_n)^2 = 0

 =>

 x_0 = 0 & x_1 = 0 & ... & x_n = 0

 The theory of 'ordered fields' is formulated in
 the language $L$ = {=<, +, ·, 0, 1}. It has all
 the field axioms, the linear order axioms, and the
 additional axioms:

 19. x =< y => x + z =< y + z

 20. x =< y & 0 =< z => x · z =< y · z

 The ordered fields of rational numbers and of real numbers are examples.

 Of the examples of theories we have discussed so far, the following are complete:
 dense order without endpoints, atomless Boolean algebras, infinite Abelian groups
 with all elements of order p, torsionfree divisible Abelian groups, algebraically
 closed fields of a given characteristic, and real closed fields. The various
 propositions show that each of these complete theories, except the last one,
 enjoys the unusual property that in some (sometimes all) infinite powers
 all models of the given theory of that power are isomorphic.

 Chang & Keisler, 'Model Theory', pages 4042.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 37
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.11. Example. [Number Theory, or Peano Arithmetic].

 Let $L$ = {+, ·, S, 0},

 where + and · are 2placed function symbols,
 where S is a 1placed function symbol,
 called the 'successor' function,
 and 0 is a constant symbol.

 'Number theory' (or 'Peano arithmetic')
 has the following list of axioms:

 1. 0 =/= Sx (0 has no predecessor)

 2. Sx = Sy => x = y (S is a onetoone map)

 3. x + 0 = x

 4. x + Sy = S(x + y)

 5. x · 0 = 0

 6. x · Sy = (x · y) + x

 and, finally, for each formula
 !p!(v_0, v_1, ..., v_n) of $L$,
 where v_0 does not occur bound
 in !p!, the axiom:

 7_!p!. !p!(0, v_1, ..., v_n)

 &

 (`A`v_0) (!p!(v_0, v_1, ..., v_n) => !p!(Sv_0, v_1, ..., v_n))

 =>

 (`A`v_0) !p!(v_0, v_1, ..., v_n)

 Axioms (3) and (4) are the usual recursive definition of + in terms of 0 and S,
 while axioms (5) and (6) are the recursive definition of · in terms of 0, S, +.
 The whole list of axioms (7_!p!), one for each !p!, is called the 'axiom schema
 of induction'.

 The 'standard model' of number theory is <!w!, +, ·, S, 0>, where
 S is the successor function and +, ·, 0 have their usual meaning.
 All other (nonisomorphic) models are called 'nonstandard'.
'Complete number theory' is the set of all sentences !p!
 of $L$ that hold in the standard model.

 There are several deep results about number theory:

 Gödel's (1931) incompleteness theorem states that number theory
 is not complete; therefore, complete number theory is a proper
 extension of number theory.

 No finite extension (that is, by adding a finite number of new axioms)
 of number theory is complete; therefore complete number theory is not
 finitely axiomatizable over number theory, whence it is certainly not
 finitely axiomatizable.

 Number theory itself is not finitely axiomatizable. This was proved by
 RyllNardzewski (1952) by the use of nonstandard models. The existence of
 nonstandard models of complete number theory was first shown by Skolem (1934).

 We mention a number of interesting subtheories of number theory.
 For instance, if the induction schema (7_!p!) is replaced by
 the single axiom:

 8. (`A`x) (x =/= 0 => (`E`y) (x = Sy))

 we obtain a finitely axiomatizable subtheory of number theory (the theory Q
 of Tarski, Mostowski, and Robinson, 1953) which is incomplete, and no finite
 extension of it is complete.

 In the language $L$’ = {S, 0} obtained by leaving out
 the symbols + and ·, the subtheory of number theory
 given by axioms (1), (2), and the schema (7_!p!),
 restricted of course to formulas of $L$’, is
 complete. However, it is still not finitely
 axiomatizable, as can be shown by using the
 compactness theorem.

 In the language $L$” = {+, S, 0}, the axioms (1, 2, 3, 4) and
 the schema (7_!p!), again restricted to formulas of $L$”, give the
'additive number theory'. This theory is not finitely axiomatizable,
 but it is complete (Presburger, 1929); the completeness of the theory
 $L$’ in the previous paragraph follows from the proof given by Presburger.

 Chang & Keisler, 'Model Theory', pages 4243.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 38
 1. Introduction

 1.4. Theories and Examples of Theories (cont.)

 1.4.12. Example. [Theories of Sets].

 We shall now discuss some examples of set theories.

 There are two quite different reasons to include a
 discussion of set theories in a book on model theory.
 The first reason is that, if we wish to be completely
 precise, we should formulate our whole treatment of
 model theory within an appropriate system of axiomatic
 set theory. Actually, we are taking the more practical
 approach of formulating things in an informal set theory,
 but it is still important that, 'in principle', we could
 do it all in an axiomatic set theory. We have left for the
 Appendix an outline of the informal set theory that we are
 using. The other reason for discussing set theories is that
 they are among the most interesting and important examples of
 theories. The second reason is the one which concerns us at
 this time. The theory of models is particularly well suited
 to the study of models of set theory. In the Appendix we have
 listed the axioms for four of the most familiar set theories:
 Zermelo, ZermeloFraenkel, Bernays, and BernaysMorse. The first
 two of them are formulated in the language $L$ = {in}, while the
 other two are formulated in the language $L$’ = {in, V}, where
'in' is a binary relation symbol and V is a unary relation symbol.
 Zermelo set theory is a subtheory of ZermeloFraenkel, and Bernays
 set theory is a subtheory of BernaysMorse.

 The deepest results in set theory use constructions of models.
 However, these constructions are often of a special nature,
 for models of set theory only, and are therefore outside
 the scope of this book. For instance, the notion of
 constructible sets was used by Gödel (1939) to show
 that if Bernays set theory is consistent, then it
 remains consistent if we add to it the axiom of
 choice and the generalized continuum hypothesis;
 in other words, if Bernays set theory has a model,
 then it has a model in which the axiom of choice
 and the generalized continuum hypothesis are true.
 The same proofs and results are also well known to
 hold for ZermeloFraenkel set theory. Cohen's forcing
 construction has been used by Cohen and others to obtain
 a remarkable series of additional consistency results (see
 Cohen, 1963). For example, if Bernays (or ZermeloFraekel)
 set theory has a model, then it has a model in which the
 axiom of choice is false, and another model in which
 the axiom of choice is true but the generalized
 continuum hypothesis is false.

 In the rest of our discussion we use the abbreviation ZF
 for "ZermeloFraenkel set theory". Whether or not we can
 prove that ZF is consistent depends on just how much we are
 assuming in our intuitive set theory. If our intuitive set
 theory is just a replica of ZF, then we cannot prove the
 consistency of ZF, even if we allow the use of the axiom
 of choice. Similarly, for any of the other set theories
 T we have introduced in the Appendix, we cannot prove the
 consistency of T if our intuitive set theory is a replica
 of T. These assertions follow from the Gödel incompleteness
 theorem. On the other hand, in BernaysMorse set theory we
 can prove the consistency of Bernays set theory and of ZF.
 In ZF we can prove the consistency of Zermelo set theory.
 If we assume the existence of an inaccessible cardinal,
 then we can prove that BernaysMorse set theory as well
 as ZF are consistent. Bernays set theory and ZF are
 very close to each other, and we can prove that one
 is consistent if and only if the other is. We shall
 leave the last three results above for exercises.

 Neither Zermelo set theory, nor ZF, nor BernaysMorse
 set theory is finitely axiomatizable (assuming that they
 are consistent). But, surprisingly, Bernays set theory is
 finitely axiomatizable (Bernays, 1937). With its finite
 axiomatization it is sometimes called BernaysGödel set
 theory. Each of the four set theories in our discussion,
 like number theory, has the following property: if the
 theory is consistent, then it is not complete, and no
 finite extension of it is complete. This is another
 consequence of the Gödel incompleteness theorem.

 There is no completely satisfactory notion of a "standard" model of set theory.
 The closest thing to it is the notion of a 'natural model'. Natural models,
 roughly, are models of the form <M, in>, where M is a set of sets formed
 by starting with the empty set and repeating the operations of union
 and power set, while 'in' is the [epsilon]relation restricted to M.
 More precisely, we define for each ordinal !a! the set R(!a!) by:

 R(0) = 0,

 R(!a! + 1) = S(R(!a!)),

 R(!a!) = _^(!b! < !a!) R(!b!), if !a! is a limit ordinal.

 Then a 'natural model' of ZF (or of Zermelo set theory) is a model of the form
 <R(!a!), in>. A natural model of Bernays set theory is a model of the form
 <R(!a! + 1), in, R(!a!)>.

 None of our set theories has any countable natural models. For this
 reason, a somewhat weaker notion of "standard" model is also important.
 A model <M, in> is said to be a 'transitive model' if and only if 'in' is
 the [epsilon]relation restricted to M and every element of an element of
 M is an element of M. For models of the language $L$’ = {in, V} we make a
 similar definition. The countable transitive models are the most important
 models for Cohen's forcing construction.

 Since number theory has just one standard model and is not complete, it
 has consistent extensions which have no standard models. If ZF has any
 transitive model at all, then it has many nonequivalent transitive models.
 Nevertheless, if ZF is consistent, then it has consistent extensions which
 have no transitive models at all. Moreover, in ZF plus the axiom of choice,
 we cannot prove the following: If ZF has a model, then ZF has a transitive
 model.

 Chang & Keisler, 'Model Theory', pages 4345.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 39
 1. Introduction

 1.5. Elimination of Quantifiers

 Each model $A$ of a theory T gives rise to a complete theory, namely
 the set of all sentences holding in $A$, which is an extension of T.
 For this reason it is important to know something about the complete
 extensions of a theory. In a few fortunate cases, it is possible to
 give a simple description of all the complete extensions of a theory
 by using the method of elimination of quantifiers.

 This method applies only to very special theories. Moreover, each time the
 method is applied to a new theory we must start from scratch in the proofs,
 because there are few opportunities to use general theorems about models.
 On the other hand, the method is extremely valuable when we want to beat
 a particular theory into the ground. When it can be carried out, the
 method of elimination of quantifiers gives a tremendous amount of
 information about a theory. For instance, it tells us about the
 behavior of all formulas, as well as all sentences, relative to
 the theory. Usually it also gives a uniform way of deciding
 whether or not a sentence belongs to the theory; in other
 words, it gives a proof that the theory is decidable.

 The question of the decidability of a theory lies outside the scope of this book,
 since it is not usually considered model theory. However, it is a very important
 question, and in fact the most striking applications of the method of elimination
 of quantifiers are to show that certain theories are decidable. The method is
 also valuable as a source of examples of thoroughly understood theories, which
 are useful for testing conjectures and for illustrating results. The method
 may be thought of as a direct attack on a theory. Later on we shall learn
 of several more indirect attacks on theories, which work more often but
 give less information in particualar cases.

 Beside describing the method, we need some more notation. In Section 1.3,
 we introduced the notion of a sentence p being a consequence of a set !S! of
 sentences, in symbols !S! = p. What meaning shall we give to !S! = p if p
 is a formula? We shall say that a formula p(v_0 ... v_n) is a 'consequence'
 of !S!, symbolically !S! = p, if and only if for every model $A$ of !S! and
 every sequence a_0, ..., a_n in A, the sequence a_0, ..., a_n satisfies p.
 It follows that the 'formula' p(v_0 ... v_n) is a consequence of !S! iff
 the 'sentence' (`A`v_0 ... v_n) p(v_0 ... v_n) is a consequence of !S!.
 We say that two formulas p, q are !S!'equivalent' iff !S! = p <=> q.

 In general, the method of elimination of quantifiers is as follows:
 First, depending on the theory T, we pick out an appropriate set of
 formulas, called 'basic formulas'. By a 'Boolean combination' of
 basic formulas we mean a formula obtained from basic formulas by
 repeated application of the connectives ~ and &. The main result
 to be proved is that 'every formula is Tequivalent to a Boolean
 combination of basic formulas'. The key step in the proof is
 the step where we "eliminate quantifiers". In fact, we may
 state at once a simple but general lemma which shows why
 the name "elimination of quantifiers" is given to the
 method (the name is due to Tarski, 1935).

 1.5.1. Lemma. Let T be a theory and let !S! be a set of formulas,
 called basic formulas. In order to show that every formula
 is Tequivalent to a Boolean combination of basic formulas,
 it is sufficient to show the following:

 1. Every atomic formula is Tequivalent to
 a Boolean combination of basic formulas.

 2. If r is a Boolean combination of basic formulas, then
 (`E`v_m)r is Tequivalent to a Boolean combination of
 basic formulas.

 Proof. Let Q be the set of all formulas which are
 Tequivalent to a boolean combination of
 basic formulas. We show by induction
 that every formula p belongs to Q.

 If p is an atomic formula,
 then p is in Q by (1).

 If p is ~q, where q is in Q,
 it is obvious that p is in Q.

 Similarly, if p is q_1 & q_2,
 where q_1 and q_2 are in Q,
 then p is in Q.

 If p is (`E`v_m)q, where q is in Q,
 then q is Tequivalent to a Boolean combination r of basic formulas.
 Moreover, p is Tequivalent to (`E`v_m)r. By (2), (`E`v_m)r is in Q,
 so p is in Q. 

 Chang & Keisler, 'Model Theory', pages 4950.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
MOD. Note 40
 1. Introduction

 1.5. Elimination of Quantifiers (cont.)

 We shall illustrate the method with two simple examples.
 Our first example is the theory of dense simple order without
 endpoints (Example 1.4.1). Let us temporarily (in this section
 only) call this theory !D!. As we mentioned in Section 1.4, the
 theory !D! is complete. The method of elimination of quantifiers
 is one of several ways which we shall come across for proving that
 theories are complete. The completeness of !D! will follow from
 our results below. The elimination of quantifiers was applied
 to the theory of !D! very early, by Langford (1927).

 As basic formulas we shall take the atomic formulas:

 v_m = v_n, v_m =< v_n.

 The Boolean combinations of atomic formulas are precisely the formulas which
 have no quantifiers. In any language, formulas which have no quantifiers are
 called 'open formulas'. We wish to prove that every formula p is !D!equivalent
 to an open formula q. As we carry out our arguments, we shall also keep track
 of which variables occur in the open formula which which is !D!equivalent to
 a given formula. This will be useful for applications. Before we can eliminate
 any quantifiers, we must take a close look at the open formulas. For convenience,
 we use the abbreviation:

 v_m < v_m for v_m =< v_n & ~(v_m = v_n).

 Let us consider the n + 1 variables v_0, ..., v_n, n > 0.

 By an 'arrangement' of the variables v_0, ..., v_n we mean
 a finite conjunction of the form:

 r_0 & r_1 & ... & r_(n1),

 where u_0, ..., u_n is a renumbering of v_0, ..., v_n, and each formula
 r_i is either u_i < u_(i+1) or else u_i = u_(i+1). The lemma below allows
 us to put every open formula into a "normal form" built up from arrangements
 of the variables.

 1.5.2. Lemma.

 Every open formula p(v_0, ..., v_n) is !D!equivalent
 either to one of the formulas v_0 < v_0, v_0 = v_0, or
 else to the disjunction of finitely many arrangements
 of the variables v_0, ..., v_n.

 Proof.
 Chang & Keisler, 'Model Theory', pages 5051.

 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
PAS. Probability And Statistics
PAS. Note 1
Excerpts from 'Introduction to Probability Theory'
by Paul G. Hoel, Sidney C. Port, Charles J. Stone.
 1.2. Probability Spaces

 Our purpose in this section is to develop the formal
 mathematical structure, called a probability space,
 that forms the foundation for the mathematical
 treatment of random phenomena.

 Envision some real or imaginary experiment that we are trying to model.
 The first thing we must do is decide on the possible outcomes of the
 experiment. It is not too serious if we admit more things into our
 consideration than can really occur, but we want to make sure that
 we do not exclude things that might occur. Once we decide on the
 possible outcomes, we choose a set !W! [Omega] whose points !w!
 [omega] are associated with these outcomes. From the strictly
 mathematical point of view, however, !W! is just an abstract
 set of points.

 We next take a nonempty collection $A$ of subsets of !W! that is
 to represent the collection of "events" to which we wish to assign
 probabilities. By definition, now, an 'event' means a set A in $A$.
 The statement 'the event A occurs' means that the outcome of our
 experiment is represented by some point !w! in A. Again, from
 the strictly mathematical point of view, $A$ is just a specified
 collection of subsets of the set !W!. Only sets A in $A$, i.e.,
 events, will be assigned probabilities. In our model in Example 1,
 $A$ consisted of all subsets of !W!. In the general situation when
 !W! does not have a finite number of points, as in Example 2, it may
 not be possible to choose $A$ in this manner.

 Hoel, Port, Stone, 'Probability Theory', p. 6.

 Hoel, P.G., Port, S.C., & Stone, C.J.,
'Introduction to Probability Theory',
 Houghton Mifflin, Boston, MA, 1971.
PAS. Note 2
 1.2. Probability Spaces (cont.)

 The next question is, what should the collection $A$ be?
 It is quite reasonable to demand that $A$ be closed under
 finite unions and finite intersections of sets in $A$ as
 well as under complementation.

 For example, if A and B are two events, then A _ B occurs if the
 outcome of our experiment is either represented by a point in A or
 a point in B. Clearly, then, if it is going to be meaningful to
 talk about the probabilities that A and B occur, it should also
 be meaningful to talk about the probability that either A or B
 occurs, i.e., that the event A _ B occurs. Since only sets
 in $A$ will be assigned probabilities, we should require that
 A _ B is in $A$ whenever A and B are members of $A$.

 Now A ^ B occurs if the outcome of our experiment is represented
 by some point that is in both A and B. A similar line of reasoning
 to that used for A _ B convinces us that we should have A ^ B
 in $A$ whenever A, B are in $A$.

 Finally, to say that the event A does not occur is to say that
 the outcome of our experiment is not represented by a point in A,
 so that it must be represented by some point in A^c. It would be
 the height of folly to say that we could talk about the probability
 of A but not of A^c. Thus we shall demand that whenever A is in $A$
 so is A^c.

 We have thus arrived at the conclusion that $A$
 should be a nonempty collection of subsets of !W!
 having the following properties:

 1. If A is in $A$ so is A^c.

 2. If A and B are in $A$ so are A _ B and A ^ B.

 An easy induction argument shows that
 if A_1, A_2, ..., A_n are sets in $A$
 then so are:

 _ (i = 1 to n) A_i

 and

 ^ (i = 1 to n) A_i.

 Here we use the shorthand notation:

 _ (i = 1 to n) A_i = A_1 _ A_2 _ ... _ A_n

 and

 ^ (i = 1 to n) A_i = A_1 ^ A_2 ^ ... ^ A_n.

 Also, since A ^ A^c = {} and A _ A^c = !W!, we see
 that both the empty set {} and the set !W! must be in $A$.

 Hoel, Port, Stone, 'Probability Theory', pp. 67.

 Hoel, P.G., Port, S.C., & Stone, C.J.,
'Introduction to Probability Theory',
 Houghton Mifflin, Boston, MA, 1971.
PAS. Note 3
 1.2. Probability Spaces (cont.)

 A nonempty collection of subsets of a given set !W! that is closed under
 finite set theoretic operations is called a 'field of subsets' of !W!.
 It therefore seems we should demand that $A$ be a field of subsets.
 It turns out, however, that for certain mathematical reasons just
 taking $A$ to be a field of subsets of !W! is insufficient.
 What we will actually demand of the collection $A$ is
 more stringent. We will demand that $A$ be closed
 not only under finite set theoretic operations
 but under countably infinite set theoretic
 operations as well. In other words if
 {A_n}, n >= 1, is a sequence of sets
 in $A$, we will demand that:

 _ (n = 1 to oo) A_n is in $A$

 and

 ^ (n = 1 to oo) A_n is in $A$.

 Here we are using the shorthand notation:

 _ (n = 1 to oo) A_n = A_1 _ A_2 _ ...

 to denote the union of all the sets of the sequence, and:

 ^ (n = 1 to oo) A_n = A_1 ^ A_2 ^ ...

 to denote the intersection of all the sets of the sequence.

 A collection of subsets of a given set !W! that is closed
 under countable set theory operations is called a !s!field
 of subsets of !W!. (The !s! [sigma] is put in to distinguish
 such a collection from a field of subsets.) More formally we
 have the following:

 Definition 1.

 A nonempty collection of subsets $A$ of a set !W!
 is called a !s!field of subsets of !W! provided
 that the following two properties hold:

 1. If A is in $A$, then A^c is also in $A$.

 2. If A_n is in $A$, n = 1, 2, ..., then:

 _ (n = 1 to oo) A_n

 and

 ^ (n = 1 to oo) A_n

 are both in $A$.

 Hoel, Port, Stone, 'Probability Theory', p. 7.

 Hoel, P.G., Port, S.C., & Stone, C.J.,
'Introduction to Probability Theory',
 Houghton Mifflin, Boston, MA, 1971.
PAS. Note 4
 1.2. Probability Spaces (cont.)

 We now come to the assignment of probabilities to events.
 As was made clear in the examples of the preceding section,
 the probability of an event is a nonnegative real number. For
 an event A, let P(A) denote this number. Then 0 =< P(A) =< 1.
 The set !W! representing every possible outcome should, of course,
 be assigned the number 1, so P(!W!) = 1.

 In our discussion of Example 1 we showed that the probability of events
 satisfies the property that if A and B are any two disjoint events then
 P(A _ B) = P(A) + P(B). Similarly, in Example 2 we showed that if
 A and B are two disjoint intervals, then we should also require that:

 P(A _ B) = P(A) + P(B).

 It now seems reasonable in general to demand that if A and B are disjoint
 events then P(A _ B) = P(A) + P(B). By induction, it would then follow
 that if A_1, A_2, ..., A_n are any n mutually disjoint sets (that is, if
 A_i ^ A_j = {} whenever i =/= j), then:

 P(_ (i = 1 to n) A_i) = Sum (i = 1 to n) P(A_i).

 Actually, again for mathematical reasons, we will
 in fact demand that this additivity property hold
 for countable collections of disjoint events.

 Definition 2.

 A probability measure P on a !s!field of
 subsets $A$ of a set !W! is a realvalued
 function having domain $A$ satisfying the
 following properties:

 1. P(!W!) = 1.

 2. P(A) >= 0 for all A in $A$.

 3. If A_n, n = 1, 2, 3, ..., are
 mutually disjoint sets in $A$,
 then:

 P(_ (n = 1 to oo) A_n) = Sum (n = 1 to oo) P(A_n).

 A probability space, denoted by (!W!, $A$, P),
 is a set !W!, a !s!field of subsets $A$, and
 a probability measure P defined on $A$.

 Hoel, Port, Stone, 'Probability Theory', p. 8.

 Hoel, P.G., Port, S.C., & Stone, C.J.,
'Introduction to Probability Theory',
 Houghton Mifflin, Boston, MA, 1971.
PAS. Probability And Statistics • Document History
The following material is excerpted from:
 Hoel, P.G., Port, S.C., and Stone, C.J. (1971), Introduction to Probability Theory, Houghton Mifflin, Boston, MA.
Inquiry List
 http://web.archive.org/web/20061013221215/http://stderr.org/pipermail/inquiry/2003June/000588.html
 http://web.archive.org/web/20070316233522/http://stderr.org/pipermail/inquiry/2003June/000589.html
 http://web.archive.org/web/20070311001637/http://stderr.org/pipermail/inquiry/2003June/000591.html
 http://web.archive.org/web/20070311001647/http://stderr.org/pipermail/inquiry/2003June/000592.html
Ontology List
 http://web.archive.org/web/20071009000644/http://suo.ieee.org/ontology/msg04885.html
 http://web.archive.org/web/20071009000324/http://suo.ieee.org/ontology/msg04886.html
 http://web.archive.org/web/20071008110036/http://suo.ieee.org/ontology/msg04887.html
 http://web.archive.org/web/20071007170817/http://suo.ieee.org/ontology/msg04888.html
SEM. Program Semantics
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 1
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 Algebraic Approaches to Program Semantics

 Preface

 In the 1930's, mathematical logicians studied the notion
 of "effective computability" using such notions as recursive
 functions, lambda calculus, and Turing machines. The 1940's saw
 the construction of the first electronic computers, and the next 20
 years saw the evolution of higherlevel programming languages in which
 programs could be written in a convenient fashion independent (thanks to
 compilers and interpreters) of the architecture of any specific machine.
 The development of such languages led in turn to the general analysis of
 questions of 'syntax', structuring strings of symbols which could count
 as legal programs, and 'semantics', determining the "meaning" of a
 program, for example, as the function it computes in transforming
 input data to output results. An important approach to semantics,
 pioneered by Floyd, Hoare, and Wirth, is called 'assertion' semantics:
 given a 'specification' of which assertions ('preconditions') on input data
 should guarantee that the results satisfy desired assertions ('postconditions') on
 output data, one seeks a logical proof that the program satisfies its specification.
 An alternative approach, pioneered by Scott and Strachey, is called 'denotational'
 semantics: it offers algebraic techniques for characterizing the denotation
 of (i.e., the function computed by) a program  the properties of the
 program can then be checked by direct comparison of the denotation
 with the specification.

 This book is an introduction to denotational semantics.
 More specifically, we introduce the reader to two approaches to
 denotational semantics: the 'order semantics' of Scott and Strachey
 and our own 'partially additive semantics'. Moreover, we show how each
 approach may be applied both to the specification of the semantics of programs,
 including recursive programs, and to the specification of new data types from old.
 There has been a growing acceptance that 'category theory', a branch of abstract
 algebra, provides a perspicuous general setting for all these topics, and for
 many other algebraic approaches to program semantics as well. Thus, an
 important aim of this book is to interweave the study of semantics
 with a completely selfcontained introduction to a useful core
 of category theory, fully motivated by basic concepts of
 computer science.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 2
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.1. Syntax and Semantics

 To specify a programming language we must specify its syntax and semantics.
 The 'syntax' of a programming language specifies which strings of symbols
 constitute valid programs. A formal description of the syntax typically
 involves a precise specification of the alphabet of allowable symbols
 and a finite set of rules delineating how symbols may be grouped into
 expressions, instructions, and programs. Most compilers for programming
 languages are implemented with 'syntax checking' whereby the first stage
 in compiling a program is to check its text to see if it is syntactically
 valid. In practice, syntax must be described at two levels, for a human
 user through programming manuals and as a syntaxchecking algorithm within
 a compiler or interpreter.

 "Semantics" is a technical word for "meaning". A 'semantics' for
 a programming language explains what programs in that language mean.
 In more mathematical terms, semantics is a function whose input is a
 syntactically valid program and whose output is a description of the
 function computed by the program.

 There are different approaches to semantics. We briefly introduce three:
 operational semantics, denotational semantics, and assertion semantics.
 We will give an example of an operational semantics in the next section.
 Assertion semantics will be further considered in Chapter 4. Denotational
 semantics is a major concern of this book.

 Manes & Arbib, AAPS, pages 13.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 3
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.1. Syntax and Semantics (cont.)

 'Operational semantics' is the most intuitive for beginners with
 some programming experience, being the form of semantics described
 in most programming manuals. To provide an operational semantics for
 a programming language, one invents an "abstract computer" and describes
 how programs "run" on this computer. Usually, the semantics prescribes how
 the syntactic form of a program is to be interpreted as a (datadependent)
 sequence of instructions. Input data are then transformed as the program
 is run in sequence, instruction by instruction, branching and looping back
 on the basis of tests on current values of data.

 By contrast to operational semantics which traces all intermediate states
 in a computation, 'denotational semantics' focuses on input/output behavior
 and ignores the intermediate states. Operational semantics provides more
 information on how to implement a programming language as long as the
 implementation environment resembles that of the abstract computer.
 For example, an operational semantics in which every computation is
 described as a serial sequence of state changes would be somewhat
 at odds with an implementation on a pipeline architecture which
 maximizes parallel computation. An objective of denotational
 semantics is to avoid worry about details of implementation.

 A challenge posed by denotational semantics is to invent
 mathematical frameworks permitting the description of
 repetitive programming constructs (i.e., "loops")
 without explicit reference to intermediate states.
 The "partially additive semantics" of Section 1.5
 introduces a powerseries representation for
 computed functions which, in part, expresses
 programming constructs in terms of operations
 that manipulate power series. Other approaches
 to denotational semantics, to be discussed
 in Part 2, use partially ordered sets
 and metric spaces for their
 mathematical underpinnings.

 Manes & Arbib, AAPS, pages 34.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 4
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.1. Syntax and Semantics (cont.)

 Before discussing assertion semantics we must first introduce assertions.
 An 'assertion' is a statement about the program state which is either true
 or false. As an example, consider the (hopefully transparent) program 1.

 1. INPUTS: X
 OUTPUTS: Y
 {X >= 0}
 BEGIN
 (a block of code representing
 an algorithm for Y := X^½ )
 END
 {X = Y * Y}.

 The assertions are shown enclosed by braces, "{" and "}". They are not
 part of the program, but assert what properties 'should' hold true when
 the assertion is encountered in executing the program. A program is
 'correct' if indeed the satisfaction of all initial assertions about
 the input data guarantees the truth of all assertions encountered
 later on.

 One could attempt to design a programming language with assertions in mind.
 All builtin functions would come with associated assertions and for each
 programming construct there would be rules explaining how to find suitable
 assertions for the overall construct from the pieces of the construct and
 their assertions. Ideally, every program would automatically be strewn
 with assertions with the following beneficial effects. The assertions
 would usefully document the program, and it would be possible to write
 software that could automatically scan the assertions to detect bugs
 and check for correctness.

 In the next section we introduce a small fragment of Pascal giving a
 formal syntax and an operational semantics. In Section 1.3, however, we
 introduce a functional programming fragment that makes no use of identifiers
 or assignment statements. Here, the concept of "state" (which in Section 1.2
 means the values stored by the identifiers) would require major overhaul before
 one could give an operational semantics or an assertion semantics. It is hard
 to create general semantic theories devoid of builtin assumptions about the
 programming languages to which they apply!

 Manes & Arbib, AAPS, pages 45.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 5
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal

 In this section we describe an abbreviated version of Pascal.
 Although this limited version has full computing power with
 regard to functions whose inputs and outputs are natural
 numbers, this is a tangential point  the main objective
 of this section is to illustrate how to present a formal
 syntax as well as an operational semantics for a simple
 programming language. The reader should observe that
 the level of precision of the operational semantics
 is such that it becomes fairly clear how to write
 a compiler or interpreter for the Pascal fragment,
 so that we accomplish more than an exercise in
 formalizing what we already knew.

 The complete syntax of our Pascal fragment is given in Table 1.

 Table 1. The Syntax of a Pascal Fragment
 

 Alphabet of Symbols

 Digits: 0, 1, ..., 9

 Letters: a, b, ..., z

 Parentheses: ( , )

 Boolean Truth Values: T, F

 Boolean Connectives: ~, v, &

 Comparisons: =, =/=, <, =<, >, >=

 Arithmetic Functions: +, , *, ÷

 Statement Constructors:

 :=, ;, begin, end, if, then, else, while, do, repeat, until

 The set of 'expressions' is defined by:

 Given Outright:

 Any nonempty string of digits (called a 'numeral'),
 a letter followed by a (possibly empty) string of
 digits and letters (called an 'identifier').

 Building Rules:

 If D, E are expressions
 so are (D + E), (D  E), (D * E), (D ÷ E).

 The set of 'tests' is defined by:

 Given Outright:

 T, F,

 D = E, D =/= E, D < E, D =< E, D > E, D >= E,
 for any two expressions D, E.

 Building Rules:

 If B, C are tests so are (~B), (B v C), (B & C).

 The set of 'statements' is defined by:

 Given Outright:

 I := E, if I is an identifier and E is an expression.

 Building Rules:

 If S_1, ..., S_n are statements (n >= 0), so is:

 begin S_1; ...; S_n end.

 If B is a test and R, S are statements, so are:

 (if B then R else S),

 (while B do S),

 (repeat S until B).

 

 Here, the colons, commas, and periods are 'not' among the 64 symbols
 in the alphabet. Parentheses are used liberally to ensure that there
 is exactly one way to derive an expression, test, or statement using
 the building rules and beginning with those which are given outright.
 We do not give a formal proof of this here, but encourage the reader
 to explore this (see Exercise 1). Three examples of expressions are:

 ((a + 5) * 2),

 572,

 (cat + (dog + mouse)),

 whereas, according to our rules,

 a + 5

 is not an expression. An example of a statement is shown in (2).

 2. begin a := 5; (while (a > 0 & a =/= 6) do a := a  1) end

 Notice that begin, while, do, and end are single symbols
 in the chosen alphabet and that there is no space symbol
 in the alphabet. Normally, one displays a statement so
 as to be more readable by humans, for example, as in (3).

 3. begin
 a := 5;
 (while (a > 0 & a =/= 6) do a := a  1)
 end

 This is harmless since we obtain (2) from (3) by ignoring the
 aspects (in this case the vertical arrangement and the spaces)
 which are not expressible in the formal syntax.

 Manes & Arbib, AAPS, pages 56.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
Nota Bene. In this transcription, I found it too distracting
to mark the syntactic keywords in bold  as #begin# or #end# 
by way of attempting to emulate the authors' practice in mine,
so I must ask for my reader's indulgence in the way of making
intelligent adjustments, 'mutatis mutandis', in the reception.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 6
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal (cont.)

 We assume that the reader already has a good idea of what the semantics of
 our fragment should be. (For example, the algorithm described by (2) always
 terminates with identifier 'a' storing the value 0.) A formal operational
 semantics is as follows.

 We imagine an abstract computer with one memory location set aside for each
 identifier. Each location stores a single value, where a 'value' is either a
 natural number or the symbol __ meaning "as yet undefined". At any time, only
 finitely many locations store a number. The effect of executing a statement is
 to assign numerical values to identifiers by evaluating numerical expressions
 according to an algorithm controlled by tests and conditional and repetitive
 constructs. (Here we ignore overflow: our numerical operations +, , *, ÷, for
 addition, subtraction, multiplication, and division compute exact integer values
 no matter how large.) The only thing that can "go wrong" is that we might attempt
 to evaluate an expression containing identifiers for which no numerical values have
 been assigned. When this happens we wish to abort the computation and so we create
 a special 'abort state' !w! [omega]. Every other state is a 'normal state' which we
 define to be a function !s! [sigma] from the set of all identifiers to the set of all
 values, with the requirement that !s!(I) =/= __ for only finitely many identifiers I.
 The 'initial state' is the function !t! [tau] which assigns __ to each identifier.

 The operational semantics of a statement S will be defined as
 a 'computation sequence' of states beginning with the initial
 state !t! and taking one of the forms (4a), (4b), or (4c):

 4a. !t!, !s!_1, ..., !s!_n, !w! (n > 0, all !s!_i =/= !w!);

 4b. !t!, !s!_1, ..., !s!_n, ... (all !s!_i =/= !w!);

 4c. !t!, !s!_1, ..., !s!_n (n >= 0, all !s!_i =/= !w!).

 In (4a), 'computation aborts'.

 In (4b), 'computation is nonterminating'.

 In (4c), the computation 'terminates' in a normal state !s!_n.

 Manes & Arbib, AAPS, pages 67.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 7
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal (cont.)

 We now turn to the details of how to associate a definite sequence of
 states to a statement. Here the description of Table 1 provides a guide.
 (We substitute the more mathematical terms "basis step" for "given outright"
 and "inductive step" for "building rules" from now on.) We must first assign
 appropriate values to expressions and tests (a process that depends on the state).

 5. The 'value' [!s!, E] of expression E in normal state !s!
 is defined inductively as follows.

 Basis step.

 If E is a numeral, [!s!, E] is the
 usual base10 natural number value
 of E (with leading zeros ignored).

 If E is an identifier, [!s!, E] = !s!(E).

 Inductive step.

 If either [!s!, D] = __ or [!s!, E] = __ then

 [!s!, (D+E)] = [!s!, (DE)] = [!s!, (D*E)] = [!s!, (D÷E)] = __.

 Else

 [!s!, (D + E)] = [!s!, D] + [!s!, E]

 [!s!, (D  E)] = [!s!, D] ° [!s!, E]

 [!s!, (D * E)] = [!s!, D] · [!s!, E]

 [!s!, (D ÷ E)] = [!s!, D] div [!s!, E]

 are the expected naturalnumber arithmetic operations
 so that x ° y means the maximum of 0 and x  y, and
 x div y is the largest integer =< y/x, that is, the
 unique integer q with y = qx + r, where the remainder
 r satisfies 0 =< r < x.

 (Here we have relied on the earlierstated fact that there
 is only one way to decouple an expression; if there were
 more than one way the above rules might assign values to
 expressions ambiguously.)

 To illustrate how (5) is used, suppose that !s!(a) = 3. Then:

 [!s!, ((a + 5) * 2)]

 = [!s!, (a + 5)] · [!s!, 2]

 = ([!s!, a] + [!s!, 5]) · [!s!, 2]

 = (3 + 5)(2)

 = 16

 Manes & Arbib, AAPS, pages 78.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 8
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal (cont.)

 Tests are evaluated in a similar way:

 6. The 'truth value' [!s!, B] of test B in normal state !s!
 is defined inductively as follows.

 Basis step.

 [!s!, T] = T,

 [!s!, F] = F.

 [!s!, D = E] is __ if either [!s!, D] or [!s!, E] is __

 else is T or F accordingly as [!s!, D] = [!s!, E] or [!s!, D] =/= [!s!, E].

 [!s!, D =/= E], [!s!, D < E], [!s!, D =< E], [!s!, D > E], [!s!, D >= E]

 are defined similarly.

 Inductive step.

 Let ~ (not), v (or), & (and) have their usual meanings on the Boolean
 truth values T, F (T for "true", F for "false") so that, for example,
 ~T = F, ~F = T, F & T = F, and so on. Then:

 [!s!, (~B)] is __ if [!s!, B] is __ else is ~[!s!, B].

 [!s!, (B v C)] is __ if either of [!s!, B] or [!s!, C] is __

 else is [!s!, B] v [!s!, C].

 [!s!, (B & C)] is __ if either of [!s!, B] or [!s!, C] is __

 else is [!s!, B] & [!s!, C].

 Manes & Arbib, AAPS, page 8.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 9
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal (cont.)

 As a prelude to defining the semantics of statements, we aid the
 reader's intuition with flowschemes for the programming constructs
 in Table 7.

 Table 7. Flowschemes for Programming Constructs
 

 Assignment Statement. I := E

 oo
 > I := E >
 oo


 Composition. begin S_1; ...; S_n end

 oo oo oo
 > S_1 > ... > S_n >
 oo oo oo


 Conditional. (if B then R else S)

 T oo
 o> R >o
 / \ oo 
 / \ 
 >o B o o>
 \ / 
 \ / oo 
 o> S o
 F oo


 Repetitive Constructs.

 (while B do S)

 o<o
  ^
  T oo 
  o> S >o
  / \ oo
 v / \
 >o B o
 \ /
 \ /
 o>
 F


 (repeat S until B)
 T
 o>
 / \
 oo / \
 > S >o B o
 ^ oo \ /
  \ /
 o<o
 F

 

 Manes & Arbib, AAPS, pages 89.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 10
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.2. A Simple Fragment of Pascal (cont.)

 The principal semantic definition is:

 For any normal state !s! the 'computation sequence' of S starting at !s!
 is a state sequence <!s!, S> of one of the three forms (8a), (8b), (8c):

 8a. !s!, !s!_1, ..., !s!_n, !w! (n >= 0, all !s!_i =/= !w!);

 8b. !s!, !s!_1, ..., !s!_n, ... (all !s!_i =/= !w!);

 8c. !s!, !s!_1, ..., !s!_n (n >= 0, all !s!_i =/= !w!).

 (with interpretations similar to those of (4a), (4b), (4c))
 defined inductively as follows.

 9. Basis step.

 ( !s!, !w! if [!s!, E] = __
 <!s!, I := E> = <
 ( !s!, !s!_1 else,

 where

 ( !s!(J) if J =/= I
 !s!_1(J) = <
 ( [!s!, E] if J = I.

 This is the expected meaning. Identifier I is assigned the
 value obtained by evaluating E, as long as this is possible,
 and other identifiers are left unchanged.

 Inductive step.

 10. Composition.

 Define

 <!s!, begin end> = !s!

 and define

 <!s!, begin S_1 end> = <!s!, S_1>.

 Proceeding inductively on the number of statements, assume that

 <!s!, begin S_2; ...; S_k+1 end>

 has been defined for every normal state !s!
 and every k statements S_2, ..., S_k+1.

 Then

 <!s!, begin S_1; ...; S_k+1 end>

 is defined as follows.

 It is defined to be

 <!s!, S_1>

 if "S_1 fails to terminate normally starting at !s!", that is,
 if <!s!, S_1> has one of the forms (8a), (8b). Otherwise,

 <!s!, S_1> = !s!, !s!_1, ..., !s!_n

 as in (8c), so we define

 <!s!, begin S_1; ...; S_k+1 end>

 to be the sequence

 !s!, !s!_1, ..., !s!_n1, <!s!_n, begin S_2; ...; S_k+1 end>.

 In short, we form the sequence obtained if each S_i+1 begins where the
 previous S_i leaves off, save that this cannot continue if computation
 aborts or one of the S_i did not terminate.

 11. Conditional.

 ( <!s!, !w!> if [!s!, B] = __
 <!s!, (if B then R else S)> = < <!s!, R > if [!s!, B] = T
 ( <!s!, S > if [!s!, B] = F

 Repetitive constructs.

 The computation sequence <!s!, (while B do S)> is given by (12).

 12. Whiledo statement.

 ( !s!, !w! if [!s!, B] = __
 <!s!, (while B do S)> = <
 ( !s! if [!s!, B] = F

 <!s!, (while B do S)> = <!s!, S> if [!s!, B] = T
 and <!s!, S> has one
 of the forms (8a, 8b).

 <!s!, (while B do S)> = !s!, !s!_1, ..., !s!_n1, <!s!_n, (while B do S)>

 if [!s!, B] = T
 and <!s!, S> has the form
 !s!, !s!_1, ..., !s!_n of (8c).

 This sequence may, of course, fail to terminate.
 We leave it to the reader to formulate a similar
 definition for <!s!, (repeat S until B)>.

 13. The 'computation sequence' <S> of the statement S is <!t!, S>,
 where !t! is the initial state mapping each identifier to __.
 The operational semantics of our Pascal fragment is complete.

 Manes & Arbib, AAPS, pages 911.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 11
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment

 In his provocative 1977 Turing Award Lecture, John Backus expressed concern
 that many programming languages were syntactically fat and unwieldy but
 semantically lean and inexpressive. In reaction, he proposed a new
 class of languages, the 'functional programming languages', in
 which a "program" is a symbolic input/output function whose
 inputs are not given names: there are no identifiers,
 assignments, or references of any kind to intermediate
 storage and hence there are no side effects (such as
 clashes between local and global variable identifiers)
 to concern the programmer. In this section we present
 a simple functional programming fragment whose principal
 data structures are trees similar to the "sexpressions"
 of the programming language Lisp but many of whose function
 constructors are patterned after those emphasized by Backus.
 Because we delay introduction of repetitive constructs into this
 fragment until our later discussion of recursion in Chapter 5, the
 version of this section temporarily fails to have full computing power.

 We shall call our language FPF for "Functional Programming Fragment".
 The syntax of FPF is given in Table 1. Here the colons and periods
 are not among the 32 symbols of the alphabet.

 Table 1. The Syntax of FPF
 

 Alphabet of Symbols

 Digits: 0 1 ... 9

 Parentheses: ( ) < >

 Atomic Functions: id head tail +  * ÷ num =

 Function Constructors: !=! o if then else [ ] !a! /

 The set !DTN! of 'dynamic trees of numerals' (DTN's for short) is defined by:

 Basis Step.

 A 'numeral' (i.e., a nonempty string of digits) is a DTN.

 Inductive Step.

 If t_1 ... t_k are DTN's (k >= 0)

 then <t_1, ..., t_k> is a DTN.

 The set of 'functions' is defined by:

 Basis Step.

 An atomic function symbol is a function.

 If t is a DTN then !=!t is a function.

 Inductive Step.

 If f_1 ... f_k are functions (k >= 1)

 then so are (f_k o ... o f_1) and [f_1, ..., f_k].

 If p, f, g are functions then so is (if p then f else g).

 If f is a function then so are (!a!f) and (/f).

 

 The reader need not feel uneasy if Table 1 fails to explain how FPF
 works, since that is the job of semantics: syntax has no meaning!

 Manes & Arbib, AAPS, pages 1112.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 12
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 We will give a denotational semantics for FPF. We begin by discussing !DTN!,
 whose inductive definition is given in Table 1, which is the set of DTN's,
 that is, 'dynamic trees of numerals' (note the different typeface for the
 set and for the generic name of elements of the set). This set includes
 lists of numerals, namely, the DTN's of form <n_1, ..., n_k>, where n_i
 are numerals. The case k = 0 gives the 'empty list' < > as a DTN.
 Similarly, we can have a list of lists such as <<5, 17>, < >, <035>>,
 the list whose first entry is the list <5, 17>, whose second entry is
 the empty list, and whose third entry is the length1 list consisting
 of the numeral 035. Other examples are less homogeneous, for example,
 <05, << >>, <2, 3>>. An m x n matrix of numerals (a_ij), usually
 visualized as a retangular array with the numeral a_ij in row i
 and column j, may conveniently be coded as the DTN:

 2. <<a_11, ..., a_1n>, ..., <a_m1, ..., a_mn>>.

 The input to a matrix multiplication algorithm may then be coded as
 a length2 list whose entries are matrices as in (2). These examples
 suggest the ease with which DTN's model complex inputs and outputs.

 Each DTN has a unique 'derivation tree' describing how to build it
 using the basis and inductive steps in the definition of !DTN! of
 Table 1. For example, <1, <<0, 10>, < >>> has derivation tree

 0 01
 o o
 \ /
 o o
 1 \ /
 o o
 \ /
 @

 where each node [= @ or o] indicates a list whose entries are the
 subtrees branching from that node (read in lefttoright order).
 A node without branches thus indicates the empty list. The node
 at the root [= @] of the tree indicates the lists represented by
 the whole tree. It is clear that such derivation trees are in
 natural onetoone correspondence with the elements of !DTN!
 and, indeed, that the list notation is just a convenient
 way to code such a tree as a string. This explains the
 term dynamic 'tree' of numerals. "Dynamic" is in the
 same sense as in the term "dynamic array" in Pascal,
 meaning that the lengths and shapes of DTN's are
 not prespecified in a "declaration".

 Manes & Arbib, AAPS, pages 1213.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
Nota Bene. The way I remember it, computicians initially fell into
the habit of drawing their trees upside down, not because they were
more enamored of genealogists than of botanists in their phyllogeny,
but because of a need to print trees out on the old teletypewriters,
which scrolled the papyrus inexorably upward with neither piety nor
wit in their more than purely symbolic denaturing of nature. But I,
having been raised in a school of graph theory that accords its due
respect to the light of nature, am compelled to take liberties with
the authors' rendering of trees, and to reset their matters upright.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 13
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 In our denotational semantics of FPF, the semantics of
 each syntactic function will be such as to transform
 inputs in !DTN! to outputs which are again in !DTN!.
 We pause briefly to note what kind of function
 constitutes such a transformation.

 3. Definitions. Let X, Y be sets. A 'partial function' from X to Y is
 specified by providing a subset A of X and a function mapping each
 element of A to a unique element of Y. We say X is the 'domain',
 Y is the 'codomain', and A is the 'domain of definition'.

 (Other authors use "domain" for our "domain of definition".
 Our terminology follows the conventions of category theory
 as discussed in the next chapter; see Definition 2.1.1.)

 [A shorter name for "domain of definition" is "corange".]

 Our most common notation will be to assign a symbolic
 name such as 'f' to a partial function. We write

 f
 "let X > Y be a partial function"

 to mean f is a partial function from X to Y.
 We may also write f : X > Y in place of

 f
 X > Y

 In either case, we use f(x) for the value assigned by f to
 each x in its domain of definition, which we denote by DD(f).
 If x is in X but x is not in DD(f) we say "f(x) is undefined".

 4. The set of all partial functions from X to Y will be
 written Pfn(X, Y). The "partial" in partial function
 means "partially defined". Paradoxically, an important
 special case of a partial function f : X > Y occurs
 when DD(f) = X. This is just a function from X to Y.
 For emphasis, we call such f a 'total function' from
 X to Y.

 5. We relate this to program semantics in general before returning to !DTN!.
 Let X be an input set and let Y be an output set. A given algorithm
 with input x in X may fail to terminate. Let A be the subset of X
 consisting of those x for which the algorithm terminates if x is
 the input. The denotational semantics of the algorithm is the
 partial function f : X > Y with DD(f) = A, and where f(x) is
 the output at termination when x is the input. (In 1.4.5
 below we will consider a computation environment in which
 (5) requires modification.

 6. The set of all total functions from X to Y will be written Tot(X, Y).

 Manes & Arbib, AAPS, pages 1314.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 14
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 If f in Pfn(X, Y), g in Pfn(Y, Z) arise as in (5) we may
 think of f, g as the computations of subalgorithms which
 can be chained together setting the output of f as the
 input of g to produce a net output in Z from an input
 in X. The formal operation involved is as follows.

 7. Definition. For f in Pfn(X, Y) and g in Pfn(Y, Z)
 their 'composition' gf in Pfn(X, Z) is defined by:

 DD(gf) = {x in X : x in DD(f) and f(x) in DD(g)},

 (gf)(x) = g(f(x)) for x in DD(gf).

 Notice that gf is total when f and g are.

 The functions studied in firstsemester calculus are
 partial functions from the set of reals to itself (e.g.,
 DD(1/x) = {x : x =/= 0}, DD(arcsin x) = {x : 1 =< x =< 1},
 etc.). The "chain rule" refers to the composition of (7),
 being a rule for the derivative of gf. Composition of
 functions is sometimes called "chaining" because the
 output of one function is the input to the next,
 creating a chain of two links. Longer chains
 arise in (12) below.

 Manes & Arbib, AAPS, page 14.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 15
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 We turn now to the semantics for FPF by associating a partial function
 in Pfn(!DTN!, !DTN!) to each syntactic function. To keep the notation
 as simple as possible we will denote the semantics of the function f
 by f: and so we will write f: t for the value f: assigns to the DTN t.
 Thus, the presence of the colon (which is not in the alphabet of
 Table 1) indicates semantics.

 In describing a specific partial function f, if a formula for
 f: t is given for t of a particular form without further comment
 our convention is that f: is not defined for other t. Sometimes,
 of course, DD(f) is sufficiently complicated for a more careful
 description to be necessary.

 We begin with the basisstep functions in Table 1.

 8. id: is the identity function,

 id: t = t for all t in !DTN!.

 head returns the first element of a list and
 tail drops the first element of a list as follows:

 head: <t_1, ..., t_k> = t_1 (k >= 1),

 tail: <t_1, ..., t_k> = <t_2, ..., t_k> (k >= 1).

 Thus, we cannot makes heads or tails of the empty list or numerals.

 9. The arithmetic functions +, , *, ÷ require an input of the form <m, n>
 where m, n are numerals. The meaning of the operations is then the same
 as in Pascal as described in 1.2.5. Thus,

 +: <m, n> = m + n

 : <m, n> = m ° n

 *: <m, n> = m · n

 ÷: <m, n> = m div n

 where, on the righthand sides, the numerals m, n represent numbers
 in the usual base10 way and the numerical results are represented
 as numerals without leading zeros.

 10. The 'numeral' function num is defined by

 ( << >> if t is a numeral,
 num: t = <
 ( < > else.

 Similarly, the 'equality' function = takes an input of
 the form <t, u> where t, u in !DTN! are arbitrary and

 ( << >> if t = u,
 =: <t, u> is <
 ( < > if t =/= u.

 Here we have coded the truth values as DTN's by representing
 T as << >> and F as < >. This is analogous to the trick used
 in set theory (mathematicians sometimes adopt the view that
 all of mathematics may be derived from set theory) to define
 natural numbers in terms of sets, wherein 0 is defined as
 the empty set Ø, 1 is defined as the oneelement set {Ø},
 2 is defined as the twoelement set {0, 1} = {Ø, {Ø}},
 and n = {0, ..., n1} in general. Using lists instead of
 sets, that is, by substituting < for { and > for }, the same
 constructions are available in !DTN!. We could have used the
 numerals 0 and 1 for F and T but it seemed more desirable to
 use a convention that would apply to dynamic trees of objects
 other than numerals. In fact, our convention is analogous to
 that used in the programming language Lisp, where the empty
 list Nil is used for the truth value F and where any other
 values may be interpreted as T.

 Manes & Arbib, AAPS, pages 1415.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 16
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 We now provide the semantics for the basis step
 in the set of functions defined in Table 1.

 11. For each DTN t, !=!t:
 is the total function
 which is constantly t,
 that is,

 !=!t: u is t for any DTN u.

 To continue our description of the semantics of FPF
 we examine the constructions of the inductive step
 for the functions in Table 1.

 12. If f_1, ..., f_k are functions (k >= 1), (f_k o ... o f_1):
 is the kfold composition of (7), being essentially the same
 as the pseudoPascal f_1; ...; f_k, that is,

 (f_k o ... o f_1): t = f_k: (f_k1: (... (f_2: (f_1: t) ...))).

 (Such is defined, of course, only when all the intermediate steps are defined.)

 The next construction applies k functions in parallel and combines the results
 in a single list.

 13. If f_1, ..., f_k are functions (k >= 1),

 then

 DD([f_1, ..., f_k]) = DD(f_1) ^ ... ^ DD(f_k)

 and

 [f_1, ..., f_k]: t = <f_1: t, ..., f_k: t>.

 This construction is a major tool in building lists.

 14. For p, f, g functions,

 ( f: t (p: t =/= < >),
 (if p then f else g): t is < g: t (p: t = < >),
 ( undefined (p: t undefined).

 Thus, our device for viewing function p as a test is to consider
 p: t false if it is our coding < > for false, true if it is defined
 but not false, and undefined else. The notation above is understood
 to mean that (if p then f else g): t is undefined if p: t = < > but
 g: t is undefined, or if p: t is defined and =/= < > but f: t is
 undefined.

 15. The symbol !a! is the 'applytoall operator'. If f is a function,
 (!a!f): is "f applied to all entries in the input list". Specifically,
 an input to (!a!f): must have the form <t_1, ..., t_k> with k >= 1, and
 each t_i in DD(f), and then

 (!a!f): <t_1, ..., t_k> = <f: t_1, ..., f: t_k>.

 16. The symbol / is the 'insertion operator'.

 If f is a function then (/f): <t_1, t_2, t_3>, for example,
 will be defined as f: <t_1, f: <t_2, t_3>>. Equivalently,
 using infix notation t f u instead of f: <t, u>, we have:

 (/f): <t_1, t_2, t_3> = t_1 f (t_2 f t_3).

 Similarly,

 (/f): <t_1, t_2, t_3, t_4> = t_1 f (t_2 f (t_3 f t_4)).

 Thus, / treats f as a function of two variables and
 extends it to a function on any number of variables
 by "inserting" it between the variables.

 The formal definition is as follows. The input must
 have the form <t_1, ..., t_k>, (k >= 0), that is, it
 cannot be a numeral. We use induction on k.

 (/f): < > = < >,

 (/f): <t_1> = t_1,

 (/f): <t_1, ..., t_k+1> = f: <t_1, (/f): <t_2, ..., t_k+1>>.

 This completes the description of the syntax and semantics of FPF.
 Since the reader may have had very little prior experience with
 functional languages, we will write some FPF functions to
 illustrate some of the concepts. Additional examples
 using recursion will be given in Section 5.1, but
 we shall be able to achieve quite a bit without
 any repetitive constructs. Indeed, it is
 possible to write an FPF function to
 multiply two square matrices and
 this is done in (26) below.

 Manes & Arbib, AAPS, pages 1517.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 17
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.3. A Functional Programming Fragment (cont.)

 We begin by introducing "abbreviations" which amount to "subprograms".

 17. We introduce the symbol =_abb.

 If f is a syntactic function then

 x =_abb f,

 read "x is an abbreviation for f", is an
 informal declaration that any occurrence
 of x may be literally replaced by the
 string f.

 We begin with some abbreviations which produce
 functions to manipulate lists and matrices.

 18. For any function f and n >= 0,

 f^n is the abbreviation defined by

 f^0 =_abb id,

 f^1 =_abb f,

 f^n =_abb (f o ... o f), (n times for n > 1).

 For i >= 1 we have the following abbreviations:

 19. pr_i =_abb (head o tail^(i1)), the 'i^th projection function'.

 20. col_i =_abb (!a!pr_i), the 'i^th column function'.

 21. transp_n =_abb [col_1, ..., col_n], the 'ncolumn transpose function'.

 Thus, transp_3 is an abbreviation for the FPF function:

 [(!a!(head o id)), (!a!(head o tail)), (!a!(head o tail o tail))].

 The reader may easily check that pr_i: <t_1, ..., t_n> is t_i for i =< n
 but undefined for i > n, so that pr_i selects the i^th entry of a list,
 that col_i returns the i^th column of a matrix:

 col_i: <<a_11, ..., a_1n>, ..., <a_m1, ..., a_mn>>

 ( <a_1i, ..., a_mi>, (i =< n),
 = <
 ( undefined, (i > n),

 and that

 transp_n: <<a_11, ..., a_1n>, ..., <a_m1, ..., a_mn>>

 = <<a_11, ..., a_m1>, ..., <a_1n, ..., a_mn>>

 produces the transpose of an ncolumn matrix.

 Manes & Arbib, AAPS, pages 1718.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 18
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.4. Multifunctions

 Since denotational semantics is to assign an input/output meaning to each program,
 it is reasonable to consider possible general forms for input/output "functions".
 In the Pascal fragment of Section 1.2 inputs and outputs were assignments of
 natural numbers to identifiers whereas they were DTN's for the functional
 programming fragment of Section 1.3. In Part 3 we shall be concerned
 with the theory of data types which addresses the question of how
 inputs and outputs can be structured (e.g., "DTN structure").
 But even if we bypass this issue for the time being, allowing
 the inputs and outputs to have no particular structure, we
 may nonetheless wish to consider more general things than
 partial functions for input/output descriptions.

 In this section we introduce "multifunctions". We make no claim that
 partial functions and multifunctions exhaust all reasonable possibilities.
 Rather, we introduce the notion of a "category" in Chapter 2 as a candidate
 for a truly general framework. The common properties of partial functions
 and multifunctions studied in this section will help to motivate later
 work with categories.

 A total function is "singlevalued" in the sense that exactly one output f(x)
 results for each input x. Similarly, a partial function is "atmostonevalued".
 More generally, multifunctions obtain by allowing f(x) to be any set of outputs,
 including the empty set. For an example, consider an anthropological data base
 for a population P in which it is possible to retrieve the names of the children
 (also in P) of any person in P. The "children" multifunction f then assigns
 to each p in P the set f(p) of all children of p. The formal definition
 of a multifunction is as follows.

 1. Definition. Let X, Y be sets. A 'multifunction' from X to Y is
 a total function from X to the set of subsets of Y. The set of
 all multifunctions from X to Y will be denoted Mfn(X, Y).

 In set theory it is customary to call the
 set of subsets of Y the 'power set' of Y,
 which leads to the following standard:

 2. Notation. If Y is a set, !P!(Y) denotes the set of subsets of Y.

 We then have, by Definition 1,

 3. Mfn(X, Y) = Tot(X, !P!(Y)).

 Why should Definition 1 be useful, then, if multifunctions
 are just a special case of total functions? The reason lies
 in considering how we want to chain multifunctions together.
 For example, a grandchild is just a child of a child, so that
 if f in Mfn(P, P) is the "children" multifunction as above, one
 intuitively expects to obtain the "grandchildren" multifunction
 by an appropriate composition of f with itself. Considering f
 as a total function from P to !P!(P) and trying to compose f
 with itself as in 1.3.7 does not work because the value of
 the output f(p) does not have the right form to be an input
 to f. What we need is the following definition.

 4. Definition. For f in Mfn(X, Y) and g in Mfn(Y, Z)
 their 'composition' gf in Mfn(X, Z) is defined by:

 gf(x) = {z in Z : there exists y in f(x) with z in f(y)}.

 Indeed, it is immediate that if f in Mfn(P, P) is
 the "children" multifunction then ff in Mfn(P, P)
 is the "grandchildren" multifunction we desired.

 Manes & Arbib, AAPS, pages 2122.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 19
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.4. Multifunctions (cont.)

 Multifunctions are suitable input/output functions for the
 following parallel computation scenario which generalizes
 that of 1.3.5.

 5. Let X be an input set and let Y be an output set. Beginning with
 an input x in X, a given algorithm simultaneously initiates a set
 of noninteracting computations. Some of these may not terminate
 and those that do may halt at different times. The denotational
 semantics of the algorithm is the multifunction f in Mfn(X, Y)
 which assigns to x the set f(x) of all outputs in Y resulting
 from some terminating computation initiated by input x.

 One might, for example, add atomic multifunctions to the functional programming
 fragment of Section 1.3 and give a multifunction denotational semantics based
 on (5) rather than 1.3.3. See Exercise 3. In such a situation we would need
 a multifunction semantics for the FPF (f_k o ... o f_1). Similarly, in
 attempting a multifunction semantics for Pascal we would need to assign
 a meaning to "begin f_1; ...; f_k end". While the composition operation
 of (4) is the natural candidate, a technical issue is raised. Up to now
 we have viewed the chaining together of, say, three functions in the
 following way:

 oo oo oo
 > f > g > h >
 oo oo oo

 For multifunctions, should this mean h(gf) or (hg)f?
 Fortunately, it makes no difference.

 6. Proposition. (Associative Law for Multifunction Composition).

 If f in Mfn(W, X),

 g in Mfn(X, Y),

 h in Mfn(Y, Z),

 then h(gf) = (hg)f in Mfn(W, Z).

 Proof. Let z be in (h(gf))(w). Then there exists y in (gf)(w)
 with z in h(y). But then there exists x in f(w) with y in g(x).
 By the definition of hg, z is in (hg)(x) and so z in ((hg)f)(w).
 So far, we have shown that (h(gf))(w) is a subset of ((hg)f)(w)
 for all w in W. To complete the proof, let z be in ((hg)f)(w)
 and show z is in (h(gf))(w). There exists x in f(w) with z in
 (hg)(x). Thus, there exists y in g(x) with z in h(y). By the
 definition of gf, y is in (gf)(w) and then z in (h(gf))(w). þ

 Theorem 6 allows us to write the equal multifunctions
 h(gf) and (hg)f simply as hgf. In fact, the proof
 has shown:

 7. (hgf)(w)

 = {z in Z : there exists x in f(w) and then y in g(x) with z in h(y)}.

 Repeated use of the associative law guarantees that
 parentheses can be avoided for chains of all lengths.

 Manes & Arbib, AAPS, pages 2223.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 20
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.4. Multifunctions (cont.)

 We conclude this section by showing that partial functions (and so
 total functions) may be thought of as special cases of multifunctions.

 9. Definition. For each f in Pfn(X, Y) define fˆ in Mfn(X, Y) by:

 ( {f(x)}, x in DD(f),
 fˆ(x) = <
 ( Ø, else.

 Such fˆ is closely associated to f. For example, f can be completely deduced
 from fˆ because DD(f) = {x in X : fˆ(x) =/= Ø} and for x in DD(f), f(x) is the
 unique element of fˆ(x). A multifunction g has the form fˆ if and only if g(x)
 has at most one element for all x. Furthermore, the compositions of (4) and
 1.3.7 respect each other as is shown in the next result.

 10. Proposition. Let f be in Pfn(X, Y), g be in Pfn(Y, Z),
 and let gf in Pfn(X, Z) be the composition of 1.3.7.
 Let gˆfˆ in Mfn(X, Z) be the composition of (4).
 Then (gf)ˆ = gˆfˆ.

 Proof. (gˆfˆ)(x) = {z : there exists y in fˆ(x) with z in gˆ(y)}

 = {z : x in DD(f) and f(x) in DD(g) and z = g(f(x))}

 ( {g(f(x))}, x in DD(f) and f(x) in DD(g),
 = <
 ( Ø, else.

 = (gf)ˆ(x). þ

 The import of (9), (10) is that "partial functions are multifunctions",
 that is, blurring the distinction between f and fˆ is unlikely to be
 imprecise. Usually, one writes fˆ simply as f. Thus, if f is in
 Pfn(X, Y) and g is in Mfn(Y, Z) we would write gf without comment
 for the more precise gfˆ in Mfn(X, Z). One mild warning is in
 order, however, relating to 1.3.3. If a known programming
 statement computes f we would expect to be able to write
 the statement:

 if fˆ(x) = Ø then g(x) else h(x)

 in, say, Pascal. This would compute h(x) if computation of f(x) halts,
 but would be undefined rather than returning g(x) if f(x) does not halt,
 that is, if x is not in DD(f). In short, fˆ(x) = Ø in 1.3.5 should be
 interpreted not as a returned value but as a nontermination. A similar
 interpretation applies to f(x) = Ø in (5). On the other hand, there are
 circumstances such as the "children" multifunction where Ø is a reasonable
 returned value. In a semantic environment where a possibly nonterminating
 algorithm has the empty set as a possible returned value, multifunctions
 may not provide the correct type of function. See Exercise 2.1.10.

 11. Proposition. (Associative Law for Partial Function Composition).

 If f in Pfn(W, X),

 g in Pfn(X, Y),

 h in Pfn(Y, Z),

 then, with respect to the composition of 1.3.7,

 h(gf) = (hg)f in Pfn(W, Z).

 Proof. Using (6) and (10) we have:

 (h(gf))ˆ = hˆ(gf)ˆ = hˆ(gˆfˆ) = (hˆgˆ)fˆ = (hg)ˆfˆ = ((hg)f)ˆ,

 so that h(gf) = (hg)f. þ

 Manes & Arbib, AAPS, pages 2324.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 21
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics

 In this section we consider partial functions and multifunctions
 as frameworks for denotational semantics without reference to
 any particular programming language. Basic constructions
 such as chaining, conditional testing, and looping
 are described at the function level. The term
 "partially additive" refers to a kind of
 sum operation which can be defined on
 the sets Pfn(X, Y), Mfn(X, Y), (and
 more generally in Section 3.2).

 To fix the context we must choose just one of "partial function" or
 "multifunction", that is, we must specify the "semantic category" in
 the sense of the following definition (which will be generalized in the
 next chapter.

 1. Definition. The 'semantic category' is either Pfn (for partial functions)
 or Mfn (for multifunctions). We adopt the noncommittal notation SC(X, Y)
 to mean "Pfn(X, Y) if the semantic category is Pfn and Mfn if the semantic
 category is Mfn".

 2. Notation. We will use all the notations:

 f : X > Y

 f
 X > Y


 X oo Y
 > f >
 oo

 as synonyms for f in SC(X, Y). These may appear geometrically reoriented
 in diagrams, for example, righttoleft, vertically, diagonally, and so on.
 The last notation is "flowscheme" notation.

 The important operation of iterated composition has already been
 introduced (in 1.4.4, 1.4.68 for Mfn, 1.3.7, 1.4.11 for Pfn).
 If f_i in SC(X_i1, X_i) for i = 1, ..., n, suitable flowscheme
 notation for the composition f_n ... f_1 in SC(X_0, X_n) is:

 3.

 X_0 oo X_1 X_n1 oo X_n
 > f_1 > . . . > f_n >
 oo oo

 f
 The labeled arrow notation X > Y is
 useful in "commutative diagrams" such as:

 4.
 f_1 f_2
 X_0 o>o>o X_2
 \ X_1 / \
  \ / \
  \ / \
  \ / \
  g \ / f_3 \ h
  \ / \
  \ / \
  \ / \
  v v f_4 v
 \ o>o X_4
 \ X_3 
 \ 
 f \  f_5
 \ 
 \ v
 >o X_5

 in which our convention is the following:

 5. In a diagram such as (4), if two paths of arrows begin at the same place
 and end at the same place, then, unless the contrary is indicated, the
 compositions of these paths are asserted to be equal. To emphasize
 this assertion we say "the diagram commutes".

 Thus, in (4), we have the following equations:

 g = f_3 f_2 f_1 in SC(X_0, X_3),

 h = f_4 f_3 in SC(X_2, X_4),

 h f_2 f_1 = f_4 g in SC(X_0, X_4),

 f = f_5 f_4 f_3 f_2 f_1 in SC(X_0, X_5),

 and so on. Notation such as:

 6.
 f
 X o>o Y
 \ /
 \ /
 \ ? /
 \ /
 h \ / g
 \ /
 \ /
 \ /
 v v
 o
 Z

 could be used to indicate that h is not
 necessarily the same as gf in SC(X, Z).

 Manes & Arbib, AAPS, pages 2627.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 22
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 The identity function id : !DTN! > !DTN! was introduced
 with FPF in 1.3.8. More generally, we have the following:

 7. Definition. For each set X, the 'identity function' of X,
 id_X : X > X is the total function defined by id_X (x) = x.
 This function is in Pfn(X, X) and so may be considered in
 Mfn(X, X) as in 1.4.910, so that always id_X in SC(X, X).

 We clearly have the following:

 8. For f in SC(X, Y),

 id_Y f = f = f id_X.

 We may express this by a commutative diagram:

 f
 X o>o Y
 \ ^ \
 \ / \
 \ / \
 \ f / \
 id_X \ / \ id_Y
 \ / \
 \ / \
 \ / \
 v / f v
 X o>o Y

 Alternatively, inventing the "through box":

 X oo X
 >>
 oo

 as a flowscheme notation for id_X,
 (8) may be expressed in flowscheme
 terms by:

  
  X  X
 v v
 oo  oo
      
  f   X   
   v   
 oo oo oo
    
  Y =  f  =  X
 v   v
 oo oo oo
      
     Y  f 
      
 oo v oo
  
  Y  Y
 v v

 Manes & Arbib, AAPS, pages 2728.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 23
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 We now introduce the fundamental operation of sum,
 first for Mfn and then for Pfn.

 9. Definition. Let X and Y be sets. Let I be a set and for each i in I
 let f_i be in Mfn(X, Y). (We say (f_i : i in I) is an Iindexed family
 in Mfn(X, Y).) Then the 'sum' Sum(f_i : i in I), alternatively written
 as Sum_(i in I) f_i, or as Sum_i,I f_i, is the multifunction in Mfn(X, Y)
 defined by:

 (Sum_i,I f_i)(x) = _^i,I f_i (x)

 = {y in Y : y in f_i (x) for some i in I}.

 Hence, for oneelement families (meaning that I has one element)
 Sum(f) = f, and in the case where I is empty the sum maps x
 to the empty set for all x in X (see Exercise 1).

 If I = {1, 2, ..., n} with n >= 2, so that the family (f_i : i in I)
 has the form (f_1, ..., f_n), we write f_1 + ... + f_n as a synonym
 for Sum(f_i : i in I). In general, we may write Sum f_i instead
 of Sum(f_i : i in I) when I is clear from context.

 An intuitive flowscheme notation for summing is exemplified by the following.

 10. f + g is written:

 
 
 
 v
 ooo
  
  
  
 oo oo
    
  f   g 
    
 oo oo
  
  
  
 ooo
 
 
 
 v

 and similarly for other families (f_i : i in I).

 This notation conveys the idea of (9) since an output
 from (f + g)(x) is an output from either f(x) or g(x).

 Manes & Arbib, AAPS, pages 2829.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 24
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 We next seek a suitable sum operation for partial functions.
 It is easy to see that when each f_i in (9) is a partial function
 (i.e., a multifunction which happens to be a partial function, cf.
 1.4.910) then Sum f_i need not be. In the case of (10), let f, g
 be partial functions and x be such that f(x) and g(x) are defined
 and different. Then the sum f + g maps x to the set {f(x), g(x)}
 and so is not a partial function. To better understand what needs
 to be fixed, imagine the "fanout" in (10),

 
 
 
 v
 ooo
  
  
  
 v v

 as controlled by a test such as "if f is defined go left;
 if g is defined go right". For multifunctions, such a test can
 pass the input down both lines simultaneously. For partial functions,
 we demand that such a test choose 'at most one' alternative and define
 (10) only when DD(f) ^ DD(g) = Ø. We have motivated the definition:

 11. Let X, Y be sets and let (f_i : i in I) be an Iindexed family in
 Pfn(X, Y). Then (f_i : i in I) is 'summable' in Pfn(X, Y) if for
 all i, j in I with i =/= j, DD(f_i) ^ DD(f_j) = Ø. In that case,
 Sum f_i = Sum(f_i : i in I) in Pfn(X. Y) is defined by:

 DD(Sum f_i) = _^(i,I) DD(f_i)

 ( f_j (x), if there exists j with x in DD(f_j),
 (Sum f_i)(x) = <
 ( undefined, else.

 Notice that we do not require that I be finite.

 The following is an immediate result:

 12. If (f_i : i in I) is summable,

 then (Sum f_i)ˆ = Sum(f_iˆ),

 where fˆ is defined in 1.4.9 and
 the latter sum is that of (9).

 Thus, the Pfn sum, when it exists, specializes the Mfn sum.

 In particular, we have for oneelement families

 13. Sum(f) = f

 and for empty families

 14. Sum Ø = 0

 where 0 : A > B denotes the everywhere undefined
 partial function characterized by DD(0) = Ø. It is
 obvious that we may extend a summable family by adding
 any number of 0's or we may delete any number of 0's which
 are already there without affecting either the summability of
 the family or the value of the sum. It is for this reason that,
 in this context, we prefer the notation 0 instead of the alternate
 notation __ introduced in Exercise 1.3.6.

 Our operation of sum, then, differs from ordinary numerical addition
 in two fundamental respects:

 a. It is not always defined. Indeed, for any f in Pfn(X, Y)
 with DD(f) =/= Ø, f + f is never defined. The "partial" in
 "partially additive" refers to this property  addition (= sum)
 is only partially defined.

 b. There are many infinite families whose sum is defined.

 We remark that even finite sums such as (10) cannot be implemented
 in an unrestricted way. It is well known from computability theory
 that given two programs which compute partial functions f, g there is
 no way to decide, in general, if DD(f) ^ DD(g) = Ø, and this makes it
 hard to imagine a suitable approach to compute f + g for arbitrary f, g
 (see Exercise 4 for an unsuccessful attempt). There remains the option
 to restrict the use of sum to "provably disjoint" families, and this will
 in fact be what happens when we give a partially additive semantics for
 iteration in Section 3.3 (see also (27) below).

 Manes & Arbib, AAPS, pages 2930.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 25
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 We turn to some properties of sum, beginning with the following one.

 15. Proposition. (Distributive Law of Composition over Sums in Mfn).
 Let f be in Mfn(W, X), let (g_i : i in I) be a family in Mfn(X, Y),
 and let h be in Mfn(Y, Z). Then:

 1. (Sum g_i)f = Sum(g_i f) in Mfn(W, Y).

 2. h(Sum g_i) = Sum(h g_i) in Mfn(X, Z).

 Proof.

 1. y in ((Sum g_i)f)(w)

 <=> there exists x in f(w) with y in (Sum g_i)(x)

 <=> there exists x in X, i in I, with x in f(w) and y in g_i (x)

 <=> there exists i in I with y in (g_i f)(w)

 <=> y in (Sum(g_i f))(w).

 2. z in (h(Sum g_i))(x)

 <=> there exists y in (Sum g_i)(x) with z in h(y)

 <=> there exists i in I, y in g_i (x), with z in h(y)

 <=> there exists i in I with z in (h g_i)(x)

 <=> z in (Sum(h g_i))(x).

 þ

 16. Corollary. (Distributive Law of Composition over Sums in Pfn).
 Let f be in Pfn(W, X), let (g_i : i in I) be a summable family
 in Pfn(X, Y), and let h be in Pfn(Y, Z). Then (g_i f : i in I)
 and (h g_i : i in I) are summable, and:

 1. (Sum g_i)f = Sum(g_i f) in Pfn(W, Y).

 2. h(Sum g_i) = Sum(h g_i) in Pfn(X, Z).

 Proof.

 1. If w in DD(g_i f) ^ DD(g_j f) then f(w) in DD(g_i) ^ DD(g_j), so i = j.

 2. If x in DD(h g_i) ^ DD(h g_j) then x in DD(g_i) ^ DD(g_j), so i = j.

 Then equality of the sums follows from (15) in view (12). þ

 Proposition 15 and Corollary 16 are valid when I is empty, yielding the following:

 17. For f in SC(X, Y) and for all sets W, Z we have the commutative diagram:

 0
 W o>o X
 \ \
 \  \
 \  \
 \  \
 \ f  \
 0 \  \ 0
 \  \
 \  \
 \  \
 \  \
 vv v
 Y o>o Z
 0

 where the four 0's are the appropriate empty sums of (14).
 It follows that any composition f_n ... f_1 is 0
 if any of the f_i is 0.

 Manes & Arbib, AAPS, pages 3031.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 26
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 A useful result about the existence of sums is the following:

 18. Proposition. Let (f_i : i in I) be a summable family in Pfn(X, Y).

 Then:

 a. If J c I,

 then (f_i : i in J) is summable in Pfn(X, Y).

 b. If (g_i : i in I) is a similarly indexed family
 (not necessarily summable) in Pfn(Y, Z),

 then (g_i f_i : i in I) is a summable family in Pfn(X, Z).

 Proof. That (a) holds is obvious. For (b), if x is in
 DD(g_i f_i) ^ DD(g_j f_j) then x is in DD(f_i) ^ DD(f_j),
 so i = j. þ

 In the balance of this section we emphasize the
 use of sums to define programming constructs.

 19. Definition. If A is a subset of X,
 the 'inclusion function' of A is
 inc_A in Pfn(X, X) defined by:

 DD(inc_A) = A,

 inc_A (x) = x.

 Thus, inc_Ø = 0 is the everywhere undefined function X > X and inc_X = id_X.
 As usual, we consider inc_A in Mfn(X, X) as well, as in 1.4.910.

 20. Definition. If p in Pfn(X, X) is an inclusion function (so that
 p = inc_A for A = DD(p)) we say p is a 'guard function', and for f
 in SC(X, Y) we introduce the notation p > f for fp. The meaning of
 p > f is "if p is true then execute f else the result is undefined",
 where to say p(x) is true means x in DD(p). Thus p "guards" entry to f.
 Such p > f is called a 'guarded command'.

 Manes & Arbib, AAPS, pages 3132.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 27
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 21. Definition. For n >= 1, an 'nway test' on X

 is (p_1, ..., p_n),

 with each p_i an inclusion function in Pfn(X, X)

 and DD(p_i) ^ DD(p_j) = Ø if i =/= j.

 22. Definition. Let (p_1, ..., p_n) be an nway test on X and let
 f_1, ..., f_n be in SC(X, Y). Then a natural generalization of
 the case statement in Pascal is:

 case(p_1, ..., p_n) of (f_1, ..., f_n) = f_1 p_1 + ... + f_n p_n

 with flowscheme:

 
 
  X
 
 v
 ooo
  
  
  
 oo oo
    
  p_1   p_n 
    
 oo oo
  
 X  . . .  X
  
 oo oo
    
  f_1   f_n 
    
 oo oo
  
  
  
 ooo
 
 
  Y
 
 v

 The sum is defined by Proposition 18.

 A related construction in multifunction semantics is the following:

 23. Definition. Let p_1, ..., p_n be guard functions
 in Pfn(X, X) and let f_1, ..., f_n be in Mfn(X, Y).
 Then the 'alternative construct' is:

 if p_1 > f_1 [] ... [] p_n > f_n fi

 = f_1 p_1 + ... + f_n p_n in Mfn(X, Y).

 We emphasize that the guards here are not required to have disjoint
 domains. The intended meaning is "pick any i for which the guard p_i
 is true and execute f_i". The flowscheme is the same as in (22).

 The Pascal ifthenelse construction is a special case of (22) as follows.

 24. Definition. Let A be a subset of X.
 Define A’ to be the complement of A,
 that is, A’ = {x in X : x not in A}.
 Then (inc_A, inc_A’) is a twoway
 test on X. For f, g in SC(X, Y)
 define:

 if A then f else g = f inc_A + g inc_A’

 in SC(X, Y).

 Two suitable flowschemes are:

 
 
  X
 
 v
 o
 / \
 / \
 T / \ F
 oo A oo
  \ / 
  \ / 
  \ / 
 v o v
 oo oo
    
  f   g 
    
 oo oo
  
  
  
 ooo
 
 
  Y
 
 v


 
 
  X
 
 v
 ooo
  
  
  
 oo oo
    
  inc_A   inc_A’ 
    
 oo oo
  
 X   X
  
 oo oo
    
  f   g 
    
 oo oo
  
  
  
 ooo
 
 
  Y
 
 v

 Manes & Arbib, AAPS, pages 3233.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 28
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 The sum operation and composition lead to a calculus to
 manipulate functions. We begin with two basic properties
 of inclusion functions whose proof is obvious and follow this
 with an example that simplifies a compound conditional statement.

 25. Proposition. Let A and B be subsets of X. Then:

 a. inc_A inc_B = inc_(A ^ B) = inc_B inc_A.

 b. If A ^ B = Ø,

 then inc_A + inc_B exists,

 and inc_A + inc_B = inc_(A _ B).

 26. Example. If A, B c X, and f, g, h in SC(X, Y), then:

 if A then (if B then f else g) else (if A’ then f else h)

 = (f inc_B + g inc_B’)inc_A + (f inc_A’ + h inc_A)inc_A’

 <since A’’ = A>

 = f inc_B inc_A + g inc_B’ inc_A + f inc_A’ inc_A’ + h inc_A inc_A’

 <by (15)>

 = f inc_(A ^ B) + g inc_(A ^ B’) + f inc_A’

 <by (25)>

 = f(inc_(A ^ B) + inc_A’) + g inc_(A ^ B’)

 <by (15) since the sum in parentheses is defined by (25)>

 = f(inc_((A ^ B) _ A’)) + g inc_(A ^ B’)

 <by (25)>

 = f inc_(A ^ B’)’ + g inc_(A ^ B’)

 = if A ^ B’ then g else f.

 Manes & Arbib, AAPS, pages 3334.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 29
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 Repetitive constructs may be defined using infinite sums. For example:

 27. Definition. For A c X and f in SC(X, X) define:

 while A do f

 = Sum_(n=0,OO) inc_A’ (f inc_A)^n

 in SC(X, X)

 (where, for g in SC(Y, Y), g^n is defined by g^0 = id_Y, g^(n+1) = g^n g)
 with one summand for each number n of traversals of the loop in either of
 these two variant flowschemes:

 
 
 o> X
  
  v
  o
  / \
  / \
  T / \ F
  oo A oo
   \ / 
  X  \ /  X
   \ / 
  v o v
  oo
   
   f 
   
  oo
  
  
  
 oo


 
 
 o> X
  
  v
  ooo
   
   
  v v
  oo oo
     
   inc_A   inc_A’ 
     
  oo oo
   
  X   X
  v v
  oo
   
   f 
   
  oo
  
  
 oo

 That the sum exists when the semantic category is Pfn
 is clear from the fact that:

 28. DD(inc_A’ (f inc_A)^n)

 = {x in X : x, f(x), ..., f^(n1)(x) in A, and f^n (x) not in A},

 which ensures that x is in DD(inc_A’ (f inc_A)^n) for at most one n.

 Manes & Arbib, AAPS, page 34.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 30
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 1. An Introduction to Denotational Semantics

 1.5. A Preview of Partially Additive Semantics (cont.)

 29. Definition. For A c X and f in SC(X, X) define:

 repeat f until A = (while A’ do f) f.

 It is easy to use the laws for manipulating sums to
 deduce a formula like that of (27), (see Exercise 7).

 A companion to the multivalued alternative construct
 of (23) is the multivalued repetitive construct:

 do p_1 > f_1 [] ... [] p_n > f_n od

 which is intended to mean "pick any i for which guard p_i is true and
 execute f_i; repeat until no such i exists and then exit". Since
 the choice of i is multivalued, many successful computation paths
 are possible. A suitable formal definition of the semantics
 is the following:

 30. Definition. Let p_1, ..., p_n be guard functions
 in Pfn(X, X) and let f_1, ..., f_n be in Mfn(X, X).
 Then the 'multivalued repetitive construct' is:

 do p_1 > f_1 [] ... [] p_n > f_n od

 = while A do if p_1 > f_1 [] ... [] p_n > f_n fi,

 where if p_i = inc_A_i, then A = A_1 _ ... _ A_n.

 This may be expressed as an infinite sum (see Exercise 8).

 31. Example. For A c X, f in SC(X, X), g in SC(X, Y) we have the
 identity [of the constructs in the following two flowschemes]:

 
 
 o> X
  
  v
  o
  / \
  / \
  T / \ F
  oo A oo
   \ / 
   \ / 
   \ / 
  v o v
  oo oo
     
   f   g 
     
  oo oo
   
    Y
   
 oo v

 =============================================================

 
 
  X
 
 v
 o
 / \
 / \
 T / \ F
 oo A oo
  \ / 
 o> \ / 
   \ / 
  v o v
  o oo
  / \  
  / \  g 
  T / \ F  
  oo A oo oo
   \ /  
   \ /  
   \ /  
  v o v 
  oo oo 
      
   f   g  
      
  oo oo 
    
    
    
 oo oo
 
  Y
 
 v

 that is,

 g (while A do f) = if A then g (while A do f) else g.

 A formal proof is as follows, where we make use of (15), (16), (25).

 if A then g (while A do f) else g

 0/0
 = { g Sum inc_A’ (f inc_A)^n } inc_A + g inc_A’
 n=0

 0/0
 = g { Sum inc_A’ (f inc_A)^n } + g inc_A’
 n=1

 <since inc_A’ inc_A = 0, while inc_A inc_A = inc_A>

 0/0
 = g { Sum inc_A’ (f inc_A)^n }
 n=0

 <since the sum in parentheses 'is' defined>

 = g (while A do f).

 Manes & Arbib, AAPS, pages 3436.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 31
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 Going beyond the partial functions and multifunctions
 already considered, one might invent other useful notions
 of the input/output function from X to Y. In addition to the
 need to consider X, Y as "data structures", there are theoretical
 approaches to semantics in which all X, Y must carry further structure.
 Rather than embark on the misguided task of presenting an exhaustive list
 of present and future possibilities, we introduce 'categories' as a framework
 for semantics which possess so little structure that most models of semantics
 can be represented this way. Surprisingly, what structure remains can be
 extensively developed and there is a great deal to say.

 Category theory per se is tangential to this book. We discuss only a few
 topics which bear directly on our analysis of the "semantic category".
 In Section 2.1 we introduce the notion of a category which provides
 the bare bones of abstraction of the semantics of composition.
 Section 2.2 introduces the useful organizing principle of
 duality and relates it to isomorphisms and to initial and
 terminal objects. Isomorphism is selfdual and initial
 is dual to terminal. The uniqueness of initial objects
 has important instantiations in semantics, such as the
 uniqueness of a sequence defined by simple recursion.
 Zero objects are simultaneously initial and terminal
 and generalize the empty set in Pfn. To round out
 this introduction to category theory we present,
 in Section 2.3, the notion of product and the
 dual concept of coproduct which both find
 frequent applications throughout the book.

 With this we have all the category theory needed
 for our study of program semantics in Chapter 3.
 Further category theory is developed in Chapter 4
 as motivated by the issues raised by attempting to
 describe assertion semantics in a semantic category.

 When we turn to the study of data types in Part 3
 we shall need to call on further concepts from
 category theory  functors, limits, and
 algebraic theories.

 The concepts in this chapter are quite abstract
 and may seem so even to readers with experience
 in pure mathematics. We encourage patience!
 Familiarity with the language will grow and
 the approach should come to seem increasingly
 natural with the applications to semantics in
 subsequent chapters.

 Manes & Arbib, AAPS, pages 3839.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 32
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.1. The Definition of a Category

 A "category" is an abstraction of "sets and functions between them". In a
 category sets become "objects", abstract things with no internal structure.
 There 'are' sets in the theory, however, namely, for each two objects X, Y
 there is a set of "morphisms" from X to Y. These morphisms compose in an
 associative way, and there are identity morphisms. The motivating examples
 for us are (2) and (3) below. Here, then, is the precise definition:

 1. Definition. A 'category' C
 is given by data (1, 2, 3)
 subject to axioms (a, b, c)
 as follows:

 Datum 1. A collection ob(C) of C'objects' X, Y, Z, ... .

 Datum 2. For each ordered pair of objects (X, Y) a set C(X, Y)
 of C'morphisms' from X to Y. We use the term 'map'
 as a synonym for morphism.

 Axiom a. The sets C(X, Y) are disjoint:

 If C(X, Y) ^ C(X', Y') =/= 0,

 then X = X' and Y = Y'.

 We will rarely say f is in C(X, Y), introducing
 instead the following two synonymous notations:

 f : X > Y

 f
 X > Y

 Here X is called the 'domain' of f
 and Y is called the 'codomain' of f.
 Axiom (a) guarantees that this definition
 makes sense, that is, there will never be
 any ambiguity concerning the domain or the
 codomain of a morphism.

 Datum 3. A composition operator 'o' assigning to each ordered pair
 of morphisms (f, g) of form f : X > Y, g : Y > Z (i.e.,
 the codomain of f coincides with the domain of g) a third
 morphism g o f : X > Z whose domain is that of f and whose
 codomain is that of g.

 Axiom b. Composition is associative, that is, given

 f : X > Y,

 g : Y > Z,

 h : Z > W,

 we have that

 (h o g) o f = h o (g o f) : X > W.

 Axiom c. For each object X there exists an
 'identity' morphism id_X : X > X with
 domain and codomain X and with the property

 that for each morphism f : Y > X,

 id_X o f = f,

 and for each morphism g : X > Z,

 g o id_X = g.

 This completes the definition. We observe at once
 that the id_X of axiom (c) is unique. For suppose
 also that u : X > X satisfies u o f = f for all
 f : Y > X and g o u = g for all g : X > Z.
 Regarding id_X as g for u, id_X o u = id_X.
 Regarding u as f for id_X, id_X o u = u.
 Thus u = id_X. Hence id_X is well named
 as 'the' identity morphism of X.

 As is usual for mathematical structures generally,
 a host of alternate notations may prove useful. Thus,
 composition might be denoted g * f instead of g o f for
 some categories. Since composition is the basic operation
 of category theory we shall most often write composition with
 no symbol at all, as gf. We shall almost always stick to id_X
 for the identity morphism of X. Even in our first examples,
 different categories may share the same objects and even
 the same morphisms. In such situations different arrows
 such as f : X » Y may be used and alternate notation
 for composition may be essential.

 Manes & Arbib, AAPS, pages 3940.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 33
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.1. The Definition of a Category (cont.)

 2. Example. 'Set', the category of 'sets and total functions'.
 Here objects are sets, a morphism f : X > Y is a total function
 from X to Y, composition is the usual one, (gf)(x) = g(f(x)), and
 id_X (x) = x.

 3. Example. 'Pfn', the category of 'sets and partial functions'.
 Here objects are sets, but a morphism f : X > Y is a partial function
 from X to Y. Composition is as in 1.3.7. The identity (total) function
 still provides id_X. Notice that Pfn(X, Y) in the sense of definition (1)
 is exactly Pfn(X, Y) as in 1.3.4.

 4. Example. 'Mfn', the category of 'sets and multivalued functions'.
 Here objects are sets, Mfn(X, Y) is as in 1.4.3 with composition
 given by 1.4.4, and id_X (x) = {x}.

 5. Example. 'ANMfn', the category of sets and multivalued functions
 with "all or nothing" composition. In this example, objects are
 sets and ANMfn(X, Y) = Mfn(X, Y) but composition gf : X > Z for
 f : X > Y and g : Y > Z is defined by:

 ( Ø if g(y) = Ø for some y in f(x),
 gf(x) = <
 ( {z in Z : there exists y in f(x) with z in g(y)} else.

 This is "all or nothing" in the sense that scenario 1.4.5 has been
 modified so that no output is defined if 'any' computation fails to
 terminate. The identity morphism id_X is the same as in Mfn. Thus,
 the only difference between ANMfn and Mfn is composition.

 Examples (25) are categories. For all but ANMfn, axiom (b)
 has been established in Section 1.4, (we leave the modification
 of properties 1.4.6 to ANMfn as an exercise). Axiom (c) is routine.
 Axiom (a) holds by definition  we consider the domain and codomain
 as part of the definition of a function. In the student's likely
 first encounter with functions, elementary calculus, axiom (a) is
 not made explicit. Formulas such as x^2 are confused with functions
 and one speaks one moment of "x^2 for 1 =< x =< 10" and the next
 moment of "x^2 for 2 =< x =< 3". According to our conventions
 these are different functions. This is reasonable since these
 functions have different properties  for example, the second
 is monotone increasing where the first is not.

 We again avoid a formal proof that repeated use of the associative law
 axiom (b) establishes that all nfold compositions are equal regardless of
 parenthesization, and so can be written without parentheses as f_n ... f_1.
 The commutative designation such as 1.5.4 is useful in any category.

 Thus, in the diagram:

 A g B
 o>o
 ^ \
 f / \ h
 / v
 X o o Y
 \ ^
 \ /
 \ /
 a \ / b
 \ /
 v /
 o
 D

 we understand that "ba = hgf" is asserted
 and we may emphasize this assertion by
 saying "the diagram commutes".

 When one regards a category as "the semantic category"
 generalizing 1.5.1, with (3), (4), (5) being examples,
 the flowscheme notation of 1.5.2  clearly a workable
 synonym for f : X > Y in any category  is useful.
 In practice, however, many other types of category
 arise. Experience dictates that virtually any class
 of structures can be made the objects of a category
 in a "natural" way. Some of the possibilities are
 explored in the exercises. We turn now to examples
 of categories that are useful in this book but not
 necessarily as "semantic" categories.

 Manes & Arbib, AAPS, pages 4041.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 34
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.1. The Definition of a Category (cont.)

 6. Definitions. A 'partially ordered set', or 'poset' for short,
 is a pair (P, =<) where P is a set and =< is a binary relation
 on P which is a 'partial order' on P. This is defined to mean
 that the following three axioms hold for all x, y, z in P.

 'Reflexivity'. x =< x.

 'Transitivity'. If x =< y and y =< z, then x =< z.

 'Antisymmetry'. If x =< y and y =< x, then x = y.

 We emphasize that the symbol =< has no à priori meaning.
 'Any' relation satisfying the three axioms is a partial order,
 and many different partial orders may be of interest on one set.

 While other symbols could be used, for example,
 xRy instead of x =< y, the =< symbol gives rise
 to the following associated definitions. In a
 poset (P, =<) we say that:

 x < y if x =< y but x =/= y,

 x >= y if y =< x,

 x > y if y < x,

 x =/< y if it is false that x =< y,

 warning: not equivalent to x > y,
 e.g., see the Hasse diagram below.

 x /< y, x /> y, x >/= y are defined similarly. It is not
 so clear how to obtain similar conventions with the symbol R.

 A useful device for drawing finite posets galore
 is the 'Hasse diagram', an example of which is:

 d e
 o o
 \ / \
 \ / \
 \ / \
 b o o c
 \ /
 \ /
 \ /
 o
 a

 Here P is the set of nodes (= o's); P = {a, b, c, d, e} in this example.
 The partial order is defined by x =< y if and only if x = y or x is below y
 and there exists an upward path from x to y. It is easy to see that (P, =<)
 is always a poset. In the above example, a =< b, a =< d, while b and c are
 'incomparable' because b =/< c and c =/< b.

 A 'totally ordered' set is a partially ordered set (P, =<) in which every two
 elements are comparable  given x, y at least one of x =< y or y =< x holds.
 The term 'partially' ordered set refers to the possibility that incomparable
 pairs may exist.

 Posets are fundamental structures arising frequently in
 mathematics and theoretical computer science. They play
 several roles in this book. Here are some examples of
 posets:

 7. Example. If N = {0, 1, 2, ...} is the set of natural numbers and
 =< has its usual meaning, then (N, =<) is a totally ordered set.

 8. Example. If Y is any set and !P!(Y) is the set of subsets of Y,
 then (!P!(Y), c) is a poset where A c B is the subset inclusion.
 Notice that we may have:

 oo
  Y 
  oo oo 
  / \ / \ 
  / o \ 
  / / \ \ 
  o o o o 
   A   B  
      
  o o o o 
  \ \ / / 
  \ o / 
  \ / \ / 
  oo oo 
  
 oo

 that is, A, B in !P!(Y) but neither A c B nor B c A holds. Thus,
 if Y has two or more elements, (!P!(Y), c) is not totally ordered.

 9. Example. For any two sets X, Y and f, g in Pfn(X, Y) define
 f =< g to mean 'g extends f', that is, "for x in X where f(x)
 is defined, there g(x) is also defined and then g(x) = f(x)".
 Then (Pfn(X, Y), =<) is a poset which is not totally ordered.
 This example is important in Section 5.1.

 Manes & Arbib, AAPS, pages 4142.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 35
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.1. The Definition of a Category (cont.)

 Partially ordered sets form a category.

 10. Example. Define 'Poset' to be the category whose objects are posets
 and with Poset((P, =<), (P', =<')) the set of all total functions
 f : P > P' which are 'monotone' in the sense that:

 if x_1 =< x_2 then f(x_1) =<' f(x_2).

 Composition and identity morphisms are as in Set.

 The reader should check that Poset does then satisfy the category axioms.

 We next introduce another important mathematical structure.

 11. Definition. A 'monoid' is a triple (M, o, e),
 where M is a set, o : M x M > M is a function,
 and e is in M, all subject to the axioms:

 o is 'associative'. (x o y) o z = x o (y o z) for all x, y, z in M.

 e is the 'identity'. e o x = x o e = x for all x in M.

 As for categories, the composition
 of x_1, ..., x_n is written without
 parentheses as x_1 o ... o x_n.

 12. Example. For any category C and any object X in ob(C),
 the set C(X, X) of all morphisms of X to itself forms
 a monoid under composition, with identity id_X.

 13. Example. An example of a monoid familiar from
 formal language theory is (X*, conc, !e!), where
 X* is the set of all finite strings (x_1, ..., x_m),
 m >= 0, with each x_i in the given "alphabet" X.
 Here 'conc' is the operation of 'concatenation':

 conc((x_1, ..., x_m), (y_1, ..., y_n))

 = (x_1, ..., x_m, y_1, ..., y_n),

 and !e! = () is the 'empty string',
 namely, (x_1, ..., x_m) with m = 0.

 14. Example. The category 'Mon' has monoids as objects and
 monoid homomorphisms as morphisms. Here, given two monoids
 (M, o, e) and (M', *, e'), we say that a function f : M > M'
 is a 'monoid homomorphism' f : (M, o, e) > (M', *, e') if and
 only if f(e) = e' and f(x o y) = f(x) * f(y) for all x, y in M.
 We define composition and identity as for functions. The reader
 should check that Mon does indeed satisfy the category axioms.

 Manes & Arbib, AAPS, page 43.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 36
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.1. The Definition of a Category (cont.)

 15. Definition. Let C be any category and let !D! be any
 subclass of ob(C). Define a category D by ob(D) = !D!
 and by letting D(X, Y) = C(X, Y) for each X, Y in !D!,
 with composition and identities being the same as in C.
 A routine check shows that D is a category. We call it
 the 'full subcategory' induced by !D!. The "full" refers
 to the fact that 'all' Cmorphisms between objects in !D!
 have been retained.

 Since no restrictions have been imposed on !D!,
 full subcategories give rise to a rich supply
 of new categories. Even more generally:

 16. Definition. Let C be a category. A 'subcategory' D of C is
 given by a subclass ob(D) of ob(C) and, for each X, Y in ob(D),
 a subset D(X, Y) of C(X, Y) subject to the axioms that id_X is
 in D(X, X) and, whenever f is in D(X, Y) and g is in D(Y, Z),
 then gf in C(X, Z) is in fact in D(X, Z).

 It is obvious that such D, with the composition inherited
 from C, satisfies axioms (a, b, c) of the definition of
 a category. Thus, a subcategory is a category in its
 own right.

 Clearly, a subcategory D of C is a 'full' subcategory
 if and only if D(X, Y) = C(X, Y) for all X, Y in ob(D).

 17. Example. Set is a (nonfull) subcategory of Pfn
 since ob(Set) = ob(Pfn), Set(X, Y) c Pfn(X, Y),
 id_X in Pfn(X, X) is the total identity function,
 and if f, g are composable total functions then
 their composition gf as partial functions is
 their composition as total functions.

 Manes & Arbib, AAPS, pages 4344.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 37
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects

 This section introduces the fundamental equivalence relation of category theory,
 isomorphism. Also discussed are duality, initial and terminal objects, as well
 as zero objects, which are simultaneously initial and terminal. The Cartesian
 product of two sets, the set of words on a given alphabet, and the principle
 of simple recursion are all manifestations of initial or terminal objects.

 Isomorphisms

 All constructions in a category must ultimately be described entirely
 in the language of objects, morphisms, composition, and identities.
 Our first definition in this language is that of "isomorphism".

 1. Definition. A morphism f : X > Y in a category C
 is an 'isomorphism' if there exists g : Y > X
 with gf = id_X and fg = id_Y, or, in terms of
 a commutative diagram:

 f
 X o>o Y
 \ \
 \  \
 \  \
 \  \
 \ g  \
 id_X \  \ id_Y
 \  \
 \  \
 \  \
 \  \
 vv v
 X o>o Y
 f

 Such g, 'if it exists', is unique, since if also hf = id_X and fh = id_Y,
 then g = g id_Y = g(fh) = (gf)h = id_X h = h. This proof uses the full
 force of axioms (b) and (c) in the definition of a category. Such g,
 then, is called the 'inverse' of f and is written f^1.

 2. Example. In Set, f : X > Y is an isomorphism if and only if
 f is 'bijective', that is, f is oneone and onto. To see this,
 first suppose that f is an isomorphism. If f(x) = f(x') then:

 x = (f^1)(f(x)) = (f^1)(f(x')) = x',

 which proves that f is oneone (injective).

 If y is any element of Y, then y = f((f^1)(y)),
 so f is onto (surjective).

 Conversely, let f be injective and surjective. If y is any element
 of Y there exists a unique of X, call it g(y), which f maps to y.
 Thus, f(g(y)) = y. Since, in particular, f(g(f(x))) = f(x) and
 f is injective, g(f(x)) = x.

 3. Example. In Pfn, f : X > Y is an isomorphism if and only if
 f is a total function which is bijective. By the first example
 it is obvious that a bijective total function is an isomorphism.
 Conversely, let f : X > Y be an isomorphism. Then (f^1)f = id_X,
 so that X = DD(id_X) = DD((f^1)f) c DD(f), which implies that f is
 a total function. Similarly f(f^1) = id_Y implies that f^1 is total,
 so f is an isomorphism in Set.

 4. Example. In Mfn, f : X > Y is an isomorphism if and only if f is a
 total function which is bijective. As in Example 3, one way is clear.
 Conversely, let f : X > Y be an isomorphism.

 First observe that,

 if y in f(x), then x in (f^1)(y),

 since f(f^1)(y) = {y} implies that (f^1)(y) =/= Ø,

 and,

 if x' in (f^1)(y), then x' in (f^1)f(x) = {x}, so that x' = x.

 Then,

 if y, y' in f(x), then x in (f^1)(y) and y' in f(x),

 so y' in f(f^1)(y) = {y}, and so y = y'.

 This proves that f is a partial function.
 Symmetrically, f^1 is a partial function.
 Now use the preceding example.

 Manes & Arbib, AAPS, pages 4647.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 38
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 5. Definition. Two objects X, Y in a category C are 'isomorphic' if
 there exists an isomorphism f : X > Y. This is written X ~=~ Y.

 6. Observation. Isomorphism is an equivalence relation on ob(C).

 Proof. id_X : X > X is an isomorphism with (id_X)^1 = id_X,
 so that X ~=~ X and isomorphism is 'reflexive'. If f : X > Y
 is an isomorphism, so is f^1 : Y > X, so that isomorphism is
 'symmetric'. To see that 'transitivity' holds, if f : X > Y
 and g : Y > Z are isomorphisms, then:

 (g f)(f^1 g^1) = g (f f^1) g^1 = g g^1 = id_Z

 and (f^1 g^1)(g f) = id_X similarly

 so that gf is an isomorphism (and (gf)^1 = f^1 g^1). þ

 As a rule, definitions and constructions in category theory
 (beginning with (7) below; see Theorem 8) are not unique
 but are "unique up to isomorphism". Thus, a major aspect
 of the philosophy of category is that "isomorphism"
 formalizes "abstractly the same".

 Each theorem of category theory has a "dual theorem" whose
 proof is an automatic consequence of the original, obtained
 by "reversing the arrows". Before giving the general notion
 of duality, we explore the motivating duality of initial and
 terminal objects.

 7. Definition. An object A in a category C is 'initial' if
 for every object X there exists exactly one morphism from
 A to X. We denote this unique morphism by ! : A > X.

 The next result, simple as its proof may be, is one of the most
 fundamental in category theory, because it turns out that many
 important constructs can be shown to be equivalent to initial
 objects in suitable categories.

 8. Theorem. If A and B are both initial objects in a category C
 then ! : A > B is an isomorphism. Thus, if C has an initial
 object it is unique up to a unique isomorphism.

 Proof. As any two morphisms from A to A are equal,
 similarly B to B, the following diagram commutes:

 !
 A o>o B
 \ \
 \  \
 \  \
 \  \
 \ !  \
 id_A \  \ id_B
 \  \
 \  \
 \  \
 \  \
 vv v
 A o>o B
 !

 9. Example. The empty set Ø is initial in Pfn with ! : Ø > X
 being the totally undefined function. Since this function is
 total (else it would be undefined on some element of Ø) we have
 that Ø is also initial in Set. Thus, ! : Ø > X is not only the
 unique partial function but also the unique multifunction (by 1.4.3)
 so Ø is again the initial object of Mfn and ANMfn.

 Manes & Arbib, AAPS, page 48.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 39
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 For each construction defined in a general category C,
 the 'dual construction' is the construction obtained
 by "reversing all arrows". An intitial object is
 one admitting unique morphisms from itself, so
 the dual concept should be an object admitting
 unique morphisms to itself, and such is aptly
 called a 'terminal object'.

 10. Definition. An object A in a category C is 'terminal'
 if for each object X of C there exists exactly one
 Cmorphism from X to A. The unique Cmorphism
 from X to A will be denoted ¡ : X > A.

 As another exercise in the language of duality, consider the notion of
 an isomorphism. We saw that f : X > Y is an isomorphism just in case
 there is a map g : Y > X such that the following diagram commutes:

 g
 Y o>o X
 \ \
 \  \
 \  \
 \  \
 \ f  \
 id_Y \  \ id_X
 \  \
 \  \
 \  \
 \  \
 vv v
 Y o>o X
 g

 If we reverse all of the arrows, we say that f : Y > X
 is "the dual of an isomorphism" just in case there is a
 map g : X > Y such that the following diagram commutes:

 g
 Y o<o X
 ^ ^^
 \  \
 \  \
 \  \
 \ f  \
 id_Y \  \ id_X
 \  \
 \  \
 \  \
 \  \
 \ \
 Y o<o X
 g

 But this just says that f is an isomorphism,
 so the concept of isomorphism is selfdual.
 With this observation, the dual of Theorem 8
 is the following:

 11. Theorem. If A and B are both terminal objects in
 a category C, then ¡ : A > B is an isomorphism.

 Proof. Once the concept of duality is understood,
 no proof is needed  just reverse all arrows in
 the proof of Theorem 8. þ

 Manes & Arbib, AAPS, page 49.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 40
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 We are now going to place the concept of duality on a more formal footing,
 by regarding a diagram in this category C with all its arrows reversed as
 being identical to a diagram in the "opposite category" C^op. Here the
 abstraction of our general definition of a category begins to show its
 power. A function f : X > Y from a set X to a set Y is certainly not
 to be considered as a function from Y to X, but there is nothing to
 prevent us from using the "arrowreversed notation" f : Y < X for
 f (using a distinctive new arrowhead) and calling this a morphism
 'from' Y 'to' X in the new category Set^op. Here is the general
 definition.

 12. Definition. Let C be a category.
 The 'dual' or 'opposite category'
 of C is the category C^op
 defined as follows:

 ob(C^op) = ob(C),

 C^op(X, Y) = C(Y, X).

 Taking C as the "primary" category whose arrows we write
 in the normal way f : X > Y, we write the same morphism
 in C^op as f : Y < X.

 If f in C^op(X, Y) and g in C^op(Y, Z) their composition g * f in C^op(X, Z)
 is obtained by taking the composition f o g of g in C(Z, Y) and f in C(Y, X)
 in C.

 f g g * f f o g
 X < Y < Z = X < Z = X < Z in C^op,

 where

 g f f o g
 Z > Y > X = Z > X in C.

 Axioms (a, b, c) for C^op follow easily from their correspondents in C.
 The identity morphisms of C^op coincide with those of C. Moreover,
 rephrasing our earlier observation that isomorphism is selfdual,
 f in C(X, Y) is an isomorphism in C if and only if the same g [f?]
 considered in C^op is an isomorphism in C^op.

 Proof. The following diagrams (in which equally labeled commutative diagrams)
 are equal statements in their respective categories) establish the assertion
 about isomorphisms:

 f f
 X o>o Y X o>o Y
 \ \ v vv
 \ (A)  \ \ (B)  \
 \  \ \  \
 \  \ \  \
 \ g  \ \ g  \
 id_X \  \ id_Y id_X \  \ id_Y
 \  \ \  \
 \  \ \  \
 \  \ \  \
 \  (B) \ \  (A) \
 vv v \ \
 X o>o Y X o>o Y
 f f

 Clearly, C = (C^op)^op. There is nothing special about being of the form C^op.
 C^op ranges over all categories as C does. When C is a "concrete" category such
 as Set there is no guarantee that C^op will likewise have such a representation.
 Set^op is "more abstract" than Set.

 Manes & Arbib, AAPS, pages 4950.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 41
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 13. Definition. Given a construction A in C,
 the 'dual construction' is that obtained by
 performing the construction in C^op, and then
 interpreting the construction in C. We will
 often refer to the dual of the A construct
 as the coA construct.

 Thus, isomorphism = coisomorphism, coinitial = terminal,
 and coterminal = initial. With this, let us use C^op in
 spelling out a full proof of Theorem 11. By definition,
 A and B are are initial objects in C^op. By Theorem 8,
 ! : B < A is an isomorphism in C^op. But we have
 already shown that f : B < A is an isomorphism in
 C^op if and only if f : A > B is an isomorphism
 in C. Thus, the unique morphism A > B (which
 we choose to call ¡ rather than !) is an
 isomorphism in C.

 14. Example. In Set, a terminal object is a oneelement set. Hence, Set has
 many different terminal objects but all are isomorphic (as they must be
 by Theorem 13). Thus, while the "abstract theory of initial objects"
 and the "abstract theory of terminal objects" should be regarded as
 the same (whatever we can state and prove about initial objects in
 C is automatically stated and proved, dually, for terminal objects
 in C^op, and C^op ranges over all categories as C does), in a
 particular example such as Set initial objects and terminal
 objects behave differently.

 15. Example. Let D be the full subcategory of Set whose objects are
 sets with two or more elements. While the initial object Ø of
 Set is not in D this does not in itself prove that D has no
 initial object (see Exercise 2.d). In fact, if A is any
 object of D there are at least two morphisms A > A.
 This proves that no object of D is either initial
 or terminal.

 Manes & Arbib, AAPS, pages 5051.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 42
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 Before introducing zero objects we consider the more general concept of
 zero morphisms which abstract from "totally undefined" morphisms in Pfn.

 16. Definition. Let C be any category, and let 0_XY
 in C(X, Y) be given for each X and Y. Say that
 (0_XY) is a 'family of zero morphisms' if for
 every f : W > X and g : Y > Z we have:

 0_WZ
 W o>o Z
  
  
  
 f   g
  
  
 v v
 X o>o Y
 0_XY

 On taking f or g equal to the identity, we see that this amounts to
 saying that "any composition which has a zero factor is itself zero".
 Set does not have a family of zero morphisms because Set(X, Ø) is empty
 whenever X =/= Ø. When a family of zero morphisms does exist, however,
 it is unique since if (0_XY), (Z_XY) are both families of zero morphisms:

 Z_XY = id_Y Z_XY (0_XX id_X) = (id_Y Z_XY) 0_XX id_X = 0_XY.

 We often write 0 : X > Y for 0_XY : X > Y if no confusion would arise.

 17. Example. In Pfn, Mfn, and ANMfn,
 the totally undefined functions:

 ¡ !
 0_XY = X > Ø > Y

 yield a family of zero morphisms.

 This example motivates the next definition and proposition.

 18. Definition. A 'zero object' in a category C
 is an object that is both initial and terminal.
 We denote a zero object by 0, the same symbol
 as for an initial object. Though arbitrary,
 the convention is standard.

 19. Proposition. A category with a zero object has zero morphisms.
 In a category with zero morphisms, each initial object is also
 a zero object and each terminal object is also a zero object.

 Proof. For the first statement,
 let 0 be a zero object and define:

 ¡ !
 0_XY = X > 0 > Y.

 Then the following diagram commutes:

 ¡ 0 !
 W o>o>o Z
  ^ \ 
  / \ 
 f  / \  g
  / ¡ ! \ 
  / \ 
 v/ vv
 X o o Y

 so (0_XY) is a family of zero morphisms.

 For the second statement, let zero morphisms exist
 and let 0 be an initial object. There exists at
 least one morphism X > 0, namely, 0. As 0 is
 initial, 0 : 0 > 0 is id_0 : 0 > 0, so if
 f : X > 0 is arbitrary, we have:

 f = id_0 f = 0f = 0.

 This shows that 0 is terminal.
 That a terminal object is initial
 is simply the dual statement. þ

 20. Example. Pfn, Mfn, and ANMfn have Ø as zero object.
 The construction in Example 17 follows the proof of
 Theorem 19.

 In Pfn, we have said f : X > Y is total iff DD(f) = X, that is,
 f(x) is defined for every x in X. In the same spirit, say that
 f : X > Y in Mfn or ANMfn is total if f(x) =/= Ø for all x in X.
 It is easy to prove (work Exercise 7!) that these definitions are
 unified by the following abstract one.

 21. Definition. Let C be a category with sero morphisms.
 Say that f : X > Y is 'total' if, whenever t : T > X,
 we have that t =/= 0 implies ft =/= 0.

 22. Proposition. Let C be a category
 with zero morphisms and let
 f : X > Y, g : Y > Z.
 Then:

 1. If f, g are total, so is gf : X > Z.

 2. If gf is total, so is f.

 Proof.

 1. If t =/= 0 then ft =/= 0 so g(ft) = (gf)t =/= 0.

 2. If t =/= 0 then (gf)t =/= 0 so g(ft) =/= 0.
 Since g0 = 0, ft =/= 0.

 þ

 Manes & Arbib, AAPS, pages 5152.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 43
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 Simple Recursion

 We conclude this section by showing how sequences inductively
 defined by simple recursion are the unique morphism ! from
 the initial object in an appropriate category. This is
 a foretaste of the principle that 'constructions in
 a category which are unique up to isomorphism are
 instantiations of initial objects'.

 By a 'sequence' in a set X we mean a function N > X.
 We may define the sequence g : N > N where n ~> 2^n
 inductively by the definition:

 g(0) = 1,

 g(n+1) = 2 * g(n), for n >= 0.

 This is a specific case of the following general notion.

 23. Definition. We say that the sequence g : N > X is defined from
 x_0 in X and f : X > X by 'simple recursion' if g satisfies the
 recursive definition:

 Basis Step. g(0) = x_0,

 Induction Step. g(n+1) = f(g(n)), for n in N.

 In the above example, x_0 = 1 and f(x) = 2 * x. It is clear that g
 is defined uniquely by the above scheme. We shall take up a general
 discussion of recursive definitions in Chapter 5. Here our task is
 to show that the g of (23) is really an example of the unique map !
 induced from an initial object. First, we note that an element x_0
 in X can also be written as the function 1 > X that sends the unique
 element of the oneelement set to x_0. We shall also call this map x_0.
 The basis step of (23) can then be rewritten as the commutative diagram:

 24.
 N
 o
 ^
 / 
 0 / 
 / 
 / 
 1 o  g
 \ 
 \ 
 x_0 \ 
 \ 
 vv
 o
 X

 Here, 0 is not a zero morphism as in (16),
 but the map whose value is 0 in N. We are,
 in fact, in Set, which does not have any
 zero morphisms.

 Again, if we let s : N > N denote
 the successor function n ~> n + 1,
 the induction step is equivalent
 to the commutative diagram:

 25.
 N s N
 o<o
  
  
  
  
  
 g   g
  
  
  
  
 v v
 o<o
 X f X

 More generally, then, we have the following:

 26. The Principle of Simple Recursion.

 For each x_0 : 1 > X and f : X > X
 there exists a unique g : N > X
 such that the following diagram commutes:

 N s N
 o<o
 ^ 
 /  
 0 /  
 /  
 /  
 1 o  g  g
 \  
 \  
 x_0 \  
 \  
 vv v
 o<o
 X f X

 This leads us to consider the following category:

 27. 'The category of simple recursion data' Srd has as objects the triples
 (X, x_0, f), where X is a set, x_0 in X, and f : X > X is a total
 function. A morphism p : (X, x_0, f) > (Y, y_0, h) is a total
 function p : X > Y for which the following diagram commutes:

 X f X
 o<o
 ^ 
 /  
 x_0 /  
 /  
 /  
 1 o  p  p
 \  
 \  
 y_0 \  
 \  
 vv v
 o<o
 Y h Y

 that is, p(x_0) = y_0, while p(f(x)) = h(p(x)) for each x in X.

 We must yet specify composition and identities and verify that
 Srd is a category. But, given this, we can note immediately
 that 'the principle of simple recursion' (26) is equivalent
 to the statement that "(N, 0, s) is initial in Srd".

 Manes & Arbib, AAPS, pages 5354.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 44
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.2. Isomorphism, Duality, and Zero Objects (cont.)

 Returning to the definition of Srd, composition is defined to be the usual
 composition q’ o q of total functions. That this is well defined is best
 seen from "diagram pasting":

 X f X
 o<o
 ^ 
 /  
 /  
 /  
 x_0 /  q  q
 /  
 /  
 /  
 / y_0 v h v
 1 o>o<o
 \  Y  Y
 \  
 \  
 \  
 z_0 \  q’  q’
 \  
 \  
 \  
 vv k v
 o<o
 Z Z

 For example,

 k(q’q) = (q’q)f,

 because

 k(q’q) = (kq’)q = (q’h)q = q’(hq) = q’(qf) = (q’q)f.

 Axiom (b) of 2.1.1 [the associative property] is obvious since the
 composition of total functions is associative. The identities for
 axiom (c) are the obvious ones:

 X f X
 o<o
 ^ 
 /  
 x_0 /  
 /  
 /  
 1 o  id_X  id_X
 \  
 \  
 x_0 \  
 \  
 vv v
 o<o
 X f X

 Now claim: If q : (X, x_0, f) > (Y, y_0, h) is a Srdmorphism, then q
 is an isomorphism in Srd if and only if q is bijective. On the one hand,
 if q is an isomorphism then there exists p : (Y, y_0, h) > (X, x_0, f)
 with q o p = id_Y and p o q = id_X, so q is bijective. Conversely, if q
 is bijective then there exists a function p : Y > X with q o p = id_Y and
 p o q = id_X. Is such p a morphism : (Y, y_0, h) > (X, x_0, f)? Consider
 the diagram below  the ?'s indicate places where commutativity is yet to
 be proved.

 X f X
 o<o
 ^ 
 /  
 /  
 /  
 x_0 /  q  q
 /  
 /  
 /  
 / y_0 v h v
 1 o>o<o
 \  Y  Y
 \ ?  
 \  
 \  
 x_0 \  p ?  p
 \  
 \  
 \  
 vv v
 o<o
 X f X

 Well, reading from the diagram above:

 (ph)q = p(hq) = p(qf) = (pq)f

 = id_X f = f = f id_X

 = f(pq) = (fp)q.

 Thus:

 ph = (ph)(q q^1) = ((ph)q) q^1

 = ((fp)q) q^1 = (fp)(q q^1) = fp.

 Similarly:

 p(y_0) = p(q(x_0)) = (pq)(x_0) = id_X (x_0) = x_0.

 We reiterate the desire that objects in a category should be isomorphic
 just in case they are "abstractly the same". This works out well for the
 category of recursion data above where if q : (X, x_0, f) > (Y, y_0, g)
 is an isomorphism, the bijection q transports x_0 to y_0 and f to g, so
 thinking of q as a "relabelling", the abstract structure is "the same".
 When designing new categories, one of the aesthetic criteria to keep
 in mind is that this technical sense of isomorphism should relate to
 intuitive ones. For example, if when defining the category of simple
 recursion data we dropped the requirement that q(x_0) = y_0 and that
 qf = gq, we would get a category whose isomorphisms were bijections,
 but here if s : N > N is s(n) = n + 1, whereas for z : N > N one
 has z(n) = 0, then (N, 0, s) and (N, 0, z) would be isomorphic,
 which is not desirable.

 Manes & Arbib, AAPS, pages 5455.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 45
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.3. Products and Coproducts

 In this section we show that two constructions of set theory which
 play an important role in program semantics  Cartesian products
 and disjoint unions  can be described in categorytheoretic terms
 and so generalize to a wide class of categories. While the original
 constructions seem unrelated, their categorytheoretic descriptions are
 seen to be dual. Cartesian products abstract to products in a category
 whereas disjoint unions abstract to coproducts, it being common to indicate
 duality by the prefix "co" as discussed earlier in 2.2.13. Coproducts are
 an important structural aspect of the partially additive categories in the
 next chapter.

 We begin by describing Cartesian products of sets. The term "Cartesian" honors
 the mathematician René Descartes who developed plane analytic geometry whereby
 the plane is represented as the set of all ordered pairs (x, y) with x and y
 in the set R of real numbers. Thus, the plane is R x R where, in general,
 for any two sets X, Y their 'Cartesian product' is the set:

 X x Y = {(x, y) : x in X, y in Y}

 of all ordered pairs with x in X and y in Y. If a program fragment had two
 variables x and y taking values in the sets X and Y, respectively, then X x Y
 would comprise all possible values which could be taken by the two variables
 taken together. Turning to a formal analysis, we offer the following precise
 description of an ordered pair (x, y) in X x Y which, if somewhat pedantic, is
 useful for generalizing to the product of infinitely many sets. If we invent
 a convenient twoelement set, say {i, j}, an ordered pair in X and Y amounts
 to a total function f : {i, j} > X _ Y with f(i) in X and f(j) in Y.
 The relationship between (x, y) and f is that f(i) = x and f(j) = y, and
 this formula defines (x, y) in terms of f, and f in terms of (x, y), and,
 indeed, establishes a bijective correspondence between the f and the (x, y).
 We could then regard X x Y as the set of all functions f : {i, j} > X _ Y
 with f(i) in X and f(j) in Y. This leads to the following general definition:

 1. Definition. Let (X_i : i in I) be any family of sets.
 Their 'Cartesian product' is the set of all functions:

 f
 I > _^(i in I) X_i

 such that f(i) is in X_i for each i in I.
 We denote this set of functions by:

 ]¯[_(i in I) X_i or ]¯[ (X_i : i in I).

 Often family notation is used so we write (x_i : i in I) instead of f,
 where f(i) = x_i. This directly generalizes the motivating comments
 above where I has two elements.

 2. Example. If I = {p, a, s} and if X_p is a set of persons, X_a is a set
 of age values, say {16, 17, ..., 80}, and X_s = {male, female}, then

 ]¯[_(i in I) X_i

 is a suitable value object for a data base "record"
 for a person's age and sex.

 Manes & Arbib, AAPS, pages 5758.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 46
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.3. Products and Coproducts (cont.)

 We next consider unions.

 Notice that if X_1 ~=~ X_2 are isomorphic in Set and

 if, similarly, Y_1 ~=~ Y_2, it is not necessarily true

 that X_1 _ Y_1 ~=~ X_2 _ Y_2.

 For example, let:

 X_1 = {a, A},

 X_2 = {a, b},

 Y_1 = {A, b, e},

 Y_2 = {c, d, e}.

 Then:

 X_1 _ Y_1 = {a, A, b, e} has four elements

 whereas:

 X_2 _ Y_2 = {a, b, c, d, e} has five elements.

 Since any two sets in bijective correspondence are
 "abstractly the same", according to the philosophy
 of category theory we seek a notion of union that
 respects isomorphism better than ordinary union.
 A solution is given in terms of "disjoint unions"
 wherein, given a family (X_i : i in I), the elements
 of X_i are "painted color i" before taking an ordinary
 union. The more precise definition makes use of ordered
 pairs and is as follows:

 3. Definition. Let (X_i : i in I) be any family of sets.
 Their 'disjoint union' is the set:

 {(x, i) : i in I, x in X_i}

 and is denoted:

 ]_[^(i in I) X_i or ]_[ (X_i : i in I).

 The choice of the upsidedown Cartesian product symbol
 anticipates the yettobeestablished categorytheoretic
 duality between Cartesian product and disjoint union.

 Notice that

 ]_[^(i in I) X_i = _^(i in I) X_i x {i}

 is the ordinary union of the "painted" sets X_i x {i}
 in which an element (x, i) is "x painted color i".

 The union is disjoint because

 X_i x {i} ^ X_j x {j} = Ø if i =/= j,

 even if X_i = X_j.

 Disjoint unions also occur in semantics:

 4. Example. The disjoint union has a very natural application
 in describing the exit value of a multiexit program. Here,
 a value like (y, i) would be interpreted as "execution of the
 program terminates by taking exit i with value y". For example,
 given f_1, ..., f_n : X > Y in Pfn, consider the case statement
 of 1.5.22.

 case (p_1, ..., p_n) of (f_1, ..., f_n)

 with flowscheme:

 oo oo :
 o> p_1 > f_1 :>o
  oo oo : 
  · : 
 >o · : o>
  · : 
  oo oo : 
 o> p_n > f_n :>o
 oo oo :

 For I = {1, ..., n}, the semantics of the
 portion to the left of the dotted line is:

 g
 X > ]_[^(i in I) Y

 where the notation ]_[^(i in I) Y means ]_[^(i in I) Y_i with each Y_i = Y,

 and where:

 ( (f_i (x), i) if p_i (x) is defined,
 g(x) = <
 ( undefined else.

 This discussion will be completed in (25) below.

 Manes & Arbib, AAPS, pages 5859.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 47
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.3. Products and Coproducts (cont.)

 We turn now to a description of Cartesian products that uses
 only categorytheoretic language in Set. Our starting point
 is a given family (X_i : i in I) of sets. Our Definition 1
 is in terms of elements; we must think more in terms of how
 to use morphisms in Set to characterize when a set X is to be
 isomorphic to ]¯[_(i in I) X_i. To this end consider a family
 of morphisms of the form (f_i : Y > X_i : i in I). For each
 y in Y, (f_i (y) : i in I) is an element of ]¯[_(i in I) X_i
 and so should correspond to a definite element of X, call it
 f(x). In this way there is a bijective correspondence between
 morphisms Y > X and families of morphisms Y > X_i. Moreover,
 when X = ]¯[_(i in I) X_i this correspondence is easily described
 in terms of commutative diagrams. To begin, we need the following
 definition:

 5. Definition. For (X_i : i in I) a family of sets and j in I,
 the 'j^th projection function' is:

 pr_j
 ]¯[_(i in I) X_i > X_j, (x_i) ~> x_j.

 We then observe that the relationship between f and the f_i is precisely:

 6.
 pr_j
 ]¯[_(i in I) X_i o>o X_j
 ^ ^
 \ /
 \ /
 \ /
 f \ / f_j (for all j in I)
 \ /
 \ /
 \ /
 \ /
 o
 Y

 In terms of elements, (6) asserts that:

 f(y) = (f_i (y) : i in I)

 which is what we expected. We have motivated the following definition.

 7. Definition. Let C be any category and let (X_i : i in I) be a family of
 objects of C. A 'product' of (X_i : i in I) is (P, (pr_i : i in I)),
 where P is an object of C and for each i in I, pr_i : P > X_i is
 a Cmorphism, all subject to the following property:

 Given (Y, (f_i : i in I)) with Cobject Y and Cmorphisms f_i : Y > X_i,
 there exists a unique f : Y > P such that pr_i f = f_i for all i in I,
 as shown here:

 pr_i
 P o>o X_i
 ^ ^
 \ /
 \ /
 \ /
 f \ / f_i
 \ /
 \ /
 \ /
 \ /
 o
 Y

 The pr_i are called 'projection morphisms'.

 8. Example. In Set, P = ]¯[_(i in I) X_i,
 with pr_i as in (5), is a product of
 (X_i : i in I). This was established
 in the discussion motivating (7).

 Manes & Arbib, AAPS, pages 5960.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 48
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.3. Products and Coproducts (cont.)

 9. Proposition. In any category C, products are
 unique up to a unique isomorphism, that is,
 if (P, (pr_i)) and (P’, (pr’_i)) are both
 products of (X_i : i in I), then the
 unique !a! in the next diagram
 is an isomorphism:

 !a!
 P o>o P’
 \ /
 \ /
 \ /
 \ /
 pr_i \ / pr’_i
 \ /
 \ /
 \ /
 v v
 o
 X_i

 Proof. For given (X_i : i in I), let D be a category
 whose objects are all (Y, (f_i)) with f_i : Y > X_i,
 whose morphisms h : (Y, (f_i)) > (Z, (g_i)) are
 defined to be Cmorphisms h : Y > Z such that:

 h
 Y o>o Z
 \ /
 \ /
 \ /
 \ /
 f_i \ / g_i
 \ /
 \ /
 \ /
 v v
 o
 X_i

 (all i in I)

 with composition and identities as in C. That D is a category is
 routinely verified. By Definition 7, a product of (X_i : in I) is
 the same thing as a terminal object of D. The desired result now
 follows from Theorem 2.2.11. þ

 Manes & Arbib, AAPS, page 60.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
SEM. Note 49
o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o
 2. An Introduction to Category Theory

 2.3. Products and Coproducts (cont.)

 10. Proposition.
 Manes & Arbib, AAPS, pages 6061.

 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
SET. Set Theory
SET. Note 1
This is one of those things that I wish I had just gone ahead and
done a year ago. Better late than never? I will begin excerpting
some standard presentations of set theory, just the basic classic
material, nothing near the edge of the everexploding universe.
I had started down this road once before, but got distracted:
08 Mar 2002. http://suo.ieee.org/email/msg08053.html
09 Mar 2002. http://suo.ieee.org/email/msg08067.html
It just seems that there is a persistent problem about understanding the
difference between our informal set theories and our formal set theories,
and especially the fact that the formal theory does not always do for us
what we might imagine that the informal theory does for us.
SET. Note 2
 Appendix

 Elementary Set Theory

 This appendix is devoted to elementary set theory.
 The ordinal and cardinal numbers are constructed
 and the most commonly used theorems are proved.
 The nonnegative integers are defined and
 Peano's postulates are proved as theorems.

 A working knowledge of elementary logic is assumed, but acquaintance with
 formal logic is not essential. However, an understanding of the nature
 of a mathematical system (in the technical sense) helps to clarify and
 motivate some of the discussion. Tarski's excellent exposition [1]
 describes such systems very lucidly and is particularly recommended
 for general background.

 This presentation of set theory is arranged so that it may be
 translated without difficulty into a completely formal language. †
 In order to facilitate either formal or informal treatment the
 introductory material is split into two sections, the second of
 which is essentially a precise restatement of part of the first.
 It may be omitted without loss of continuity.

 The system of axioms adopted is a variant of systems of Skolem and of
 A.P. Morse and owes much to the HilbertBernaysvon Neumann system as
 formulated by Gödel. The formulation used here is designed to give
 quickly and naturally a foundation for mathematics which is free
 from the more obvious paradoxes.

 For this reason a finite axiom system is abandoned
 and the development is based on eight axioms and
 one axiom scheme ‡ (that is, all statements of a
 certain prescribed form are accepted as axioms).

 It has been convenient to state as theorems many
 propositions which are essentially preliminary
 to the desired results. This clutters up the
 list of theorems, but it permits omission of
 many proofs and abbreviation of others.
 Most of the devices used are more or
 less evident from the statements of
 the definitions and theorems.

 † That is, it is possible to write the theorems in terms of
 logical constants, logical variables, and the constants of
 the system, and the proofs may be derived from the axioms
 by means of rules of inference. Of course, a foundation
 in formal logic is necessary for this sort of development.
 I have used (essentially) Quine's metaaxioms for logic [1]
 in making this kind of presentation for a course.

 ‡ Actually, an axiom scheme for definition is also assumed without explicit
 statement. That is, statements of a certain form, which in particular
 involve one new constant and are either an equivalence or an identity,
 are accepted as definitions and are treated in precisely the same
 fashion as theorems. The axiom scheme of definition is in the
 fortunate position of being justifiable in the sense that,
 if the definitions conform with the prescribed rules,
 then no new contradictions and no real enrichment
 of the theory results. These results are due
 to S. Lésniewski.

 JLK, Gen Top, pages 250251.

 Bibliography, pages 282291.

 W.V.O. Quine [1],
'Mathematical Logic',
 Cambridge (USA), 1947.

 A. Tarski [1],
'Introduction to Modern Logic',
 2nd American Ed., New York, 1946.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 3
 Elementary Set Theory

 The Classification Axiom Scheme

 Equality is always used in the sense of logical identity;
 "1 + 1 = 2" is to mean that "1 + 1" and "2" are names of
 the same object. Besides the usual axioms for equality an
 unrestricted substitution rule is assumed: in particular the
 result of changing a theorem by replacing an object by its equal
 is again a theorem.

 There are two primitive (undefined) constants besides "=" and the other
 logical constants. The first of these is "in" [epsilon], which is read
 "is a member of" or "belongs to". The second constant is denoted, rather
 strangely, "{·· : ···}" and is read "the class if all ·· such that ···".
 It is the 'classifier'.

 A remark on the use of the term "class" may clarify matters. The term
 does not appear in any axiom, definition, or theorem, but the primary
 interpretation † of these statements is as assertions about classes
 (aggregates, collections). Consequently the term "class" is used
 in the discussion to suggest this interpretation.

 Lower case Latin letters are (logical) variables. The difference between a
 constant and a variable lies entirely in the substitution rules. For example,
 the result of replacing a variable in a theorem by another variable which does
 not occur in the theorem is again a theorem, but there is no such substitution
 rule for constants.

 I. Axiom of Extent. ‡

 For each x and each y it is true that x = y if and only
 if for each z, z is in x when and only when z is in y.

 Thus two classes are identical iff only every member of each is a member of the
 other. We shall frequently omit "for each x" or "for each y" in the statement of
 a theorem or definition. If a variable, for example "x", occurs and is not preceded
 by "for each x" or "for some x" it is understood that "for each x" is to be prefixed
 to the theorem or definition in question.

 † Presumably other interpretations are also possible.

 ‡ One is tempted to make this the definition of equality, thus
 dispensing with one axiom and with all logical presuppositions
 about equality. This is perfectly feasible. However, there would
 be no unlimited substitution rule for equality and one would have
 to assume as an axiom: If x is in z and y = x, then y is in z.

 JLK, Gen Top, pages 251252.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 4
 Elementary Set Theory

 The Classification Axiom Scheme (cont.)

 The first definition assigns a special name to those classes which
 are themselves members of classes. The reason for this dichotomy
 among classes is discussed a little later.

 1. Definition. x is a 'set' iff for some y, x in y.

 The next task is to describe the use of the classifier. The first blank
 in the classifier constant is to be occupied by a variable and the second
 by a formula, for example {x : x in y}. We accept as an axiom the statement:
 u in {x : x in y} iff u is a set and u in y. More generally, each statement
 of the following form is supposed to be an axiom:

 u in {x : ··· x ···} iff u is a set and ··· u ···.

 Here "··· x ···" is supposed to be a formula and "··· u ···" is supposed to be the
 formula which is obtained from it by replacing every occurrence of "x" by "u".
 Thus u in {x : x in y and z in x} iff u is a set and u in y and z in u.

 This axiom scheme is precisely the usual intuitive construction of classes except
 for the requirement "u is a set". This requirement is very evidently unnatural
 and is intuitively quite undesirable. However, without it a contradiction may
 be constructed simply on the basis of the axiom of extent. (See theorem 39
 and the discussion preceding it.) This complication, which necessitates a
 good bit of technical work on the existence of sets, is simply the price
 paid to avoid obvious inconsistencies. Less obvious inconsistencies
 may very possibly remain.

 JLK, Gen Top, page 252.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 5
 Elementary Set Theory

 The Classification Axiom Scheme (cont.)

 A precise statement of the classification axiom scheme
 requires a description of formulae. It is agreed that: †

 a. The result of replacing "!a!" and "!b!"
 by variables is, for each of the following,
 a formula.

 !a! = !b!

 !a! in !b!

 b. The result of replacing "!a!" and "!b!" by variables
 and "A" and "B" by formulae is, for each of the following,
 a formula.

 if A, then B

 A iff B

 it is false that A

 A and B

 A or B

 for every !a!, A

 for some !a!, A

 !b! in {!a! : A}

 {!a! : A} in !b!

 {!a! : A} in {!b! : B}

 Formulae are constructed recursively, beginning with
 the primitive formulae of (a) and proceeding via the
 constructions permitted by (b).

 II. Classification AxiomScheme.

 An axiom results if in the following "!a!" and "!b!"

 are replaced by variables, "A" by a formula $A$,

 and "B" by the formula obtained from $A$

 by replacing each occurrence

 of the variable which replaced !a!

 by the variable which replaced !b!:

 For each !b!, !b! in {!a! : A} if and only if !b! is a set and B.

 † This circuitous sort of language is unfortunately necessary.
 Using the convention of quotation marks for names, for example,
 "Boston" is the name of Boston, if $A$ is a formula and $B$ is
 a formula then "$A$ => $B$" is not a formula. For example, if
 $A$ is "x = y" and $B$ is "y = z", then '"x = y" => "y = z"'
 is not a formula. Formulae (for example "x = y") contain no
 quotation marks. Instead of "$A$ => $B$" we want to discuss
 the result of replacing "!a!" by $A$ and "!b!" by $B$ in
 "!a! => !b!". This sort of circumlocution can be avoided by
 using Quine's corner convention.

 JLK, Gen Top, page 253.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 6
 Elementary Set Theory

 Elementary Algebra of Classes

 The axioms already stated permit the deduction of a number
 of theorems directly from logical results. The deduction
 is straightforward and only an occasional proof is given.

 2. Definition. x _ y = {z : z in x or z in y}.

 3. Definition. x ^ y = {z : z in x and z in y}.

 The class x _ y is the 'union' of x and y,

 and x ^ y is the 'intersection' of x and y.

 4. Theorem.

 z in x _ y if and only if z in x or z in y, and

 z in x ^ y if and only if z in x and z in y.

 Proof. From the classification axiom, z in x _ y iff

 z in x or z in y and z is a set. But in view of

 the definition 1 of set, z in x or z in y and

 z is a set iff z in x or z in y. A similar

 argument proves the corresponding result

 for intersection. þ

 JLK, Gen Top, pages 253254.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 7
 Elementary Set Theory

 Elementary Algebra of Classes (cont.)

 5. Theorem.

 x _ x = x

 and

 x ^ x = x.

 6. Theorem.

 x _ y = y _ x

 and

 x ^ y = y ^ x.

 7. Theorem. †

 (x _ y) _ z = x _ (y _ x)

 and

 (x ^ y) ^ z = x ^ (y ^ x).

 These theorems state that union and intersection are, in the usual sense,
 commutative and associative operations. The distributive laws follow.

 8. Theorem.

 x ^ (y _ z) = (x ^ y) _ (x ^ z)

 and

 x _ (y ^ z) = (x _ y) ^ (x _ z).

 9. Definition. x ~in y if and only if it is false that x in y.

 10. Definition. ~x = {y : y ~in x}.

 The class ~x is called the 'complement' of x.

 11. Theorem. ~(~x) = x.

 † There would be no necessity for parentheses if the constant "_"
 occurred first in the definition; that is, "_ x y" instead of
 "x _ y". In this case the first part of the theorem would read:

 _ _ x y z = _ x _ y z.

 JLK, Gen Top, page 254.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 8
 Elementary Set Theory

 Elementary Algebra of Classes (cont.)

 12. Theorem. (De Morgan).

 ~(x _ y) = (~x) ^ (~y)

 and

 ~(x ^ y) = (~x) _ (~y).

 Proof. Only the first of the two statements will be proved.

 For each z, we have z in ~(x _ y) iff z is a set

 and it is false that z in (x _ y), because of the

 classification axiom and the definition 10 of complement.

 Using theorem 4, z in x _ y iff z in x or z in y.

 Consequently, z in ~(x _ y) iff z is a set and

 z ~in x and z ~in y, that is, iff z in ~x and z in ~y.

 Using 4 again, z in ~(x _ y) iff z in (~x) ^ (~y).

 Hence ~(x _ y) = (~x) ^ (~y) because of the

 axiom of extent. þ

 13. Definition. x ~ y = x ^ (~y).

 The class x ~ y is the 'difference' of x and y,
 or the 'complement' of y relative to x.

 14. Theorem. x ^ (y ~ z) = (x ^ y) ~ z.

 The proposition "x _ (y ~ z) = (x _ y) ~ z" is unlikely,
 although at this stage it is impossible to exhibit a counter example.
 To be a little more precise, the negation of the proposition cannot be
 proved on the basis of the axioms so far assumed; it is possible to
 make a model for this initial part of the system such that x ~in y
 for each x and each y (there are no sets). The negation of the
 proposition can be proved on the basis of axioms which will
 presently be assumed.

 JLK, Gen Top, pages 254255.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 9
 Elementary Set Theory

 Elementary Algebra of Classes (cont.)

 15. Definition. 0 = {x : x =/= x}.

 The class 0 is the 'void class', or 'zero'.

 16. Theorem. x ~in 0.

 17. Theorem. 0 _ x = x

 and 0 ^ x = 0.

 18. Definition. $U$ = {x : x = x}.

 The class $U$ is the 'universe'.

 19. Theorem. x in $U$ if and only if x is a set.

 20. Theorem. x _ $U$ = $U$

 and x ^ $U$ = x.

 21. Theorem. ~0 = $U$

 and ~$U$ = 0.

 22. Definition. †

 ^ x = {z : for each y, if y in x, then z in y}.

 23. Definition.

 _ x = {z : for some y, z in y and y in x}.

 The class ^ x is the 'intersection' of the members of x.
 Notice that the members of ^ x are members of members of x
 and may or may not belong to x.

 The class _ x is the 'union' of the members of x.

 Observe that a set z belongs to ^ x (or to _ x) iff
 z belongs to every (respectively, to some) member of x.

 24. Theorem. ^ 0 = $U$

 and _ 0 = 0.

 Proof. z in ^ 0 iff z is a set and z belongs to each member of 0.

 Since (theorem 16) there is no member of 0, z in ^ 0 iff

 z is a set, and by 19 and the axiom of extent ^ 0 = $U$.

 The second assertion is also easy to prove. þ

 † A bound variable notation for the intersection
 of the members of a family is not needed in this
 appendix, and consequently a notation is adopted
 which is simpler than that used in the rest of
 the book.

 JLK, Gen Top, pages 255256.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 10
 Elementary Set Theory

 Elementary Algebra of Classes (cont.)

 25. Definition. x c y iff for each z, if z in x, then z in y.

 A class x is a 'subclass' of y, or is 'contained in' y, or y 'contains' x,
 iff x c y. It is absolutely essential that "c" not be confused with "in".
 For example, 0 c 0 but it is false that 0 in 0.

 26. Theorem. 0 c x and x c $U$.

 27. Theorem. x = y iff x c y and y c x.

 28. Theorem. If x c y and y c z, then x c z.

 29. Theorem. x c y iff x _ y = y.

 30. Theorem. x c y iff x ^ y = x.

 31. Theorem. If x c y,

 then _ x c _ y

 and ^ y c ^ x.

 32. Theorem. If x in y,

 then x c _ y

 and ^ y c x.

 The preceding definitions and theorems
 are used very frequently  often
 without explicit reference.

 JLK, Gen Top, page 256.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 11
 Elementary Set Theory

 Existence of Sets

 This section is concerned with the existence of sets and
 with the initial steps in the construction of functions
 and other relations from the primitives of set theory.

 III. Axiom of Subsets.

 If x is a set
 there is a set y
 such that for each z,
 if z c x, then z in y.

 33. Theorem. If x is a set and z c x, then z is a set.

 Proof. According to the axiom of subsets, if x is a set
 there is y such that, if z c x, then z in y, and
 hence by definition 1, z is a set. (Observe that
 this proof does not use the full strength of the
 axiom of subsets since the argument does not
 require that y be a set.) þ

 34. Theorem. 0 = ^ $U$

 and $U$ = _ $U$.

 Proof. If x in ^ $U$, then x is a set and, since 0 c x, it follows from 33

 that 0 is a set. Then 0 in $U$ and each member of ^ $U$ belongs to 0.

 It follows that ^ $U$ has no members. Clearly (that is, by theorem 26),

 _ $U$ c $U$. If x in $U$, then x is a set, and by the axiom of subsets

 there is a set y such that, if z c x, then z in y. In particular, x in y,

 and since y in $U$ it follows that x in _ $U$. Consequently $U$ c _ $U$

 and equality follows. þ

 35. Theorem. If x =/= 0, then ^ x is a set.

 Proof. If x =/= 0, then for some y, y in x. But y is a set,

 and since ^ x c y by 32, it follows from 33 that

 ^ x is a set. þ

 JLK, Gen Top, pages 256257.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 12
 Elementary Set Theory

 Existence of Sets (cont.)

 36. Definition. 2^x = {y : y c x}.

 37. Theorem. $U$ = 2^$U$.

 Proof. Every member of 2^$U$ is a set
 and consequently belongs to $U$.
 Every member of $U$ is a set and
 is contained in $U$ (theorem 26)
 and hence belongs to 2^$U$. þ

 38. Theorem.

 If x is a set, then 2^x is a set,
 and for each y, y c x iff y in 2^x.

 It is interesting to notice that the existence of sets is
 not provable on the basis of the axioms so far enunciated,
 but it is possible to prove that there is a class which is
 not a set. Letting R be {x : x ~in x}, by the classifier
 axiom R in R iff R ~in R and R is a set. It follows that
 R is not a set. Observe that, if the classifier axiom did
 not contain the "is a set" qualification, then an outright
 contradiction, R in R iff R ~in R, would result. This is
 the Russell paradox. A consequence of this argument is
 that $U$ is not a set, because R c $U$ and 33 applies.
 (The regularity axiom will imply that R = $U$; this
 axiom also yields a different proof that $U$ is not
 a set.)

 39. Theorem. $U$ is not a set.

 JLK, Gen Top, page 257.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 13
 Elementary Set Theory

 Existence of Sets (cont.)

 40. Definition. {x} = {z : if x in $U$, then z = x}.

 'Singleton' x is {x}.

 This definition is an example of a technical device which is very convenient.
 If x is a set, {x} is a class whose only member is x. However, if x is not
 a set, then {x} = $U$ (these statements are theorems 41 and 43). Actually,
 the primary interest is in the case where x is a set, and for this case
 the same result is given by the more natural definition {z : z = x}.
 However, it simplifies statements of results greatly if computations
 are arranged so that $U$ is the result of applying the computation
 outside its pertinent domain.

 41. Theorem.

 If x is a set,
 then, for each y,
 y in {x} iff y = x.

 42. Theorem.

 If x is a set, then {x} is a set.

 Proof. If x is a set, then {x} c 2^x, and 2^x is a set. þ

 43. Theorem.

 {x} = $U$ if and only if x is not a set.

 Proof. If x is a set, then {x} is a set
 and consequently is not equal to $U$.
 If x is not a set, then x ~in $U$ and
 and {x} = $U$ by the definition. þ

 44. Theorem.

 If x is a set,

 then ^ {x} = x

 and _ {x} = x.

 If x is not a set,

 then ^ {x} = 0

 and _ {x} = $U$.

 Proof. Use 34 and 41. þ

 IV. Axiom of Union.

 If x is a set and y is a set so is x _ y.

 45. Definition. {x y} = {x} _ {y}.

 The class {x y} is an 'unordered pair'.

 46. Theorem.

 If x is a set and y is a set,

 then {x y} is a set and z in {x y} iff z = x or z = y.

 {x y} = $U$ if and only if x is not a set or y is not a set.

 47. Theorem.

 If x and y are sets,

 then ^ {x y} = x ^ y

 and _ {x y} = x _ y.

 If either x or y is not a set,

 then ^ {x y} = 0

 and _ {x y} = $U$.

 JLK, Gen Top, page 258.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 14
 Elementary Set Theory

 Ordered Pairs: Relations

 This section is devoted to the properties of ordered pairs and relations.
 The crucial property for ordered pairs is theorem 55: if x and y are sets,
 then (x, y) = (u, v) iff x = u and y = v.

 48. Definition. (x, y) = {{x} {x y}}.

 The class (x, y) is an 'ordered pair'.

 49. Theorem.

 (x, y) is a set if and only if x is a set and y is a set.

 If (x, y) is not a set, then (x, y) = $U$.

 50. Theorem.

 If x and y are sets, then:

 _ (x, y) = {x y}

 ^ (x, y) = {x}

 _ _ (x, y) = x _ y

 _ ^ (x, y) = x

 ^ _ (x, y) = x ^ y

 ^ ^ (x, y) = x

 If either x or y is not a set, then:

 _ _ (x, y) = $U$

 _ ^ (x, y) = 0

 ^ _ (x, y) = 0

 ^ ^ (x, y) = $U$

 51. Definition. 1st coord z = ^ ^ z.

 52. Definition. 2nd coord z = (^ _ z) _ ((_ _ z) ~ _ ^ z).

 These definitions will be used, with one exception,
 only in the case where z is an ordered pair.
 The 'first coordinate' of z is 1st coord z.
 The 'second coordinate' of z is 2nd coord z.

 53. Theorem. 2nd coord $U$ = $U$.

 54. Theorem.

 If x and y are sets,

 then 1st coord (x, y) = x

 and 2nd coord (x, y) = y.

 If either of x and y is not a set,

 then 1st coord (x, y) = $U$

 and 2nd coord (x, y) = $U$.

 Proof. If x and y are sets, then the equality for

 1st coord is immediate from 50 and 51.

 The equality for 2nd coord reduces to showing that

 y = (x ^ y) _ ((x _ y) ~ x), by 50 and 52.

 It is straightforward to see that

 (x _ y) ~ x = y ~ x,

 and by the distributive law,

 (y ^ x) _ (y ^ ~x) = y ^ (x _ ~x) = y ^ $U$ = y.

 If either x or y is not a set, then, using 50 it is easy to compute

 1st coord (x, y) and 2nd coord (x, y). þ

 55. Theorem.

 If x and y are sets and (x, y) = (u, v), then x = u and y = v.

 JLK, Gen Top, page 259.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 15
 Elementary Set Theory

 Ordered Pairs: Relations (cont.)

 56. Definition.

 r is a 'relation' if and only if
 for each member z of r there is
 x and y such that z = (x, y).

 A 'relation' is a class whose members are ordered pairs.

 57. Definition.

 r o s =

 {u : for some x, some y, some z, u = (x, z), (x, y) in s, (y, z) in r}.

 The class r o s is the 'composition' of r and s.

 To avoid excessive notation we agree that {(x, z) : ···} is to
 be identical with {u : for some x, some z, u = (x, z) and ···}.
 Thus r o s = {(x, z) : for some y, (x, y) in s and (y, z) in r}.

 58. Theorem.

 (r o s) o t = r o (s o t).

 59. Theorem.

 r o (s _ t) = (r o s) _ (r o t),

 r o (s ^ t) c (r o s) ^ (r o t).

 60. Definition.

 r^1 = {(x, y) : (y, x) in r}.

 If r is a relation, r^1 is the 'relation inverse to' r.

 61. Theorem.

 (r^1)^1 = r.

 62. Theorem.

 (r o s)^1 = (s^1) o (r^1).

 JLK, Gen Top, page 260.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 16
 Elementary Set Theory

 Functions

 Intuitively, a function is to be identical with the class of ordered pairs
 which is its graph. All functions are singlevalued, and consequently two
 distinct ordered pairs belonging to a function must have different first
 coordinates.

 63. Definition.

 f is a 'function' if and only if f is a relation
 and for each x, each y, each z, if (x, y) in f
 and (x, z) in f then y = z.

 64. Theorem.

 If f is a function and g is a function so is f o g.

 65. Definition.

 domain f = {x : for some y, (x, y) in f}.

 66. Definition.

 range f = {y : for some x, (x, y) in f}.

 67. Theorem.

 domain $U$ = $U$,

 range $U$ = $U$.

 Proof. If x in $U$, then (x, 0) and (0, x) belong to $U$
 and hence x belongs to domain $U$ and range $U$. þ

 JLK, Gen Top, page 260.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
SET. Note 17
 Elementary Set Theory

 Functions (cont.)

 ...

 JLK, Gen Top, page 261.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Topology
TOP. Note 1
 1. Topological Spaces

 1.1. Topologies and Neighborhoods

 A 'topology' is a family !T! of sets which satisfies the two conditions:
 the intersection of any two members of !T! is a member of !T!, and the
 union of the members of each subfamily of !T! is a member of !T!. The
 set X = _{U : U in !T!} is necessarily a member of !T! because !T!
 is a subfamily of itself, and every member of !T! is a subset of X.
 The set X is called the 'space' of the topology !T! and !T! is a
 'topology for X'. The pair (X, !T!) is a 'topological space'.
 When no confusion seems possible we may forget to mention the
 topology and write "X is a topological space". We shall be
 explicit in cases where precision is necessary (for example
 if we are considering two different topologies for the same
 set X).

 The members of the topology !T! are called 'open' relative to !T!, or
 !T!open, or if only one topology is under consideration, simply open
 sets. The space X of the topology is always open, and the void set is
 always open because it is the union of the members of the void family.
 These may be the only open sets, for the family whose only members are
 X and the void set is a topology for X. This is not a very interesting
 topology, but it occurs frequently enough to deserve a name; it is
 called the 'indiscrete' (or 'trivial') topology for X, and (X, !T!)
 is then an 'indiscrete topological space. At the other extreme is
 the family of all subsets of X, which is the 'discrete' topology
 for X (then (X, !T!) is a 'discrete topological space'). If !T!
 is the discrete topology, then every subset of the space is open.

 JLK, Gen Top, page 37.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 2
 1. Topological Spaces

 1.1. Topologies and Neighborhoods (cont.)

 The discrete and the indiscrete topology for a set X are
 respectively the largest and the smallest topology for X.
 That is, every topology for X is contained in the discrete
 topology and contains the indiscrete topology. If !T! and
 !U! are topologies for X, then, following the convention
 for arbitrary families of sets, !T! is smaller than !U!
 and !U! is larger than !T! iff !T! c !U!. In other words,
 !T! is smaller than !U! iff each !T!open set is !U!open.
 In this case it is also said that !T! is 'coarser' than !U!
 and !U! is 'finer' than !T!. (Unfortunately, this situation
 is described in the literature by both of the statements:
 !T! is 'stronger' than !U! and !T! is 'weaker' than !U!.)
 If !T! and !U! are arbitrary topologies for X it may happen
 that !T! is neither larger nor smaller than !U!; in this
 case, following the usage for partial orderings, it is
 said that !T! and !U! are not 'comparable'.

 JLK, Gen Top, pages 3738.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 3
 1. Topological Spaces

 1.1. Topologies and Neighborhoods (cont.)

 The set of real numbers, with an appropriate topology, is
 a very interesting topological space. This is scarcely
 surprising since the notion of a topological space is
 an abstraction of some interesting properties of the
 real numbers. The 'usual topology' for the real
 numbers is the family of all those sets which
 contain an open interval about each of their
 points. That is, a subset A of the set of
 real numbers is open iff for each member x
 of A there are numbers a and b such that
 a < x < b and the 'open interval'
 {y : a < y < b} is a subset of A.
 Of course, we must verify that
 this family of sets is indeed
 a topology, but this offers
 no difficulty. It is worth
 noticing that, conveniently,
 an open interval is an
 open set.

 JLK, Gen Top, page 38.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 4
 1. Topological Spaces

 1.1. Topologies and Neighborhoods (cont.)

 A set U in a topological space (X, !T!) is a 'neighborhood' (!T!neighborhood)
 of a point x iff U contains an open set to which x belongs. A neighborhood of
 a point need not be an open set, but every open set is a neighborhood of each
 of its points. Each neighborhood of a point contains an open neighborhood
 of the point. If !T! is the indiscrete topology the only neighborhood of
 a point x is the space X itself. If !T! is the discrete topology, then
 every set to which a point belongs is a neighborhood of it. If X is the
 set of real numbers and !T! is the usual topology, then a neighborhood of
 a point is a set containing an open interval to which the point belongs.

 1. Theorem. A set is open if and only if
 it contains a neighborhood of each of
 its points.

 Proof. The union U of all open subsets of a set A is surely an open subset of A.
 If A contains a neighborhood of each of its points, then each member x of A belongs
 to some open subset of A and hence x is in U. In this case A = U and therefore A
 is open. On the other hand, if A is open it contains a neighborhood (namely, A)
 of each of its points. þ

 The foregoing theorem evidently implies that a set is
 open iff it is a neighborhood of each of its points.

 The 'neighborhood system' of a point is the family
 of all neighborhoods of the point.

 2. Theorem. If !U! is the neighborhood system of a point,
 then finite intersections of members of !U! belong to !U!,
 and each set which contains a member of !U! belongs to !U!.

 Proof. If U and V are neighborhoods of a point x, there are
 open neighborhoods U_0 and V_0 contained in U and V respectively.
 Then U ^ V contains the open neighborhood U_0 ^ V_0 and is hence
 a neighborhood of x. Thus the intersection of two (and hence of any
 any finite number of) members of !U! is a member. If a set U contains
 a neighborhood of a point x it contains an open neighborhood of x and is
 consequently itself a neighborhood. þ

 JLK, Gen Top, pages 3839.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 5
 1. Topological Spaces

 1.2. Closed Sets

 A subset A of a topological space (X, !T!) is 'closed' iff its relative
 complement X~A is open. The complement of the complement of the set A is
 again A, and hence a set is open iff its complement is closed. If !T! is
 the indiscrete topology the complement of X and the complement of the void
 set are the only closed sets; that is, only the void set and X are closed.
 It is always true that the space and the void set are closed as well as open,
 and it may happen, as we have just seen, that these are the only closed sets.
 If !T! is the discrete topology, then every subset is closed and open.

 If X is the set of real numbers and !T! the usual topology, then the
 situation is quite different. A 'closed interval' (that is, a set
 of the form {x : a =< x =< b}) is fortunately closed. An open
 interval is not closed and a 'halfopen interval' (that is,
 a set of the form {x : a < x =< b} or {x : a =< x < b}
 where a < b) is neither open nor closed. Indeed ...
 the only sets which are both open and closed are
 the space and the void set.

 According to the De Morgan formulae, 0.3, the union (intersection) of
 the complements of the members of a family of sets is the complement
 of the intersection (respectively union). Consequently, the union
 of a finite number of closed sets is necessarily closed and the
 intersection of the members of an arbitrary family of closed
 sets is closed. These properties characterize the family
 of closed sets, as the following theorem indicates.
 The simple proof is omitted.

 4. Theorem. Let !F! be a family of sets such that
 the union of a finite subfamily is a member, the
 intersection of an arbitrary nonvoid subfamily is
 a member, and X = _{F : F in !F!} is a member.
 Then !F! is precisely the family of closed sets
 in X relative to the topology consisting of all
 complements of members of !F!.

 JLK, Gen Top, page 40.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 6
 1. Topological Spaces

 1.3. Accumulation Points

 The topology of a topological space can be described in terms of
 neighborhoods of points and consequently it must be possible to
 formulate a description of closed sets in terms of neighborhoods.
 This formulation leads to a new classification of points in the
 following way. A set A is closed iff X~A is open, and hence iff
 each point of X~A has a neighborhood which is contained in X~A,
 or, equivalently, is disjoint from A. Consequently, A is closed
 iff for each x, if every neighborhood of x intersects A, then x
 is in A. This suggests the following definition.

 A point x is an 'accumulation point' (sometimes called
 'cluster' point or 'limit' point) of a subset A of a
 topological space (X,!T!) iff every neighborhood
 of x contains points of A other than x. Then it
 is true that each neighborhood of a point x
 intersects A if and only if x is either a
 point of A or an accumulation point of A.
 The following theorem is then clear.

 5. Theorem. A subset of a topological space
 is closed if and only if it contains the
 set of its accumulation points.

 JLK, Gen Top, pages 4041.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 7
 1. Topological Spaces

 1.3. Accumulation Points (cont.)

 If x is an accumulation point of A it is sometimes said, in a pleasantly
 suggestive phrase, that there are points of A arbitrarily near x. If we
 pursue this imagery it appears that an indiscrete topological space is
 really quite crowded, for each point x is an accumulation point of every
 set other than the void set and the set {x}. On the other hand, in a
 discrete topological space, no point is an accumulation point of a set.

 If X is the set of real numbers with the usual topology a
 variety of situations can arise. If A is the open interval
 (0, 1), then every point of the closed interval [0, 1] is an
 accumulation point of A. If A is the set of all nonnegative
 rationals with squares less than 2, then the closed interval
 [0, 2^½] is the set of accumulation points. If A is the set
 of all reciprocals of integers, then 0 is the only accumulation
 point of A, and the set of integers has no accumulation points.

 6. Theorem. The union of a set and the
 set of its accumulation points is closed.

 Proof. If x is neither a point nor accumulation point of A, then there
 is an open neighborhood U of x which does not intersect A. Since U is
 a neighborhood of each of its points, no one of these is an accumulation
 point of A. Hence the union of the set A and the set of its accumulation
 points is the complement of an open set. þ

 The set of all accumulation points of a set A
 is sometimes called the 'derived' set of A.

 JLK, Gen Top, pages 4142.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 8
 1. Topological Spaces

 1.4. Closure

 The 'closure' (!T!closure) of a subset A of a topological space
 (X, !T!) is the intersection of the members of the family of all
 closed sets containing A. The closure of A is denoted by A˜, or
 by Ã. The set A˜ is always closed because it is the intersection
 of closed sets, and evidently A˜ is contained in each closed set
 which contains A. Consequently A˜ is the smallest closed set
 containing A and it follows that A is closed if and only if
 A = A˜. The next theorem describes the closure of a set
 in terms of its accumulation points.

 7. Theorem. The closure of any set
 is the union of the set and the
 set of its accumulation points.

 Proof. Every accumulation point of a set A is an
 accumulation point of each set containing A, and is
 therefore a member of each closed set containing A.
 Hence A˜ contains A and all accumulation points of A.
 On the other hand, according to the preceding theorem,
 the set consisting of A and its accumulation points is
 closed and it therefore contains A˜. þ

 The function which assigns to each subset A of a topological
 space the value A˜ might be called the closure function, or
 closure operator, relative to the topology. This operator
 determines the topology completely, for a set A is closed
 iff A = A˜. In other words, the closed sets are simply
 the sets which are fixed under the closure operator.

 It is instructive to enquire: Under what circumstances is an operator
 which is defined for all subsets of a fixed set X the closure operator
 relative to some topology for X? It turns out that four very simple
 properties serve to describe closure. First, because the void set
 is closed, the closure of the void set is void; and, second, each
 set is contained in its closure. Next, because the closure of each
 set is closed, the closure of the closure of a set is identical with
 the closure of the set (in the usual algebraic terminology, the closure
 operator is idempotent). Finally, the closure of the union of two sets is
 the union of the closures, for (A _ B)˜ is always a closed set containing
 A and B, and therefore contains A˜ and B˜ and hence A˜ _ B˜. On the other
 hand, A˜ _ B˜ is a closed set containing A _ B and hence also (A _ B)˜.

 JLK, Gen Top, pages 4243.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 9
 1. Topological Spaces

 1.4. Closure (cont.)

 A 'closure operator' on X is an operator which assigns to each
 subset A of X a subset A^c of X such that the following four
 statements, the 'Kuratowski closure axioms', are true.

 a. If 0 is the void set, 0^c = 0.

 b. For each A, A c A^c.

 c. For each A, A^cc = A^c.

 d. For each A and B, (A _ B)^c = A^c _ B^c.

 The following theorem of Kuratowski shows that these four statements
 are actually characteristic of closure. The topology defined below
 is the topology 'associated' with a closure operator.

 8. Theorem. Let ^c be a closure operator on X, let !F! be the family
 of all subsets A of X for which A^c = A, and let !T! be the family
 of complements of members of !F!. Then !T! is a topology for X,
 and A^c is the !T!closure of A for each subset A of X.

 Proof. Axiom (a) shows that the void set belongs to !F!, and (d) shows that
 the union of two members of !F! is a member of !F!. Consequently the union
 of any finite subfamily (void or not) of !F! is a member of !F!. Because of
 (b), X c X^c, so that X = X^c, and the union of the members of !F! is then X.
 In view of theorem 1.4, it will follow that !T! is a topology for X if it is
 shown that the intersection of the members of any nonvoid subfamily of !F! is
 a member of !F!. To this end, first observe that, if B c A, then B^c c A^c,
 because A^c = ((A ~ B) _ B)^c = (A ~ B)^c _ B^c. Now suppose that !A!
 is a nonvoid subfamily of !F! and that B = ^{A : A in !A!}. The set B is
 contained in each member of !A!, and therefore B^c c ^{A^c : A in !A!} =
 ^{A : A in !A!} = B. Since B c B^c, it follows that B = B^c and B in !F!.
 This shows that !T! is a topology, and it remains to show that A^c is A˜,
 the !T!closure of A. By definition, A˜ is the intersection of all the
 !T!closed sets, that is, the members of !F!, which contain A. By axiom
 (c), A^c in !F!, and hence A˜ c A^c. Since A˜ in !F! and A˜ contains A
 it follows that A˜ contains A^c and hence A˜ = A^c. þ

 JLK, Gen Top, page 43.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 10
 1. Topological Spaces

 1.5. Interior and Boundary

 There is another operator defined on the family
 of all subsets of a topological space, which is
 very intimately related to the closure operator.
 A point x of a subset A of a topological space is
 an 'interior point' of A iff A is a neighborhood of x,
 and the set of all interior points of A is the 'interior'
 of A, denoted A°. (In the usual terminology, the relation
 "is an interior point of" is the inverse of the relation
 "is a neighborhood of".) It is convenient to exhibit
 the connection between this notion and the earlier
 concepts before considering examples.

 9. Theorem. Let A be a subset of a topological space X.
 Then the interior A° of A is open and is the largest
 open subset of A. A set A is open if and only if
 A = A°. The set of all points of A which are not
 points of accumulation of X~A is precisely A°.
 The closure of X~A is X ~ A°.

 Proof. If a point x belongs to the interior of a set A, then x is
 a member of some open subset U of A. Every member of U is also a
 member of A°, and consequently A° contains a neighborhood of each
 of its points and is therefore open. If V is an open subset of A
 and y in V, then A is a neighborhood of y and so y in A°. Hence
 A° contains each open subset of A and it is therefore the largest
 open subset of A. If A is open, then A is surely identical with
 the largest open subset of A. Hence A is open iff A = A°. If x
 is a point of A which is not an accumulation point of X~A, then
 there is a neighborhood U of x which does not intersect X~A and
 is therefore a subset of A. Then A is a neighborhood of x and
 x in A°. On the other hand, A° is a neighborhood of each of
 its points and A° does not intersect X~A, so that no point
 of A° is an accumulation point of X~A. Finally, since A°
 consists of the points of A which are not accumulation
 points of X~A, the complement, X ~ A°, is precisely
 the set of all points which are either points of
 X~A or accumulation points of X~A; that is,
 the complement is the closure (X~A)˜. þ

 JLK, Gen Top, page 44.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 11
 1. Topological Spaces

 1.5. Interior and Boundary (cont.)

 The last statement of the foregoing theorem deserves a little
 further consideration. For convenience, let us denote the
 relative complement X~A by A’. Then A’’, the complement
 of the complement of A, is again A (we sometimes say ’
 is an operator of period two). The preceding result
 can then be stated as A°’ = A’˜, and, it follows,
 taking complements, that A° = A’˜’. Thus the
 interior of A is the complement of the closure
 of the complement of A. If A is replaced by
 its complement it follows that A˜ = A’°’, so
 that the closure of a set is the complement
 of the interior of the complement. *

 * An amusing and instructive problem suggests itself. For a given subset
 A of a topological space, how many different sets can be constructed by
 successive applications, in any order, of closure, complementation, and
 interior? From the remarks in the above paragraph and the fact that
 A˜˜ = A˜, this reduces to: How many distinct sets may be formed from
 a single set A, by alternative applications of complementation and the
 closure operator? The surprising answer is given in problem 1.E.

 JLK, Gen Top, pages 4445.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 12
 1. Topological Spaces

 1.5. Interior and Boundary (cont.)

 If X is an indiscrete space the interior of every set except X itself
 is void. If X is a discrete space, then each set is open and closed
 and consequently identical with its interior and with its closure.
 If X is the set of real numbers with the usual topology, then the
 interior of the set of all integers is void; the interior of a
 closed interval is the open interval with the same endpoints.
 The interior of the set of rational numbers is void, and the
 closure of the interior of this set is consequently void.
 The closure of the set of rational numbers is the set X
 of all numbers, and the interior of this set is X again.
 Thus the interior of the closure of a set may be quite
 different from the closure of the interior; that is,
 the interior operator and the closure operator do not
 generally commute.

 JLK, Gen Top, page 45.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 13
 1. Topological Spaces

 1.5. Interior and Boundary (cont.)

 There is one other operator which occurs frequently enough to justify
 its definition. The 'boundary' of a subset A of a topological space
 X is the set of all points x which are interior to neither A nor X~A.
 Equivalently, x is a point of the boundary iff each neighborhood of
 x intersects both A and X~A. It is clear that the boundary of A is
 identical with the boundary of X~A. If X is indiscrete and A is
 neither X nor void, then the boundary of A is X, while if X is
 discrete the boundary of every subset is void. The boundary
 of an interval of real numbers, in the usual topology for
 the reals, is the set whose only members are the endpoints
 of the interval, regardless of whether the interval is open,
 closed, or halfopen. The boundary of the set of rationals,
 or the set of irrationals, is the set of all real numbers.

 It is not difficult to discover the relations between
 boundary, closure, and interior. The following theorem,
 whose proof we omit, summarizes the facts.

 10. Theorem. Let A be a subset of a
 topological space X, and let b(A)
 be the boundary of A. Then:

 1. b(A) = A˜ ^ (X~A)˜ = A˜ ~ A°.

 2. X ~ b(A) = A° _ (X~A)°.

 3. A˜ = A _ b(A).

 4. A° = A ~ b(A).

 A set is closed if and only if it contains its boundary and
 is open if and only if it is disjoint from its boundary.

 JLK, Gen Top, pages 4546.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 14
 1. Topological Spaces

 1.6. Bases and Subbases

 In defining the usual topology for the set of real numbers
 we began with the family !B! of open intervals, and from this
 family constructed the topology !T!. The same method is useful
 in other situations and we now examine the construction in detail.

 A family !B! of sets is a 'base for a topology' !T!
 iff !B! is a subfamily of !T! and for each point x
 of the space, and each neighborhood U of x, there
 is a member V of !B! such that x in V c U.

 Thus the family of open intervals is a base for the usual topology of
 the real numbers, in view of the definition of the usual topology and
 the fact that open intervals are open relative to this topology.

 There is a simple characterization of bases which is frequently used
 as a definition: A subfamily !B! of a topology !T! is a base for !T!
 iff each member of !T! is the union of members if !B!. To prove this
 fact, suppose that !B! is a base for the topology !T! and that U in !T!.
 Let V be the union of all members of !B! which are subsets of U and suppose
 that x in U. Then there is W in !B! such that x in W c U, and consequently
 x in V. Hence U c V and since V is surely a subset of U, we have that V = U.
 To show the converse, suppose !B! c !T! and each member of !T! is the union
 of members of !B!. If U in !T!, then U is the union of the members of
 a subfamily of !B!, and for each x in U there is V in !B! such that
 x in V c U. Consequently !B! is a base for !T!.

 Although this is a very convenient method for the construction
 of topologies, a little caution is necessary because not every
 family of sets is the base for a topology. For example, let X
 consist of the integers 0, 1, 2, let A consist of 0 and 1, and
 let B consist of 1 and 2. If !S! is the family whose members
 are X, A, B, and the void set, then !S! cannot be the base
 for a topology because: by direct computation, the union
 of members of !S! is always a member, so that if !S! were
 the base of a topology that topology would have to be !S!
 itself, but !S! is not a topology because A ^ B is not
 in !S!. The reason for this situation is made clear by
 the following theorem.

 11. Theorem. A family !B! of sets is a base for some
 topology for the set X = _{B : B in !B!} iff
 for every two members U and V of !B! and each
 point x in U ^ V there is W in !B! such
 that x in W and W c U ^ V.

 Proof. If !B! is a base for some topology, U and V are members
 of !B!, and x is in U ^ V, then, since U ^ V is open, there
 is a member of !B! to which x belongs and which is a subset of
 U ^ V. To show the converse, let !B! be a family with the
 specified property and let !T! be the family of all unions
 of members of !B!. A union of members of !T! is itself
 a union of members of !B! and is therefore a member
 of !T!, and it is only necessary to show that the
 intersection of two members U and V of !T! is
 a member of !T!. If x in U ^ V, then we
 may choose U' and V' in !B! such that:

 x in W c U' ^ V' c U ^ V.

 Consequently U ^ V is the
 union of members of !B!,
 and !T! is a topology.
 þ

 JLK, Gen Top, pages 4647.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 15
 1. Topological Spaces

 1.6. Bases and Subbases (cont.)

 We have just seen that an arbitrary family !S! of sets may fail to be the base
 for any topology. With admirable persistence we vary the question and enquire
 whether there is a unique topology which is, in some sense, generated by !S!.
 Such a topology should be a topology for the set X which is the union of the
 members of !S!, and each member of !S! should be open relative to the topology;
 that is, !S! should be a subfamily of the topology. This raises the question:
 Is there a smallest topology for X which contains !S!? The following simple
 result will enable us to exhibit this smallest topology.

 12. Theorem. If !S! is any nonvoid family of sets
 the family of all finite intersections of members
 of !S! is the base for a topology for the set
 X = _{S : S in !S!}.

 Proof. If !S! is a family of sets let !B! be the family of
 finite intersections of members of !S!. Then the intersection
 of two members of !B! is again a member of !B! and, applying the
 preceding theorem, !B! is the base for a topology. þ

 A family !S! of sets is a 'subbase for a topology' !T! iff
 the family of finite intersections of members of !S! is a
 base for !T! (equivalently, iff each member of !T! is the
 union of finite intersections of members of !S!). In view
 of the preceding theorem every nonempty family !S! is the
 subbase for some topology, and this topology is, of course,
 uniquely determined by !S!. It is the smallest topology
 containing !S! (that is, it is a topology containing !S!
 and is a subfamily of every topology containing !S!).

 There will generally be many different bases and subbases
 for a topology and the most appropriate choice may depend on
 the problem under consideration. One rather natural subbase
 for the usual topology for the real numbers is the family of
 halfinfinite open intervals; that is, the family of sets of
 the form {x : x > a} or {x : x < a}. Each open interval is the
 intersection of two such sets, and this family is consequently a
 subbase. The family of all sets of the same form with 'a' rational
 is a less obvious and more interesting subbase. (See problem 1.J.)

 JLK, Gen Top, pages 4748.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 16
 1. Topological Spaces

 1.6. Bases and Subbases (cont.)

 A space whose topology has a countable base has
 many pleasant properties. Such spaces are said
 to satisfy the 'second axiom of countability'.
 (The terms 'separable' and 'perfectly separable'
 are also used in this connection, but we shall
 use neither.)

 13. Theorem. If A is an uncountable subset of a space whose topology has
 a countable base, then some point of A is an accumulation point of A.

 Proof. Suppose that no point of A is an accumulation point and that !B! is
 a countable base. For each x in A there is an open set containing no point
 of A other than x, and since !B! is a base we may choose B_x in !B! such that
 B_x ^ A = {x}. There is then a onetoone correspondence between the points
 of A and the members of a subfamily of !B!, and A is therefore countable. þ

 A sharper form of this theorem is stated in problem 1.H.

 JLK, Gen Top, pages 4849.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 17
 1. Topological Spaces

 1.6. Bases and Subbases (cont.)

 A set A is 'dense' in a topological space X iff the closure of A is X.
 A topological space X is 'separable' iff there is a countable subset which
 is dense in X. A separable space may fail to satisfy the second axiom of
 countability. For example, let X be an uncountable set with the topology
 consisting of the void set and the complements of finite sets. Then every
 nonfinite set is dense because it intersects every nonvoid open set. On
 the other hand, suppose that there is a countable base !B! and let x be a
 fixed point of X. The intersection of the family of all open sets to which
 x belongs must be {x}, because the complement of every other point is open.
 It follows that the intersection of those members of the base !B! to which
 x belongs is {x}. But the complement of this countable intersection is the
 union of a countable number of finite sets, hence countable, and this is a
 contradiction. (Less trivial examples occur later.) There is no difficulty
 in showing that a space with a countable base is separable.

 14. Theorem. A space whose topology has a countable base is separable.

 Proof. Choose a point out of each member of the base, thus obtaining
 a countable set A. The complement of the closure of A is an open set
 which, being disjoint from A, contains no nonvoid member of the base
 and is hence void. þ

 JLK, Gen Top, page 49.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 18
 1. Topological Spaces

 1.6. Bases and Subbases (cont.)

 A family !A! is a 'cover' of a set B iff B is a subset of the
 union _{A : A in !A!}, that is, iff each member of B belongs
 to some member of !A!. The family is an 'open cover' of B iff
 each member of !A! is an open set. A 'subcover' of !A! is a
 subfamily which is also a cover.

 15. Theorem (Lindelöf). There is a countable subcover of each open
 cover of a subset of a space whose topology has a countable base.

 Proof. Suppose A is a set, !A! is an open cover of A, and !B!
 is a countable base for the topology. Because each member of !A!
 is the union of members of !B! there is a subfamily !C! of !B! which
 also covers A, such that each member of !C! is a subset of some member
 of !A!. For each member of !C! we may select a containing member of !A!
 and so obtain a countable subfamily !D! of !A!. Then !D! is also a cover
 of A because !C! covers A. Hence !A! has a countable subcover. þ

 A topological space is a 'Lindelöf space' iff each
 open cover of the space has a countable subcover.

 JLK, Gen Top, pages 4950.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 19
 1. Topological Spaces

 1.6. Bases and Subbases (cont.)

 Since the second axiom of countability has been mentioned, it seems only
 proper that the first be stated. This axiom concerns a localized form of
 the notion of a base. A 'base for the neighborhood system' of a point x,
 or a 'local base' at x, is a family of neighborhoods of x such that every
 neighborhood of x contains a member of the family. For example, the family
 of open neighborhoods of a point is always a base for the neighborhood system.
 A topological space satisfies the 'first axiom of countability' if the neighborhood
 system of every point has a countable base. It is clear that each topological space
 which satisfies the second axiom of countability also satisfies the first; on the
 other hand, any uncountable discrete topological space satifies the first axiom
 (there is a base for the neighborhood system of each point x which consists
 of the single neighborhood {x}) but not the second (the cover whose members
 are {x} for all x in X has no countable subcover). The second axiom of
 countability is therefore definitely more restrictive than the first.

 It is worth noticing that, if U_1, U_2, ..., U_n, ... is a countable
 local base at x, then a new local base V_1, V_2, ..., V_n, ... can be
 found such that V_n contains V_n+1 for each n. The construction is
 simple: let V_n = ^{U_k : k =< n}.

 A 'subbase for the neighborhood system' of a point x, or a 'local subbase'
 at x, is a family of sets such that the family of all finite intersections of
 members is a local base. If U_1, U_2, ..., U_n, ... is a countable local subbase,
 then V_1, V_2, ..., V_n, ... where V_n = ^{U_k : k =< n} is a countable local base.
 Hence the existence of a countable local subbase at each point implies the first axiom
 of countability.

 JLK, Gen Top, page 50.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 20
 1. Topological Spaces

 1.7. Relativization, Separation

 If (X, !T!) is a topological space and Y is a subset of X
 we may construct a topology !U! for Y which is called the
 'relative topology', or the 'relativization' of !T! to Y.

 The relative topology !U! is defined to be the family of all
 intersections of members of !T! with Y; that is, U belongs to
 the relative topology !U! iff U = V ^ Y for some !T!open set V.
 It is not difficult to see that !U! is actually a topology. Each
 member U of the relative topology !U! is said to be 'open in Y', and
 its relative complement Y~U is 'closed in Y'. The !U!closure of a
 subset of Y is its 'closure in Y'. Each subset Y of X is both open
 and closed in itself, although Y may be neither open nor closed in X.
 The topological space (Y, !U!) is called a 'subspace' of the space
 (X, !T!). More formally, an arbitrary topological space (Y, !U!)
 is a subspace of another space (X, !T!) iff Y c X and !U! is the
 relativization of !T!.

 It is worth noticing that, if (Y, !U!) is a subspace of (X, !T!)
 and (Z, !V!) is a subspace of (Y, !U!), then (Z, !V!) is a subspace
 of (X, !T!). This transitivity relation will often be used without
 explicit mention.

 JLK, Gen Top, pages 5051.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 21
 1. Topological Spaces

 1.7. Relativization, Separation (cont.)

 Suppose that (Y, !U!) is a subspace of (X, !T!) and that A is a subset
 of Y. Then A may be either !T!closed or !Uclosed, a point y may
 be either a !U! or a !T!accumulation point of A, and A has both
 a !T! and a !U!closure. The relations between these various
 notions are important.

 16. Theorem. Let (X, !T!) be a topological space,
 let (Y, !U!) be a subspace, and
 let A be a subset of Y. Then:

 a. The set A is !U!closed if and only if it is
 the intersection of Y and a !T!closed set.

 b. A point y of Y is a !U!accumulation point of A
 if and only if it is a !T!accumulation point.

 c. The !U!closure of A is the intersection of Y
 and the !T!closure of A.

 Proof. The set A is closed in Y iff its relative complement Y~A
 is of the form V ^ Y for some !T!open set V, but this is true
 iff A = (X~V) ^ Y for some V in !T!. This proves (a), and (b)
 follows directly from the definition of the relative topology and
 the definition of accumulation point. The !U!closure of A is the
 union of A and the set of its !U!accumulation points, and hence
 by (b) it is the intersection of Y and the !T!closure of A. þ

 JLK, Gen Top, pages 5152.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 22
 1. Topological Spaces

 1.7. Relativization, Separation (cont.)

 If (Y, !U!) is a subspace of (X, !T!) and Y is open in X,
 then each set open in Y is also open in X because it is the
 intersection of an open set and Y. A similar statement, with
 "closed" replacing "open" everywhere, is also true. However,
 knowing that a set is open or closed in a subspace generally
 tells very little about the situation of the set in X. If X
 is the union of two sets Y and Z and if A is a subset of X
 such that A ^ Y is open in Y and A ^ Z is open in Z,
 then one might hope that A is open in X. But this is
 not always true, for if Y is an arbitrary subset of X
 and Z = X ~ Y, then Y ^ Y and Y ^ Z are open in Y
 and Z respectively. There is one important case,
 in which this result does hold.

 Two subsets A and B are 'separated' in a topological space X
 iff A˜ ^ B and A ^ B˜ are both void. This definition of
 separation involves the closure operation in X. However, the
 apparent dependence on the space X is illusory, for A and B are
 separated in X if and only if neither A nor B contains a point or
 an accumulation point of the other. This condition may be restated
 in terms of the relative topology for A _ B, in view of part (b)
 of the foregoing theorem, as: Both A and B are closed in A _ B
 (or, equivalently, A (or B) is both open and closed in A _ B) and
 A and B are disjoint. As an example, notice that the open intervals
 (0, 1) and (1, 2) are separated subsets of the real numbers with the
 usual topology and that there is a point, 1, belonging to the closure
 of both. However, (0, 1) is not separated from the closed interval
 [1, 2] because 1, which is a member of [1, 2], is an accumulation
 point of (0, 1).

 JLK, Gen Top, page 52.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 23
 1. Topological Spaces

 1.7. Relativization, Separation (cont.)

 Three theorems on separation will be needed in the sequel.

 17. Theorem. If Y and Z are subsets
 of a topological space X and both
 Y and Z are closed or both are open,
 then Y ~ Z is separated from Z ~ Y.

 Proof. Suppose that Y and Z are closed subsets of X. Then Y and Z
 are closed in Y _ Z and therefore Y~Z = ((Y _ Z) ~ Z) and Z~Y
 are open in Y _ Z. It follows that both Y~Z and Z~Y are open
 in (Y~Z) _ (Z~Y), and since they are complements relative to
 this set both are closed in (Y~Z) _ (Z~Y). Consequently
 Y~Z and Z~Y are separated. A dual argument applies to
 the case where both Y and Z are open in X. þ

 18. Theorem. Let X be a topological space
 which is the union of subsets Y and Z
 such that Y ~ Z and Z ~ Y are separated.
 Then the closure of a subset A of X is the
 union of the closure in Y of A ^ Y and the
 closure in Z of A ^ Z.

 Proof. The closure of a union of two sets
 is the union of the closures, and hence:

 A˜ = (A ^ Y)˜ _ (A ^ Z~Y)˜.

 Consequently:

 A˜ ^ Y = ((A ^ Y)˜ ^ Y) _ ((A ^ Z~Y)˜ ^ Y).

 The set (Z~Y)˜ is disjoint from Y~Z,
 hence (Z~Y)˜ c Z, and it follows that:

 (A ^ Z~Y)˜ is a subset of (A ^ Z)˜ ^ Z.

 Similarly:

 A˜ ^ Z is the union of (A ^ Z)˜ ^ Z

 and a subset of (A ^ Y)˜ ^ Y.

 Consequently:

 A˜ = (A˜ ^ Y) _ (A˜ ^ Z)

 = ((A ^ Y)˜ ^ Y) _ ((A ^ Z)˜ ^ Z)

 and the theorem is proved. þ

 19. Corollary. Let X be a topological space
 which is the union of subsets Y and Z
 such that Y~Z and Z~Y are separated.
 Then a subset A of X is closed (open)
 if A ^ Y is closed (open) in Y
 and A ^ Z is closed (open) in Z.

 Proof. If A ^ Y and A ^ Z are closed in Y and Z respectively,
 then, by the preceding theorem, A is necessarily identical with its
 closure and is therefore closed. If A ^ Y and A ^ Z are open
 in Y and Z resepctively, then Y ^ X~A and Z ^ X~A are closed
 in Y and in Z, and hence X~A is closed and A is open. þ

 JLK, Gen Top, pages 5253.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 24
 1. Topological Spaces

 1.8. Connected Sets

 A topological space (X, !T!) is 'connected' iff X
 is not the union of two nonvoid separated subsets.

 A subset Y of X is connected iff the topological space Y
 with the relative topology is connected. Equivalently,
 Y is connected iff Y is not the union of two nonvoid
 separated subsets. Another equivalence follows from
 the discussion of separation: A set Y is connected
 iff the only subsets of Y which are both open and
 closed in Y are Y and the void set. From this
 form it follows at once that any indiscrete
 space is connected. A discrete space
 containing more than one point is
 not connected. The real numbers,
 with the usual topology, are
 connected (problem 1.J), but
 the rationals, with the usual
 topology of the reals relativized,
 are not connected. (For any irrational 'a'
 the sets {x : x < a} and {x : x > a} are separated.)

 20. Theorem. The closure of a connected set is connected.

 Proof. Suppose that Y is a connected subset of a topological space and that
 Y˜ = A _ B, where A and B are both open and closed in Y˜. Then each of
 A ^ Y and B ^ Y is open and closed in Y, and since Y is connected,
 one of these two sets must be void. Suppose that B ^ Y is void.
 Then Y is a subset of A and consequently Y˜ is a subset of A
 because A is closed in Y˜. Hence B is void, and it follows
 that Y˜ is connected. þ

 There is another version of this theorem which is apparently
 stronger, which states that, if Y is a connected subset of X
 and if Z is a set such that Y c Z c Y˜, then Z is connected.
 However, the stronger form is an immediate consequence of
 applying the foregoing theorem to Z with the relative
 topology.

 JLK, Gen Top, pages 5354.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 25
 1. Topological Spaces

 1.8. Connected Sets (cont.)

 21. Theorem. Let !A! be a family of connected subsets
 of a topological space. If no two members of !A!
 are separated, then _{A : A in !A!} is connected.

 Proof. Let C be the union of the members of !A! and suppose that D is both
 open and closed in C. Then for each member A of !A!, we have that A ^ D
 is open and closed in A, and since A is connected either A c D or A c C~D.
 Now if A and B are members of !A! it is impossible that A c D and B c C~D,
 for in this case A and B, being respectively subsets of the separated sets
 D and C~D, would be separated. Consequently either every member of !A!
 is a subset of C~D and D is void, or every member of !A! is a subset
 of D and C~D is void. þ

 A 'component' of a topological space is a maximal connected subset;
 that is, a connected subset which is properly contained in no other
 connected subset. A component of a subset A is a component of A with
 the relative topology; that is, a maximal connected subset of A. If a
 space is connected, then it is its only component. If a space is discrete,
 then each component consists of a single point. Of course, there are many
 spaces which are not discrete which have components consisting of a single
 point  for example, the space of rational numbers, with the (relativized)
 usual topology.

 22. Theorem. Each connected subset of a topological space
 is contained in a component, and each component is closed.
 If A and B are distinct components of a space, then A and B
 are separated.

 Proof. Let A be a nonvoid connected subset of a topological space and
 let C be the union of all connected sets containing A. In view of the
 preceding theorem, C is surely connected, and if D is a connected set
 and contains C, then, since D c C, it follows that C = D. Hence C is
 a component. (If A is void, and the space is not, a set consisting
 of a single point is contained in a component, and hence so is A.)
 Each component C is connected and hence, by 1.20, the closure C˜
 is connected. Therefore C is identical with C˜ and C is closed.
 If A and B are distinct components and are not separated, then
 their union is connected, by 1.21, which is a contradiction. þ

 It is well to end our remarks on components with a word of caution.
 If two points, x and y, belong to the same component of a topological
 space, then they always lie in the same half of a separation of the space.
 That is, if the space is the union of separated sets A and B, then both
 x and y belong to A or both x and y belong to B. The converse of this
 proposition is false. It may happen that two points always lie in the
 same half of a separation but nevertheless lie in different components.
 (See problem 1.P.)

 JLK, Gen Top, pages 5455.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 26
With great reluctance I am going to skip Chapter 2 on "Convergence"
and proceed directly to Chapter 3 on "Product and Quotient Spaces".
I am doing this by way of more quickly picking up the allimportant
ideas of a "continuous function" and a "homeomorphism", the latter
also known as a "topological transformation".
 3. Product and Quotient Spaces

 It is the purpose of this chapter to investigate two methods of constructing
 new topological spaces from old. One of these involves assigning a standard
 sort of topology to the cartesian product of spaces, thus building a new space
 from those originally given. For example, the Euclidean plane is the product
 space of the real numbers (with the usual topology) with itself, and Euclidean
 nspace is the product of the real numbers n times. In chapter 4 arbitrary
 cartesian products of the real numbers will serve as standard spaces with
 which one may compare other topological spaces.

 The second method of constructing a new space from a given one depends on
 dividing the given space X into equivalence classes, each of which is a point
 of the newly constructed space. Roughly speaking, we "identify" the points of
 certain subsets of X, so obtaining a new set of points, which is then assigned
 the "quotient" topology. For example, the equivalence classes of real numbers
 modulo the integers are assigned a topology so that the resulting space is
 a "copy" of the unit circle in the plane.

 Both of these methods of constructing spaces are motivated by making certain
 functions continuous. We therefore begin by defining continuity and proving
 a few simple propositions about it.

 JLK, Gen Top, page 84.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 27
 3. Product and Quotient Spaces

 3.1. Continuous Functions

 For convenience we review some of the terminology and a
 few elementary propositions about functions (chapter 0).
 The words "function", "map", "mapping", "correspondence",
 "operator", and "transformation" are synonymous.

 A function f is said to be on X iff its domain is X. It is to Y,
 or into Y, iff its range is a subset of Y, and it is onto Y iff
 its range is Y. The value of f at a point x is f(x), and f(x)
 is also called the image under f of x.

 If B is a subset of Y, then the inverse under f of B, f^(1)[B],
 is {x : f(x) in B}. The inverse under f of the intersection (union)
 of the members of a family of subsets of Y is the intersection (union)
 of the inverses of the members; that is, if Z_c is a subset of Y for
 each member c of a set C, then:

 f^(1)[ ^ {Z_c : c in C} ] = ^ {f^(1)[Z_c] : c in C},

 and similarly for unions.

 If y is in Y, then f^(1)[{y}], the inverse of the
 set whose only member is y, is abbreviated f^(1)[y].

 The image f[A] of a subset A of X is the set of
 all points y such that y = f(x) for some x in A.

 The image of the union of a family of subsets of X is
 the union of the images, but, in general, the image of
 the intersection is not the intersection of the images.

 A function is one to one iff no two distinct points have
 the same image, and in this case f^(1) is the function
 inverse to f.

 ( Notice that the notation is arranged so that,
 roughly speaking, square brackets occur in the
 designations of subsets of the range and domain
 of a function, and parentheses in the designations
 of members. For example, if f is one to one onto Y
 and y in Y, then f^(1)(y) is the unique point x of X
 such that f(x) = y, and f^(1)[y] = {x}.)

 JLK, Gen Top, pages 8485.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 28
 3. Product and Quotient Spaces

 3.1. Continuous Functions (cont.)

 A map f of a topological space (X, !T!) into a topological space (Y, !U!)
 is 'continuous' iff the inverse of each open set is open. More precisely,
 f is continuous with respect to !T! and !U!, or (!T!, !U!)continuous, iff
 f^(1)[U] is in !T! for each U in !U!. The concept depends on the topology
 of both the range and the domain space, but we follow the usual practice
 of suppressing all mention of the topologies when confusion is unlikely.

 There are one or two propositions about continuity which are
 quite important, although almost selfevident. First, if f is
 a continuous function on X to Y and g is a continuous function
 on Y to Z, then the composition g o f is a continuous function
 on X to Z, for (g o f)^(1)[V] = f^(1)[g^(1)[V]] for each
 subset V of Z, and using first the continuity of g, then that
 of f, it follows that if V is open so is (g o f)^(1)[V].

 If f is a continuous function on X to Y, and A is a subset
 of X, then the restriction of f to A, fA, is also continuous
 with respect to the relative topology for A, for if U is open
 in Y, then (fA)^(1)[U] = A ^ f^(1)[U], which is open in A.
 A function f such that fA is continuous is 'continuous on' A.
 It may also happen that f is continuous on A but fails to be
 continuous on X.

 JLK, Gen Top, pages 8586.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 29
 3. Product and Quotient Spaces

 3.1. Continuous Functions (cont.)

 1. Theorem. If X and Y are topological spaces
 and f is a function on X to Y, then the
 following statements are equivalent.

 a. The function f is continuous.

 b. The inverse of each closed set is closed.

 c. The inverse of each member of a subbase for
 the topology for Y is open.

 d. For each x in X the inverse of every neighborhood
 of f(x) is a neighborhood of x.

 e. For each x in X and each neighborhood U of f(x)
 there is a neighborhood V of x such that f[V] c U.

 f. For each net S (or {S_n : n in D}) in X which converges
 to a point s, the composition f o S ({f(S_n) : n in D})
 converges to f(s).

 g. For each subset A of X the image of the closure is a subset
 of the closure of the image; that is, f[A˜] c f[A]˜.

 h. For each subset B of Y, f^(1)[B]˜ c f^(1)[B˜].

 Proof.

 (a <=> b). This is a simple consequence of the fact that the
 inverse of a function preserves relative complements; that is,
 f^(1)[Y ~ B] = X ~ f^(1)[B] for every subset B of Y.

 (a <=> c). If f is continuous then the inverse of a member of a subbase is
 open because each subbase member is open. Conversely, since each open set
 V in Y is the union of finite intersections of subbase members, f^(1)[V]
 is the union of finite intersections of the inverses of subbase members;
 if these are open, then the inverse of each open set is open.

 (a => d). If f is continuous, x in X, and V is a neighborhood of f(x),
 then V contains an open neighborhood W of f(x) and f^(1)[W] is an open
 neighborhood of x which is a subset of f^(1)[V]; consequently f^(1)[V]
 is a neighborhood of x.

 (d => e). Assuming (d), if U is a neighborhood of f(x), then
 f^(1)[U] is a neighborhood of x such that f[f^(1)[U]] c U.

 (e => f). Assuming (e), let S be a net in X which converges to a point s.
 Then if U is a neighborhood of f(s) there is a neighborhood V of s such that
 f[V] c U, and since S is eventually in V, f o S is eventually in U.

 (f => g). Assuming (f), let A be a subset of X and s a point of the closure A˜.
 Then there is a net S in A which converges to s, and f o S converges to f(s),
 which is therefore a member of f[A]˜. Hence f[A˜] c f[A]˜.

 (g => h). Assuming (g), if A = f^(1)[B], then f[A˜] c f[A]˜ c B˜
 and hence A˜ c f^(1)[B˜]. That is, f^(1)[B]˜ c f^(1)[B˜].

 (h => b). Assuming (h), if B is a closed subset of Y,
 then f^(1)[B]˜ c f^(1)[B˜] = f^(1)[B] and f^(1)[B]
 is therefore closed.

 þ

 There is also a localized form of continuity which is useful. *
 A function f on a topological space X to a topological space Y
 is 'continuous at a point' x iff the inverse under f of each
 neighborhood of f(x) is a neighborhood of x. It is easy to
 give characterizations of the form of 3.1.e and 3.1.f for
 continuity at a point. Evidently f is continuous iff
 it is continuous at each point of its domain.


 * If f is defined on a subset A of a topological space,
 then continuity at points of the closure A˜ may also be
 defined (see 3.D); several useful propositions result.

 JLK, Gen Top, pages 8687.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 30
 3. Product and Quotient Spaces

 3.1. Continuous Functions (cont.)

 A 'homeomorphism', or 'topological transformation',
 is a continuous onetoone map of a topological space X
 onto a topological space Y such that f^(1) is also continuous.

 If there exists a homeomorphism of one space onto another,
 the two spaces are said to be 'homeomorphic' and each
 is a 'homeomorph' of the other.

 The identity map of a topological space onto itself is always
 a homeomorphism, and the inverse of a homeomorphism is again
 a homeomorphism. It is also evident that the composition of
 two homeomorphisms is a homeomorphism. Consequently the
 collection of topological spaces can be divided into
 equivalence classes such that each topological space
 is homeomorphic to every member of its equivalence
 class and to these spaces only. Two topological
 spaces are 'topologically equivalent' iff they
 are homeomorphic.

 Two discrete spaces, X and Y, are homeomorphic iff there is a onetoone
 function on X onto Y, that is, iff X and Y have the same cardinal number.
 This is true because every function on a discrete space is continuous,
 regardless of the topology of the range space. It is also true that
 two indiscrete spaces (the only open sets are the space and the void
 set) are homeomorphic iff there is a onetoone map of one onto the
 other, because each function into an indiscrete space is continuous
 regardless of the topology of the domain space. In general, it may
 be quite difficult to discover whether two topological spaces are
 homeomorphic.

 The set of all real numbers, with the usual topology, is homeomorphic to the
 open interval (0, 1), with the relative topology, for the function whose
 value at a member x of (0, 1) is (2x1) / x(x1) is easily proved to be
 a homeomorphism. However, the interval (0, 1) is not homeomorphic to
 (0, 1) _ (1, 2), for if f were a homeomorphism (or, in fact, just
 a continuous function) on (0, 1) with range (0, 1) _ (1, 2),
 then f^(1)[(0, 1)] would be a proper open and closed subset
 of (0, 1), and (0, 1) is connected.

 This little demonstration was achieved by noticing that one of the spaces is
 connected, the other is not, and the homeomorph of a connected space is again
 connected. A property which when possessed by a topological space is also
 possessed by each homeomorph is a 'topological invariant'. The proof that
 two spaces are not homeomorphic usually depends on exhibiting a topological
 invariant which is possessed by one but not by the other. A property which
 is defined in terms of the members of the space and the topology turns out,
 automatically, to be a topological invariant. Besides connectedness, the
 property of having a countable base for the topology, having a countable
 base for the neighborhood system of each point, being a T_1 space or
 being a Hausdorff space, are all topological invariants. Formally,
 topology is the study of topological invariants. *

 * A 'topologist' is a man who doesn't know the
 difference between a doughnut and a coffee cup.

 JLK, Gen Top, pages 8788.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Note 31
 3. Product and Quotient Spaces

 3.2. Product Spaces

 ...

 JLK, Gen Top, pages 8889.

 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
MAT. Mathematical Notes
CAT. Category Theory
Introduction
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/ontology/msg04463.html
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/ontology/msg04466.html
 http://web.archive.org/web/20070705085032/http://suo.ieee.org/ontology/msg04467.html
The above material is excerpted from:
 Saunders Mac Lane, Categories for the Working Mathematician, 2nd edition, Springer, New York, NY, 1997.
DIF. Differential Geometry
Preface
01. http://suo.ieee.org/ontology/msg04056.html
1. Introduction
02. http://suo.ieee.org/ontology/msg04057.html
03. http://suo.ieee.org/ontology/msg04058.html
2. Manifolds And Their Maps
2.1. Differentiable Manifolds
04. http://suo.ieee.org/ontology/msg04059.html
05. http://suo.ieee.org/ontology/msg04060.html
06. http://suo.ieee.org/ontology/msg04061.html
2.2. Examples
07. http://suo.ieee.org/ontology/msg04062.html
2.3. Manifold Maps
08. http://suo.ieee.org/ontology/msg04063.html
3. Tangent Spaces
09. http://suo.ieee.org/ontology/msg04065.html
3.1. The Tangent Space of the Sphere ...
The above material is excerpted from:
 Brian F. Doolin & Clyde F. Martin,
'Introduction to Differential Geometry for Engineers',
 Marcel Dekker, New York, NY, 1990.
HOC. Higher Order Categorical Logic
Part 0. Introduction to Category Theory
1. Categories and Functors
01. http://suo.ieee.org/ontology/msg03373.html
02. http://suo.ieee.org/ontology/msg03375.html
03. http://suo.ieee.org/ontology/msg03376.html
04. http://suo.ieee.org/ontology/msg03377.html
05. http://suo.ieee.org/ontology/msg03378.html
06. http://suo.ieee.org/ontology/msg03381.html
2. Natural Transformations
07. http://suo.ieee.org/ontology/msg03383.html
08. http://suo.ieee.org/ontology/msg03384.html
09. http://suo.ieee.org/ontology/msg03392.html
10. http://suo.ieee.org/ontology/msg03393.html
11. http://suo.ieee.org/ontology/msg03394.html
12. http://suo.ieee.org/ontology/msg03395.html
Part 1. Cartesian Closed Categories & Lambda Calculus
Introduction to Part 1
13. http://suo.ieee.org/ontology/msg03396.html
Historical Perspective on Part 1
14. http://suo.ieee.org/ontology/msg03398.html
15. http://suo.ieee.org/ontology/msg03399.html
16. http://suo.ieee.org/ontology/msg03400.html
17. http://suo.ieee.org/ontology/msg03401.html
18. http://suo.ieee.org/ontology/msg03402.html
1. Propositional Calculus as a Deductive System
19. http://suo.ieee.org/ontology/msg03403.html
20. http://suo.ieee.org/ontology/msg03404.html
21. http://suo.ieee.org/ontology/msg03405.html
22. http://suo.ieee.org/ontology/msg03406.html
2. The Deduction Theorem
23. http://suo.ieee.org/ontology/msg03409.html
3. Cartesian Closed Categories Equationally Presented
24. http://suo.ieee.org/ontology/msg03410.html
25. http://suo.ieee.org/ontology/msg03411.html
26. http://suo.ieee.org/ontology/msg03412.html
Back to Part 0
3. Adjoint Functors
27. http://suo.ieee.org/ontology/msg03415.html
28. http://suo.ieee.org/ontology/msg03416.html
29. http://suo.ieee.org/ontology/msg03417.html
30. http://suo.ieee.org/ontology/msg03418.html
The above material is excerpted from:
 Lambek, J. & Scott, P.J.,
'Introduction To Higher Order Categorical Logic',
 Cambridge University Press, Cambridge, UK, 1986.

 http://uk.cambridge.org/mathematics/catalogue/0521356539/
INF. Information Flow
...
The above material is excerpted from:
 Jon Barwise & Jerry Seligman,
'Information Flow, The Logic of Distributed Systems',
 Cambridge University Press, Cambridge, UK, 1997.
MOD. Model Theory
1. Introduction
1.1. What Is Model Theory?
01. http://suo.ieee.org/ontology/msg03985.html
02. http://suo.ieee.org/ontology/msg03986.html
03. http://suo.ieee.org/ontology/msg03987.html
1.2. Model Theory for Sentential Logic
04. http://suo.ieee.org/ontology/msg03988.html
05. http://suo.ieee.org/ontology/msg03989.html
06. http://suo.ieee.org/ontology/msg03991.html
07. http://suo.ieee.org/ontology/msg03992.html
08. http://suo.ieee.org/ontology/msg03993.html
09. http://suo.ieee.org/ontology/msg03994.html
10. http://suo.ieee.org/ontology/msg03995.html
11. http://suo.ieee.org/ontology/msg03996.html
12. http://suo.ieee.org/ontology/msg03997.html
13. http://suo.ieee.org/ontology/msg03999.html
14. http://suo.ieee.org/ontology/msg04000.html
15. http://suo.ieee.org/ontology/msg04001.html
16. http://suo.ieee.org/ontology/msg04002.html
17. http://suo.ieee.org/ontology/msg04003.html
18. http://suo.ieee.org/ontology/msg04004.html
1.3. Languages, Models, and Satisfaction
19. http://suo.ieee.org/ontology/msg04005.html
20. http://suo.ieee.org/ontology/msg04006.html
21. http://suo.ieee.org/ontology/msg04007.html
22. http://suo.ieee.org/ontology/msg04008.html
23. http://suo.ieee.org/ontology/msg04009.html
24. http://suo.ieee.org/ontology/msg04010.html
25. http://suo.ieee.org/ontology/msg04011.html
26. http://suo.ieee.org/ontology/msg04012.html
27. http://suo.ieee.org/ontology/msg04016.html
28. http://suo.ieee.org/ontology/msg04017.html
29. http://suo.ieee.org/ontology/msg04019.html
30. http://suo.ieee.org/ontology/msg04020.html
31. http://suo.ieee.org/ontology/msg04021.html
1.4. Theories and Examples of Theories
32. http://suo.ieee.org/ontology/msg04022.html
33. http://suo.ieee.org/ontology/msg04023.html
34. http://suo.ieee.org/ontology/msg04024.html
35. http://suo.ieee.org/ontology/msg04025.html
36. http://suo.ieee.org/ontology/msg04026.html
37. http://suo.ieee.org/ontology/msg04027.html
38. http://suo.ieee.org/ontology/msg04028.html
1.5. Elimination of Quantifiers
39. http://suo.ieee.org/ontology/msg04029.html
The above material is excerpted from:
 C.C. Chang and H.J. Keisler, 'Model Theory',
 NorthHolland, Amsterdam, Netherlands, 1973.
SEM. Program Semantics
Preface
01. http://suo.ieee.org/ontology/msg03884.html
1. An Introduction to Denotational Semantics
1.1. Syntax and Semantics
02. http://suo.ieee.org/ontology/msg03885.html
03. http://suo.ieee.org/ontology/msg03886.html
04. http://suo.ieee.org/ontology/msg03887.html
1.2. A Simple Fragment of Pascal
05. http://suo.ieee.org/ontology/msg03890.html
06. http://suo.ieee.org/ontology/msg03895.html
07. http://suo.ieee.org/ontology/msg03896.html
08. http://suo.ieee.org/ontology/msg03898.html
09. http://suo.ieee.org/ontology/msg03904.html
10. http://suo.ieee.org/ontology/msg03905.html
1.3. A Functional Programming Fragment
11. http://suo.ieee.org/ontology/msg03906.html
12. http://suo.ieee.org/ontology/msg03909.html
13. http://suo.ieee.org/ontology/msg03910.html
14. http://suo.ieee.org/ontology/msg03911.html
15. http://suo.ieee.org/ontology/msg03912.html
16. http://suo.ieee.org/ontology/msg03915.html
17. http://suo.ieee.org/ontology/msg03919.html
1.4. Multifunctions
18. http://suo.ieee.org/ontology/msg03926.html
19. http://suo.ieee.org/ontology/msg03927.html
20. http://suo.ieee.org/ontology/msg03929.html
1.5. A Preview of Partially Additive Semantics
21. http://suo.ieee.org/ontology/msg03930.html
22. http://suo.ieee.org/ontology/msg03932.html
23. http://suo.ieee.org/ontology/msg03933.html
24. http://suo.ieee.org/ontology/msg03934.html
25. http://suo.ieee.org/ontology/msg03935.html
26. http://suo.ieee.org/ontology/msg03938.html
27. http://suo.ieee.org/ontology/msg03939.html
28. http://suo.ieee.org/ontology/msg03942.html
29. http://suo.ieee.org/ontology/msg03944.html
30. http://suo.ieee.org/ontology/msg03945.html
2. An Introduction to Category Theory
31. http://suo.ieee.org/ontology/msg03946.html
2.1. The Definition of a Category
32. http://suo.ieee.org/ontology/msg03947.html
33. http://suo.ieee.org/ontology/msg03949.html
34. http://suo.ieee.org/ontology/msg03950.html
35. http://suo.ieee.org/ontology/msg03953.html
36. http://suo.ieee.org/ontology/msg03954.html
2.2. Isomorphism, Duality, and Zero Objects
37. http://suo.ieee.org/ontology/msg03955.html
38. http://suo.ieee.org/ontology/msg03956.html
39. http://suo.ieee.org/ontology/msg03958.html
40. http://suo.ieee.org/ontology/msg03960.html
41. http://suo.ieee.org/ontology/msg03963.html
42. http://suo.ieee.org/ontology/msg03977.html
43. http://suo.ieee.org/ontology/msg03979.html
44. http://suo.ieee.org/ontology/msg04013.html
2.3. Products and Coproducts
45. http://suo.ieee.org/ontology/msg04014.html
46. http://suo.ieee.org/ontology/msg04015.html
47. http://suo.ieee.org/ontology/msg04018.html
48. http://suo.ieee.org/ontology/msg04037.html
The above material is excerpted from:
 Ernest G. Manes & Michael A. Arbib,
'Algebraic Approaches to Program Semantics',
 SpringerVerlag, New York, NY, 1986.
SET. Set Theory
01. http://suo.ieee.org/ontology/msg04082.html
Appendix. Elementary Set Theory
02. http://suo.ieee.org/ontology/msg04083.html
A.1. The Classification Axiom Scheme
03. http://suo.ieee.org/ontology/msg04084.html
04. http://suo.ieee.org/ontology/msg04086.html
05. http://suo.ieee.org/ontology/msg04088.html
A.2. Elementary Algebra of Classes
06. http://suo.ieee.org/ontology/msg04089.html
07. http://suo.ieee.org/ontology/msg04091.html
08. http://suo.ieee.org/ontology/msg04092.html
09. http://suo.ieee.org/ontology/msg04093.html
10. http://suo.ieee.org/ontology/msg04094.html
A.3. Existence of Sets
11. http://suo.ieee.org/ontology/msg04095.html
12. http://suo.ieee.org/ontology/msg04096.html
13. http://suo.ieee.org/ontology/msg04097.html
A.4. Ordered Pairs: Relations
14. http://suo.ieee.org/ontology/msg04098.html
15. http://suo.ieee.org/ontology/msg04099.html
A.5. Functions
16. http://suo.ieee.org/ontology/msg04100.html
Links 2 through 16 of the above material are
selected and transcribed into plaintext from:
 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
TOP. Topology
1. Topological Spaces
1.1. Topologies and Neighborhoods
01. http://suo.ieee.org/ontology/msg03863.html
02. http://suo.ieee.org/ontology/msg03867.html
03. http://suo.ieee.org/ontology/msg03868.html
04. http://suo.ieee.org/ontology/msg03869.html
1.2. Closed Sets
05. http://suo.ieee.org/ontology/msg03870.html
1.3. Accumulation Points
06. http://suo.ieee.org/ontology/msg03871.html
07. http://suo.ieee.org/ontology/msg03872.html
1.4. Closure
08. http://suo.ieee.org/ontology/msg03874.html
09. http://suo.ieee.org/ontology/msg03880.html
1.5. Interior and Boundary
10. http://suo.ieee.org/ontology/msg03882.html
11. http://suo.ieee.org/ontology/msg03883.html
12. http://suo.ieee.org/ontology/msg03888.html
13. http://suo.ieee.org/ontology/msg03889.html
1.6. Bases and Subbases
14. http://suo.ieee.org/ontology/msg03892.html
15. http://suo.ieee.org/ontology/msg03893.html
16. http://suo.ieee.org/ontology/msg03894.html
17. http://suo.ieee.org/ontology/msg03899.html
18. http://suo.ieee.org/ontology/msg03900.html
19. http://suo.ieee.org/ontology/msg03903.html
1.7. Relativization, Separation
20. http://suo.ieee.org/ontology/msg03908.html
21. http://suo.ieee.org/ontology/msg03914.html
22. http://suo.ieee.org/ontology/msg03916.html
23. http://suo.ieee.org/ontology/msg03917.html
1.8. Connected Sets
24. http://suo.ieee.org/ontology/msg03918.html
25. http://suo.ieee.org/ontology/msg03920.html
2. Convergence [omitted]
3. Product and Quotient Spaces
26. http://suo.ieee.org/ontology/msg03921.html
3.1. Continuous Functions
27. http://suo.ieee.org/ontology/msg03922.html
28. http://suo.ieee.org/ontology/msg03923.html
29. http://suo.ieee.org/ontology/msg03924.html
30. http://suo.ieee.org/ontology/msg03925.html
3.2. Product Spaces ...
The above material is excerpted from:
 John L. Kelley, 'General Topology',
 Van Nostrand Reinhold, New York, NY, 1955.
MAT. Mathematical Notes • New Versions
CAT. Category Theory • Ontology List
Introduction
01. http://suo.ieee.org/ontology/msg04789.html
02. http://suo.ieee.org/ontology/msg04790.html
03. http://suo.ieee.org/ontology/msg04791.html
04. http://suo.ieee.org/ontology/msg04792.html
05. http://suo.ieee.org/ontology/msg04793.html
06. http://suo.ieee.org/ontology/msg04794.html
07. http://suo.ieee.org/ontology/msg04795.html
1. Categories, Functors, and Natural Transformations
1.1. Axioms for Categories
08. http://suo.ieee.org/ontology/msg04796.html
09. http://suo.ieee.org/ontology/msg04892.html
10. http://suo.ieee.org/ontology/msg04893.html
1.2. Categories
11. http://suo.ieee.org/ontology/msg04894.html
12. http://suo.ieee.org/ontology/msg04895.html
13. http://suo.ieee.org/ontology/msg04896.html
14. http://suo.ieee.org/ontology/msg04897.html
15. http://suo.ieee.org/ontology/msg04898.html
16. http://suo.ieee.org/ontology/msg04899.html
1.3. Functors
17. http://suo.ieee.org/ontology/msg04900.html
18. http://suo.ieee.org/ontology/msg04901.html
19. http://suo.ieee.org/ontology/msg04903.html
20. http://suo.ieee.org/ontology/msg04904.html
21. http://suo.ieee.org/ontology/msg04905.html
22. http://suo.ieee.org/ontology/msg04906.html
1.4. Natural Transformations
23. http://suo.ieee.org/ontology/msg04907.html
24.
The above material is excerpted from:
 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.
CAT. Category Theory • Inquiry List
 http://web.archive.org/web/20141220174800/http://stderr.org/pipermail/inquiry/2003May/thread.html#463
 http://web.archive.org/web/20120518012822/http://stderr.org/pipermail/inquiry/2003July/thread.html#621
 http://web.archive.org/web/20120518012822/http://stderr.org/pipermail/inquiry/2003July/thread.html#636
Introduction
01. http://stderr.org/pipermail/inquiry/2003May/000463.html
02. http://stderr.org/pipermail/inquiry/2003May/000464.html
03. http://stderr.org/pipermail/inquiry/2003May/000465.html
04. http://stderr.org/pipermail/inquiry/2003May/000466.html
05. http://stderr.org/pipermail/inquiry/2003May/000467.html
06. http://stderr.org/pipermail/inquiry/2003May/000468.html
07. http://stderr.org/pipermail/inquiry/2003May/000469.html
1. Categories, Functors, and Natural Transformations
1.1. Axioms for Categories
08. http://stderr.org/pipermail/inquiry/2003May/000470.html
09. http://stderr.org/pipermail/inquiry/2003July/000621.html
10. http://stderr.org/pipermail/inquiry/2003July/000622.html
1.2. Categories
11. http://stderr.org/pipermail/inquiry/2003July/000623.html
12. http://stderr.org/pipermail/inquiry/2003July/000624.html
13. http://stderr.org/pipermail/inquiry/2003July/000625.html
14. http://stderr.org/pipermail/inquiry/2003July/000626.html
15. http://stderr.org/pipermail/inquiry/2003July/000627.html
16. http://stderr.org/pipermail/inquiry/2003July/000628.html
1.3. Functors
17. http://stderr.org/pipermail/inquiry/2003July/000629.html
18. http://stderr.org/pipermail/inquiry/2003July/000630.html
19. http://stderr.org/pipermail/inquiry/2003July/000632.html
20. http://stderr.org/pipermail/inquiry/2003July/000633.html
21. http://stderr.org/pipermail/inquiry/2003July/000634.html
22. http://stderr.org/pipermail/inquiry/2003July/000635.html
1.4. Natural Transformations
23. http://stderr.org/pipermail/inquiry/2003July/000636.html
24. ...
The above material is excerpted from:
 Saunders Mac Lane,
'Categories for the Working Mathematician',
 2nd edition, Springer, New York, NY, 1997.