Está en la página 1de 23

# Trabajo Final Lg. Inf. y la I.A.

febrero, 2007

## Departamento de Informtica y Automtica Universidad de Salamanca

Tabla de Contenidos

1. 2. 3.

## Introduccin__________________________________________________ 1 Syntax_______________________________________________________ 3 Prove! _______________________________________________________ 4

3.1. 3.2. 3.3. 3.4. 3.5. Tablas de Verdad _______________________________________________ 5 Normalizacin__________________________________________________ 6 Tableaux Semnticos ____________________________________________ 7 Deduccin Natural ______________________________________________ 8 Clculo Secuentes _______________________________________________ 9

4. 5. 6. 7. 8.

## Trabajo Final para Lgicas para la Informtica y la Inteligencia Artificial

Lista de Imgenes

Figura 01: Interfaz Principal _____________________________________________ 2 Figura 02: Syntax ______________________________________________________ 4 Figura 03: Prove ______________________________________________________ 4 Figura 04: Tablas de Verdad A ___________________________________________ 5 Figura 05: Tablas de Verdad B ___________________________________________ 6 Figura 06: Normalizacin A _____________________________________________ 6 Figura 07: Normalizacin B _____________________________________________ 7 Figura 08: Tableaux A __________________________________________________ 7 Figura 09: Tableaux B __________________________________________________ 8 Figura 10: Deduccin A _________________________________________________ 8 Figura 11: Deduccin B _________________________________________________ 9 Figura 12: Secuentes A ________________________________________________ 10 Figura 13: Secuentes B ________________________________________________ 10 Figura 14: Compare Vista Principal ____________________________________ 11 Figura 15: Compare A _______________________________________________ 12 Figura 16: Compare B _______________________________________________ 12 Figura 17: Estructura Easy Logic ________________________________________ 13 Figura 18: Apndice Tablas de Verdad __________________________________ 15 Figura 19: Apndice Normalizacin _____________________________________ 16 Figura 20: Apndice Tableaux Semnticos________________________________ 17 Figura 21: Apndice Deduccin Natural _________________________________ 18 Figura 22: Apndice Clculo de Secuentes________________________________ 19

ii

## Trabajo Final para Lgicas para la Informtica y la Inteligencia Artificial

1. Introduccin
Easy Logic se define segn sus autores como: Interfaz web interactiva para demostradores de teoremas Ciertamente es as, pues la aplicacin para unas premisas y una conclusin dadas, presentar en pantalla: a) Bien los pasos seguidos para probar la conclusin a partir de las premisas (basndose en el procedimiento de clculo). b) O bien un contraejemplo que demuestre que la prueba no es posible. Actualmente dispone de los siguientes procedimientos de clculo: Tablas de verdad. Normalizacin Tableaux Semnticos Deduccin Natural Clculo de Secuentes El servidor donde est instalada la aplicacin se encuentra de manera provisional en http://easylogic.yi.org Una vez tecleemos esa direccin en nuestro navegador habitual nos encontramos con lo siguiente:

-1-

Easy Logic

## Figura 01: Interfaz Principal

Podemos ver que desde la pgina principal se nos presentan las cuatro funcionalidades de la aplicacin a las que podremos acceder haciendo clic en cada una de las pestaas. Aparece tambin informacin de contacto de los creadores para el envo de dudas, sugerencias A continuacin se detallarn cada una de las opciones de la aplicacin.

## Rubn de la Pea Ramos

2. Syntax
El motivo de empezar por esta pestaa es que nos indicar en que manera hemos de introducir nuestros datos para que sean procesados por la aplicacin. Representacin de Conectivas Lgicas (de menor a mayor orden de preferencia): Negacin: - (guin) Nota: La Doble Negacin se representa como -(-a), (no -a !!) Conjuncin: & (ampersand) Disyuncin: v (letra v) Condicional: =>. (igualdad y simbolo de mayor) Bicondicional: <=> (smbolo de menor, igualdad y smbolo mayor) El orden de preferencia establecido permite evitar el uso de parntesis sin caer en la ambigedad. Ejemplo: p v q & r Se interpreta como:
p v (q & r)

(Dado que la disyuncin tiene mayor preferencia que la disjuncin). Conjuncin y disyuncin son asociativas por la izquierda, es decir: Se interpreta como:

## a & b & c (a & b) & c

Condicional y bicondicional son asociativos por la derecha, es decir: a => b => c Se interpreta como:
a => (b => c)

Para representar variables proposicionales, se usan las letras (o combinaciones de latras) minsculas (salvo v que est reservada para la disyuncin). Cuando se quiera introducir ms de una premisa se separarn por comas, pudiendo ocupar cada una ms de una lnea. Ejemplo: Supongamos que queremos introducir como premisas: a b, y a Y como conclusin: Introduciramos los datos de la siguiente manera: b

Easy Logic

## Figura 02: Syntax

(Evidentemente se trata de la regla de inferencia de Modus Ponens, por lo que como veremos ms adelante la aplicacin nos dir que se trata de un razonamiento correcto)

3. Prove!
Esta pestaa aglutina la funcionalidad central de la aplicacin, esto es, la prueba de teoremas mediante distintos procedimientos de clculo. Al seleccionar esta pestaa nos encontraremos con lo siguiente:

## Figura 03: Prove

En los campos premises y proposed conclusin el usuario introducir los datos de manera anloga a la vista en el apartado anterior. A travs del desplegable select a calculus se seleccionar el procedimiento de clculo a utilizar en la prueba del teorema. Por ltimo, si el usuario activa la pestaa Syntactic tree la aplicacin mostrar tras la ejecucin, el rbol sintctico de la implicacin que tiene como antecedente la

## Rubn de la Pea Ramos

conjuncin de las premisas, y como consecuente la conclusin y que habitualmente da pistas sobre cmo se han usado las reglas de los clculos. A continuacin se probar cada uno de los procedimientos de clculo, partiendo para ello, de dos conjuntos de premisas, uno que permitir probar un teorema y otro que no, de manera que se pueda observar la respuesta de la aplicacin para cada caso. As pues los datos que se introducirn en la aplicacin sern: { a b, a } { a b, a } b (nos referiremos a este conjunto de prueba como caso A) b (nos referiremos a este conjunto de prueba como caso B)

Un razonamiento con premisas p1 pn y conclusin c es correcto si p1 pn c es siempre evaluado a 1 (Se debe considerar cada posible valoracin). En el apartado 8 (Apndice) pueden consultarse las tablas de verdad bsicas. CASO A

## Figura 04: Tablas de Verdad A

Tras la ejecucin se observa una caracterstica interesante de la aplicacin, y es que en la parte derecha muestra un pequeo resumen del procedimiento de clculo utilizado, lo cual puede servir muy bien como repaso. En este caso y por cuestiones de espacio se ha recortado dicha explicacin, no obstante para consultarla de manera completa se remite al lector al apartado 8 (Apndice). Respecto al ejemplo en s, se observa que todas las valoraciones son 1, por lo que efectivamente se puede probar b a partir de { a b, a }, es decir el razonamiento es correcto. (a alguien le suena Modus Ponens? ).

## Trabajo Final para Lgicas para la Informtica y la Inteligencia Artificial

Easy Logic

Por ser ste el primer ejemplo se ha optado por mostrar tambin el rbol sintctico comentado en el apartado anterior. CASOB

## Figura 05: Tablas de Verdad B

Vemos que efectivamente el caso B no es un razonamiento correcto debido a la valoracin de verdad de la entrada 4 de la tabla: { a , b }.

3.2. Normalizacin
Un razonamiento con premisas p1 pn y conclusin c es correcto si la forma normal conjuntiva (CNF) de ( p1 pn ) c tiene literales complementarios en cada disyuncin. En el apartado 8 (Apndice) pueden consultarse reglas para pasar a CNF una frmula dada. CASO A

## Figura 06: Normalizacin A

Se observa que cada disyuncin tiene literales complementarios, por lo que el razonamiento es correcto.

CASOB

## Figura 07: Normalizacin B

Vemos que la primera disyuncin no tiene literales complementarios, por lo que el razonamiento no es correcto, y de hecho cada valoracin que no coincida con los literales de dicha disyuncin constituira un contraejemplo. En este caso solo hay una posibilidad: { a , b }

## 3.3. Tableaux Semnticos

Un razonamiento con premisas p1 pn y conclusin c es correcto si el tableaux de { p1, ,pn, c } es cerrado, es decir, cada rama acaba en . En el apartado 8 (Apndice) pueden consultarse reglas para la construccin de tableaux semnticos. CASO A

## Figura 08: Tableaux A

Se observa que cada rama acaba termina en , por lo que el tableaux es cerrado y en consecuencia el razonamiento es correcto.

Easy Logic

CASOB

## Figura 09: Tableaux B

En este caso vemos que la primera rama del tableaux acaba en , por lo que el tableaux no es cerrado y en consecuencia el razonamiento no es correcto. Se pueden obtener las valoraciones de los literales que constituiran un contraejemplo recorriendo la rama abierta del tableaux. En este caso: { a , b }

## 3.4. Deduccin Natural

Un razonamiento con premisas p1 pn y conclusin c es correcto si partiendo del conjunto de premisas p1 pn podemos llegar a c mediante la aplicacin de una serie de reglas. En el apartado 8 (Apndice) pueden consultarse dichas reglas. La aplicacin hace uso de la notacin Fitch para la representacin de esquemas de deduccin natural. CASO A

## Rubn de la Pea Ramos

Se observa que se llega correctamente a la conclusin por lo que el razonamiento es correcto. CASOB

## Figura 11: Deduccin B

En este caso no se puede obtener la conclusin a partir de las premisas, por lo que el razonamiento no es correcto. La valoracin { a , b } hace ciertas las premisas y falsa la conclusin, por lo que constituira un contraejemplo.

## 3.5. Clculo Secuentes

(O clculo de consecuencias lgicas) Un razonamiento con premisas p1 pn y conclusin c es correcto si se puede demostrar el secuente ( p1 pn ) c , lo que implica que el rbol de prueba est completo (todas las ramas acaben con un axioma). En el apartado 8 (Apndice) pueden consultarse las reglas para el clculo de secuentes. CASO A

Easy Logic

## Figura 12: Secuentes A

Se observa que cada rama del rbol finaliza con un axioma, por lo que el razonamiento es correcto. CASOB

## Figura 13: Secuentes B

Vemos que la primera rama acaba con una estructura tipo , por lo que toda valoracin que satisfaga los literales de constituir un contraejemplo. En este caso solo hay una posibilidad: { a , b }.

10

## Rubn de la Pea Ramos

4. Compare!
Esta pestaa, la cual muestra aspecto de la figura 14, nos permitir comparar los dos procedimientos de clculo que queramos para los datos que introduzcamos.

## Figura 14: Compare Vista Principal

Para ello tras introducir las premisas y la conclusin tal y como se vio en el apartado de sintaxis, solo tenemos que escoger los dos clculos a comparar de los desplegables de la parte inferior de la pantalla y posteriormente hacer clic en compare!. En este caso y para ilustrar el funcionamiento de compare! se han elegido los conjuntos de datos de los casos A y B del apartado anterior y como procedimientos de clculo, tablas de verdad y tableaux semnticos.

11

Easy Logic

CASO A

CASOB

12

## Rubn de la Pea Ramos

La principal ventaja de este modo de operacin, es que nos presenta un contraste directo de dos mtodos, por lo que para un caso concreto podremos escoger el que nos parezca mas adecuado. Por contra no ofrece explicacin alguna de los procedimientos de clculo, caracterstica que sin ninguna duda los usuarios poco experimentados echaran en falta.

5. Detalles de Implementacin
A continuacin se muestra la estructura de Easy Logic:

## Figura 17: Estructura Easy Logic

Cmo funciona Easy Logic? El procedimiento es el siguiente: El usuario interacciona con el demostrador a travs de la interfaz web, para ello se tiene un script en PHP que procesa la entrada y se la pasa a los demostradores. Los demostradores estn escritos en Prolog, fundamentalmente debido a su caracter declarativo, lo cual otorga una manera natural de codificar las operaciones relativas a los procedimientos. En concreto se ha elegido SWI-Prolog por seguir el standar de Edimburgo y por su licencia LGPL. La salida de los scripts de Prolog ser la informacin devuelta al usuario, junto con una representacin visual (por ejemplo una tabla de verdad, un tableaux semntico, etc) generada mediante compilacin con LATEX y que dar una salida ms amigable a los resultados. Los componentes usados por Easy Logic (SWI-Prolog, LATEX, y otros para la generacin de las imgenes) no se encuentran normalmente disponibles en un servidor, por lo que se tuvo que preparar uno en concreto para la explotacin de la aplicacin. Una vez se encuentren todos los componentes necesarios configurados correctamente en el servidor, la instalacin de la aplicacin no puede ser ms sencilla, pues basta con arrastrar al mismo los ficheros de Easy Logic y editar algunas lneas en el cdigo para indicar las rutas de los programas usados.

13

## Trabajo Final para Lgicas para la Informtica y la Inteligencia Artificial

Easy Logic

6. Conclusiones
Easy Logic es una aplicacin sencilla e intuitiva, ideal como herramienta de aprendizaje para el usuario que comience el estudio de la prueba de teoremas y sus diferentes procedimientos de clculo, en parte gracias a los breves resmenes que muestra la aplicacin en el modo prove!. No obstante, para usuarios ms avanzados, puede ser un excelente complemento que les libre de tediosas comprobaciones manuales. Es por todo esto que Easy Logic es una herramienta adecuada tanto para asignaturas iniciales de lgica (como herramienta de aprendizaje) como para niveles ms avanzados (como herramienta de soporte). Una limitacin que se le podra achacar a Easy Logic es que solo ofrece soporte para lgica proposional, algo que no es para nada definitivo, pues debido a la modularidad que presenta la aplicacin, en cualquier momento se podran implementar mdulos adicionales que dieran soporte a lgicas diferentes, y que se integraran perfectamente en la aplicacin. De hecho los creadores de Easy Logic instan a esto mismo, que los usuarios se animen a implementar diferentes tipos de demostradores para hacer de Easy Logic la herramienta de demostracin de teoremas ms completa.

7. Referencias
http://easylogic.yi.org/ Fundamental! http://www.departamento.us.es/dpfilogi/ Departamento de Filosofa y Lgica y Filosofa de la Ciencia de la Universidad de Sevilla. http://www.danielclemente.com/logica/dn.html Introduccin a la deduccin natural. http://en.wikipedia.org/wiki/Sequent_calculus Clculo de secuentes (en ingls).

14

8. Apndice

15

Easy Logic

Normalizacin

16

## Rubn de la Pea Ramos

Tableaux Semnticos

17

## Trabajo Final para Lgicas para la Informtica y la Inteligencia Artificial

Easy Logic

Deduccin Natural Nota: T transformacin, I introduccin, E eliminacin, H.A hiptesis auxiliar, I , D.I. , D , C , N

18

## Rubn de la Pea Ramos

Clculo de Secuentes

19