Учитывая выполнимое 2-CNF , вы можете вычислить конкретное удовлетворяющее назначение e с помощью NL-функции (то есть существует предикат NL P ( ϕ , i ), который сообщает вам, верно ли e ( x i ) ). Один из способов сделать это описан ниже. Я буду свободно использовать тот факт, что NL замкнут относительно A C 0 -редукций, поэтому NL-функции замкнуты относительно композиции; это является следствием NL = coNL.φеп( ϕ , i )е ( хя)A C0
Пусть выполнимая 2-CNF. Для любого литерала a , пусть a → будет числом литералов, достижимых из a по направленному пути в графе импликации ϕ , и a ← числом литералов, из которых достижим a . Оба вычислимы в NL.ϕ ( x1, … , ХN)aa→aφa←a
Заметим , что и ¯ ← = → , из - за кососимметричности импликации графа. Определите назначение e так, чтобыa¯¯¯→= а←a¯¯¯←= а→е
если , то e ( a ) = 1 ;a←> а→е ( а ) = 1
если , то e ( a ) = 0 ;a←< а→е ( а ) = 0
если ← = → , пусть я быть минимальным , так что х I или ¯ х я появляюсь в сильно связной компоненте (он не может быть одновременно, так как φ выполнима). Положите e ( a ) = 1, если появляется x i , и e ( a ) = 0 в противном случае.a←= а→ixix¯¯¯iaϕe(a)=1xie(a)=0
Кососимметричность графы следует , что , следовательно , это четко определенное назначение. Более того, для любого ребра a → b в графе импликации:e(a¯¯¯)=e(a)¯¯¯¯¯¯¯¯¯a→b
Если не достижимо от b , то a ← < b ← и a → > b → . Таким образом, e ( a ) = 1 влечет e ( b ) = 1 .aba←<b←a→>b→e(a)=1e(b)=1
В противном случае и b находятся в одной и той же сильно связной компоненте, а a ← = b ← , a → = b → . Таким образом, e ( a ) = e ( b ) .aba←=b←a→=b→e(a)=e(b)
Отсюда следует, что .e(ϕ)=1