¿Cómo se determina si un conjunto de conectivos está funcionalmente completo en lógica proposicional?

Integridad funcional en la lógica proposicional

Un conjunto de funciones booleanas que por composición genera todas las funciones booleanas se denomina funcionalmente completo .

Para que un conjunto de funciones booleanas sea funcionalmente completo, debe contener al menos una función para cada una de las cinco clases precompletas de lógica booleana, también conocidas como clases de Post, que no pertenece a esa clase .

La razón: las clases precompletas están cerradas bajo composición. Por lo tanto, si compone funciones pertenecientes a una de ellas, por ejemplo, clase [math] X [/ math], el resultado también estará en [math] X [/ math].

Las cinco clases precompletas son

  • funciones monótonas,
  • funciones auto-duales,
  • funciones afines (lineales),
  • funciones de preservación de la verdad,
  • funciones de preservación de la falsedad.

Hay exactamente dos generadores mínimos (bases) para la lógica booleana que consisten en una única función binaria: [math] \ {Nand \} [/ math] y [math] \ {Nor \} [/ math]. Ambos conjuntos son funcionalmente completos porque ambas funciones no son monótonas ni auto duales, ni lineales, ni preservadoras de la verdad, ni falsas.

Por lo tanto, determina para cada conectivo en el conjunto, mediante la inspección de la tabla de verdad, las clases precompletas a las que pertenece. Si y solo si para cada una de las cinco clases precompletas encuentra al menos un conectivo que no pertenece a esa clase, su conjunto está funcionalmente completo.

Considere esta tabla:

Muestra la clasificación de las 16 funciones booleanas binarias con respecto a las clases precompletas, más una evaluación de simetría (que no produce una clase precompleta).

Como ejemplo, las tres columnas con un borde en negrita representan los elementos de la base algebraica de la lógica booleana: conjunción (Y), disyunción exclusiva (Xor) y la constante verdadera .

Es una base (un generador mínimo ) porque no puede encontrar un subconjunto que todavía esté funcionalmente completo:

  • Si elimina Y le quedan dos funciones que son lineales, por lo tanto, solo puede componer funciones lineales con ellas.
  • Si elimina Xor, le quedan dos funciones que son tanto monotónicas como de preservación de la verdad, por lo tanto, solo puede componer funciones que sean monótonas y de preservación de la verdad.
  • Si elimina true , le quedan dos funciones que preservan la falsedad, por lo tanto, solo puede componer funciones de preservación de la falsedad.

Related Content

Un conjunto de conectivos está funcionalmente completo si cada función booleana [matemática] \, f: \ {\ top, \ bot \} ^ n \ to \ {\ top, \ bot \} [/ math] puede expresarse en términos de Esos conectivos.

Cada una de esas funciones puede determinarse por su tabla de valores, y esa tabla de valores puede expresarse como una disyunción de conjunciones de variables y sus negaciones.

Por ejemplo, considere la función booleana [math] f [/ math] determinada por la tabla

[matemáticas] \ quad \ begin {array} {| ccc || c |} \ hline x & y & z & f (x, y, z) \\ \ hline \ bot & \ bot & \ bot & \ bot \\ \ bot & \ bot & \ top & \ top \\ \ bot & \ top & \ bot & \ top \\ \ bot & \ top & \ bot & \ bot \\ \ top & \ bot & \ bot & \ bot \\ \ top & \ bot & \ top & \ top \\ \ top & \ top & \ bot & \ bot \\ \ top & \ top & \ top & \ bot \\ \ hline \ end {array} [/ math]

Entonces [matemáticas] f (x, y, z) = ((\ neg x) \ land (\ neg y) \ land z) \ lor ((\ neg x) \ land y \ land (\ neg z)) \ lor (x \ land (\ neg y) \ land z) [/ math].

Como cada función booleana puede expresarse en términos de disyunción, conjunción y negación, por lo tanto, el conjunto [math] \ {\ lor, \ land, \ neg \} [/ math] está funcionalmente completo.

Ahora, si tiene otro conjunto de conectivos, si puede mostrar que [math] \ lor, \ land, [/ math] y [math] \ neg [/ math] pueden expresarse en términos de sus conectivos, entonces su conjunto de conectivos también es un conjunto funcionalmente completo.

More Interesting