User:Michiexile/MATH198/Lecture 10
From HaskellWiki
Michiexile (Talk | contribs) |
Michiexile (Talk | contribs) |
||
Line 1: | Line 1: | ||
IMPORTANT NOTE: THESE NOTES ARE STILL UNDER DEVELOPMENT. PLEASE WAIT UNTIL AFTER THE LECTURE WITH HANDING ANYTHING IN, OR TREATING THE NOTES AS READY TO READ. | IMPORTANT NOTE: THESE NOTES ARE STILL UNDER DEVELOPMENT. PLEASE WAIT UNTIL AFTER THE LECTURE WITH HANDING ANYTHING IN, OR TREATING THE NOTES AS READY TO READ. | ||
+ | This lecture will be shallow, and leave many things undefined, hinted at, and is mostly meant as an appetizer, enticing the audience to go forth and seek out the literature on topos theory for further studies. | ||
− | === | + | ===Subobject classifier=== |
− | + | One very useful property of the category <math>Set</math> is that the powerset of a given set is still a set; we have an internal concept of ''object of all subobjects''. Certainly, for any category (small enough) <math>C</math>, we have a contravariant functor <math>Sub(-): C\to Set</math> taking an object to the set of all equivalence classes of monomorphisms into that object; with the image <math>Sub(f)</math> given by the pullback diagram | |
+ | :[[Image:SubobjectFunctorMorphismPullback.png]] | ||
− | = | + | If the functor <math>Sub(-)</math> is ''representable'' - meaning that there is some object <math>X\in C_0</math> such that <math>Sub(-) = hom(-,X)</math> - then the theory surrounding representable functors, connected to the Yoneda lemma - give us a number of good properties. |
− | ===Internal logic=== | + | One of them is that every representable functor has a ''universal element''; a generalization of the kind of universal mapping properties we've seen in definitions over and over again during this course; all the definitions that posit the unique existence of some arrow in some diagram given all other arrows. |
+ | |||
+ | Thus, in a category with a representable subobject functor, we can pick a representing object <math>\Omega\in C_0</math>, such that <math>Sub(X) = hom(X,\Omega)</math>. Furthermore, picking a universal element corresponds to picking a subobject <math>\Omega_0\hookrightarrow\Omega</math> such that for any object <math>A</math> and subobject <math>A_0\hookrightarrow A</math>, there is a unique arrow <math>\chi: A\to\Omega</math> such that there is a pullback diagram | ||
+ | :[[Image:SubobjectClassifierPullback.png]] | ||
+ | |||
+ | One can prove that <math>\Omega_0</math> is terminal in <math>C</math>, and we shall call <math>\Omega<math> the ''subobject classifier'', and this arrow <math>\Omega_0=1\to\Omega</math> ''true''. The arrow <math>\chi</math> is called the characteristic arrow of the subobject. | ||
+ | |||
+ | In Set, all this takes on a familiar tone: the subobject classifier is a 2-element set, with a ''true'' element distinguished; and a characteristic function of a subset takes on the ''true'' value for every element in the subset, and the other (false) value for every element not in the subset. | ||
+ | |||
+ | ===Defining topoi=== | ||
+ | |||
+ | '''Definition''' A ''topos'' is a cartesian closed category with all finite limits and with a subobject classifier. | ||
+ | |||
+ | It is worth noting that this is a far stronger condition than anything we can even hope to fulfill for the category of Haskell types and functions. The functional proogramming relevance will take a back seat in this lecture, in favour of usefulness in logic and set theory replacements. | ||
+ | |||
+ | ===Properties of topoi=== | ||
+ | |||
+ | The meat is in the properties we can prove about topoi, and in the things that turn out to be topoi. | ||
+ | |||
+ | '''Theorem''' Let <math>E</math> be a topos. | ||
+ | * <math>E</math> has finite colimits. | ||
+ | |||
+ | ====Power object==== | ||
+ | |||
+ | Since a topos is closed, we can take exponentials. Specifically, we can consider <math>[A\to\Omega]</math>. This is an object such that <math>hom(B,[A\to\Omega]) = hom(A\times B, \Omega) = Sub(A\times B)</math>. Hence, we get an internal version of the subobject functor. (pick <math>B</math> to be the terminal object to get a sense for how global elements of <math>[A\to\Omega]</math> correspond to subobjects of <math>A</math>) | ||
+ | |||
+ | ((universal property of power object?)) | ||
+ | |||
+ | ====Internal logic==== | ||
+ | |||
+ | We can use the properties of a topos to develop a logic theory - mimicking the development of logic by considering operations on subsets in a given universe: | ||
+ | |||
+ | Classically, in Set, we would say that a ''predicate'' corresponds to the set of elements on which the predicate holds true. Thus, say, for statements about integers, the set <math>\{n\in\mathbb Z: n>0\}</math> would correspond to the predicate <math>n>0</math>. | ||
+ | |||
+ | We could then start to define primitive logic connectives as set operations; the intersection of two sets is the set on which '''both''' the corresponding predicates hold true, so <math>\& = \cap</math>. Similarily, the union of two sets is the set on which either of the corresponding predicates holds true, so <math>| = \cup</math>. The complement of a set, in the universe, is the negation of the predicate, and all other propositional connectives (implication, equivalence, ...) can be built with conjunction (and), disjunction (or) and negation (not). | ||
+ | |||
+ | So we can mimic all these in a given topos: | ||
+ | |||
+ | We say that a ''universe'' <math>U</math> is just an object in a given topos. | ||
+ | |||
+ | A ''predicate'' is a subobject of the universe. | ||
+ | |||
+ | Given predicates <math>P, Q</math>, we define the ''conjunction'' <math>P\wedge Q</math> to be the pullback (pushout?) | ||
+ | :[[Image:ToposConjunction.png]] | ||
+ | |||
+ | This mimics, closely, the idea of the conjunction as an intersection. | ||
+ | |||
+ | We further define the ''disjunction'' <math>P\vee Q</math> to be the pushout (pullback?) | ||
+ | :[[Image:ToposDisjunction.png]] | ||
+ | |||
+ | And we define ''negation'' <math>\neg P</math> by (...) | ||
+ | |||
+ | We can expand this language further - and introduce predicative connectives. | ||
+ | |||
+ | Now, a statement on the form <math>\forall x. P(x)</math> is usually taken to mean that on all <math>x\in U</math>, the predicate <math>P</math> holds true. Thus, translating to the operations-on-subsets paradigm, <math>\forall x. P(x)</math> corresponds to the statement <math>P = U</math>. | ||
+ | |||
+ | ((double check in Awodey & Barr-Wells!!!!)) | ||
+ | |||
+ | So we can define a topoidal <math>\forall x. P(x)</math> by ((diagrams)) | ||
+ | |||
+ | And similarily, the statement <math>\exists x. P(x)</math> means that <math>P</math> is non-empty. | ||
+ | |||
+ | ====Examples==== | ||
+ | |||
+ | ====Sheaves, topology and time sheaves==== | ||
===Exercises=== | ===Exercises=== |
Revision as of 18:43, 22 November 2009
IMPORTANT NOTE: THESE NOTES ARE STILL UNDER DEVELOPMENT. PLEASE WAIT UNTIL AFTER THE LECTURE WITH HANDING ANYTHING IN, OR TREATING THE NOTES AS READY TO READ.
This lecture will be shallow, and leave many things undefined, hinted at, and is mostly meant as an appetizer, enticing the audience to go forth and seek out the literature on topos theory for further studies.
Contents |
1 Subobject classifier
One very useful property of the category Set is that the powerset of a given set is still a set; we have an internal concept of object of all subobjects. Certainly, for any category (small enough) C, we have a contravariant functor taking an object to the set of all equivalence classes of monomorphisms into that object; with the image Sub(f) given by the pullback diagram
If the functor Sub( − ) is representable - meaning that there is some object such that Sub( − ) = hom( − ,X) - then the theory surrounding representable functors, connected to the Yoneda lemma - give us a number of good properties.
One of them is that every representable functor has a universal element; a generalization of the kind of universal mapping properties we've seen in definitions over and over again during this course; all the definitions that posit the unique existence of some arrow in some diagram given all other arrows.
Thus, in a category with a representable subobject functor, we can pick a representing object , such that Sub(X) = hom(X,Ω). Furthermore, picking a universal element corresponds to picking a subobject such that for any object A and subobject , there is a unique arrow such that there is a pullback diagram
One can prove that Ω_{0} is terminal in C, and we shall call true. The arrow χ is called the characteristic arrow of the subobject.
In Set, all this takes on a familiar tone: the subobject classifier is a 2-element set, with a true element distinguished; and a characteristic function of a subset takes on the true value for every element in the subset, and the other (false) value for every element not in the subset.
2 Defining topoi
Definition A topos is a cartesian closed category with all finite limits and with a subobject classifier.
It is worth noting that this is a far stronger condition than anything we can even hope to fulfill for the category of Haskell types and functions. The functional proogramming relevance will take a back seat in this lecture, in favour of usefulness in logic and set theory replacements.
3 Properties of topoi
The meat is in the properties we can prove about topoi, and in the things that turn out to be topoi.
Theorem Let E be a topos.
- E has finite colimits.
3.1 Power object
Since a topos is closed, we can take exponentials. Specifically, we can consider . This is an object such that . Hence, we get an internal version of the subobject functor. (pick B to be the terminal object to get a sense for how global elements of correspond to subobjects of A)
((universal property of power object?))
3.2 Internal logic
We can use the properties of a topos to develop a logic theory - mimicking the development of logic by considering operations on subsets in a given universe:
Classically, in Set, we would say that a predicate corresponds to the set of elements on which the predicate holds true. Thus, say, for statements about integers, the set would correspond to the predicate n > 0.
We could then start to define primitive logic connectives as set operations; the intersection of two sets is the set on which both the corresponding predicates hold true, so . Similarily, the union of two sets is the set on which either of the corresponding predicates holds true, so . The complement of a set, in the universe, is the negation of the predicate, and all other propositional connectives (implication, equivalence, ...) can be built with conjunction (and), disjunction (or) and negation (not).
So we can mimic all these in a given topos:
We say that a universe U is just an object in a given topos.
A predicate is a subobject of the universe.
Given predicates P,Q, we define the conjunction to be the pullback (pushout?)
This mimics, closely, the idea of the conjunction as an intersection.
We further define the disjunction to be the pushout (pullback?)
And we define negation by (...)
We can expand this language further - and introduce predicative connectives.
Now, a statement on the form is usually taken to mean that on all , the predicate P holds true. Thus, translating to the operations-on-subsets paradigm, corresponds to the statement P = U.
((double check in Awodey & Barr-Wells!!!!))
So we can define a topoidal by ((diagrams))
And similarily, the statement means that P is non-empty.
3.3 Examples
3.4 Sheaves, topology and time sheaves
4 Exercises
No homework at this point. However, if you want something to think about, a few questions and exercises:
- blah