Mathematisch-
Naturwissenschaftliche Fakultät
Programmiersprachen und Softwaretechnik
Prof. Klaus Ostermann
Leitung des Seminars David Binder Ingo Skupin
Kategorientheorie für Programmierer
Hausaufgabenblatt 3 – SS18
Tübingen, 4. Mai 2018Aufgabe 1: Lektüre
Für kommende Woche lesen Sie bitte Kapitel 8 und 9 und schicken Ihre Fragen bis Dienstag Abend (also Dienstag, der 15.Mai) an uns.
Aufgabe 2: Eindeutigkeit
SeiC eine Kategorie,AundB Objekte in dieser Kategorie undP undQseien beide jeweils Produkte vonA undBmit Projektionenp1:P→Aundp2:P →Bbeziehungsweiseq1: Q→Aundq2:Q→B.
Zeigen Sie, dassP undQisomorph sind.
Hinweis: Der Beweis funktioniert analog zum Beweis für die Isomorphie von initialen Objekten (vgl. 5.4 im Buch) und verwendet nur die universelle Eigenschaft der beiden Produkte.
Bonus:Wie verhält es sich bei zwei Coprodukten?
Aufgabe 3: Produkte in Haskell
Laden Sie sich den Code für dieses Aufgabenblatt auf der Website der Veranstaltung herunter. Darin sollen Sie zeigen, dass
1. data Pair a b = MkPair b aein Produkt vonaundbund 2. Integerein Produkt vonIntegermit sich selbst sind.
Aufgabe 4: Funktoren
SeiCeine beliebige Kategorie. Dann nennen wirC × CdieProduktkategorievonCmit sich selbst. Die Objekte in dieser Kategorie sind Paare(A, B)von ObjektenAundBausC. Die Morphismen zwischen Objekten(A, B) und(A0, B0)sind Paare(f, g)von Morphismenf:A→A0 undg:B →B0ausC.
Für Morphismenf: C →Aundf: C →B, notieren wir den universellen Morphismush:C →A×B des ProduktsA×Bmithf, gi.
C
A B
A×B
f
hf gi=h g
π1 π2
Dann definieren wirf×g: A×B→A0×B0fürf:A→A0 undg:B →B0alsf ×g=hf◦π1, g◦π2i:
A A×B B
A0 A0×B0 B0
f
π1 π2
f×g g
π01 π20
Zeigen Sie, dass×: C × C → Cmit×(A, B) :=A×B auf Objekten und×(f, g) :=f ×gein Bifunktor (also ein Funktor vonC × CnachC) ist.
Hinweis: In beiden Fällen müssen Sie die Eindeutigkeit der Morphismen der universellen Eigenschaft des Produkts verwenden. Es hilft meistens, sich die Situation anhand eines Diagramms zu verdeutlichen.
Seite 2/??