Welche Algorithmen sind für die Berechnung von Craig-Interpolanten bekannt?


19

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.)EIN=¬pqC=q

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 CTEINTCEINCEINTEINCTCBTEINEINBTCBCBEINC(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 .)EIN¬C¬pqqq

Motivation: Dies wäre hilfreich bei der (sehr) inkrementellen Programmüberprüfung durch Generierung von Überprüfungsbedingungen.


Es gibt verschiedenes Ergebnis über die Komplexität des Interpolant von einem gegebenen Beweis in verschiedenen Beweissystemen zu finden. In einigen schwachen Beweissystemen ist es möglich, den Interpolanten effizient zu finden (und dann sagen wir, dass das Beweissystem die realisierbare Interpolationseigenschaft erfüllt), aber stärkere Systeme haben diese Eigenschaft nicht, wenn plausible Hypothesen in der Krypto angenommen werden. Kurz I, der Algorithmus für die Interpolant zu finden , hängt von dem Proof - System verwendet wird , um zu zeigen , . AC
Kaveh

Ich muss etwas vermissen. Die triviale Interpolant hat eine Größe 1. Wie kann es ein kleiner sein? q
Emil Jeřábek unterstützt Monica

@ EmilJeřábek: und q sind Metavariablen , die für Formeln stehen. Zum Beispiel könnte man p ( ( x = 1 ) p r i m e ( x ) ) und q ( ( x = 1 ) o d d ( x ) ) , wobei in diesem Fall f ein l s e ist eine gute Interpolation von ¬ p qpqp((x=1)prichme(x))q((x=1)Odd(x))feinlse¬pqund , weil ¬ p q nicht befriedigend ist. In meiner Anwendung ist p eine alte Verifizierungsbedingung , und q ist die Verifizierungsbedingung, die erhalten wurde, nachdem das Programm geringfügig bearbeitet wurde. q¬pqpq
Radu GRIGore

Aha. Ich bin ziemlich verwirrt von der Notation. Gibt es einen Grund , warum sind Klein, und A , B , C Großbuchstaben? p,qA,B,C
Emil Jeřábek unterstützt Monica am

Antworten:


16

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 .


8

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:

If G |- A and D, A |- B are cut-free proofs,  
then there is a cut-free proof G, D |- B

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:

If G; D |- B is a cut free proof,  
then there is a formula A (the interpolant) 
and cut free proofs G |- A and D, A |- B,  
and A uses only propositions simultaneously from G and D

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:

 G |- A       G, B |- C
 ----------------------
     G, A -> B |- C

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.


Jan, du kannst LaTeX-ähnliche Mathematik für cstheory verwenden.
Kaveh

8

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.

  1. 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.

  2. Effiziente Interpolantenerzeugung in der Modulo-Linear-Integer-Arithmetik der Erfüllbarkeit, Alberto Griggio, Thi Thieu Hoa Le und Roberto Sebastiani. 2010.

  3. Eine Kombinationsmethode zur Erzeugung von Interpolanten , Greta Yorsh und Madanlal Musuvathi. 2005.

    Zeigt, wie Interpolanten in Gegenwart einer Nelson-Oppen-Theoriekombination erzeugt werden.

  4. Bodeninterpolation für die Theorie der Gleichheit , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011.

  5. Komplette instanziierungsbasierte Interpolation , Nishant Totla und Thomas Wies. 2012.

  6. Interpolanten als Klassifikatoren , Rahul Sharma, Aditya V. Nori und Alex Aiken, 2012.

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.