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?
type-theory
applied-theory
Tamad Lang
quelle
quelle
Antworten:
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 :
quelle
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 :
Das folgende Zitat befindet sich in der Einleitung von Shans Buchkapitel über sprachliche Nebenwirkungen :
quelle
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.
quelle
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
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.
quelle
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
Logik und Hardwareüberprüfung höherer Ordnung / Melham (1993!)
Logiksatz höherer Ordnung beweisen und seine Anwendungen / Claeson, Gordon
Aufbau korrekter Schaltkreise: Überprüfung der Funktionsaspekte von Hardwarespezifikationen mit abhängigen Typen / Brady, Mckinna, Hammond
Zertifizierungsschaltungen in Typentheorie / Grimal
Coquet: Eine Coq-Bibliothek zur Überprüfung von Hardware / Braibant
quelle