Überprüfen Sie die Richtigkeit der Quantifizierereliminierung mit SAT


8

Let und sein -Vektoren der Booleschen Variablen. Ich habe ein boolesches Prädikat auf . Ich gebe meiner Freundin Priscilla . Als Antwort gibt sie mir , ein boolesches Prädikat für , und sie behauptet dasx=(x1,,xn)y=(y1,,yn)nQ(x,y)x,yQ(x,y)P(x)x

P(x)y.Q(x,y),

oder mit anderen Worten, das

x.[P(x)y.Q(x,y)].

Ich möchte ihre Behauptung irgendwie überprüfen. Wie kann Priscilla mir helfen, diese Behauptung zu überprüfen?

Sie können davon ausgehen, dass sowohl als auch als CNF-Formeln dargestellt werden und nicht zu groß sind (Polynomgröße oder ähnliches).Q.PQ

In einer idealen Welt wäre es fantastisch, wenn ich das Problem der Überprüfung dieses Anspruchs auf SAT reduzieren könnte: Ich habe einen SAT-Löser, und es wäre großartig, wenn ich den SAT-Löser verwenden könnte, um diesen Anspruch zu überprüfen. Ich bin mir jedoch ziemlich sicher, dass es nicht möglich sein wird, das Problem der direkten Überprüfung dieser Behauptung als SAT-Instanz zu formulieren. Das Testen der Gültigkeit einer 2QBF-Formel ist mit ziemlicher Sicherheit schwieriger als das Testen von SAT. (Die Richtung ist leicht als SAT-Instanz zu formulieren, aber die Richtung ist schwierig, da sie von Natur aus zwei alternierende Quantifizierer umfasst.)

Angenommen, Priscilla könnte mir zusätzliche Beweise geben, um ihre Behauptung zu stützen. Gibt es zusätzliche Beweise oder Zeugen, die Priscilla mir geben könnte, die es mir leicht machen würden, ihre Behauptung zu überprüfen? Gibt es insbesondere zusätzliche Beweise oder Zeugen, die sie mir geben könnte, die es mir leicht machen würden, das Problem der Überprüfung ihrer Behauptung als Instanz von SAT zu formulieren (auf das ich dann meinen SAT-Löser anwenden kann)?

Ein ungewöhnlicher Aspekt meiner Einstellung ist, dass ich (heuristisch) davon ausgehe, dass ich ein Orakel für SAT habe. Wenn Sie die Komplexitätstheorie mögen, können Sie sich das so vorstellen: Ich übernehme die Rolle einer Maschine, die Dinge in (dh in ) berechnen kann , und ich möchte Priscillas überprüfen Anspruch unter Verwendung eines Algorithmus in . Mein Dank geht an mdx für diese Art, über Dinge nachzudenken. Δ P 2 P N P.PNPΔ2PPNP


Meine Motivation / Anwendung: Ich möchte ein System formal verifizieren (z. B. symbolische Modellprüfung), und ein wichtiger Schritt in der Argumentation ist die Eliminierung von Quantifizierern (dh ausgehend von erhalten Sie ). Ich hoffe auf einen sauberen Weg, um zu überprüfen, ob die Quantifizierereliminierung korrekt durchgeführt wurde.P.QP

Wenn es keine Lösung gibt, die für alle möglichen funktioniert , können Sie gerne eine Lösung vorschlagen, die "solide, aber nicht vollständig" ist, dh eine Technik, mit der ich für viele die behauptete Äquivalenz überprüfen kann. (Selbst wenn es die Behauptung auf einem , das die Behauptung erfüllt, nicht verifiziert , kann ich dies dennoch als Heuristik versuchen, solange es niemals unangemessen behauptet, eine falsche Behauptung verifiziert zu haben. Auf einem gegebenen , es könnte funktionieren oder es könnte nicht funktionieren; wenn es nicht funktioniert, geht es mir nicht schlechter als dort, wo ich angefangen habe.)P , Q P , Q P , Q.P,QP,QP,QP,Q


Wenn wir Priscilla ein bei dem y irrelevant ist, lösen wir dann nicht effektiv ? Wenn ja, dann gibt es kein Zertifikat, das Priscilla Ihnen geben könnte, das helfen könnte, es sei denn, . TAUT coNP NP = coNPQ(x,y)TAUTcoNPNP=coNP
Mdxn

@mdx, das Besondere an dieser Einstellung ist, dass ich einen SAT-Löser habe, der (empirisch) fast immer mit den Prädikaten zu arbeiten scheint, auf die ich in der Praxis stoße. Wenn ich also bekomme und überprüfen möchte , ich kann in meinen SAT-Solver einspeisen; Wenn sich herausstellt, dass dies nicht zufriedenstellend ist, habe ich überprüft ist wahr. Obwohl dies effektiv löst , ist es in der Praxis immer noch in Ordnung. Oder habe ich den Kern Ihres Kommentars falsch verstanden? P(x),Q(x)x.P(x)Q(x)(P(x)¬Q(x))(¬P(x)Q(x))x.P(x)Q(x)TAUT
DW

1
Ah, also nehme ich an, Sie übernehmen die Rolle einer Maschine, die Probleme in (oder dem heuristischen Äquivalent von) entscheidet. PNP=Δ2P
Mdxn

@mdx, ja, jetzt, wo Sie es erwähnen, ist das eine gute Möglichkeit, darüber nachzudenken. Vielen Dank, dass Sie diese Perspektive vorgeschlagen haben!
DW

Ich denke nicht, dass das first-order-logicTag gerechtfertigt ist. Die Frage dreht sich alles um quantifizierte Boolesche Formeln.
Knie

Antworten:


2

Hier sind zwei Techniken, die ich identifizieren konnte:

  • Identifizieren Sie eine explizite Skolem-Funktion. Angenommen, Priscilla kann eine explizite Funktion identifizieren, so dassf

    x.P(x)Q(x,f(x))

    hält. Daraus folgt, dass Priscillas Behauptung richtig ist.

    Dies bedeutet, dass Priscilla uns helfen kann, ihre Behauptung zu überprüfen, indem sie eine Funktion bereitstellt, damit der obige Satz gilt. Wir können bestätigen, dass der obige Satz gilt, indem wir die folgende Formel auf Erfüllbarkeit testen:f

    ¬(P(x)Q(x,f(x))).

    Wenn diese Formel nicht erfüllt werden kann, wurde die Behauptung von Priscilla überprüft.

    Ein Nachteil ist , dass Priscilla in der Lage sein muss , eine geeignete Funktion zu identifizieren . Eine weitere Einschränkung ist, dass f in einer prägnanten Form konkret darstellbar sein muss, beispielsweise als poloolomgroße Boolesche Schaltung. Wenn diese Bedingungen jedoch erfüllt sind, sollte diese Technik funktionieren.ff

  • Ein hybrides Argument. Betrachten Sie den Sonderfall dieses Problems, bei dem wir über eine Ein-Bit-Variable (anstelle einer Bit-Variablen) quantifizieren. Es stellt sich heraus, dass das Problem in diesem Fall leicht zu lösen ist. Dies legt nahe, dass wir versuchen, diese Technik n- mal zu verketten , wobei jedes Mal ein weiteres Bit von y entfernt wird . Es stellt sich heraus, dass diese Idee manchmal funktioniert, aber nicht immer.nny

    Lassen Sie mich erklären, wie Priscillas Behauptung in dem Fall überprüft werden kann, in dem eine Ein-Bit-Variable ist. Dann y . Q ( x , y ) entspricht Q ( x , False ) Fal Q ( x , True ) . Die letztere Formel ist höchstens doppelt so groß wie Q , also immer noch polynomisch. Jetzt können wir mit unserem SAT-Solver testen, ob Q ( x , False ) Q (y=(y1)y.Q(x,y)Q(x,False)Q(x,True)Q ist äquivalent zu P ( x ) ; Die Äquivalenz gilt genau dann, wenn die folgende Formel nicht erfüllt werden kann:Q(x,False)Q(x,True)P(x)

    ¬(P(x)(Q(x,False)Q(x,True))).

    Wenn wir also über ein einzelnes Bit quantifizieren, können Sie auf diese Weise überprüfen, ob die Quantifizierereliminierung korrekt durchgeführt wurde.

    Wenden Sie dies mehrmals an, um das ursprüngliche Problem zu lösen. Priscillas Aufgabe wird es sein, uns boolesche Prädikate R 0 , R 1 , R 2 , ... , R n so zu geben, dassn+1R0,R1,R2,,Rn

    Ri(x,(yi+1,,yn))y1,y2,,yi.Q(x,y).

    Unsere Aufgabe wird es sein zu überprüfen, ob alle diese booleschen Prädikate korrekt generiert wurden. Wir können dies tun, indem wir testen, ob , P ( x ) R n ( x ) ,Q(x,y)R0(x,y)P(x)Rn(x)

    Ri+1(x,(yi+2,,yn))yi+1.Ri(x,(yi+1,,yn))for i=1,2,,n1.

    Beachten Sie, dass letzteres eine Instanz der Quantifizierereliminierung mit einem einzelnen Bit ist. Daher haben wir bereits beschrieben, wie Sie testen, ob es mit einem SAT-Solver korrekt durchgeführt wurde. Wir können auch direkt testen, ob und P R mit einem SAT-Löser sind. Wir können also überprüfen, ob Priscilla R 0 , , R n korrekt generiert hat . Wenn ja, haben wir überprüft, ob P geeignet generiert wurde.QR0PRR0,,RnP

    RiRiRiiR0,,Rn

Ich bin mit diesen Techniken nicht ganz zufrieden - sie sind unvollständige Heuristiken und können in einigen / vielen Problemfällen fehlschlagen -, daher wäre ich immer noch daran interessiert, andere Wege zu finden, um dieses Problem anzugehen.

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.