Saltar al contenido
Topos Uranos

Resumen

Una misma función de verdad admite infinitas fórmulas que la representan, y ninguna de ellas, tomada al azar, deja ver lo que dice. Esta clase fija dos moldes en que toda fórmula cabe salvo equivalencia: la forma normal disyuntiva, una disyunción de conjunciones de literales, y la forma normal conjuntiva, una conjunción de disyunciones de literales. Se definen los literales, las cláusulas y las conjunciones elementales; se demuestra que la negación transforma una forma en la otra cuando se cambia cada literal por su opuesto, que es la dualidad entre ambas; se construyen desde la tabla de verdad las formas canónicas y se demuestra que son únicas. El teorema de existencia recibe dos demostraciones: por la tabla, como corolario de la completitud funcional, y por inducción sobre la complejidad, con el único caso de la negación conjunta y con la hipótesis doble que el artículo de origen omitía. Al final se ve por qué valen el esfuerzo: la validez de una forma conjuntiva y la satisfacibilidad de una disyuntiva se deciden a simple vista.

Objetivos de aprendizaje

  1. Reconocer literales, cláusulas, conjunciones elementales y fórmulas en forma normal disyuntiva o conjuntiva, distinguiendo la forma, que es una propiedad de la cadena, de la equivalencia, que es una propiedad del significado.
  2. Construir desde la tabla de verdad las formas canónicas disyuntiva y conjuntiva de una fórmula, y demostrar que la forma canónica es única y que determina la clase de equivalencia de la fórmula.
  3. Demostrar por inducción sobre la complejidad que toda fórmula equivale a una forma normal disyuntiva y a una conjuntiva, usando la dualidad, las leyes generalizadas de De Morgan y de distribución y el reemplazo semántico.
  4. Decidir a simple vista la validez de una forma normal conjuntiva y la satisfacibilidad de una disyuntiva, y aplicar las formas normales a la consecuencia semántica y a la medida del tamaño mínimo de una forma normal.

En las clases anteriores de esta unidad se dio significado a las fórmulas: la clase sobre la semántica de la lógica proposicional extendió cada valoración a todas las fórmulas; la clase sobre consecuencia y equivalencia semántica definió la equivalencia φ≡ψ\varphi \eqsem \psi y demostró el reemplazo semántico; la clase sobre las leyes generalizadas de De Morgan y de distribución extendió esas leyes a conjunciones y disyunciones de nn fórmulas; y la clase sobre la completitud funcional mostró que toda función de verdad está representada por alguna fórmula. Ahora bien, una función de verdad está representada por infinitas fórmulas, que pueden ser muy distintas entre sí: (v1→v2)(v_1 \rightarrow v_2), ¬(v1∧¬v2)\neg(v_1 \wedge \neg v_2) y ((v1↓v1)↓v2)↓((v1↓v1)↓v2)((v_1 \downarrow v_1) \downarrow v_2) \downarrow ((v_1 \downarrow v_1) \downarrow v_2) son tres nombres de lo mismo. Si esto es así, conviene elegir en cada clase de equivalencia un representante de forma fija, que se lea sin esfuerzo y con el que ciertas preguntas se respondan mirando. Eso son las formas normales.

Literales, cláusulas y formas normales

Recuérdese, de la clase sobre las leyes generalizadas, la notación de la conjunción y de la disyunción de nn fórmulas, definida por recursión y asociando por la izquierda; la de una sola fórmula es la fórmula misma.

⋀i=11φi=φ1,⋀i=1n+1φi=(⋀i=1nφi∧φn+1)\bigwedge_{i=1}^{1} \varphi_i = \varphi_1, \qquad \bigwedge_{i=1}^{n + 1} \varphi_i = \left( \bigwedge_{i=1}^{n} \varphi_i \wedge \varphi_{n + 1} \right)
⋁i=11φi=φ1,⋁i=1n+1φi=(⋁i=1nφi∨φn+1)\bigvee_{i=1}^{1} \varphi_i = \varphi_1, \qquad \bigvee_{i=1}^{n + 1} \varphi_i = \left( \bigvee_{i=1}^{n} \varphi_i \vee \varphi_{n + 1} \right)

En la misma clase se demostró que el orden y la agrupación de los términos no alteran la fórmula salvo equivalencia (asociatividad y conmutatividad generalizadas); por eso escribiremos también φ1∧φ2∧⋯∧φn\varphi_1 \wedge \varphi_2 \wedge \cdots \wedge \varphi_n sin paréntesis, entendiendo la agrupación por la izquierda.

Un literal es una variable vnv_n, que se llama literal positivo, o la negación ¬vn\neg v_n de una variable, que se llama literal negativo. El opuesto de un literal ℓ\ell, que escribimos ℓ∗\ell^{*}, es el literal de la misma variable y del otro signo:

ℓ=vn  ⇒  ℓ∗=¬vn,ℓ=¬vn  ⇒  ℓ∗=vn\ell = v_n \;\Rightarrow\; \ell^{*} = \neg v_n, \qquad \ell = \neg v_n \;\Rightarrow\; \ell^{*} = v_n

De la definición se sigue que (ℓ∗)∗=ℓ(\ell^{*})^{*} = \ell. Dos literales forman un par complementario si uno es el opuesto del otro, como v3v_3 y ¬v3\neg v_3.

Una cláusula es una disyunción de literales, ⋁j=1kℓj\bigvee_{j=1}^{k} \ell_j, y una conjunción elemental es una conjunción de literales, ⋀j=1kℓj\bigwedge_{j=1}^{k} \ell_j, con k≥1k \geq 1 en ambos casos; un literal solo es, por tanto, a la vez una cláusula y una conjunción elemental. Se dice que un literal está en una cláusula o en una conjunción elemental si es uno de sus ℓj\ell_j.

Una fórmula está en forma normal disyuntiva si es una disyunción de conjunciones elementales, y en forma normal conjuntiva si es una conjunción de cláusulas; es decir, si es, respectivamente, de una de las dos formas siguientes, donde mm y k1,…,kmk_1, \ldots, k_m son naturales y cada ℓi,j\ell_{i,j} es un literal:

⋁i=1m⋀j=1kiℓi,j,⋀i=1m⋁j=1kiℓi,j\bigvee_{i=1}^{m} \bigwedge_{j=1}^{k_i} \ell_{i,j}, \qquad \bigwedge_{i=1}^{m} \bigvee_{j=1}^{k_i} \ell_{i,j}

Diremos que Φ\Phi es una forma normal disyuntiva de φ\varphi si está en forma normal disyuntiva y φ≡Φ\varphi \eqsem \Phi, y lo mismo con la conjuntiva. Las longitudes kik_i pueden variar de una conjunción (o cláusula) a otra: exigir el mismo número de literales en todas, como hacía el artículo de origen, obligaría a rellenar con repeticiones y no añadiría nada.

EjemploQué está y qué no está en forma normal

La fórmula (v1∧¬v2)∨¬v3(v_1 \wedge \neg v_2) \vee \neg v_3 está en forma normal disyuntiva, con m=2m = 2, k1=2k_1 = 2 y k2=1k_2 = 1; no está en forma conjuntiva, porque su única lectura como disyunción tiene un término, (v1∧¬v2)(v_1 \wedge \neg v_2), que no es un literal. La fórmula v1∧¬v2∧v3v_1 \wedge \neg v_2 \wedge v_3 está en ambas formas: como disyunción de una sola conjunción elemental (m=1m = 1) y como conjunción de tres cláusulas de un literal cada una. Del mismo modo, (¬v1∨v2)(\neg v_1 \vee v_2) es a la vez una cláusula, es decir, una forma conjuntiva con m=1m = 1, y una forma disyuntiva de dos conjunciones de un literal.

(v1∧¬v2)∨¬v3,v1∧¬v2∧v3,¬v1∨v2(v_1 \wedge \neg v_2) \vee \neg v_3, \qquad v_1 \wedge \neg v_2 \wedge v_3, \qquad \neg v_1 \vee v_2

En cambio, (v1↓v2)(v_1 \downarrow v_2) y ¬(v1→v2)\neg(v_1 \rightarrow v_2) no están en ninguna de las dos formas, aunque la primera equivale a (¬v1∧¬v2)(\neg v_1 \wedge \neg v_2) y la segunda a (v1∧¬v2)(v_1 \wedge \neg v_2), que sí lo están.

(v1↓v2)≡¬v1∧¬v2,¬(v1→v2)≡v1∧¬v2(v_1 \downarrow v_2) \eqsem \neg v_1 \wedge \neg v_2, \qquad \neg(v_1 \rightarrow v_2) \eqsem v_1 \wedge \neg v_2

Conviene detenerse en lo que significa «estar en forma normal». Es una propiedad de la cadena de círculos y discos, no de su significado: la clase sobre la inducción sobre la complejidad de las fórmulas demostró la lectura única, de modo que preguntar si una fórmula es una disyunción, y de qué, tiene una sola respuesta. Ahora bien, las abreviaturas oficiales hacen que algunas fórmulas estén en forma normal sin parecerlo. La implicación (v1→v2)(v_1 \rightarrow v_2) se define como (¬v1∨v2)(\neg v_1 \vee v_2): no es que equivalga a esa cláusula, sino que es esa misma cadena, y por tanto ya está en forma normal. Más sorprendente es la doble negación. Por las definiciones de ¬\neg y de ∨\vee, la cadena (φ∨φ)(\varphi \vee \varphi) es ¬(φ↓φ)\neg(\varphi \downarrow \varphi), es decir, ¬¬φ\neg\neg\varphi; de donde ¬¬v1\neg\neg v_1 no es un literal, pero es, letra por letra, la cláusula (v1∨v1)(v_1 \vee v_1).

(φ∨φ)=¬(φ↓φ)=¬¬φ(\varphi \vee \varphi) = \neg(\varphi \downarrow \varphi) = \neg\neg\varphi

El valor de las conjunciones y de las disyunciones

De la clase sobre la semántica se toman los valores de los conectores derivados: v(¬φ)=1−v(φ)v(\neg\varphi) = 1 - v(\varphi); v(φ∧ψ)=v(φ) v(ψ)v(\varphi \wedge \psi) = v(\varphi)\,v(\psi), que vale 11 si y solo si ambas valen 11; y v(φ∨ψ)=0v(\varphi \vee \psi) = 0 si y solo si ambas valen 00. La clase sobre las leyes generalizadas de De Morgan y de distribución los extendió a nn fórmulas, por inducción sobre el número de términos, en el lema del valor: para toda valoración vv, la conjunción ⋀i=1nφi\bigwedge_{i=1}^{n} \varphi_i vale 11 en vv si y solo si cada φi\varphi_i vale 11 en vv, y la disyunción ⋁i=1nφi\bigvee_{i=1}^{n} \varphi_i vale 11 en vv si y solo si alguna φi\varphi_i vale 11 en vv. Ese lema, que aquí se cita sin repetir su demostración, es el instrumento con que se calcula el valor de cualquier forma normal.

LemaNegación de un literal

Para todo literal ℓ\ell, la negación de ℓ\ell equivale a su opuesto, ¬ℓ≡ℓ∗\neg\ell \eqsem \ell^{*}; en particular, v(ℓ∗)=1−v(ℓ)v(\ell^{*}) = 1 - v(\ell) para toda valoración vv.

Demostración

  1. ℓ=vn  ⇒  ¬ℓ=¬vn=ℓ∗\ell = v_n \;\Rightarrow\; \neg\ell = \neg v_n = \ell^{*}

    Si ℓ\ell es una variable vnv_n, su opuesto es ¬vn\neg v_n, que es exactamente la cadena ¬ℓ\neg\ell: no hay nada que demostrar.

  2. ℓ=¬vn  ⇒  ¬ℓ=¬¬vn≡vn=ℓ∗\ell = \neg v_n \;\Rightarrow\; \neg\ell = \resaltar{\neg\neg v_n} \eqsem v_n = \ell^{*}

    Si ℓ\ell es ¬vn\neg v_n, su negación es ¬¬vn\neg\neg v_n, que no es un literal; por la ley de la doble negación (clase sobre consecuencia y equivalencia semántica), equivale a vnv_n, que es el opuesto de ℓ\ell.

  3. v(ℓ∗)=v(¬ℓ)=1−v(ℓ)v(\ell^{*}) = v(\neg\ell) = 1 - v(\ell)

    En ambos casos, ℓ∗\ell^{*} y ¬ℓ\neg\ell tienen el mismo valor en toda valoración, y el de ¬ℓ\neg\ell lo da el valor de la negación.

El segundo caso es el que el artículo de origen pasaba por alto: al negar una forma normal escribía ¬Lij\neg L_{ij} en lugar de un literal, y ¬¬vn\neg\neg v_n no lo es. La doble negación es la que devuelve el resultado al molde.

LemaConjunciones elementales y cláusulas

Una conjunción elemental es satisfacible si y solo si no contiene ningún par complementario. Una cláusula es válida si y solo si contiene algún par complementario.

Demostración

  1. v(ℓ) v(ℓ∗)=v(ℓ) (1−v(ℓ))=0v(\ell)\,v(\ell^{*}) = v(\ell)\,(1 - v(\ell)) = 0

    Si una conjunción elemental contiene ℓ\ell y ℓ∗\ell^{*}, en toda valoración uno de los dos vale 00, por el lema anterior; por el lema del valor, la conjunción vale 00 en toda valoración.

  2. vn=ℓj  ⇒  v(vn)=1,¬vn=ℓj  ⇒  v(vn)=0\dato{val}{v_n = \ell_j \;\Rightarrow\; v(v_n) = 1, \qquad \neg v_n = \ell_j \;\Rightarrow\; v(v_n) = 0}

    Si no contiene ningún par complementario, se define una valoración que da 11 a cada variable que está en ella como literal positivo y 00 a cada variable que está en ella como literal negativo (a las demás, 00). La definición no es contradictoria, porque ninguna variable está de las dos maneras.

  3. v(⋀j=1kℓj)=1v\left( \bigwedge_{j=1}^{k} \ell_j \right) = 1

    En esa valoración todos sus literales valen 11, y por el lema del valor la conjunción vale 11: es satisfacible.

  4. v(ℓ)+v(ℓ∗)=1v(\ell) + v(\ell^{*}) = 1

    Si una cláusula contiene ℓ\ell y ℓ∗\ell^{*}, en toda valoración uno de los dos vale 11, y la cláusula vale 11: es válida.

  5. v(⋁j=1kℓj)=0v\left( \bigvee_{j=1}^{k} \ell_j \right) = 0

    Si no contiene ningún par complementario, la valoración que da 00 a sus variables positivas y 11 a sus variables negadas hace valer 00 a todos sus literales; por el lema del valor, la cláusula vale 00 en ella y no es válida.