Was mit Kategorietheorie gemeint ist, weiß noch nicht, wie man mit Funktionen höherer Ordnung umgeht?


22

Beim Lesen von Uday Reddys Antwort auf Was ist die Beziehung zwischen Funktoren in SML und Kategorietheorie? Uday sagt aus

Die Kategorietheorie kann noch nicht mit Funktionen höherer Ordnung umgehen. Eines Tages wird es.

Da ich dachte, dass die Kategorietheorie als Grundlage für Mathematik dienen kann, sollte es möglich sein, alle mathematischen Funktionen und Funktionen höherer Ordnung abzuleiten.

Was also mit Kategorietheorie gemeint ist, weiß noch nicht, wie man mit Funktionen höherer Ordnung umgeht? Ist es gültig, Kategorietheorie als Grundlage für Mathematik zu betrachten?


2
Diese Diskussion wäre perfekt für cstheory.stackexchange.com .
Martin Berger

Antworten:


15

Das Problem mit Funktionen höherer Ordnung lässt sich leicht feststellen.

  • Ein Typkonstruktor wie ist kein Funktor. Es hätte sein sollen. T(X)=[XX]

  • Eine polymorphe Funktion wie ist keine natürliche Transformation. Es hätte sein sollen.twiceX:T(X)T(X)=λf.ff

Wenn Sie das Originaldokument zur Kategorietheorie von Eilenberg und MacLane (PDF) lesen , decken die Intuitionen, die sie präsentieren, diese Fälle ab. Aber ihre Theorie tut es nicht. Es war eine großartige Zeitung für 1945! Aber heute brauchen wir mehr.

Die Reaktion der Kategorietheoretiker auf diese Fragen ist etwas verwirrend. Sie verhalten sich so, als ob Operationen höherer Ordnung eine Idee der Informatik bilden. Für die Mathematik sind sie ohne Bedeutung. Wenn dem so ist, dann wäre ein mathematisches Fundament nicht gut genug für ein Fundament der Informatik.

Aber das glaube ich nicht ernsthaft. Ich glaube, dass Funktionen höherer Ordnung auch für die Mathematik sehr wichtig wären. Aber sie wurden nicht ernsthaft untersucht. Ich hoffe, dass sie eines Tages erforscht und die Grenzen der Kategorietheorie erkannt werden.


2
Es ist erstaunlich, dass sie Funktionen höherer Ordnung nicht für interessant halten, wenn man bedenkt, wie tief sie gehen, wenn sie sich mit höherdimensionaler Algebra, n-Kategorietheorie und dergleichen befassen. Funktionen höherer Ordnung erscheinen vergleichsweise bodenständig. Besonders, wenn diese Erde Haskell-Programme beinhaltet.
Dave Clarke

5
@ DaveClarke. Ich denke, was sie sehen möchten, ist ein überzeugendes Beispiel wie das, mit dem Eilenberg und MacLane beginnen. Alle dimensionalen Vektorräume sind zueinander isomorph. Ein Vektorraum ist also isomorph zu seinem eigenen Dual: A A . Diese Isomorphismen sind jedoch nicht "natürlich". (Sie verwenden bestimmte Basen - in unserer Rede "repräsentationsabhängig".) Andererseits ist der Isomorphismus A A "natürlich" und funktioniert für alle Basen gleich. Um nach einer Kategorietheorie 2.0 zu fragen, brauchen wir ein ähnliches Killer-Beispiel! nAAAA
Uday Reddy

4
T(X)AB

1
+1 Das ist wirklich interessant. Kennen Sie eine Referenz, die diese Themen weiter behandelt?
Kaveh

3
λππ

9

[Diese zweite Antwort gibt einen Überblick darüber, wie eine "Kategorietheorie 2.0" aussehen könnte, die Funktionen höherer Ordnung richtig behandelt.]

Wir wissen seit langem, wie man mit Funktionen höherer Ordnung umgeht, wenn man über sie nachdenkt.

  • Wenn eine algebraische Struktur Operationen höherer Ordnung aufweist, funktionieren Homomorphismen nicht. Wir müssen stattdessen logische Beziehungen verwenden. Mit anderen Worten, wir müssen von " strukturerhaltenden Funktionen " zu " strukturerhaltenden Beziehungen " übergehen.

  • Um über "einheitliche" oder "gleichzeitig gegebene" Transformationen bei Typen höherer Ordnung zu sprechen, funktioniert die Natürlichkeit nicht. Wir müssen stattdessen relationale Parametrizität verwenden. Mit anderen Worten, wir müssen von "Familien, die alle Morphismen bewahren " zu "Familien, die alle logischen Beziehungen bewahren" übergehen .

Eine kurze Einführung in diese Themen finden Sie in Peter O'Hearns Abschnitt "Relationale Parametrizität" in Domains and Denotational Semantics: History, Erfolge und offene Probleme (CiteSeerX) .

Ich könnte auch hinzufügen, dass bei der Argumentation über den Zustand Funktionen höherer Ordnung im Vordergrund stehen. Die Automatentheoretiker haben als erste erkannt, dass Homomorphismen nicht richtig funktionieren, und zwar in einem historischen Artikel mit dem Titel Produkte von Automaten und das Problem der Abdeckung . Sie verwendeten Begriffe wie "schwache Homomorphismen" und "abdeckende Beziehungen", um sich auf logische Beziehungen zu beziehen. Zu gegebener Zeit wurden Begriffe wie "Simulation" und "Bisimulation" verwendet, um sie zu bezeichnen. Davide Sangiorgis Übersichtsartikel: Über die Ursprünge von Bisimulation und Koinduktion befasst sich mit all dieser frühen Geschichte und mehr.

Das Bedürfnis nach relationalem Denken taucht immer wieder beim Denken über den Staat auf, insbesondere bei der imperativen Programmierung . Sehr wenige Leute bemerken, dass das bescheidene "Semikolon" eine Operation höherer Ordnung ist. Man kann also nicht über imperative Programme nachdenken, ohne zu wissen, wie man mit Funktionen höherer Ordnung umgeht. Wir ignorieren immer wieder die Probleme der staatlichen und imperativen Programmierung in dem falschen Glauben, dass die Mathematik alle Antworten hat. Also, wenn Mathematiker den Zustand nicht verstehen, muss es nicht gut sein! Nichts ist weiter von der Wahrheit entfernt. Der Staat ist das Herz der Informatik. Wir werden die Wissenschaft allgemein voranbringen, indem wir den Menschen zeigen, wie sie mit dem Staat umgehen sollen!


@GuyCoder, ich denke das ist eine gute Idee. Übrigens denke ich, dass diese und jene Frage auch für Theoretische Informatik zum Thema gehören würde, falls Sie es vorziehen würden, sie dort zu posten.
Kaveh

Nach der Diskussion mit Uday wird eine neue Frage nicht speziell für diese zweite Antwort gestellt. :)
Guy Coder

Staat ist relativistisch.
Shelby Moore III
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.