- Die Logik beginnt mit atomaren Aussagen, die als wahr angenommen werden, und bildet mit Operatoren wie
and,orundimpliesgrößere Aussagen; wie in der Kategorientheorie ist dabei die Komposition zentral - Die klassische Logik interpretiert Aussagen als Boolean-Werte wahr/falsch und logische Operatoren als Boolean-Funktionen; mithilfe von Wahrheitstabellen behandelt sie Negation, Konjunktion, Disjunktion, Implikation und Äquivalenz
- Die BHK-Interpretation der intuitionistischen Logik betrachtet Aussagen als Objekte mit Beweisen;
A ∧ Bwird als Beweispaar,A → Bals Funktion interpretiert, die einen Beweis vonAin einen Beweis vonBüberführt - In manchen Kategorien entsprechen Objekte Aussagen und Morphismen Beweisen; in Ordnungen erscheint
A ≤ Bals Preorder oder Partial Order mit der BedeutungA → B - Die intuitionistische Logik entspricht ordnungstheoretisch einer Heyting-Algebra, allgemeiner kategorientheoretisch einer bicartesian closed category; Konjunktion, Disjunktion, Wahr, Falsch und Implikation entsprechen jeweils Meet/Join, terminalem/initialem Objekt und Exponentialobjekt
Logik, ausgehend von Aussagen
- Logik behandelt formale Regeln, die unabhängig von Beobachtung in sich konsistent sind, und ist ein System, mit dem man aus dem Wissen um etwas ableitet oder beweist, dass etwas anderes wahr ist
- Mathematische Theorien kann man als Logik plus zusätzliche Definitionen auffassen
- Die Mengenlehre kann definiert werden, indem man zu den Standardaxiomen der Logik den primitiven Begriff der Mengenzugehörigkeitsrelation hinzufügt
- Um mit Logik zu beginnen, braucht man eine anfängliche Menge von Aussagen, die als wahr oder falsch akzeptiert werden
- Diese heißen Prämissen, atomare Aussagen oder primary proposition
- Zwei oder mehr Aussagen werden durch logische Operatoren wie
and,orundimplies/entailszu einer zusammengesetzten Aussage∧steht fürand∨steht füror→bedeutetfollowsoder Implikation
- Zusammengesetzte Aussagen können wie atomare Aussagen wiederum mit anderen Aussagen kombiniert werden
Modus ponens und Tautologien
- Modus ponens ist das alte logische Muster, dass aus der Wahrheit von
AundA → BauchBfolgt- Die Form ist
(A ∧ (A ⇒ B)) → B - Das lässt sich mit Beispielen ausdrücken wie: „Sokrates ist ein Mensch, und wenn Menschen sterblich sind, dann ist Sokrates sterblich“
- Die Form ist
- Logik behandelt nicht nur einzelne Operatoren, sondern auch Kombinationen und Beziehungen mehrerer logischer Operatoren
- Die Beziehung zwischen
andundimplieszeigt sich im Modus ponens - Auch das Distributivgesetz von
andundorist ein zentrales Thema
- Die Beziehung zwischen
- Eine Tautologie ist eine Aussage, die unabhängig von den Wahrheitswerten ihrer Bestandteile immer wahr ist
- Modus ponens ist unabhängig davon, ob
AundBwahr oder falsch sind, als ganze Formel immer wahr - Eine stets falsche Aussage heißt Widerspruch
- Setzt man vor eine Tautologie
not, erhält man einen Widerspruch; setzt man vor einen Widerspruchnot, erhält man eine Tautologie
- Modus ponens ist unabhängig davon, ob
- Aussagen, deren Wahrheit vom Wert der Bestandteile abhängt, heißen contingent statement und stehen nicht im Zentrum der Logik
- Die einfachste Tautologie ist das Identitätsgesetz, dass jede Aussage sich selbst impliziert
Axiomenschemata und logische Systeme
- Tautologien bilden die Grundlage für Axiomenschemata und Schlussregeln
- Ein Axiomenschema ist eine Formel mit Platzhaltern, die durch Aussagen ersetzt werden können, um konkrete Aussagen zu erzeugen
- Entfernt man bei Modus ponens Farben oder konkrete Aussagen, bleibt die allgemeine Struktur übrig
- Setzt man in diese Struktur atomare oder zusammengesetzte Aussagen ein, erhält man eine konkrete Modus-ponens-Aussage
- Schlussregeln können fast genauso geschrieben werden wie Axiomenschemata, und Axiomenschemata können ähnlich wie Schlussregeln angewendet werden
- Jede Tautologie kann als Axiomenschema verwendet werden
- Ein logisches oder formales System ist eine Sammlung von Axiomenschemata und Schlussregeln, aus denen man alle möglichen Aussagen erzeugt
- Als Beispiel wird ein System mit fünf Axiomenschemata und der Schlussregel Modus ponens angegeben
- Dass ein solches logisches System vollständig ist, steht in Verbindung mit dem Vollständigkeitssatz von Gödel
Wahrheitsfunktionale Interpretation der klassischen Logik
- Die klassische Logik basiert auf der Dichotomie, dass jede Aussage entweder wahr oder falsch ist
- In der klassischen Interpretation werden Aussagen und Operatoren wie folgt definiert
- Aussagen sind Boolean-Werte, also wahr oder falsch
- Logische Operatoren sind Funktionen, die einen oder mehrere Boolean-Werte annehmen und einen Boolean-Wert zurückgeben
- Die Negation
¬pist ein unärer Operator und vertauscht wahr und falsch- Dasselbe lässt sich mit einer Wahrheitstabelle ausdrücken
- Die Elimination der doppelten Negation wird dadurch bewiesen, dass zweimalige Negation wieder zum Ausgangswert führt
andnimmt zwei Boolean-Werte und liefert nur dann wahr, wenn beide wahr sindp ∧ q → pp ∧ q → q
orliefert wahr, wenn mindestens einer von zwei Boolean-Werten wahr istp → p ∨ qq → p ∨ q
impliesoder die materiale Implikation wird alsp → qgeschrieben und ist nur dann falsch, wennpwahr undqfalsch ist- In der klassischen Logik ist
p → qäquivalent dazu, dass¬p ∨ qwahr ist
- In der klassischen Logik ist
if and only ifoderiffist wahr, wenn zwei Aussagen denselben Wert habenP ↔ Qist äquivalent zuP → Q ∧ Q → P
- Nicht nur mit Wahrheitstabellen, sondern auch mit Axiomen und Schlussregeln lässt sich die Äquivalenz von
p → qund¬p ∨ qbeweisen- Für einen vollständigen Äquivalenzbeweis braucht man Beweise in beide Richtungen
Intuitionistische Logik und die BHK-Interpretation
- Die intuitionistische Logik betrachtet Beweise nicht als Entdeckung universeller Wahrheit, sondern als Konstruktion
- In dieser Sicht kann man die Dichotomie, dass jede Aussage notwendigerweise wahr oder falsch ist, nicht verwenden
- Manche Aussagen sind nicht deshalb unbeweisbar, weil sie falsch wären, sondern weil sie außerhalb des gegebenen logischen Systems liegen können
- Die Zwillingsprimzahlvermutung wird oft als solches Beispiel genannt
- In der Brouwer–Heyting–Kolmogorov(BHK)-Interpretation stehen Beweise statt Aussagen im Mittelpunkt
- Eine Aussage ist etwas, das einen Beweis hat
- Logische Operatoren sind Konstruktionen, die aus anderen Beweisen Beweise herstellen
- Ein Beweis von
A ∧ Bist ein Paar aus einem Beweis vonAund einem Beweis vonB, also ein Produkt A → Bbedeutet, dass es eine Funktion gibt, die einen Beweis vonAin einen Beweis vonBumwandelt- Die Menge der Beweise von
A → Blässt sich als Menge von Funktionen vonAnachB, also als Hom-Set, ausdrücken - Ist diese Menge leer, gibt es keine Möglichkeit, einen Beweis von
Ain einen Beweis vonBumzuwandeln
- Die Menge der Beweise von
- In der BHK-Interpretation gibt es keinen eigenen iff-Operator, wohl aber Pfeile
- Wenn es eine Funktion von
AnachBund vonBnachAgibt, werden die beiden Aussagen wie äquivalent behandelt - Aus Sicht der Mengen bedeutet das, dass die Mengen ihrer Beweise isomorph sind
- Wenn es eine Funktion von
- Negation bedeutet nicht einfach das Fehlen eines Beweises, sondern dass man unter der Annahme,
Asei wahr, zu einem Widerspruch gelangt⊥spielt die Rolle eines Beweises einer Formel ohne Beweis, also von False oder bottom- In BHK wird
¬AalsA → ⊥gelesen - In der Mengenlehre wird
⊥durch die leere Menge dargestellt
Logik als Kategorie
- Die BHK-Interpretation liefert eine übergeordnete Sichtweise, um Logik kategorientheoretisch zu interpretieren
- Manche Kategorien kann man wie logische Systeme auffassen
- Objekte sind Aussagen
- Morphismen sind Beweise
- Nicht jede Kategorie ist ein logisches System; es braucht Bedingungen, sodass es Objekte gibt, die gültigen logischen Aussagen entsprechen, und keine Objekte für ungültige Aussagen
- Kategorien, die diese Bedingungen erfüllen, heißen bicartesian closed category
- Als einfacher Fall kann man zuerst eine Ordnung betrachten; ein logisches System und eine Menge atomarer Aussagen bilden eine Kategorie
- Wenn es von
AnachBnur einen Weg gibt oder Unterschiede ignoriert werden, erhält man ein Preorder - Fasst man Aussagen, die einander folgen, als äquivalent auf, erhält man eine Partial Order
A ≤ BbedeutetA → B
- Wenn es von
- Im Hasse-Diagramm gilt
A → B, wennAunterBliegt
Ordnungstheoretische Entsprechungen logischer Operatoren
andundorder Logik erscheinen in der BHK-Interpretation als Produkt und Summe und entsprechen ordnungstheoretisch Meet und Join- Damit eine Ordnung ein logisches System darstellt, müssen sich beliebige zwei Aussagen mit
andoderorverbinden lassen; die Ordnung muss also für alle Elemente Meet und Join besitzen- Eine solche Ordnung heißt Verband
- Ein wichtiges Gesetz zwischen
andundorist die Distributivität- Gilt für alle
A,B,C, dassA ∧ (B ∨ C) ≅ (A ∧ B) ∨ (A ∧ C), dann handelt es sich um einen distributiven Verband
- Gilt für alle
- Um intuitionistische Logik auszudrücken, muss ein Verband auch Elemente besitzen, die
TrueundFalseentsprechenFalsewird als⊥geschrieben und hängt mit dem Prinzip der Explosion zusammen: Hat man einen Beweis von False, lässt sich jede Aussage beweisenTruewird als⊤geschrieben; es folgt aus jeder Aussage, liefert aber selbst keinen inhaltlich bedeutsamen Gehalt
- In einer Ordnung sind
TrueundFalsejeweils das größte und das kleinste Objekt- In der Terminologie der Kategorientheorie entsprechen sie terminalem und initialem Objekt
- Ein Verband mit kleinstem und größtem Element heißt beschränkter Verband
Implikationsobjekte und Exponentialobjekte
- Ein Verband, der ein logisches System darstellen soll, braucht für jedes Paar
A,Bein Implikationsobjekt, das die Aussage repräsentiert, dassABimpliziert - Dieses Objekt wird über die Struktur von Modus ponens definiert
- Es muss
A ∧ (A ⇒ B) → Bgelten
- Es muss
- Diese Bedingung allein genügt jedoch nicht
- Auch andere Objekte wie
A ⇒ B ∧ CoderA ⇒ B ∧ C ∧ Dkönnten dieselbe Rolle einnehmen - Das eigentliche
A ⇒ Bist das größte Objekt unter denX, für dieA ∧ X → Bgilt
- Auch andere Objekte wie
- Ordnungstheoretisch heißt
A ⇒ BExponentialelement oder relatives Pseudokomplement- Es ist das größte
X, für dasA ∧ X ≤ Bgilt
- Es ist das größte
- Logisch gesehen ist die Implikationsaussage
A ⇒ Bdie am wenigsten gehaltvolle AussageX, für dieA ∧ X → Bgilt - Kategorientheoretisch wird dies als Exponentialobjekt oder internes Homomorphismusobjekt definiert
- Es muss ein Morphismus
A × X → Bexistieren - Von jedem anderen Kandidatenobjekt mit derselben Eigenschaft muss es einen eindeutigen Morphismus zum eigentlichen Exponentialobjekt geben
- Es muss ein Morphismus
- Diese Definition des Implikationsobjekts passt zur intuitionistischen Logik
- In der klassischen Logik vereinfacht sich wegen des Satzes vom ausgeschlossenen Dritten
A ⇒ Bzu¬A ∨ B
- In der klassischen Logik vereinfacht sich wegen des Satzes vom ausgeschlossenen Dritten
- Wie Meet, Join und Implikationsobjekt ist auch
A ⇒ Bnur bis auf eindeutigen Isomorphismus definiert
Heyting-Algebra und bicartesian closed category
- Die intuitionistische Logik besteht aus
True,False,and,orundimplies - Drückt man sie als Ordnung aus, erhält man eine Heyting-Algebra
- Sie besitzt Join und Meet
- Sie besitzt größtes und kleinstes Objekt
- Sie besitzt Implikationsobjekte
- Ein intuitionistisches logisches System kann als Heyting-Algebra aufgefasst werden
andundorsind Meet und JoinTrueundFalsesind größtes und kleinstes Objektimpliesist das Exponentialobjekt
- Überträgt man dieselbe Definition auf allgemeine Kategorien, erhält man eine bicartesian closed category
- Sie besitzt Produkte und Koprodukte
- Sie besitzt initiales und terminales Objekt
- Sie besitzt Exponentialobjekte
- Ein intuitionistisches logisches System kann auch als bicartesian closed category aufgefasst werden
andundorsind Produkt und KoproduktTrueundFalsesind terminales und initiales Objektimpliesist das Exponentialobjekt
- Ein Verband für klassische Logik muss zusätzlich zu beschränkt und distributiv auch komplementiert sein
- Zu jeder Aussage
Agibt es ein eindeutiges¬A, sodassA ∨ ¬A = 1undA ∧ ¬A = 0gelten - Ein solcher Verband heißt Boolean-Algebra
- Zu jeder Aussage
Ein einfacher Beweis aus kategorialer Logik
A ∨ ⊤ ≅ ⊤folgt unmittelbar aus der Definition von Join- Join ist die kleinste obere Schranke, die größer oder gleich beiden Objekten ist
- Da es kein Objekt gibt, das größer oder gleich
⊤ist außer⊤selbst, ist der Join von beliebigemAund⊤gleich⊤ - Logisch ist das die Tautologie „beliebiges
Aoder True ist True“
- Gilt
A → B, dann istA ∨ B = B- Wenn von zwei Objekten eines über dem anderen liegt, ist ihr Join das obere Objekt
- Das kann als Verallgemeinerung von
A ∨ ⊤ = ⊤gesehen werden - Denn für jedes Objekt
Agilt stetsA → ⊤
- Auch das Identitätsgesetz lässt sich mit dem Implikationsobjekt beweisen
A ⇒ Aist das größteX, für dasA ∧ X → Agilt- Diese Bedingung gilt für jedes
X, also ist es das größte Objekt⊤ - Daher ist
A → Aimmer wahr
- Wenn
Ain allen ModellenBimpliziert, also die semantische KonsequenzA ⊨ Bgilt, dann entspricht auchA ⇒ Bdem⊤- Da
Aselbst bereitsBimpliziert, giltA ∧ X → Bfür jedesX - Das wird auch Deduktionstheorem genannt
- Da
Mit der freien Heyting-Algebra Logik konstruieren
- Um Logik zu betreiben, wählt man zunächst die atomaren Aussagen passend zum jeweiligen Problemfeld aus
- Wenn die gewählte Logik intuitionistische Logik ist, muss man für alle
A,Bzusammengesetzte Aussagen wieA ∧ BundA ∨ Bals Graph konstruieren - Da auch Zusammensetzungen zusammengesetzter Aussagen wieder enthalten sein müssen, wird die Gesamtliste unendlich
- Ob eine Aussage eine andere impliziert, prüft man, indem man den Pfaden der aus der Ausgangsaussage herausführenden Pfeile folgt
- Logik zu betreiben heißt, einen Pfad von dem, was man bereits weiß, zu dem zu finden, was man beweisen will, oder vorhandene Beweise so zu manipulieren, dass neue Beweise entstehen
- In der intuitionistischen Logik ist es im Allgemeinen schwer zu beweisen, dass eine Aussage von den Axiomen aus unerreichbar ist, also nicht bewiesen werden kann
1 Kommentare
Hacker-News-Kommentare
Diese Seite ist wirklich großartig, und ich bin beim Studium verwandter Themen mehrfach darauf gestoßen.
Trotzdem würde ich dafür stimmen, mit Milewski zu lernen. Das zu lernen ist eine Reise, und der Autor von ct-illustrated scheint noch mitten auf dieser Reise zu sein.
Milewski ist diesen Weg schon viele Male gegangen, daher sind sein Buch und sein Blog ein guter Ausgangspunkt.
https://github.com/hmemcpy/milewski-ctfp-pdf Book
https://bartoszmilewski.com/2014/10/28/category-theory-for-p... Blog
Er scheint zu glauben, dass alles leichter verständlich wird, wenn man es in lockerer und unpräziser Prosa schreibt, aber dadurch wird es als Nachschlagewerk fast unbrauchbar.
Ganz und gar nicht¹
¹) https://news.ycombinator.com/item?id=41756286
Auf der Arbeit verwende ich jedoch Kategorientheorie für mein gesamtes Domänenmodell.
Wurde früher schon unter anderen URLs diskutiert.
https://news.ycombinator.com/item?id=28660131 (2 Kommentare)
https://news.ycombinator.com/item?id=28660157 (112 Kommentare)
Im frühen Teil des Buchs, beim Vergleich von Mathematik mit Wissenschaft oder Ingenieurwesen, bin ich auf diesen schönen Satz gestoßen:
„Aus diesem Grund befinden sich Mathematiker in der seltsamen, vielleicht sogar einzigartigen Lage, ihre Arbeit ständig im Hinblick auf ihren Wert für andere Disziplinen verteidigen zu müssen. Noch einmal betont: Bei jeder anderen Disziplin würde so etwas als absurd gelten.“
Das ist ein Konzept, mit dem sich wohl jeder identifizieren kann, der ein Fach studiert hat, das nicht direkt zu monetarisierbaren Ergebnissen führt, und es ist schön zu hören, dass auch Menschen mit Begabung für Zahlen mit Milton Friedmans Rasiermesser kämpfen müssen.
Die gesamte heutige „Postkolonialismus“-Forschung ist nichts weiter als das Backend amerikanischer Soft Power, und im Kriegsfall wohl auch das Backend der Hard Power.
Wenn die inneren Kreise immer vertikal zentriert angeordnet sind, skaliert das Diagramm Kreis im Kreis nicht besonders gut.
Gibt es Erfolgsgeschichten, in denen mithilfe der Kategorientheorie ein CS-/SWE-Problem nützlich gelöst wurde, das ohne Kategorientheorie nicht lösbar war? Monaden zählen nicht, weil man sie, wenn die Situation es erfordert, ganz natürlich erfindet.
Ich habe sie ein Jahr lang in der Graduiertenschule studiert, aber schließlich aufgegeben.
Eines der grundlegendsten Theoreme der Kategorientheorie, das Yoneda-Lemma, sagt direkt aus, dass jedes in der Sprache der Kategorien formulierte Problem in die Sprache von Mengen und Funktionen übersetzt werden kann. Dasselbe gilt für jedes mathematische Objekt, das über Mengen definiert ist: Man kann den Namen jederzeit durch die Definition ersetzen.
Der Beitrag der kategorientheoretischen Sprache zum impliziten Rahmen einer Theorie kann nicht größer sein als die Definition von „Kategorie“, und diese Definition ist sehr klein. Das ist ähnlich wie zu fragen, warum man Gruppen verwendet, wenn „eine Operation auf einer Menge mit Assoziativität, Abgeschlossenheit, Identitätselement und Inversen“ zugänglicher ist.
Die abstrakte Algebra basiert auf einer Bibliothek von Definitionen für Typen von Operationen auf Mengen, die einfach genug sind, um häufig vorzukommen. Werkzeuge oder Techniken sind nicht die Art von Dingen, die man in Definitionen findet.
Ringe, Vektorräume und Moduln werden meist sofort akzeptiert, aber bei Kategorien spaltet es sich in Gläubige und Ungläubige. Ich frage mich, warum das passiert.
Als ich Leland McInnes interviewte, erklärte er ausführlich, dass Kategorientheorie eine große Rolle dabei spielte, mehrere Punkte miteinander zu verbinden, auch wenn sie im tatsächlichen Code des Endergebnisses nicht unbedingt erforderlich war.
Wenn man den relativen Fortschritt gegenüber der zuvor besten Methode t-SNE betrachtet, ist das das einzige Beispiel, das mich dazu gebracht hat, meine Kritik an der Art zu überdenken, wie in der Softwarewelt über Kategorientheorie gesprochen wird.
https://arxiv.org/abs/1802.03426
Kategorientheorie ist eine Sprache und ein Werkzeug; was man in der Sprache der Kategorientheorie sagen kann, lässt sich auch in anderen Sprachen sagen.
Wie bei einem Auto kommt man schneller voran, wenn man fahren lernt – und hier ist die Lernkurve sehr steil. Im Prinzip gibt es aber nichts, wohin man nicht auch zu Fuß gelangen könnte, ohne kategorientheoretische Begriffe explizit zu erwähnen.
Nach meinem sehr begrenzten Verständnis ist es ein wichtiger Teil der Kategorientheorie, Objekte über universelle Eigenschaften zu charakterisieren.
Ein weiterer praktischer Nutzen der Kategorientheorie besteht darin, dass sie Informatikern, Mathematikern und Physikern eine gemeinsame Sprache gibt. Wenn alle dieselben Muster mit unterschiedlichen Namen und leicht inkompatiblen Definitionen bezeichnen, ist Zusammenarbeit nicht einfach.
Die aktuelle Pre-Alpha ist hauptsächlich für Systemdynamik-Modellierung gedacht, aber für den angestrebten Arbeitsbereich halte ich eine kategorientheoretische Grundlage für wesentlich. Ich würde mich über die Gedanken anderer dazu freuen.
https://topos.site/blog/2024-10-02-introducing-catcolab/
Ich halte Kategorientheorie für nützlich, aber offenbar noch nicht im Bereich Computing.
Wenn man sie nicht wirklich braucht, wirkt sie zwangsläufig schwierig. Muss man universelle Eigenschaften, adjungierte Funktoren und das Yoneda-Lemma wirklich verstehen? Wenn nicht, wird man sich damit schwertun, zu lernen, was sie sind.
Interessanterweise hilft Erfahrung mit funktionaler Programmierung beim Verständnis der Kategorientheorie, aber umgekehrt eher weniger. Zum Beispiel liefert parametrische Polymorphie Intuition für natürliche Transformationen, und natürliche Transformationen sind zentral für alle Anwendungen der Kategorientheorie.
Überzeugende Anwendungen der Kategorientheorie sind sehr mathematisch. Man findet sie in algebraischer Topologie, Darstellungstheorie, algebraischer Geometrie und nichtklassischer Logik.
https://en.m.wikipedia.org/wiki/ZX-calculus
https://zxcalculus.com/
https://www.reddit.com/r/quantum/s/2NzsJaDYwm
Es gibt einen Fehler:
„Der Modus ponens ist eine Aussage, die aus zwei anderen Aussagen besteht, hier als A und B bezeichnet, und besagt: Wenn Aussage A wahr ist und auch A --> B wahr ist, also A B impliziert, dann ist auch B wahr. Wenn man zum Beispiel weiß: ‚Sokrates ist ein Mensch‘ und ‚Menschen sterben‘, dann weiß man auch: ‚Sokrates stirbt‘.“
Dieses Beispiel ist kein Fall des Modus ponens, einer Regel der Aussagenlogik, sondern ein kategorischer Syllogismus, der Prädikatenlogik erfordert.
Hier heißt es, „Logik ist die Wissenschaft des Möglichen“, aber sollte Logik nicht die Wissenschaft des Bestimmten sein?
Meiner Ansicht nach besteht der Kern darin, mit Bestimmtheit sagen zu können, was gültig ist und was nicht.
Die Diagrammnotation ist interessant.
Gibt der Autor auch Inferenzregeln für wahrheitserhaltende Transformationen der Diagramme an?