Ich bin ein Student der Mathematik mit einem soliden Hintergrund in Logik. Ich habe einen einjährigen Abschlusskurs in Logik zusammen mit Abschlusskursen in endlicher Modelltheorie und einem weiteren Kurs in Erzwingungs- und Mengenlehre belegt. Die meisten CS-Texte scheinen nur einen sehr bescheidenen logischen Hintergrund anzunehmen, der hauptsächlich die Grundlagen der Aussagenlogik und der Logik erster Ordnung abdeckt.
Ich möchte einige Hinweise für CS-Anwendungen erhalten, bei denen umfangreicheres Material aus der Logik verwendet wird. Ein Interesse von mir wäre Typentheorie und formale Methoden im Allgemeinen. Könnte jemand eine gute Lektüre nach den einführenden Büchern über Modellprüfungs- und Programmiersprachen vorschlagen?
Antworten:
Ich habe hier einige Bereiche kurz besprochen und versucht, mich auf Ideen zu konzentrieren, die jemanden mit einem Hintergrund in fortgeschrittener mathematischer Logik ansprechen.
Finite-Modell-Theorie
Die einfachste Einschränkung der klassischen Modelltheorie aus Sicht der Informatik besteht darin, Strukturen über ein endliches Universum zu untersuchen. Diese Strukturen treten in Form von relationalen Datenbanken, Graphen und anderen kombinatorischen Objekten auf, die überall in der Informatik auftreten. Die erste Beobachtung ist, dass mehrere grundlegende Theoreme der Modelltheorie erster Ordnung versagen, wenn sie auf endliche Modelle beschränkt sind. Dazu gehören der Kompaktheitssatz, der Vollständigkeitssatz von Godel und Ultraproduktkonstruktionen. Trakhtenbrot hat gezeigt, dass im Gegensatz zur klassischen Logik erster Ordnung die Erfüllbarkeit über endliche Modelle nicht zu entscheiden ist.
Die grundlegenden Werkzeuge in diesem Bereich sind Hanf-Lokalität, Gaifman-Lokalität und zahlreiche Variationen von Ehrenfeucht-Fraisse-Spielen. Die untersuchten Themen umfassen Infinitary Logics, Logics mit Counting, Fixed Point Logics usw., wobei der Schwerpunkt immer auf endlichen Modellen liegt. Es gibt Arbeiten zur Expressivität in endlich variablen Fragmenten der Logik erster Ordnung, die über Kiesel-Spiele charakterisiert werden. Eine andere Richtung der Untersuchung besteht darin, Eigenschaften klassischer Logik zu identifizieren, die die Beschränkung auf endliche Modelle überleben. Ein jüngstes Ergebnis in dieser Richtung von Rossman zeigt, dass bestimmte Homomorphismusbewahrungssätze immer noch über endliche Modelle verfügen.
Der aussagekräftige Kalkülμ
Eine Reihe von Arbeiten aus den späten 60er Jahren zeigte, dass zahlreiche Eigenschaften von Programmen in Erweiterungen der Aussagenlogik zum Ausdruck gebracht werden können, die die Argumentation über Fixpunkte unterstützen. Die Modal- Rechnung ist eine Logik, die in dieser Zeit entwickelt wurde und in automatisierten formalen Methoden eine breite Palette von Anwendungen gefunden hat. Viele formale Methoden sind mit zeitlicher Logik oder Hoare-artigen Logiken verbunden, und ein Großteil davon kann in Form des μ- Kalküls betrachtet werden. Tatsächlich habe ich gehört, dass der μ- Kalkül die Assemblersprache der zeitlichen Logik ist.μ μ μ
Lineare zeitliche Logik
Die lineare zeitliche Logik wurde aus der philosophischen Logik in die Informatik übernommen, um über das Verhalten von Computerprogrammen nachzudenken. Es wurde als gute Logik angesehen, da es Eigenschaften wie Invarianz (Fehlen von Fehlern) und Beendigung ausdrücken konnte. Die Beweistheorie der zeitlichen Logik wurde von Manna und Pnueli (und anderen, später) in ihren Artikeln und Büchern entwickelt. Die Modellprüfung und das Erfüllbarkeitsproblem für LTL können beide in Bezug auf Automaten über unendliche Wörter gelöst werden.
Pnueli hat in seinem Originalartikel auch fundamentale Antworten auf LTL gefunden und die Logik für die Argumentation über Programme eingeführt. Vardi und Wolper gaben eine viel einfachere Zusammenstellung von LTL-Formeln in Buchi-Automaten. Die Verbindung zur zeitlichen Logik hat zu einer intensiven Untersuchung von Algorithmen geführt, mit denen Automaten effizient aus LTL abgeleitet und Buchi-Automaten bestimmt und ergänzt werden können. Kamps Theorem zeigt, dass LTL mit seit und bisω μ μ
Computational-Tree-Logik
Das Modellprüfungsproblem für CTL über endlichen Strukturen liegt in der Polynomzeit. Das Modellprüfungsproblem für CTL * ist EXPTIME abgeschlossen. Die Axiomatisierung von CTL * war ein herausforderndes offenes Problem, das schließlich von Reynolds 2001 gelöst wurde. Das Analogon von van Benthems Theorem für die Modallogik und Kamps Theorem für LTL wird für CTL * durch ein Theorem von Hafer und Thomas gegeben, das zeigt, dass CTL * entspricht ein Fragment einer monadischen Logik zweiter Ordnung über binären Bäumen. Eine spätere Charakterisierung von Hirschfeld und Rabinovich ist, dass CTL * dem bisimulationsinvarianten Fragment von MSO mit Pfadquantifizierung ausdrücklich äquivalent ist.
Sprachen der unendlichen Wörter
Automaten auf unendlichen Wörtern
Wo es Sprachen gibt, werden Informatiker Automaten haben. Geben Sie die Theorie der Automaten über unendliche Wörter und unendliche Bäume ein. Es ist äußerst traurig, dass, obwohl Automaten über unendliche Wörter innerhalb von zwei Jahren nach Automaten über endliche Wörter erschienen, dieses grundlegende Thema in den üblichen Lehrplänen der Informatik selten behandelt wird. Automaten über unendlichen Wörtern und Bäumen bieten einen sehr robusten Ansatz, um die Entscheidbarkeit der Erfüllbarkeit für eine sehr reiche Familie von Logiken zu beweisen.
Unendliche Spiele
Logische und unendliche Spiele sind ein aktives Forschungsgebiet. Spieltheoretische Vorstellungen tauchen in der Informatik überall in der Dualität zwischen Nichtdeterminismus und Parallelismus (Alternation), einem Programm und seiner Umgebung, universeller und existentieller Quantifizierung, Box- und Diamantmodalitäten usw. auf. Spiele erwiesen sich als a gute Möglichkeit, Eigenschaften der verschiedenen Arten von nicht-klassischen Logiken zu studieren, die oben aufgeführt sind.
Wie bei den Akzeptanzkriterien für Automaten gelten für Spiele unterschiedliche Gewinnbedingungen, und es kann gezeigt werden, dass viele davon gleichwertig sind. Da Sie nach klassischen Ergebnissen gefragt haben, liegen das Borel-Determinacy-Theorem und Gale-Stewart-Spiele häufig diskret im Hintergrund mehrerer von uns untersuchter Spielmodelle. Eine dringende Frage unserer Zeit war die Komplexität der Lösung von Paritätsspielen. Jurdzinski gab einen Algorithmus zur Strategieverbesserung an und zeigte, dass die Entscheidung über den Gewinner im Schnittpunkt der Komplexitätsklassen UP und coUP lag. Die genaue Komplexität von Jurdzinskis Algorithmus war offen, bis Friedmann ihm 2009 eine Exponentialzeituntergrenze gab.
quelle
Edmund M. Clarke, Doron A. Peled, Orna Grumberg: Modellprüfung . MIT Press 1999 ist ein schönes Buch (für mich) über die Modellprüfung.
Glynn Winskel: Die formale Semantik von Programmiersprachen: eine Einführung . MIT Press 1994 ist eines der Standardlehrbücher für Programmiersprachen.
Mordechai Ben-Ari: Mathematische Logik für die Informatik . Springer 2001 ist vielleicht das, wonach Sie suchen.
quelle
Die Datenbanktheorie ist ein weites Feld, das viele Anwendungen der Logik bietet. Beschreibende Komplexität und Finite-Modell-Theorie sind eng miteinander verbundene Bereiche. Soweit ich das beurteilen kann, verwenden alle diese Bereiche eher algebraische Stile der Logik (auf den Spuren von Birkhoff und Tarski) als Beweistheorie. Einige Arbeiten von Peter Buneman , Leonid Libkin , Wenfei Fan , Susan Davidson , Limsoon Wong , Atsushi Ohori und anderen Forschern, die in den 80er und 90er Jahren bei UPenn arbeiteten, versuchten jedoch, Theorie und Datenbanken der Programmiersprache zu vereinen. Dies scheint zu erfordern, dass man mit beiden Logikstilen vertraut ist. Gleiches gilt für neuere Arbeiten von James Cheneyund Philip Wadler .
In Bezug auf bestimmte Referenzen steht das Standardlehrbuch online zur Verfügung, damit Sie es bequem nachschlagen können:
Leider kenne ich keine aktuellen allgemeinen Lehrbücher oder Umfragen, die dieses sich schnell bewegende Gebiet abdecken. Ich habe zwei ältere Umfragen nützlich gefunden. Zuerst,
zeigt, wie die Punkte zwischen Tarski und einer bestimmten Unterfeld-Einschränkungsdatenbank verbunden werden. Zweite,
Die Datenbanktheorie im Stil von 1996 dient als Grundlage für endliche Modelltheoretiker und beleuchtet dabei viele interessante Anwendungen der Logik in Datenbanken. Für neuere Arbeiten (wie XML-Theorie, Provenienz, Streaming-Modelle oder Graphendatenbanken) ist das Lesen von häufig zitierten Forschungsarbeiten ein vernünftiger Ansatz.
quelle
Michael Huth und Mark Ryan: Logik in der Informatik , Cambridge University Press, 2004.
Ich empfehle dieses Buch als allgemeine Einführung, wie Logik in der Informatik eine Rolle spielt.
quelle
Eine wichtige Verwendung der Logik in CS ist die Programmlogik, auch Hoare-Logik genannt.
Eine ähnliche Situation ergibt sich bei der Untersuchung der Modallogik, die (nochmals vereinfacht) nicht so aussagekräftig ist wie die Logik erster Ordnung, aber was sie ausdrücken kann, drücken sie mit kürzeren Formeln und Beweisen aus.
Das Identifizieren geeigneter Fragmente von ZFC ist für einfache Programmiersprachen nicht schwer, wird jedoch schnell schwieriger, da Programmiersprachen mehr Funktionen erhalten. In den letzten Jahren wurden in diesem Bereich erhebliche Fortschritte erzielt.
Die Veröffentlichung Eine axiomatische Grundlage für die Computerprogrammierung von T. Hoare wird oft als Grundlage für das Studium der Programmlogik angesehen. Sie ist leicht zu lesen und wahrscheinlich eine gute Möglichkeit, sich in die Praxis zu wagen. Die gleiche Logik wird in Winskels Buch "Formale Semantik von Programmiersprachen", das von @vb le zitiert wird, genauer untersucht.
Die Typentheorie kann in einem ähnlichen Licht gesehen werden. Das Hauptverkaufsargument der Typentheorie ist die Identifizierung von Beweisen mit (rein funktionalen) Programmen, die zu einer hohen Wirtschaftlichkeit der Konzepte und zu einer starken Automatisierung führen (in Form von Typinferenz und interaktiven Theorembeweisen). Der Preis dafür, dass die Typentheorie eine elegante Methode zur Organisation von Beweisen ist, ist, dass sie mit nicht rein funktionalen Programmiersprachen anscheinend nicht so gut funktioniert.
Ein neuerer und durch und durch moderner Text, der die Programmlogik typentheoretisch einführt, ist Software Foundations von Pierce et al. Es führt Sie direkt an den (a) neuesten Stand der Forschung im Bereich der Programmüberprüfung und gibt als Lehrbuch wahrscheinlich einen Einblick, wie Informatik und Mathematik in Zukunft unterrichtet werden.
Sobald eine Programmlogik für eine Sprache entwickelt wurde, ist der nächste Schritt die Automatisierung oder Teilautomatisierung: Die Erstellung von Beweisen für nicht triviale Programme ist arbeitsintensiv, und wir möchten, dass die Maschinen so viel wie möglich davon tun. Viel aktuelle Forschung in formalen Methoden, um mit einer solchen Automatisierung zu tun.
quelle
In der Informatik gibt es eine sehr starke Tradition der Logik. Die Probleme, die wir untersuchen, und die Ästhetik der Computerlogik-Community sind nicht identisch mit der der mathematischen Logik-Community. Sie haben vollkommen Recht, dass signifikante Entwicklungen in der Modelltheorie, der Meta-Theorie der Logik erster Ordnung und der Mengen-Theorie in der Computerlogik nicht häufig verwendet werden. Man kann Computerlogik erfolgreich erforschen, ohne Ultrafilter, Nicht-Standard-Analyse, Forcen, das Paris-Harrington-Theorem und eine Vielzahl anderer faszinierender Konzepte zu sehen oder zu verwenden, die in der klassischen Logik als wichtig angesehen werden.
So wie man mathematische Ideen auf das Studium der Logik und logische Ideen auf das Studium der Mathematik anwendet, wenden wir Logik auf das Studium der Informatik an und wenden rechnerische Perspektiven auf das Studium der Logik an. Dieser unterschiedliche Fokus hat ziemlich dramatische Konsequenzen für die Arten von Ergebnissen, die für uns wichtig sind.
Hier ist ein Zitat von John Baez über Logik und Informatik. Ich bin nicht genau der gleichen Ansicht, weil ich mit fortgeschrittener mathematischer Logik nicht sehr vertraut bin.
Die Logik in der Informatik ist ein weites und sich schnell entwickelndes Gebiet. Ich finde, dass jede Perspektive der klassischen Logik modifiziert werden kann, um eine Perspektive auf die Computerlogik abzuleiten. Der Wikipedia-Eintrag zur mathematischen Logik unterteilt das Feld in Mengen-, Modell-, Beweis- und Rekursionstheorie. Sie können diese Bereiche im Wesentlichen einnehmen und ihnen eine Rechenart hinzufügen und ein Teilfeld der Rechenlogik erhalten.
Modelltheorie Wir beschäftigen uns gerne mit der Modelltheorie nichtklassischer Logik und nichtklassischer Modelle klassischer Logik. Damit meine ich, dass wir modale, zeitliche und substrukturelle Logiken studieren und dass wir Logiken über Bäume, Wörter und endliche Modelle studieren, im Gegensatz zu klassischen Modellen wie Algebren. Die beiden grundlegenden Probleme sind Erfüllbarkeit und Modellprüfung. Beide haben eine immense praktische und theoretische Bedeutung. Im Gegensatz dazu sind diese Probleme in der klassischen Logik weniger zentral.
Proof-Theorie Wir untersuchen die Komplexität und Effizienz, mit der wir Proofs in klassischen Proofsystemen erstellen können, sowie die Entwicklung neuer, nicht klassischer Proofsysteme, bei denen Komplexität und Effizienz berücksichtigt werden. Automatisierte Deduktionsstudien maschinengestützte Proofgenerierung, allgemein gesprochen. Der Prozess kann eine menschliche Interaktion beinhalten oder vollständig automatisch ablaufen. An der Entwicklung von Entscheidungsverfahren für logische Theorien wird viel gearbeitet. Die Beweiskomplexität konzentriert sich auf die Größe der Beweise und die rechnerische Komplexität der Erzeugung von Beweisen. Es gibt eine faszinierende Reihe von Arbeiten, die Programme mit Beweisen in Verbindung bringen. Diese verbinden sich mit Arbeiten, die von der linearen Logik abstammen, um Beweise und folglich Programmiersprachen zu entwickeln, die ressourcensensitiv sind.
Rekursionstheorie Unsere Rekursionstheorie ist die Komplexitätstheorie. Anstatt zu untersuchen, was berechenbar ist, untersuchen wir, wie effizient wir rechnen können. Es gibt viele Analoga der Rekursionstheorie in der Komplexitätstheorie, aber die Ergebnisse und Trennungen der Rekursionstheorie gelten nicht immer für ihre komplexitätstheoretischen Analoga. Anstelle von berechenbaren Mengen und einer arithmetischen Hierarchie haben wir eine Polynomzeit, wobei die Polynomzeithierarchie und der Polynomraum die Hierarchie einschließen. Anstelle einer beschränkten Quantifizierung in der arithmetischen Hierarchie haben wir eine Erfüllbarkeit und quantifizierte Boolesche Formeln und eine beschränkte Quantifizierung von Booleschen Formeln.
Der Umfrage-Artikel
Dies ist ein guter Ausgangspunkt, um sich einen Überblick über die Rechenlogik zu verschaffen. Ich werde einige logisch orientierte Gebiete der Informatik auflisten. Ich hoffe, dass andere diese Antwort bearbeiten und dieser Liste hier hinzufügen und möglicherweise einen Link zu einer Antwort auf dieser Seite hinzufügen.
quelle
Ein Bereich, in dem sich Logik und Informatik stark überschneiden, ist die automatisierte Beweisführung , z. B. [4]. auch zB ref [1] ist die Verwendung des Boyer-Moore-Theorembeweisers zum Prüfen / Verifizieren von Godels Theorem. Ein weiteres wichtiges / eindrucksvolles Ergebnis der jüngsten Zeit ist der Abschluss der Software-Überprüfung des Vierfarbensatzes (und anderer, wie Odd Order und Feit-Thompson [3]) bei Microsoft Research von Gonthier. [2]
[1] Metamathematik, Maschinen und Gödels Beweis (Cambridge Tracts in Theoretical Computer Science von Shankar
[2] Ein computergeprüfter Beweis des Vierfarbensatzes Georges Gonthier
[3] Interessante Algorithmen zur Formalisierung des Feit-Thompson-Theorems? tcs.se
[4] Wo und wie haben Computer geholfen, einen Satz zu beweisen? tcs.se
quelle