Tägliche Anwendungen der Typentheorie


10

Ich möchte die Typentheorie verstehen, muss aber zuerst wissen, wie ich sie anwenden kann. Könnte es neben den Typsystemen in der Programmierung weitere nicht offensichtliche Anwendungen der Typentheorie geben? Könnte es andere Anwendungen geben, zum Beispiel bei der Erstellung von Persönlichkeitsprofilen und dergleichen?


2
Warum muss etwas Anwendungen haben, für die es nicht erfunden wurde?
Raphael

3
Grundlagen der Mathematik? Die Leute haben auch die Typentheorie verwendet, um Dinge wie die Theorie der synthetischen Domänen, die Topologie usw. zu formalisieren. Es gibt auch Chris Martens 'Arbeit über die Verwendung typentheoretischer Werkzeuge zur Modellierung des Erzählens von Geschichten. Dissertationslink
Daniel Gratzer

1
Könnten Sie die Anzahl als Antrag klären?
Jake

4
Ihre Prämisse überzeugt mich nicht. Angenommen, jemand sagte: "Ich möchte die Fahrzeugtechnik verstehen, aber ich muss zuerst wissen, wofür ich ein Auto verwenden kann. Könnte es neben dem Transport mehr nicht offensichtliche Anwendungen von Autos geben?" Sie erhalten Antworten, dass einige Leute in ihren Autos schlafen, und Ansel Adams nutzte seine als Plattform, um Fotos von ihnen zu machen . Das ist großartig, aber es hilft niemandem, die Technik zu verstehen, und führt unseren hypothetischen Studenten wahrscheinlich dazu, Autos mit super liegenden Sitzen und sehr steifer Federung zu entwerfen.
David Richerby

3
Tatsache ist, dass ein Großteil der theoretischen Informatik (einschließlich der Dinge, an denen ich arbeite) praktisch nutzlos ist, obwohl sie mathematisch schön ist. Leider muss man sich Seiten aussuchen.
Yuval Filmus

Antworten:


10

Vielleicht interessieren Sie sich auch für die Arbeit an Ceptre , einem Ergebnis der Doktorarbeit von Chris Martens , die die Typentheorie für interaktives Geschichtenerzählen verwendet. Im Folgenden wird die Zusammenfassung der These zitiert :

Interaktives Geschichtenerzählen verbindet tiefe rechnerische Ideen mit der reichen Geschichte der Menschheit in Bezug auf Geschichte und Spiel und bietet einen wichtigen Kontext für den Aufbau von Werkzeugen und Sprachen. Gleichzeitig bieten formale Spezifikationssprachen eine Palette von Darstellungs- und Inferenztechniken, die typischerweise für die Analyse von Programmiersprachen und komplexen deduktiven Systemen reserviert sind. Diese Arbeit verbindet Probleme im Bereich des interaktiven Geschichtenerzählens mit Lösungen in formalen Spezifikationen.

Insbesondere untersuchen wir die Erzählung unter strukturellen Gesichtspunkten und stellen fest, dass alternative Erzählpfade eine komplementäre Rolle zu gleichzeitig interagierenden Zeitleisten spielen. Die lineare Logik bietet die für die Untersuchung dieser Struktur erforderlichen Darstellungswerkzeuge. Durch die Erweiterung der Korrespondenz auf Beweise und Beweiskonstruktionen finden wir eine Reihe von Berechnungsmöglichkeiten. Wir präsentieren drei Bemühungen, um diese Möglichkeiten zu realisieren: (1) die Verwendung linearer Logikprogrammierung zur Erzeugung von Erzählungen; (2) eine neue Programmiersprache zum Erstellen interaktiver Erzählungen, Spiele und Simulationen; und (3) Techniken zum Festlegen und Beweisen von Programmeigenschaften auf Entwurfsebene.

Wir stellen fest, dass die lineare Logikprogrammierung, angereichert mit einer minimalen Erweiterung ihrer logischen Semantik, eine breite Palette von Programmiersprachen und Domänencodierungen ermöglicht. Als Beweis geben wir fünf Fallstudien, darunter soziale Simulationen, kampfbasierte Abenteuerspiele und Brettspiele. Um die Argumentation zur Designkorrektheit zu unterstützen, präsentieren wir Techniken zum Festlegen und Beweisen von Programminvarianten sowie einen Entscheidbarkeitsnachweis zum automatischen Überprüfen dieser Invarianten auf ein großes Fragment der Sprache.

Diese Ergebnisse zeigen, dass lineare Logik eine fruchtbare Repräsentationssprache ist, die als Grundlage für die Modellierung und Ausführung interaktiver Welten dient, und sie laden zu zukünftigen Untersuchungen zur Verwendung beweistheoretischer Methoden für kreative Systeme ein.


1
Das klingt eher nach einer linearen Logik als nach einer Typentheorie an sich .
David Richerby

6
Die lineare Logik ist ein Eckpfeiler der Typentheorie. Diese Arbeit ist sehr viel Teil der Typentheorie als Disziplin (einige Leute beschreiben ihre Arbeit als "Beweistheorie", wenn sie für die Typentheorie gleichermaßen relevant ist, obwohl die Namen nicht gleichwertig sind, wie einige andere Arbeiten in der "Beweistheorie" als angesehen würden spezifischer für die Beweistheorie als zentral für die Typentheorie).
Gasche

9

In der Linguistik gab es interessante Anwendungen der Typentheorie. Siehe zum Beispiel die sprachlichen Werke von Chung-chieh Shan oder Christian Rétoré .

Im Folgenden wird die Beschreibung von Rétorés Buch über kategoriale Grammatiken zitiert :

Dieses Buch ist eine zeitgemäße und umfassende Einführung in kategoriale Grammatiken in der logischen Tradition, die durch die Arbeit von Lambek initiiert wurde. Es führt Studenten und Forscher durch die grundlegenden Ergebnisse auf diesem Gebiet und liefert moderne Beweise für viele klassische Theoreme sowie originelle Fortschritte der letzten Zeit. Zahlreiche Beispiele und Übungen veranschaulichen die Motivationen und Anwendungen dieser Ergebnisse aus sprachlicher, rechnerischer und logischer Sicht. Der Lambek-Kalkül und seine Varianten sowie die entsprechenden Grammatiken bilden den Kern dieser Vorlesungsunterlagen. Ein Kapitel widmet sich einem Hauptmerkmal dieser kategorialen Grammatiken: ihrer sehr eleganten syntax-semantischen Schnittstelle. Darüber hinaus passen wir lineare logische Beweisnetze an diese Kalküle an, da sie effiziente Parsing-Algorithmen bieten, wie im Grail-Parser veranschaulicht.

Das folgende Zitat befindet sich in der Einleitung von Shans Buchkapitel über sprachliche Nebenwirkungen :

In diesem Artikel werden Fälle offensichtlicher Nichtkompositionalität in natürlichen Sprachen mit Fällen in Programmiersprachen in Verbindung gebracht. Es ist wie eine Sanduhr geformt: Ich beginne in § 1 mit einem Ansatz zur Syntax-Semantik-Schnittstelle, der uns hilft, kompositorische semantische Theorien aufzubauen. Dieser Ansatz besteht darin, eine Analogie zwischen rechnerischen Nebenwirkungen in Programmiersprachen und dem, was ich als analog sprachliche Nebenwirkungen in natürlichen Sprachen bezeichne, zu ziehen.

Diese Verbindung kann sowohl Informatikern als auch Linguisten zugute kommen, aber ich konzentriere mich hier auf die letztere Richtung des Technologietransfers. Fortsetzungen waren nützlich für die Behandlung von rechnerischen Nebenwirkungen. In §2 stelle ich eine neue Metasprache für Fortsetzungen in der Semantik vor.

Die von mir eingeführte Metasprache ist nützlich, um sowohl Programmiersprachen als auch natürliche Sprachen zu analysieren. Für die Intuition untersuche ich die erste Verwendung in §3 und weise dann in §4 auf die Vorzüge dieser Behandlung hin.

In Bezug auf die natürliche Sprache in §5 beschreibe ich ausführlich, wie diese Perspektive Chris Barker und mir geholfen hat, Bindung und Überkreuzung sowie Wh-Fragen und Überlegenheit zu studieren. Ich habe auch Fortsetzungen verwendet, um Quantifizierer und unbestimmten Umfang zu untersuchen, insbesondere in Mandarin-Chinesisch, aber es gibt hier nur Raum, um diese weiteren Entwicklungen in §6 zu skizzieren.


9

Aufgrund der Curry-Howard-Korrespondenz können Typen als Sätze und Sätze als Typen interpretiert werden.

Infolgedessen ist die Typentheorie auf buchstäblich jedes Feld anwendbar, das formale Logik für seine Beweise verwendet. Dies kann Schaltungsüberprüfung, reale Analyse, symbolische Logik, Geometrie usw. sein.

Einige automatisierte Proofprüfungswerkzeuge arbeiten beispielsweise nach diesem Prinzip: Sie überprüfen die Gültigkeit des Proofs, indem sie einen bestimmten Begriff in einem Typensystem typüberprüfen. Der LF Proof Checker basiert auf diesem Ansatz, ebenso wie HOL Light . Als Beispielanwendung verwendete der Proof-Carry-Code LF, um Beweise für die Speichersicherheit von nicht vertrauenswürdigem Code zu überprüfen. Der Vorteil dieser Art von Proof-Checker besteht darin, dass die Implementierung sehr einfach sein kann und wir daher eine hohe Sicherheit erhalten können, dass die Implementierung korrekt ist. Siehe z. B. das folgende Papier:

Grundlegende Beweisprüfer mit kleinen Zeugen . Dinghao Wu, Andrew W. Appel und Aaron Stump. PPDP 2003.



Ich denke nicht, dass dies die Frage beantwortet. Was ist mit tatsächlichen Anwendungen?
Yuval Filmus

@YuvalFilmus "Ist" definieren?
David Richerby

1
Wissen Sie, ob jemand die Typentheorie verwendet hat, um etwas Neues in Bezug auf Schaltungsüberprüfung, reale Analyse, symbolische Logik oder Geometrie zu beweisen? Oder sprechen wir nur über Fälle, in denen jemand 20 Seiten Typentheorie verwendet, um etwas zu beweisen, das in einem elementaren Lehrbuch drei Zeilen umfasst?
David Richerby

@ David Was diese Antwort ist, ist, dass Sie im Prinzip die Typentheorie verwenden können, um Dinge zu beweisen. Im Prinzip können wir auch zellulare Automaten verwenden, um Dinge zu beweisen, da Regel 110 Turing-vollständig ist. Ich denke, die erstere Aussage ist ebenso bedeutungslos wie die letztere.
Yuval Filmus

7

Ein interessanter Artikel, der Anwendungen abhängiger Typen erklärt, ist The Power of Pi , der zeigt, wie Agda zur Lösung interessanter Probleme verwendet werden kann.

Ein weiteres gutes Beispiel ist die Verwendung abhängiger Typen zur Ressourcensteuerung. Ein gutes Beispiel ist die Dateiverwaltungs-API von Effects of Idris . Die Funktion zum Lesen einer Zeile aus einer Datei hat beispielsweise den folgenden Typ

readLine  : { [FILE_IO (OpenFile Read)] } Eff String

Dies gibt an, dass diese Funktion nur anwendbar ist, wenn eine Datei geöffnet ist. Die Liste in geschweiften Klammern gibt an, welche Effekte verfügbar sind. In diesem Fall muss für diese Funktion eine Datei zum Lesen geöffnet werden.

Weitere Informationen zur Effektbibliothek finden Sie hier .

Eine weitere Anwendung ist die Verwendung abhängiger Typen für die Parallelität, wie im folgenden Artikel vom Ersteller von Idris angegeben.


1
Weitere Beispiele hinzugefügt.
Rodrigo Ribeiro

3

Wie in der Antwort von jmite erwähnt, gibt es die Logik / Typentheorie höherer Ordnung in der Schaltungs- / Hardware- / Elektronik-Verifikation seit Jahrzehnten und ist jetzt so routinemäßig, dass sie nach einem anscheinend großen Übertragungsaufwand in nicht einmal als "Anwendung" wahrgenommen / angesehen wird die ~ 1990er Jahre, obwohl es immer noch ein aktives Forschungsgebiet ist. Es gibt auch eine große Anwendung von Coq und seiner Typlogik, insbesondere für die Überprüfung von Schaltungen / Hardware / Elektronik, von der Low-Level-Gate-Logik bis hin zu Strukturen / Subsystemen mit viel höheren Ebenen / Ordnungen. Hier sind einige wichtige Referenzen


1
Um fair zu sein, wurde die meiste tatsächliche Hardware-Verifizierung im industriellen Maßstab mithilfe der Modellprüfung durchgeführt, einer Verifizierungstechnologie, die im Allgemeinen nicht mit der Typentheorie zusammenhängt (obwohl kürzlich Brücken gezogen wurden). Die Typentheorie wurde verwendet, um Hardwarebeschreibungssprachen zu erstellen (nicht weit von den Programmiersprachen entfernt), und die meisten von Ihnen angegebenen Sprachen gehören zu dieser Kategorie, und einige der Proof-Assistenten, die für die Hardwareüberprüfung entwickelt wurden (insbesondere die ursprüngliche HOL, aber nicht die am häufigsten verwendeten PVS) sind Curry-Howard-Transponierte der Typentheorie.
Gasche

Wenn Sie einen tieferen Hintergrund in der Hardwareverifizierung haben, wäre es interessant, mehr Details im Computer Science Chat zu hören, aber denken / vermuten, dass enge / eindeutige Linien / Verallgemeinerungen in diesem Bereich nicht einfach zu zeichnen sind, z. B. zwischen Modellprüfung und Typentheorie. Es kann eine sehr subtile historische Analyse erfordern, um Zusammenhänge zwischen zwei verschiedenen Bereichen mit unterschiedlichen Zielen umfassend aufzudecken / zusammenzufügen, und manchmal liegt dies sogar außerhalb der Fähigkeiten von Experten in beiden Bereichen ... Die Schiedsrichter zeigen insgesamt starke Zusammenhänge, die weiter analysiert werden könnten. ..
vzn
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.