Estoy trabajando a través de este módulo En este sentido, me gustaría hablar de los dos ejercicios que aparecen inmediatamente después del enunciado del teorema de completitud de Godel.
En primer lugar, observe la definición 2.1 del texto: Una frase $\varphi$ es válido si es cierto en todos los modelos. Por el contrario, $\varphi$ es satisfaciendo si es verdadera en algún modelo. Entonces los ejercicios se dan de la siguiente manera:
-
Dejemos que $\varphi$ sea una sentencia en lógica de primer orden. Demuestre que $\varphi$ es válido si y sólo si $\neg\varphi$ no es satisfacible, y en consecuencia que $\varphi$ es satisfacible si y sólo si $\neg\varphi$ no es válido.
-
Supongamos que tenemos un algoritmo $\mathcal{A}$ para saber si una sentencia de la lógica de primer orden es satisfacible o no. Demuestre que podemos usar esto para obtener un algoritmo $\mathcal{B}$ para saber si una sentencia de la lógica de primer orden es demostrable o no. A la inversa, supongamos que tenemos un algoritmo $\mathcal{B}$ para saber si una sentencia de la lógica de primer orden es demostrable o no. Demuestre que podemos usar esto para obtener un algoritmo $\mathcal{A}$ para saber si una sentencia de la lógica de primer orden es satisfacible o no.
El primer ejercicio parece bastante sencillo. Mi respuesta:
- Dejemos que $\mathscr{M}$ ser un modelo y leer " $\varphi$ es cierto en $\mathscr{M}$ " para $\mathscr{M}\models\varphi$ . Entonces, por las definiciones anteriores y los hechos básicos de la lógica (como las leyes de DeMorgan para los cuantificadores), la equivalencia $\forall \mathscr{M} (\mathscr{M}\models\varphi) \equiv \neg\exists \mathscr{M} (\mathscr{M}\models\neg\varphi)$ se mantiene como se desea. Lo mismo ocurre con el replanteamiento introducido por "en consecuencia" en el ejercicio, es decir $\exists \mathscr{M}(\mathscr{M}\models \varphi) \equiv \neg\forall(\mathscr{M}\models\neg\varphi)$ .
¿Tiene sentido? ¿Alguien ha detectado algún error o tiene ganas de sugerir mejoras de algún tipo?
Muy bien. Ahora el segundo ejercicio es donde las cosas se ponen más interesantes, al menos para mí, porque no entiendo del todo esta idea de correspondencia entre "válido" y "demostrable", que es el núcleo del teorema de completitud de Gödel.
Mirando lo que Wikipedia tiene que decir sobre el teorema, siento que básicamente entiendo el resultado, pero todavía no estoy seguro de cómo lo aplicaría en términos del segundo ejercicio.
Tomemos la primera parte del problema: todo lo que tengo es un algoritmo $\mathcal{A}$ que decide la satisfacción de $\varphi$ . El teorema de completitud establece una equivalencia entre la demostrabilidad sintáctica y la validez semántica. No consigo averiguar cómo cruzar el abismo que va de la satisfabilidad a la validez, ni encontrar la conexión lógica que necesitaría para utilizar el teorema para resolver mi problema.
Mientras buscaba preguntas similares antes de publicar, encontré este que ofrece algunos estímulos para la reflexión, pero que se ocupa de diferentes supuestos, a saber: un algoritmo que toma un $\varphi$ y devuelve $\varphi'$ tal que $\varphi$ es satisfacible si $\varphi'$ es válido. Veo que esto se acerca a lo que necesito, pero de nuevo no veo cómo adaptarlo a mis propósitos.
¿Alguien puede ofrecer una pista, una sugerencia o una indicación de algún tipo? Se lo agradecería mucho.
10 votos
+1 por todos los deberes que has hecho antes de venir a pedir ayuda, y por el cuidado que has puesto en el formato.
3 votos
Es muy amable al decirlo. Gracias @EthanBolker
2 votos
@RebeccaBonham Son preguntas como estas entre todo el fango de esta página las que me hacen querer volver cada día.
0 votos
@RushabhMehta ¡Te lo agradezco! Valoro mucho este sitio y como nuevo colaborador estoy ilusionado en dar lo mejor de mí.