Regla de resolución

C1C2(C1{})(C2{c})    (Res)\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}\;\; (\mathsf{Res})

Las cláusulas padre son C1C_1 y C2C_2, el resolvente es CC

C=(C1{})(C2{c})C=(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{p,q,¬r}{r,s,¬t}{p,q,s,¬t}\dfrac{\{p,q,\neg r\}\qquad \{r, s, \neg t\}}{\{p,q, s, \neg t\}}

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{¬p,q}{¬q}{¬p}\dfrac{\{\neg p,q\}\qquad \{\neg q\}}{\{\neg p\}}

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{p,q,¬r}{¬p,r,s}{p,q,¬p,s}\dfrac{\{p,q,\neg r\}\qquad \{\neg p, r, s\}}{\{p,q, \neg p, s\}}

El resolvente es la cláusula trivial

Algunos ejemplos


C1C2(C1{})(C2{c})\dfrac{C_1\qquad C_2}{(C_1-\{\ell\}) \cup (C_2-\{\ell^c\})}



{s}{¬s}\dfrac{\{s\}\qquad \{\neg s\}}{\square}

Algunos ejemplos


{s}{¬s}\dfrac{\{s\}\qquad \{\neg s\}}{\square}



  • La cláusula vacía es una disyunción entre elementos nulos, ¡uno de ellos debe satisfacerse para que \square también se satisfaga!
  • La cláusula vacía se satisface siempre que ss y ¬s\neg s se satisfagan.
  • La cláusula vacía es insatisfasible.

El resolvente CC es satisfacible syss las cláusulas padre C1C_1 y C2C_2 son ambas satisfacibles.

  • \boxed{\rightarrow} Sea II una interpretación que satisface a CC, I()=1I(\ell^{\diamond})=1 para al menos alguna literal C\ell^{\diamond}\in C.
  • Si C1\ell^{\diamond}\in C_1, I(C1)=1I(C_1)=1.
  • Como ∉C\ell\not\in C ni c∉C\ell^c\not\in C, II no está definida en \ell o c\ell^c. Extendemos II a II' definiendo I(c)=1I'(\ell^c)=1. Puesto que cC2\ell^c\in C_2, tenemos I(C2)=1I'(C_2)=1; además I(C1)=I(C1)=1I'(C_1)=I(C_1)=1.
  • Por lo tanto, II' es un modelo para C1C_1 y C2C_2. Análogamente cuando C2\ell^{\diamond}\in C_2.

El resolvente CC es satisfacible syss las cláusulas padre C1C_1 y C2C_2 son ambas satisfacibles.

  • \boxed{\leftarrow} Sean C1C_1 y C2C_2 satisfacibles por la interpretación II.
  • Como \ell y c\ell^c son complementarias, se tiene que I()=1I(\ell)=1, o bien, I(c)=1I(\ell^c)=1.
  • Supongamos que I()=1I(\ell)=1, entonces I(c)=0I(\ell^c)=0 y C2C_2, la cláusula que contiene a c\ell^c, se satisface porque hay otra literal C2\ell'\in C_2 (c\ell'\neq \ell^c) tal que I()=1I(\ell')=1.
  • Por construcción de la regla de resolución, C\ell'\in C, de modo que II también es un modelo de CC. Análogamente cuando I(c)=1I(\ell^c)=1.

Algoritmo (resolución binaria)

Input: Un conjunto de cláusulas SS.
Output: SS es satisfacible o insatisfacible.

Definimos S0=SS_0=S.

Repetir los siguientes pasos para obtener Si+1S_{i+1} a partir de SiS_i:

  • Escoja cláusulas de colisión {C1,C2}Si\{C_1, C_2\}\subseteq S_i que no se hayan escogido anteriormente.

Algoritmo (resolución binaria. Continuación.)

  • Encuentre C=Res(C1,C2)C=\mathsf{Res}(C_1, C_2) de acuerdo a la regla de resolución.
  • Si CC no es una cláusula trivial, Si+1=Si{C}S_{i+1}=S_i\cup\{C\}; de otro modo, Si+1=SiS_{i+1}=S_i.

Hasta que C=C=\square, en cuyo caso SS es insatisfacible; o hasta que la regla de resolución se haya aplicado a todos los pares de cláusulas de colisión, lo que indica que SS es satisfacible.

Proposición

Si un conjunto de cláusulas S={φ1,φ2,,φn}S=\{\varphi_1,\varphi_2,\ldots,\varphi_n\} (n0)n\geq 0) es satisfacible, entonces cualquier conjunto SiS_i (i0i\geq 0), generado por el algoritmo de resolución binaria, es satisfacible.