Wenn ein erfüllbarer 2-CNF , können Sie eine bestimmte erfüllende Zuweisung e durch eine NL-Funktion berechnen ( dh es gibt ein NL-Prädikat P ( ϕ , i ) , das Ihnen sagt, ob e ( x i ) wahr ist). Ein Weg, dies zu tun, wird unten beschrieben. Ich werde die Tatsache, dass NL unter A C geschlossen ist, frei nutzenϕeP( ϕ , i )e ( xich) -Reduktionen, daher sind NL-Funktionen unter Komposition geschlossen; Dies ist eine Folge von NL = coNL.A C0
Sei ein erfüllbarer 2-CNF. Für jedes Literal a sei a → die Anzahl der Literale, die von a über einen gerichteten Pfad im Implikationsgraphen von ϕ erreichbar sind , und a ← die Anzahl der Literale, von denen aus a erreichbar ist. Beide sind in NL berechenbar.ϕ ( x1, … , Xn)einein→einϕein←ein
Beachten Sie, dass und ¯ a ← = a → , aufgrund Skew-Symmetrie der Implikation Graphen. Definieren Sie eine Zuordnung e damitein¯¯¯→= a←ein¯¯¯←= a→e
wenn , dann ist e ( a ) = 1 ;ein←> a→e ( a ) = 1
wenn , dann ist e ( a ) = 0 ;a←<a→e(a)=0
wenn , lassen i minimal sein , so dass x i oder ¯ x i in den stark verbundenen Komponente erscheint ein (es kann nicht beide, da φ erfüllbar ist). Setze e ( a ) = 1, wenn x i erscheint, und e ( a ) = 0, wenn nicht.a←=a→ixix¯¯¯iaϕe(a)=1xie(a)=0
Die Skew-Symmetrie des Graphen, der impliziert , , daher ist dies eine gut definierte Zuordnung. Außerdem gilt für jede Kante a → b im Implikationsgraphen:e(a¯¯¯)=e(a)¯¯¯¯¯¯¯¯¯a→b
Wenn von b aus nicht erreichbar ist , dann a ← < b ← und a → > b → . Somit e ( a ) = 1 bedeutet , e ( b ) = 1 .aba←<b←a→>b→e(a)=1e(b)=1
Ansonsten befinden sich und b in derselben stark verbundenen Komponente und a ← = b ← , a → = b → . Somit ist e ( a ) = e ( b ) .aba←=b←a→=b→e(a)=e(b)
Daraus folgt, dass .e(ϕ)=1