Status quo von Kategorietheorie und Monaden in der theoretischen Informatikforschung?

16

Hintergrund . Ich bin ein Bachelor-Student, der sich für Forschung in Bezug auf Kategorietheorie, Monaden und Haskell interessiert, und ich möchte ein Thema für meine Bachelor-Arbeit in diesem Bereich finden.

Ich habe mir die Zeitung angesehen

und ich verstehe noch nicht viel davon. Ich werde wahrscheinlich einige Zeit brauchen, um es vollständig zu verstehen. Bevor ich mich jedoch mehr mit dem Studium beschäftige, möchte ich das Gebiet und sein Forschungspotential besser verstehen. Ich habe kürzlich mit einem meiner Professoren darüber gesprochen und er hat mir erzählt, dass Monaden in den 90er Jahren in der Forschungsgemeinschaft in Mode waren, aber heutzutage sind sie aus der Mode.

Daher suche ich jetzt nach neueren Arbeiten im Zusammenhang mit Monaden und frage mich:

  • In welchen Bereichen der theoretischen Informatik wird heutzutage mit Kategorietheorie und Monaden geforscht?
  • Welche Art von Forschung wurde zu E. Moggis Arbeit über Monaden in der Theorie der Programmierung aufgebaut oder vorgeschlagen? Gab es Folgemaßnahmen oder laufende Nachforschungen zu seiner Arbeit?
k.stm
quelle
Bevor wir diese Frage beantworten: Ist es nicht Forschungsniveau, oder? Es ist möglicherweise besser für cs.stackexchange.com geeignet.
Andrej Bauer
3
@AndrejBauer Meine Bachelorarbeit wird nicht auf Forschungsniveau sein, aber meine Frage befasst sich mit der aktuellen Forschung oder zumindest mit der Forschung, die im letzten Jahrzehnt durchgeführt wurde.
k.stm
9
@AndrejBauer Ich stimme nicht zu. Die Schwesterseite ist hauptsächlich für Hausaufgaben gedacht, wobei hier eine Expertenmeinung erforderlich ist.
Yuval Filmus
@Kaveh Das war die drastische Änderung, die Sie gerade vorgenommen haben. Sie haben einige Punkte verbessert, aber jetzt ist es nicht mehr die Frage, die ich gestellt habe. Wenn ich morgen Zeit habe, werde ich einige Ihrer Änderungen rückgängig machen. Zum Beispiel ist es mir wichtig, den Hintergrund zu haben. Bitte sagen Sie mir, welche Änderungen Ihrer Meinung nach notwendig waren und warum, damit ich weiß, was ich nicht rückgängig machen soll.
k.stm
1
@Yuval, ich denke, viele Leute in der Informatik würden Ihrer Bemerkung, dass es sich hauptsächlich um Hausaufgaben handelt und dass Experten in der Informatik nicht anwesend sind, absolut widersprechen . In diesem Fall hat Andrej über 100 Fragen zur Informatik beantwortet .
Kaveh

Antworten:

14

Seit der Arbeit von Eugenio Moggi gab es eine Reihe von Entwicklungen in Bezug auf die Verwendung von Monaden in der Berechnungstheorie. Ich bin nicht in der Lage, einen umfassenden Bericht zu geben, aber hier sind einige Punkte, mit denen ich vertraut bin, andere können mit ihren Antworten übereinstimmen.

Spezifische Beispiele für Monaden

Sie müssen nicht die ganze Zeit über allgemeine Theorie studieren. Es gibt Beispiele für Monaden, die sehr interessant und kompliziert genug sind, um eine ganze Diplomarbeit zu füllen.

Ich mag Dan Piponis Blog sehr, in dem er erstaunliche Beispiele dafür gibt, wie Monaden verwendet werden können, um funktionale Programmierung und Mathematik zu mischen. Suchen Sie zum Beispiel nach seinen Arbeiten über Knoten und Geflechte durch Monaden.

Ein weiteres konkretes Beispiel für Mondas wert studierte von Martin Escardo und Paulo Oliva im Zusammenhang mit der Auswahl Funktionalen gegeben, sehen ihre Auswahlfunktionen, Bar Rekursion und Rückwärtsinduktion , oder vielleicht zu interessieren, zuerst lesen Was Sequential Spiele, die Tychonoff Theorem und die Double-Negation-Shift haben Gemeinsamkeiten (zugehörige Haskell- und Agda-Dateien hier ).

Mathematischer Hintergrund

Monaden stammen aus der Kategorietheorie und sind viel älter als Eugenio Moggi. Sie könnten die Hintergrundtheorie studieren, wenn Sie mathematisch veranlagt sind. Sie könnten beispielsweise Becks Monadizitätssatz angreifen . Ein theoretischer Informatiker kann nie zu viel Mathe wissen.

Variationen über ein Thema

Sie könnten sich etwas ansehen, das nicht nur Monaden sind.

Zum Beispiel die Idiome von Connor McBride und Ross Paterson : Die anwendungsorientierte Programmierung mit Effekten zeigt, wie man Monaden zu etwas verallgemeinern kann, das praktisch relevant und aufschlussreich ist.

Oder sehen Sie sich an, wie Comonaden zur Modellierung von Recheneffekten verwendet werden. Jemand sollte einige Referenzen für dieses Thema vorschlagen, aber ein guter Anfang könnten die Folien von David Overtone sein .

Theorie des Modaltyps

Sowohl in der Homotopietypentheorie als auch in der Typentheorie im Allgemeinen treten Monaden in Form der Modaltypentheorie auf . In letzter Zeit wurde die Modaltypentheorie in der Homotopietheorie berücksichtigt, da die Trunkierungsoperatoren Beispiele für Modaloperatoren sind. Und dann gibt es eine kohäsive Homotopietheorie, in der Modaloperatoren (die Monaden sind) eine wesentliche Rolle spielen.

Algebraische Effekte und Handler

[Haftungsausschluss: Ich habe hier teilweise mein eigenes Horn geblasen.]

Vor einiger Zeit stellten Gordon Plotkin und John Power fest, dass es sich bei vielen Recheneffekten nicht nur um Monaden handelt, sondern um spezielle Monaden, die sich aus algebraischen Theorien ergeben. Dies führte zu einer völlig neuen Behandlung von Recheneffekten, die als algebraische Effekte bezeichnet werden . Später stellten Gordon Plotkin und Matija Pretnar Handler vor und bilden zusammen mit algebraischen Effekten eine sehr schöne Theorie der rechnerischen Effekte. Ein Vorteil dieses Ansatzes ist, dass algebraische Theorien leicht kombiniert werden können, während Monaden dies nicht können.

Sie könnten untersuchen, wie genau sich algebraische Effekte auf Monaden auswirken. Sie können sich ansehen, wie Benutzer algebraische Effekte und Handler implementiert haben, beispielsweise in der Eff-Sprache oder in Haskell als Bibliothek . Dies ist mehr oder weniger aktuelle Forschung.

Andrej Bauer
quelle
Hallo, danke für die Antwort! Ich habe auf Ihrer Website auf Eff geklickt und es scheint, dass der Link zu Eine Einführung in Algebraische Effekte und Handler veraltet ist, dh die Datei eff-lang.org/handlers-tutorial.pdffehlt.
Mittwoch,
1
Ich habe Matija gebeten, den Link zu reparieren, in der Zwischenzeit können Sie sich arxiv.org/abs/1203.1539 ansehen .
Andrej Bauer,
Ich bin schon. Können Sie übrigens einen kurzen Überblick über die Hintergrundtheorie geben, die ich studieren muss, um Ihre Arbeit zu verstehen? Ich kenne eine Kategorietheorie, eine nicht typisierte Lambda-Rechnung und eine elementare Berechnungstheorie und eine elementare Programmiertheorie (ich weiß, was Bezeichnungssemantik ist), aber bisher nicht viel mehr. Ich kann zum Beispiel bereits aus Abschnitt 3 Ihres Beitrags ersehen, dass ich mich mit Schreibregeln befassen muss (also vielleicht mit typisierter Lambda-Rechnung). Tut mir leid, wenn ich hier aufdringlich bin.
k.stm
3
Sie sollten etwas über die universelle Algebra und / oder Lavweres Theorie der algebraischen Theorien wissen. Wenn Sie mit Schreibregeln nicht vertraut sind, können Sie ein allgemeines Lehrbuch über Programmiersprachen lesen , z. B. Benjamin Pierces TAPL oder Bob Harpers praktische Grundlagen von Programmiersprachen .
Andrej Bauer
1

Dieses Papier gibt einige wichtige neue Arbeiten mit Monaden.

NietzscheanAI
quelle
1
Hallo, danke für deine Antwort. Ich würde mich über einen kleinen Zusammenhang freuen, das heißt, wenn Sie sich die Zeit nehmen, um einige Details zu erläutern. (Eigentlich hat die Zeitung eine nette Einführung in den Inhalt, aber ich würde immer noch gerne einen Kontext für die Umgebung sehen, zum Beispiel, ob es verwandte Arbeiten und dergleichen gibt.)
k.stm