Estoy trabajando en un sistema de base de conocimientos como proyecto de hobby, y me gustaría incorporar algunos mecanismos para el razonamiento lógico bajo incertidumbre. He investigado Lógica de tres valores de Kleene pero me desconcierta el problema (bien conocido) de la tautología/contradicción.
Denotemos los valores de verdad por $\top$ (verdadero), $\bot$ (falso), y $?$ (desconocido). El problema es que, como $\neg\ ?\ =\ ?$ las fórmulas $p \lor \neg p$ y $p \land \neg p$ ya no son una tautología/contradicción: si $p =\ ?$ entonces las tablas de verdad dan $\ ?\ \lor \neg\ ?\ =\ ?\ \lor\ ? =\ ?$ y similares, $\ ?\ \land \neg\ ? =\ ?$ . Pero la intuición sugiere que aunque no conozcamos el valor de verdad de $p$ deberíamos seguir teniendo $p \lor \neg p = \top$ y $p \land \neg p = \bot\ $ como con la lógica booleana.
Creo que esto se debe a que las tablas de verdad no reconocen la diferencia entre una conjunción o disyunción entre (i) dos distinto incógnitas, y (ii) un desconocido y su propio inverso. En el caso (i), el resultado debería ser efectivamente desconocido, como indican las tablas de verdad, pero en el caso (ii) no, deberíamos obtener $\ ?\ \lor \neg\ ?\ = \top$ y $\ ?\ \land \neg\ ?\ = \bot\ $ . Tengo la sensación de que también hay algún problema con el tratamiento de $\ ?\ $ como un tercer valor de verdad, mientras que en realidad significa que hay no conocido valor de verdad, pero esto no me queda claro.
Creo que debería haber alguna forma de tratar la tautología/contradicción en la lógica de tres valores sin causar inconsistencias lógicas, pero no estoy muy versado en lógica, y realmente no puedo leer artículos de lógica a nivel de investigación, esas cosas están por encima de mi cabeza.
¿Existe alguna solución conocida a este problema, por ejemplo en sistemas de razonamiento automatizado o de bases de conocimientos? Si es así, agradecería mucho una explicación intuitiva (en lugar de superformal).