Zgodność można osiągnąć w następujący sposób (redukcja z 2SAT do HornSAT). W ten sposób można również zredukować do formuły Horn. Dzięki Joshua Gorchow za zwrócenie uwagi na tę redukcję.(p∨q)
Dane wejściowe: wzór 2-SAT z klauzulami , ..., na zmiennych , ..., .ϕC1Ckx1xn
Skonstruuj formułę Horn w następujący sposób:Q
Nie będzie 4 ( wybrać ) nowych zmiennych, po jednym dla każdej możliwej
ewentualnej 2-cnf klauzuli o zmiennych o co najwyżej 2 literałów ( nie tylko te klauzul ) - jest to łącznie z klauzulami jednostkowymi i pustymi. Nowa zmienna odpowiadająca klauzuli będzie oznaczona przez .×n2+2n+1xCiϕDzD
4 ( wybierz ) wynika z faktu, że każda para
daje początek 4 klauzulom 2-cnf. wynika z faktu, że każdy może utworzyć 2 klauzule jednostkowych. I w końcu „jeden” pochodzi z pustej klauzuli. Zatem całkowita liczba możliwych klauzul 2-cnf wynosi
4 ( wybierz ) .n 2 ( x i , x j ) 2 n x i = × n 2×n2(xi, xj)2nxi=×n2+2n+1
Jeśli klauzula 2-cnf wynika z dwóch innych klauzul 2-cnf i jednym krokiem rozdzielczości, to dodajemy klauzulę Horn
do ... Ponownie, robimy to dla Wszystkie ewentualne 2-CNF klauzule - wszystkie 4 (
wybrać ) z nich - nie tylko .FDE(zD∧zE→zF)Q×n2+2n+1Ci
Następnie dodajemy klauzul jednostka do , dla każdej klauzuli
występującego na wejściu ... Na koniec dodamy klauzulę jednostkową do .zCiQCiϕ(¬zempty)Q
Formuła klaksonu jest teraz ukończona. Zauważ, że zmienne użyte w są całkowicie różne od zmiennych używanych w .QQϕ