Saltar al contenido
Topos Uranos

Resumen

Toda fórmula determina una tabla de verdad; esta clase demuestra la afirmación recíproca: toda tabla, es decir, toda asignación de valores de verdad a las filas, es la tabla de alguna fórmula. Define las funciones de verdad, cuenta las de nn argumentos (22n2^{2^{n}}) y precisa cuándo una fórmula representa una de ellas. Demuestra después el teorema de completitud funcional mediante la fórmula de la tabla, una disyunción de conjunciones de literales construida fila por fila, que la clase sobre formas normales usará como primera demostración de la existencia de la forma normal disyuntiva. Como toda fórmula del curso es una cadena de círculos y discos, de ello se sigue sin más trabajo que la negación conjunta basta por sí sola, y se muestra cómo se escribe con ella cualquier función. Por último, estudia qué conjuntos de conectores bastan para representar todas las funciones: demuestra un criterio general, lo aplica a {¬,∧}\{\neg, \wedge\}, {¬,∨}\{\neg, \vee\}, {¬,→}\{\neg, \rightarrow\}, {↓}\{\downarrow\} y a la negación alternativa, y demuestra que {∧,∨,→,↔}\{\wedge, \vee, \rightarrow, \leftrightarrow\} no basta, porque todas sus fórmulas conservan el valor 11.

Objetivos de aprendizaje

  1. Contar las funciones de verdad de nn argumentos y decidir, mediante las funciones que representan, cuándo dos fórmulas son equivalentes.
  2. Construir, desde la tabla de una función de verdad, una fórmula que la represente, y buscar una fórmula equivalente más breve cuando convenga.
  3. Explicar por qué, en la lengua del curso, la negación conjunta basta por sí sola, y escribir con ella sola fórmulas que representen funciones dadas.
  4. Demostrar que un conjunto de conectores es adecuado, expresando con sus fórmulas la negación conjunta.
  5. Demostrar que un conjunto de conectores no es adecuado, mediante una propiedad que todas sus fórmulas conservan.

Funciones de verdad

La clase sobre la semántica de la lógica proposicional asignó a cada fórmula, en cada valoración, un valor de verdad, y mostró que ese valor depende solo de los valores de las variables que aparecen en ella; de donde toda fórmula con nn variables tiene una tabla de verdad de 2n2^{n} filas. La pregunta de esta clase es la inversa. Dada una tabla cualquiera, es decir, una columna de unos y ceros escrita arbitrariamente junto a las 2n2^{n} filas, ¿hay alguna fórmula que la tenga por tabla? Si esto es así para toda tabla, el lenguaje no tiene lagunas expresivas: todo lo que puede decirse sobre el valor de verdad de nn enunciados, en función de los valores de estos, se dice con una fórmula. Y como en este curso la única fórmula compuesta es la negación conjunta, la respuesta dirá también si un solo conector basta para decirlo todo.

Lo que se usa de las clases anteriores

Una valoración es una función vv del conjunto de las variables {v1,v2,…}\{v_1, v_2, \ldots\} en {0,1}\{0, 1\}, donde 11 es lo verdadero y 00 lo falso; su extensión a todas las fórmulas, que también se escribe vv, está definida por recursión: v((φ↓ψ))=1v((\varphi \downarrow \psi)) = 1 si y solo si v(φ)=0v(\varphi) = 0 y v(ψ)=0v(\psi) = 0. De las abreviaturas oficiales, la misma clase calculó, en el teorema de los valores de los conectores derivados, el valor de cada conector; escritos con sumas y productos, son los siguientes, para toda valoración vv y todas las fórmulas φ\varphi y ψ\psi:

v(¬φ)=1−v(φ),v((φ∧ψ))=v(φ) v(ψ),v((φ∨ψ))=v(φ)+v(ψ)−v(φ) v(ψ)v(\neg\varphi) = 1 - v(\varphi), \qquad v((\varphi \wedge \psi)) = v(\varphi)\,v(\psi), \qquad v((\varphi \vee \psi)) = v(\varphi) + v(\psi) - v(\varphi)\,v(\psi)
v((φ→ψ))=1−v(φ)+v(φ) v(ψ),v((φ↓ψ))=(1−v(φ)) (1−v(ψ))v((\varphi \rightarrow \psi)) = 1 - v(\varphi) + v(\varphi)\,v(\psi), \qquad v((\varphi \downarrow \psi)) = (1 - v(\varphi))\,(1 - v(\psi))

Además, v((φ↔ψ))=v(φ) v(ψ)+(1−v(φ)) (1−v(ψ))v((\varphi \leftrightarrow \psi)) = v(\varphi)\,v(\psi) + (1 - v(\varphi))\,(1 - v(\psi)), que vale 11 si y solo si v(φ)=v(ψ)v(\varphi) = v(\psi), y v((φ⊻ψ))=v(φ)+v(ψ)−2 v(φ) v(ψ)v((\varphi \veebar \psi)) = v(\varphi) + v(\psi) - 2\,v(\varphi)\,v(\psi), que vale 11 si y solo si v(φ)≠v(ψ)v(\varphi) \neq v(\psi). Como los valores son 00 o 11, el cuadrado de un valor es el propio valor, v(φ) v(φ)=v(φ)v(\varphi)\,v(\varphi) = v(\varphi), y un producto de valores vale 11 si y solo si cada factor vale 11; ambas observaciones se usarán sin repetirlas. Se usa también el lema de coincidencia: si dos valoraciones coinciden en las variables de φ\varphi, es decir, en las variables que son subfórmulas de φ\varphi, dan a φ\varphi el mismo valor. De la clase sobre consecuencia y equivalencia semántica se toma la equivalencia semántica: φ≡ψ\varphi \eqsem \psi cuando v(φ)=v(ψ)v(\varphi) = v(\psi) para toda valoración vv. Por último, rige el convenio de las letras de la clase sobre la formalización: pp, qq y rr designan las variables v1v_1, v2v_2 y v3v_3.

Funciones de verdad y su número

Sea nn un natural. Una fila de nn valores es una sucesión a=(a1,…,an)a = (a_1, \ldots, a_n) en que cada aia_i es 00 o 11; el conjunto de todas ellas se denota {0,1}n\{0, 1\}^{n}. Una función de verdad de nn argumentos es una función

f ⁣:{0,1}n→{0,1}f\colon \{0, 1\}^{n} \to \{0, 1\}

que asigna a cada fila un valor de verdad. Se presenta como una tabla: las filas se escriben en el orden de la tabla, desde aquella en que todos los valores son 11 (para dos argumentos, 1 11\,1, 1 01\,0, 0 10\,1, 0 00\,0), y junto a cada fila se escribe su valor. Una función de verdad es, por tanto, una tabla de verdad sin fórmula: la columna de la derecha, sin nada escrito en su encabezado.

ProposiciónHay 22n2^{2^{n}} funciones de verdad de nn argumentos

Para todo natural nn, hay exactamente 2n2^{n} filas de nn valores y 22n2^{2^{n}} funciones de verdad de nn argumentos.

Demostración

  1. 1 0 1    ⟼    ∙∘∙\dato{filas}{1\,0\,1 \;\; \longmapsto \;\; \sigI\sigO\sigI}

    Una fila es una sucesión de nn signos, cada uno de los cuales es 11 o 00. Si se escribe el disco en lugar de 11 y el círculo en lugar de 00, las filas corresponden, una a una, a las cadenas de longitud nn sobre el alfabeto de dos signos, que son 2n2^{n} por la clase sobre el lenguaje.

  2. f    ⟼    f(1,…,1)    …    f(0,…,0)f \;\; \longmapsto \;\; f(1, \ldots, 1) \;\; \ldots \;\; f(0, \ldots, 0)

    Una función de verdad queda determinada por sus valores en las filas, y cualquier elección de esos valores da una función. Si se escriben los valores en el orden de la tabla, las funciones corresponden, una a una, a las sucesiones de 2n2^{n} signos, cada uno 11 o 00.

  3. 22n2^{\resaltar{2^{n}}}

    Por el mismo recuento, aplicado ahora a sucesiones de longitud 2n2^{n}, hay 22 elevado a 2n2^{n} funciones.

  4. 22=4,24=16,28=256,216=65 5362^{2} = 4, \quad 2^{4} = 16, \quad 2^{8} = 256, \quad 2^{16} = 65\,536

    Los primeros valores muestran con qué rapidez crece el número: con cinco argumentos hay ya más de cuatro mil millones de funciones.

EjemploLas funciones de uno y de dos argumentos

Las cuatro funciones de un argumento son la constante 11, la identidad, la que cambia el valor y la constante 00; las fórmulas ⊤\top, pp, ¬p\neg p y ⊥\bot, donde ⊤:=(p→p)\top := (p \rightarrow p) y ⊥:=¬⊤\bot := \neg\top son las fijadas en la clase sobre semántica, tienen, respectivamente, esas tablas. Entre las dieciséis funciones de dos argumentos están las de los seis conectores del curso: la negación conjunta, la disyunción, la conjunción, la implicación, la doble implicación y la disyunción exclusiva. Quedan otras diez, entre ellas las dos constantes, las que solo atienden a uno de los argumentos y la negación alternativa, que vale 00 solo cuando ambos argumentos valen 11; el problema resuelto 1 las clasifica todas.

Fórmulas que representan funciones

Una fórmula y una función de verdad se relacionan del modo siguiente. Si φ\varphi es una fórmula cuyas variables están entre v1,…,vnv_1, \ldots, v_n, se dice que φ\varphi representa la función de verdad ff de nn argumentos cuando, para toda valoración vv,

v(φ)=f(v(v1),…,v(vn))v(\varphi) = f(v(v_1), \ldots, v(v_n))

es decir, cuando la tabla de φ\varphi, escrita con las variables v1,…,vnv_1, \ldots, v_n, es la tabla de ff. La condición sobre las variables no es un detalle: la fórmula (p∧q)(p \wedge q) no representa ninguna función de un argumento, porque su valor no depende solo del de pp.

ProposiciónLa función de una fórmula

Sea φ\varphi una fórmula cuyas variables están entre v1,…,vnv_1, \ldots, v_n. Entonces φ\varphi representa exactamente una función de verdad de nn argumentos, que se denota fφf_\varphi. Si ψ\psi es otra fórmula cuyas variables están entre v1,…,vnv_1, \ldots, v_n, entonces φ≡ψ\varphi \eqsem \psi si y solo si fφ=fψf_\varphi = f_\psi.

Demostración

  1. va(vi)=ai(i≤n),va(vk)=0(k>n)\dato{va}{v_a(v_i) = a_i \quad (i \leq n), \qquad v_a(v_k) = 0 \quad (k > n)}

    Para cada fila aa hay una valoración que da a cada viv_i el valor aia_i: basta dar a las demás variables el valor 00.

  2. v(vi)=v′(vi)=ai(i≤n)    ⇒    v(φ)=v′(φ)=fφ(a)v(v_i) = v'(v_i) = a_i \quad (i \leq n) \;\; \Rightarrow \;\; v(\varphi) = v'(\varphi) = \resaltar{f_\varphi(a)}

    Si dos valoraciones dan a v1,…,vnv_1, \ldots, v_n los valores de la fila aa, coinciden en las variables de φ\varphi, y por el lema de coincidencia dan a φ\varphi el mismo valor. Ese valor común se toma como fφ(a)f_\varphi(a); por construcción, φ\varphi representa fφf_\varphi.

  3. g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a)

    Si φ\varphi representa también una función gg, en cada fila aa se tiene g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a): la función representada es única.

  4. v(φ)=fφ(v(v1),…,v(vn))=fψ(v(v1),…,v(vn))=v(ψ)v(\varphi) = f_\varphi(v(v_1), \ldots, v(v_n)) = f_\psi(v(v_1), \ldots, v(v_n)) = v(\psi)

    Si fφ=fψf_\varphi = f_\psi, para toda valoración vv los valores de φ\varphi y de ψ\psi son el valor de la misma función en la misma fila; de donde φ≡ψ\varphi \eqsem \psi.

  5. fφ(a)=va(φ)=va(ψ)=fψ(a)f_\varphi(a) = v_a(\varphi) = v_a(\psi) = f_\psi(a)

    Recíprocamente, si φ≡ψ\varphi \eqsem \psi, en cada fila aa la valoración vav_a da el mismo valor a ambas fórmulas, y por tanto fφ(a)=fψ(a)f_\varphi(a) = f_\psi(a).

Hay infinitas fórmulas con variables entre v1,…,vnv_1, \ldots, v_n y solo 22n2^{2^{n}} funciones; por tanto, muchas fórmulas representan la misma función, y la proposición dice que son exactamente las equivalentes entre sí. Lo que falta saber es si toda función es representada por alguna fórmula, o si algunas tablas quedan sin fórmula que las tenga.