Gibt es eine Übersicht über Algorithmen zur Berechnung von Interpolanten? Was ist mit Beiträgen zu nur einem Algorithmus? Der Fall, an dem ich am meisten interessiert bin, ist und C = q , plus der Einschränkung, dass der Interpolant so klein wie möglich ist. (Ich kenne McMillans Artikel aus dem Jahr 2005 , in dem beschrieben wird, wie man Interpolanten erhält und dabei Quantifizierer vermeidet.)
Hintergrund: Craigs Interpolation Satz (1957) sagt , dass , wenn , wobei A ein ( fol ) Formel in T A und C eine Formel ist T C , dann gibt es eine Formel B , so dass ⊢ T A A → B und ⊢ T C B → C . Formel B ist eine Craig-Interpolation von A und C(oder in alternativen Definitionen von und ¬ C ). Ein trivialer Interpolant von ¬ p ∧ q und q ist q , aber ich möchte einen kleinen Interpolanten für eine vernünftige Definition von 'klein' (wie syntaktische Größe). (Interpolanten haben viele Verwendungszwecke, und falls Sie neugierig sind, finden Sie hier einen .)
Motivation: Dies wäre hilfreich bei der (sehr) inkrementellen Programmüberprüfung durch Generierung von Überprüfungsbedingungen.
Antworten:
Schauen Sie sich die Doktorarbeit von Himanshu Jain an , die Überprüfung mittels Satisfiability Checking, Predicate Abstraction und Craig Interpolation . Er betrachtet die Leistung mehrerer grundlegender Techniken im Hinblick auf Verifikationsanwendungen und hat ein Kapitel über die Interpolation von Formeln mit linearen Gleichungen und Diophantinen.
Er befasst sich insbesondere mit der Verbindungsmethode von Bibel, die er General Matings nennt. Dies sind eher graphbasierte als formelinferenzbasierte Ansätze zur Erfüllbarkeit. Wenn Sie allgemein daran interessiert sind, lassen Sie mich Dominic Hughes 'relativ kurze (11 Seiten) Proofs ohne Syntax empfehlen .
quelle
Interessanterweise gibt es eine Verbindung zwischen Einschalt- und Eliminierung der Interpolationsschaltung Theorem. Zuallererst sieht der Interpolationssatz wie eine Umkehrung der Mischregeleliminierung aus, die während der Schnitteliminierung verwendet wird. Diese Eliminierung sagt:
Nun kann eine Form des Interpolationstheorems, das auf schnittfreien Beweisen basiert, wie folgt durchgeführt werden. Es ist die verkehrte Version der Beseitigung. Es beginnt mit G, D | - B und gibt G | - A und D, A | - B:
Ich setze absichtlich ein Semikolon zwischen die Prämissen G und D. Hier zeichnen wir die Linie, welche Prämissen wir als Interpolationsmittel liefern wollen und welche Prämissen wir mit dem Interpolationsmittel sehen wollen.
Wenn die Eingabe ein Freischnitt-Proof ist, ist der Aufwand des Algorithmus proportional zur Anzahl der Knoten des Freischnitt-Proofs. So ist es praktisch eine Methode linear in der Eingabe. Bei jedem Beweisschritt des Freischnitt-Beweises setzt der Algorithmus die Interpolante zusammen, indem er eine neue Verbindung einführt.
Die obige Beobachtung gilt für die einfache Interpolationskonstruktion, bei der nur vorausgesetzt wird, dass der Interpolant gleichzeitig Aussagen von G und D enthält. Interpolanten mit variabler Bedingung erfordern ein wenig mehr Schritte, da auch eine variable Behinderung erforderlich ist.
Möglicherweise besteht ein Zusammenhang zwischen der Minimalität des Cut-Free-Proofs und der Größe des Interpolanten. Nicht alle Proofs ohne Schnitte sind minimal. Beispielsweise sind einheitliche Proofs oft kürzer als geschnittene Proofs. Das Lemma für einheitliche Beweise ist ganz einfach, eine Regelanwendung der Form:
Kann vermieden werden, wenn B nicht im Beweis von C verwendet wird. Wenn B nicht im Beweis von C verwendet wird, haben wir bereits G | - C und somit durch Schwächen von G, A -> B | - C. Die Interpolation Der hier erwähnte Algorithmus wird darauf nicht eingehen.
Freundliche Grüße
Referenzen: Craig's Interpolation Theorem, formalisiert und mechanisiert in Isabelle / HOL, Tom Ridge, Universität Cambridge, 12. Juli 2006 http://arxiv.org/abs/cs/0607058v1
Die obige Referenz zeigt nicht genau die gleiche Interpolation, da sie Mehrfachmengen im Abschlussteil einer Folge verwendet. Auch macht es keinen Gebrauch von Implikation. Aber es ist interessant, da es meine Behauptung der Komplexität stützt und eine mechanisierte Verifikation zeigt.
quelle
Es ist über zwei Jahre her, dass diese Frage gestellt wurde, aber in dieser Zeit wurden mehr Artikel über Algorithmen zur Berechnung von Craig-Interpolanten veröffentlicht. Dies ist ein sehr aktives Forschungsgebiet und es ist nicht möglich, hier eine umfassende Liste zu erstellen. Ich habe Artikel unten eher willkürlich ausgewählt. Ich würde vorschlagen, folgenden Artikeln zu folgen, die auf sie verweisen, und ihre verwandten Arbeitsabschnitte zu lesen, um ein klares Bild der Landschaft zu erhalten.
Effiziente Interpolantengenerierung in der Modulo-Theorie der Erfüllbarkeit, Alessandro Cimatti, Alberto Griggio, Roberto Sebastiani, ACM TOCL, 2010.
Deckt die Interpolation für lineare rationale Arithmetik, rationale Differenzlogik und Ganzzahldifferenzlogik sowie für Logik mit zwei Variablen pro Ungleichung (UTVPI) ab.
Effiziente Interpolantenerzeugung in der Modulo-Linear-Integer-Arithmetik der Erfüllbarkeit, Alberto Griggio, Thi Thieu Hoa Le und Roberto Sebastiani. 2010.
Eine Kombinationsmethode zur Erzeugung von Interpolanten , Greta Yorsh und Madanlal Musuvathi. 2005.
Zeigt, wie Interpolanten in Gegenwart einer Nelson-Oppen-Theoriekombination erzeugt werden.
Bodeninterpolation für die Theorie der Gleichheit , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011.
Komplette instanziierungsbasierte Interpolation , Nishant Totla und Thomas Wies. 2012.
Interpolanten als Klassifikatoren , Rahul Sharma, Aditya V. Nori und Alex Aiken, 2012.
quelle