Vous êtes sur la page 1sur 40

DEDUCCIN:

NATURAL Y AUTOMTICA

Faran Llorens Largo


Diciembre de 2002
Resumen Leccin
Deduccin:
Natural y Automtica
para optar al Concurso n C 1246 para proveer la plaza DF02479
Convocatoria publicada en B.O.E. de 8 de diciembre de 2001

Catedrtico de Escuela Universitaria

Perfil: Lgica Computacional


Razonamiento
para Ingeniera Informtica

rea de Conocimiento: Ciencia de la Computacin e Inteligencia


Artificial

Impartida por:
Faran Llorens Largo

Departamento de Ciencia de la Computacin e Inteligencia Artificial

UNIVERSIDAD DE ALICANTE
Deduccin: Natural y Automtica

RESUMEN

La Lgica de Predicados pone a nuestra disposicin un lenguaje que nos


permitir formalizar expresiones del conocimiento humano haciendo explcitos
los objetos y las relaciones, as como sus restricciones. Adems nos proporciona
un mtodo, la deduccin matemtica, para obtener nuevo conocimiento a partir
del antiguo. Es por ello que la lgica se convierte en una asignatura presente en
los primeros cursos de distintas titulaciones, especialmente de informtica, ya
que proporciona una base formal de trabajo [Garrido, 1991], [Reeves y Clarke,
1993], [Llorens y Castel, 1999] y [Tymoczko y Henle, 2002]. En la actualidad
existe un variado nmero de herramientas que pueden servir de ayuda en el
aprendizaje de la lgica [Goldson, Reeves, y Bornat, 1993], [Barwise y
Etchemendy, 2000], [TTL, 2000] y [Llorens y Mira, 2002].

El razonamiento es el proceso cognitivo por medio del cual utilizamos y


aplicamos nuestro conocimiento, permitindonos pasar de una informacin a
otra relacionada con esta. Sin la posibilidad de hacer inferencias, el sistema de
procesamiento de informacin se vera obligado a tener que definir todas las
situaciones puntuales y especficas con las que se tenga que enfrentar. A las
sentencias de las cuales partimos en el proceso de razonamiento se les llama
premisas y a la sentencia a la cual llegamos se le denomina conclusin. Las
premisas junto a la conclusin forman el argumento. El concepto lgico de
deduccin correcta dice que de premisas verdaderas debemos obtener conclusin
verdadera, es decir, no podemos aceptar que las premisas sean verdaderas y la
conclusin falsa. La lgica nos proporciona mtodos de clculo que nos permiten
inferir, por simple manipulacin sintctica, nuevas frmulas a partir de las
conocidas [Socher-Ambrosius y Johann, 1997]. Uno de estos mtodos es la
Deduccin Natural , cuyo mecanismo est muy cercano al razonamiento intuitivo
del ser humano. As, de forma sencilla, a partir de las frmulas dadas como
premisas y con el nico apoyo de unas reglas bsicas, obtenemos determinadas
conclusiones. Podemos utilizar una herramienta didctica diseada
especficamente para ensear a los estudiantes a realizar deducciones naturales,
el Asistente para Deduccin Natural (ADN) [Llorens y Mira, 2000a], [Mira, 2000]
y [Llorens y Mira, 2000b].

Adems podemos intentar abordar el tema de la automatizacin de la deduccin.


Para ello debemos realizar pequeas modificaciones a esta tcnica (de notacin,
de reglas a aplicar y de estrategia a utilizar) que nos lo permita. Todos estos
desarrollos tericos dieron lugar a la aparicin de la programacin lgica, como
paradigma de resolucin de problemas basado en la lgica [Dodd, 1990]. Prolog
es el lenguaje de programacin lgica ms utilizado [Bratko, 1990], [Clocksin y
Mellish, 1987], [Giannesini y otros, 1989], [Callear, 1994] y [Deransart, Ed-Dbali, y
Cervoni, 1996].

Pgina 1
Deduccin: Natural y Automtica

CONTENIDO

Resumen...................................................................................................................... 1
Contenido.................................................................................................................... 3
Introduccin ............................................................................................................... 4
1 Representacin del Conocimiento y Razonamiento .................................. 4
2 Argumentacin................................................................................................ 4
3 Razonamiento Intuitivo y Formal................................................................. 5
4 Razonamiento Inductivo y Deductivo ......................................................... 6
5 Lenguaje ........................................................................................................... 6
Deduccin Natural .................................................................................................... 9
1 Clculo Lgico................................................................................................. 9
2 Reglas Bsicas .................................................................................................. 9
3 Estrategias de Derivacin ............................................................................ 11
3.1 Razonamiento Hipottico ................................................................... 12
3.2 Prueba Exhaustiva................................................................................ 12
3.3 Refutacin.............................................................................................. 13
4 Deduccin versus Computacin.................................................................. 13
5 Visualizacin de Deducciones Lgicas ...................................................... 14
6 Asistente para Deduccin Natural ............................................................. 16
Deduccin Automtica ........................................................................................... 19
1 Reflexiones para la Automatizacin........................................................... 19
2 Universo de Herbrand y Unificacin ......................................................... 19
3 Forma Clausal................................................................................................ 20
4 Sistemas de Refutacin................................................................................. 21
5 Regla de Resolucin...................................................................................... 22
6 Programacin Lgica y Prolog.................................................................... 25
Ejemplo...................................................................................................................... 27
1 Formalizacin ................................................................................................ 27
2 Deduccin Natural........................................................................................ 28
3 Deduccin Automtica................................................................................. 29
3.1 Refutacin y Forma Clausal................................................................ 29
3.2 Regla de Resolucin con Unificacin ................................................ 31
4 Programacin Lgica.................................................................................... 32
4.1 Programa Lgico .................................................................................. 32
4.2 SLD-Resolucin .................................................................................... 32
4.3 Prolog..................................................................................................... 33
Bibliografa................................................................................................................ 35

Pgina 3
Deduccin: Natural y Automtica

INTRODUCCIN

1 REPRESENTACIN DEL CONOCIMIENTO Y


RAZONAMIENTO

Qu es conocimiento? podramos decir que es el hecho o la condicin de


conocer algo que hemos adquirido por experiencia o asociacin, por
observacin o deduccin. Los seres humanos vamos adquiriendo conocimiento al
ver, or, tocar, sentir y oler el mundo que nos rodea. Y ese conocimiento lo vamos
almacenamos de alguna manera en nuestro cerebro.

Cuando pretendemos simular el funcionamiento de nuestra mente para poder


trabajar con conocimiento primero deberemos formalizarlo y representarlo de
una determinada manera. Existen distintos modelos de representacin de
conocimiento, cada una con sus ventajas e inconvenientes. Pero de cualquier
forma, una buena representacin del conocimiento debe ser fcilmente
entendible por los humanos y al mismo tiempo no ambigua y de fcil
manipulacin.

El razonamiento es el proceso cognitivo por medio del cual utilizamos y aplicamos


nuestro conocimiento, permitindonos pasar de una informacin a otra
relacionada con esta, es la capacidad del hombre para manejar sus ideas1. Sin la
posibilidad de hacer inferencias, un sistema de procesamiento de informacin se
vera obligado a tener que definir todas las situaciones puntuales y especficas
con las que se tendra que etnfrentar. No se puede separar razonamiento de
representacin del conocimiento, van ntimamente ligados y cada uno condiciona
al otro. A las sentencias de las cuales partimos en el proceso de razonamiento se
les llama premisas y a la sentencia a la cual llegamos se le denomina conclusin.
Las premisas junto a la conclusin forman el argumento.

2 ARGUMENTACIN

L as estructuras argumentales son la clave del razonamiento. En esencia un


argumento es una promesa, de forma que si las premisas del argumento son
verdaderas, el argumento correcto garantiza la verdad de la conclusin. Nuestro

1 Homo cybersapiens. La inteligencia artificial y la humana, de Tirso de Andrs.

Pgina 4
Deduccin: Natural y Automtica

objetivo ser construir argumentos correctos. Pero no es fcil componer


argumentos, estos han de ser presentados de forma cuidadosa ya que todo
argumento informal es siempre mejorable tras un anlisis cuidadoso. El primer
paso para entender un argumento es determinar su conclusin. Si el argumento
tiene fuerza, los distintos enunciados propuestos como premisas deben apoyar la
conclusin.

El anlisis de los argumentos es esencial. Desde la antigedad el hombre se ha


preocupado de someter las ideas a discusin. En esencia, lo que hay detrs de
estos anlisis es el sentido comn. Por un lado si no estamos de acuerdo con las
conclusiones debemos exponer sus deficiencias para refutarlos. Por el contrario, si
los argumentos son nuestros, debemos aprender sus debilidades para reforzarlos.
Hay dos aspectos que pueden hacer dbiles los argumentos. El primero son las
suposiciones iniciales, ya que el argumento no vale para nada si las premisas
estn equivocadas. El otro son las inferencias sobre las que se apoya, ya que si
son cuestionables el argumento entero se estropea. Slo se puede discutir
verdaderamente si se est de acuerdo en un mnimo. Con ese mnimo aceptado,
uno puede decir, el otro replicar y as ir afinando los argumentos. Vamos a tratar
ahora de establecer ese mnimo.

3 RAZONAMIENTO INTUITIVO Y FORMAL

L os humanos hemos desarrollado muchos modos de pensar, persiguiendo


conseguir formas de elaborar pensamientos ms precisos y adecuados a la
realidad. Algunos de ellos semnticamente muy ricos, pero imprecisos y
extraordinariamente polismicos, por lo que eran inmanejables artificialmente. Se
buscaron entonces modelos ms precisos, buscando rigor conceptual y
metodolgico. En el enfoque simblico se utilizan smbolos para representar el
conocimiento y el estado del mundo y se simula el proceso cognitivo mediante
manipulacin de esos smbolos. La lgica formal pone a nuestra disposicin un
lenguaje que nos permitir formalizar expresiones del conocimiento humano
haciendo explcitos los objetos y las relaciones, as como sus restricciones.
Adems nos proporciona un mtodo, la deduccin matemtica, para obtener
nuevo conocimiento a partir del antiguo.

El concepto lgico de deduccin correcta dice que de premisas verdaderas


debemos obtener conclusin verdadera, es decir, no podemos aceptar que las
premisas sean verdaderas y la conclusin falsa. La lgica nos proporciona
mtodos de clculo que nos permiten inferir, por simple manipulacin sintctica,
nuevas frmulas a partir de las conocidas. Uno de estos mtodos es la deduccin
natural, cuyo mecanismo est muy cercano al razonamiento intuitivo del ser
humano. As, de forma sencilla, a partir de las frmulas dadas como premisas y
con el nico apoyo de unas reglas bsicas, obtenemos determinadas
conclusiones.

Pgina 5
Lgica Computacional y Razonamiento

4 RAZONAMIENTO INDUCTIVO Y DEDUCTIVO

C lsicamente se distingue entre dos tipos de razonamiento. En el razonamiento


deductivo se parte de unas premisas para alcanzar una conclusin que
necesariamente se debe seguir de ellas, mientras que en el razonamiento
inductivo alcanzaremos una conclusin que vendr ms o menos apoyada por
las premisas. Vemoslo ms detenidamente.

En un razonamiento deductivo la conclusin se sigue necesariamente de las


premisas, o lo que es lo mismo, un razonamiento deductivo es correcto si es
imposible que las premisas sean verdaderas y la conclusin falsa. Es por ello que
decimos que el razonamiento deductivo es un proceso que va de lo general a lo
particular o hacia abajo. Las conclusiones deductivas son en cierto modo
tautolgicas (cierto o falso, todo o nada) y nicamente reflejan informacin
contenida en las premisas.

En cambio, en un argumento inductivo las premisas apoyan o sugieren la


conclusin. Por ello decimos que es un proceso por el que se llega a lo general a
partir de lo particular o hacia arriba. Diremos que un razonamiento inductivo es
fuerte si es improbable que la conclusin sea falsa cuando las premisas sean
verdaderas. Hablamos por tanto de fuerza del argumento y esto es cuestin de
grados. Por tanto, las conclusiones inductivas son probabilsticas y van ms all
de la propia evidencia expresada en las premisas. La lgica inductiva es la lgica
de la ciencia, de forma que si un experimento se lleva a cabo con frecuencia y la
mayora de las veces se obtienen cierto resultado, podemos decir con cierto grado
de seguridad que dicho resultado seguir apareciendo si el experimento se repite
a menudo bajo circunstancias que sean esencialmente las mismas. Es una
herramienta que permite medir la garanta que ofrece una evidencia, manejando
y controlando la incertidumbre.

5 LENGUAJE

A l pretender formalizar las expresiones del conocimiento humano y dado que


ese conocimiento lo adquirimos, en gran medida, y transmitimos por medio
del lenguaje, debemos trabajar con l. Pero el lenguaje natural que habitualmente
utilizamos es ambiguo y engorroso, y por ello, para facilitar la manipulacin
formal del conocimiento necesitamos de un lenguaje artificial. Una caracterstica
esencial de los lenguajes artificiales es su simplicidad y regularidad, en contraste
con la vaguedad e irregularidad de los lenguajes naturales (los que hablan los
humanos). Las dos clases principales de lenguajes artificiales son los lenguajes
formales de la lgica y los lenguajes de programacin. Aqu nos ocuparemos de
los primeros, aunque sin perder de vista los segundos, ya que la mayora de
reflexiones son extrapolables.

Pgina 6
Deduccin: Natural y Automtica

Los lenguajes formales son reglas para generar estructuras lgicas. En la


definicin de ese lenguaje formal empezaremos por determinar el alfabeto
(conjunto de smbolos) que utilizaremos y las frases (frmulas bien formadas) que
podremos construir con combinaciones autorizadas de esos smbolos. As, ante
una sentencia del lenguaje natural buscaremos sus componentes:
Qu se afirma, es decir, las propiedades y relaciones que aparecen
en la sentencia y que representaremos en forma de predicados.
De quienes se afirma, es decir, los objetos o individuos a los que
hace referencia la sentencia y que representaremos por medio de
trminos.

Cuando los predicados se aplican a un solo trmino se trata de propiedades o


caractersticas de dicho objeto; cuando hacen referencia a varios sujetos suelen
representar relaciones. A su vez, definiremos y delimitaremos los mundos sobre
los que trabajamos. Los objetos deben pertenecer a un dominio genrico o
universo del discurso, y pueden ser:
Constantes: representan objetos concretos del dominio.
Variables: permiten referenciar cualquier elemento del universo.
Funciones: denotan objetos referenciados indirectamente, en
funcin de otros objetos.

Constantes Variables
a, b, ... x, y, ...

Predicados
Trminos
P, Q, ...

Negacin
tomos

Conectivas Cuantificadores
Literales

fbf
Figura 1: El lenguaje formal de la lgica

As, con un predicado y los trminos implicados en dicho predicado podemos


formar frmulas atmicas o elementales. Combinando dichas frmulas atmicas
mediante las conectivas lgicas (conjuncin "", disyuncin "", negacin "" e
implicacin "") obtendremos frmulas ms complejas, que llamaremos
frmulas moleculares. Por otro lado, si queremos expresar la cantidad de objetos
que satisfacen alguna condicin utilizaremos los cuantificadores. En la lgica
clsica se definen nicamente dos, aunque se pueden extender. As, el

Pgina 7
Lgica Computacional y Razonamiento

cuantificador universal "" (para todo) hace referencia a todos los elementos del
universo del discurso y el existencial "" (existe) indica que por lo menos existe
un individuo del universo que satisface el enunciado.

Finalmente, los parntesis se utilizan para clarificar las frmulas. Tambin nos
puede ayudar a ver claramente la estructura sintctica de las mismas la
representacin de las frmulas en forma de rbol etiquetado. El rbol sintctico
de una frmula lgica nos permite distinguir claramente cul es el operador
principal y las prioridades entre ellos. Esto nos ayudar en la comprensin del
significado de la frmula y en la posterior manipulacin sintctica cuando
tengamos que aplicar las reglas de la deduccin.

x y [ P(y) x Q(x) R(x) ] S(x)

libre

x S(x)

R(x)

P(y) x

Q(x)

Figura 2: rbol sintctico

Pgina 8
Deduccin: Natural y Automtica

DEDUCCIN NATURAL

1 CLCULO LGICO

U na idea bsica de la lgica es que todos los argumentos, sin importar lo


complejos que sean, se forman mediante el encadenamiento de inferencias
muy simples. As que se trata de desmenuzar el salto cognitivo que va de las
premisas a la conclusin en pequeos pasos que hemos acordado como correctos.
De esta forma, si asumimos las premisas y cada paso elemental que damos lo
justificamos de forma adecuada, iremos obteniendo nuevas frmulas lgicas que
podemos asumir como conclusiones derivadas de las premisas.

Tendremos una deduccin correcta cuando consigamos una secuencia finita de


frmulas, donde cada una de las frmulas ha sido obtenida mediante la aplicacin
de alguna regla de inferencia. Las frmulas iniciales de esa secuencia sern las
premisas de las que partimos y la ltima frmula obtenida la conclusin. A esta
tcnica se le denomina deduccin natural porque es similar a la forma en que las
personas razonan, avanzando paso a paso de las premisas de un argumento a la
conclusin del mismo.

2 REGLAS BSICAS

P or tanto, antes de empezar el juego debemos determinar cuales son esas


justificaciones aceptadas por todos, es decir las reglas de inferencia simples.
Para determinar las reglas bsicas de la deduccin natural nos basaremos en la
idea de montar y desmontar frmulas lgicas, de forma que desmontando las
premisas en sus componentes bsicas (frmulas atmicas) podamos montar la
conclusin a partir de ellas. Para operar de esta manera dispondremos de dos
reglas (una de introduccin o entrada y otra de eliminacin o salida) para cada
uno de los smbolo lgico (conectivas y cuantificadores). Si la regla bsica
incorpora en su consecuencia una conectiva o cuantificador que no aparece en las
frmulas sobre las que se aplica ser una regla de introduccin; si elimina de su
consecuencia una conectiva o cuantificador que aparece en sus frmulas origen
ser una regla de eliminacin.

Pgina 9
Lgica Computacional y Razonamiento

regla introduccin regla eliminacin


(conjuncin) IC EC
(disyuncin) ID ED*
(negacin) IN* EN
(implicacin) II* EI*
(cuantificador universal) IU EU
(cuantificador existencial) IE EE
Figura 3: Tabla de reglas bsicas de inferencia

* Estas reglas se conocen con nombres propios: ED (prueba por casos), IN (reduccin al
absurdo), II (teorema de deduccin) y EI (modus ponens)

Se intuye que si disponemos de procedimientos para aadir o quitar los distintos


smbolos lgicos, podremos transformar por pura manipulacin sintctica las
frmulas que constituyen las premisas en la frmula lgica que queremos
obtener como conclusin. Desde un punto de vista de ingeniera, se tratara de
desmontar las frmulas lgicas que tenemos como premisas hasta obtener sus
componentes bsicas (frmulas atmicas) y volver a montarlas en la
configuracin adecuada a la frmula lgica objetivo. Las reglas seran las
herramientas que nos permitiran montar y desmontar dichas frmulas lgicas.

Figura 4: Reglas bsicas

Pgina 10
Deduccin: Natural y Automtica

Por tanto, conforma vayamos obteniendo frmulas las escribiremos en lneas


consecutivas que numeraremos. Cada lnea de nuestra deduccin (y por tanto la
frmula lgica escrita en ella) estar justificada por la aplicacin de una regla
bsica a alguna o algunas frmulas de lneas anteriores. Dicha justificacin la
podremos en la columna de la derecha. Por ejemplo, en la figura del ejemplo, la
justificacin de la lnea 10 que dice ED 1, 2-5, 6-9 significa que esa frmula la
hemos obtenido porque tenemos en la lnea 1 una frmula cuya conectiva
principal es una disyuncin; suponemos en la lnea 2 una de las dos alternativas
y obtenemos cierta conclusin condicionada en la lnea 5; suponemos en la lnea
6 la otra alternativa y obtenemos la misma conclusin condicionada en la lnea 9;
y llegamos en la lnea 10 a que dicha conclusin ya no esta condicionada, porque
queda justificada por la regla de eliminacin del disyuntor o prueba por casos.
En la siguiente figura podemos ver el ejemplo de la deduccin natural del
argumento x (P(x) y (Q(y) R(x,y))) y (Q(y) x (P(x) R(x,y))), que
podra corresponder a demostrar que cualquier nmero natural tiene otro
menor que l a partir de la premisa existe un nmero natural menor que todos
los dems.

Figura 5: Ejemplo de Deduccin

3 ESTRATEGIAS DE DERIVACIN

U na vez establecidas las reglas del juego vamos a trazar estrategias para tener
xito en el mismo y lograr nuestros objetivos. Uno de los aspectos cruciales

Pgina 11
Lgica Computacional y Razonamiento

de la deduccin natural es el de las subpruebas (subdeducciones o


subderivaciones). En cualquier paso de nuestra deduccin podemos introducir
un supuesto provisional, que debe ser cancelado en alguna lnea posterior. Desde
el supuesto hasta la cancelacin tendremos una subdeduccin. Los supuestos
provisionales son una herramienta muy potente ya que nos permiten suponer lo
que nosotros queramos. Pero debemos pagar un alto precio por ello: para poder
finalizar una demostracin deberemos haber cancelado todas las suposiciones
que hayamos abierto. De esta forma, la suposicin y posterior cancelacin de
supuestos provisionales se convierte en una pieza clave de las deducciones
naturales. La utilizacin de subdeducciones como estrategia de trabajo nos
permite modularizar nuestras deducciones, plantendonos subobjetivos ms
sencillos que el objetivo final, y que en su conjunto nos lleven a la conclusin que
buscamos.

En general, para planificar en cada momento nuestro siguiente paso tenemos dos
opciones:
1. Empezar por el principio, examinando las premisas y la informacin
que ya tenemos, determinando que podemos hacer con ellas.
2. Empezar por el final, examinando la conclusin a la que queremos
llegar, estableciendo qu debemos hacer para alcanzarla.

Vamos a pasar a examinar con mayor detalle algunas de las estrategias que de
que disponemos para ello.

3.1 Razonamiento Hipottico

En el razonamiento hipottico suponemos A (hiptesis) y entonces, usando la


informacin de que disponemos, deducimos B. Este razonamiento no demuestra
B, nicamente lo que demuestra es la implicacin, es decir, si se cumple A
entonces se deber cumplir B (AB). Es conocida tambin como prueba directa.
De esta forma cuando la conclusin a la que queramos llegar tenga la implicacin
como conectiva principal, podemos suponer el antecedente de la misma e
intentar llegar al consecuente. Una vez logrado cancelamos el supuesto con la
regla de II (o ms conocida como teorema de deduccin o TD).

3.2 Prueba Exhaustiva

Pero hablando de hiptesis, habr momentos en que tengamos que considerarlas


todas, no desdear ninguna. Es lo que llamamos prueba exhaustiva. De esta forma
si tenemos una disyuncin, es decir, distintas alternativas con la garanta de que
al menos una de ellas es cierta, podemos ir considerndolas una a una y
demostrar que podemos llegar a una misma conclusin en cualquiera de los
casos. En ese momento estamos en condiciones de afirmar dicha conclusin. Es lo
que se conoce como prueba por casos (o eliminacin de la disyuncin ED).
Podemos decir que es una prueba exhaustiva explcita ya que analizamos todos los
casos posibles. Pero qu podemos hacer cuando el nmero de casos sea muy
grande o incluso infinito? Utilizaremos un rodeo lgico. Si sabemos que alguien,

Pgina 12
Deduccin: Natural y Automtica

al menos, cumple una cierta propiedad, supondremos un individuo genrico e


intentaremos llegar a una conclusin que no dependa de ese individuo. De esa
forma queda demostrada la conclusin. Lo podemos considerar como una prueba
exhaustiva implcita, ya que nicamente trabajamos con un caso genrico. Esta
estrategia la aplicaremos cuando tengamos una frmula cuantificada
existencialmente y aplicaremos la regla de eliminacin del existencial (EE).

3.3 Refutacin

Como ltimo recurso, existe una estrategia que siempre se puede intentar: la
reduccin al absurdo o prueba por contradiccin. Es bastante simple y muy
utilizada, al mismo tiempo que controvertida. Permite establecer la verdad de
una proposicin demostrando que la proposicin contraria conduce a un
absurdo. Para demostrar A, asumimos A e intentamos llegar a una
contradiccin (algo y su negacin).

4 DEDUCCIN VERSUS COMPUTACIN

P odemos considerar la deduccin como una forma de computacin, ya que un


programa no es una deduccin en la que a partir de unas entradas (premisas)
debemos obtener unas salidas determinadas (conclusiones)? Se pretende
presentar un tema marcadamente no informtico para los estudiantes utilizando
una metodologa que enganche y motive a los alumnos de informtica. La idea
bsica es que la deduccin es una forma de computacin. Este enfoque
metodolgico permite acercar ambos campos: lgica y programacin. Se trata de
abordar el tema de la deduccin, comparndolo con la programacin. De esta
forma, por un lado, mantenemos el carcter formal de la lgica de manera que el
alumno se acostumbra a trabajar con rigor y de forma abstracta. Por otro lado, su
visin computacional motivar al alumno y, al bajar en nivel de abstraccin, le
ayudar a comprenderlo mejor.

Una deduccin la podemos ver como un algoritmo que partiendo de unos


valores de entrada (premisas) obtiene unas determinadas salidas (conclusiones)
utilizando un conjunto dado de instrucciones (reglas). Y qu es un programa de
ordenador sino una deduccin? En ambos casos se trata de ser capaces, con la
nica ayuda de las herramientas formales que se nos proporcionan (un lenguaje
formal y unas reglas de inferencia, en un caso, y un conjunto de instrucciones en
el otro) de resolver un problema que se nos plantea.

Las reglas bsicas conformaran el conjunto de instrucciones bsicas de nuestro


lenguaje de programacin. Podemos ver a las reglas derivadas como los
procedimientos que nos podemos definir en cualquier lenguaje de programacin
de forma que nos permiten ahorrar lneas de cdigo. Siguiendo con nuestra
comparacin con la computacin, podemos considerar la columna de las
justificaciones como las instrucciones de nuestro programa, de forma que

Pgina 13
Lgica Computacional y Razonamiento

siguiendo esos pasos podemos realizar cualquier deduccin que tenga la misma
estructura. La columna de las frmulas lgicas conformara la traza del algoritmo
(deduccin) para una entrada concreta (si cambiamos las premisas, cambiaran
las frmulas). Las premisas seran los parmetros de entrada al programa y la
conclusin la salida obtenida.

Deduccin Computacin
premisas valores de entrada
conclusin valores de salida
conjunto de instrucciones del
reglas bsica
lenguaje
frmulas de la lneas de derivacin traza del programa
justificaciones de las lneas de
lneas (instrucciones) del programa
derivacin
reglas derivadas procedimientos
subdeducciones modularizacin
Figura 6: Comparativa deduccin - computacin

Pero no olvidemos que la realidad es la inversa, y hay que hacerla notar a los
alumnos: la programacin es una forma de demostracin matemtica. Por acercar
el tema de la deduccin a la realidad que conocen no debemos perder de vista el
carcter formal y fundamental de esta disciplina.

5 VISUALIZACIN DE DEDUCCIONES LGICAS

V oy a visualizar una deduccin lgica, es decir, hacer visible mediante cierta


representacin la estructura de nuestras sentencias y los pasos lgicos
seguidos para obtener la conclusin. La visualizacin es importante debido a su
fuerza expresiva y nos sirve para alcanzar cierta comprensin acerca del
contenido y las relaciones. Recurrimos a la representacin grfica en forma de
rbol para organizar de forma espacial el conocimiento que tenemos en forma de
frmulas lgicas y representamos el flujo lgico mediante manipulaciones del
rbol.

A continuacin se pueden ver los pasos de una animacin realizada en Flash, que
visualiza la demostracin lgica del ejemplo que estoy utilizando (figura 4).
Aunque se pierden los efectos dinmicos de la misma, puede servirnos de
ilustracin. La animacin se puede descargar desde internet, en el apartado
ejemplos del sitio web del asistente para deduccin natural al que le dedico el
siguiente apartado.

Pgina 14
Deduccin: Natural y Automtica

Figura 7: Visualizacin de una deduccin (I)

Pgina 15
Lgica Computacional y Razonamiento

Figura 8: Visualizacin de una deduccin (II)

6 ASISTENTE PARA DEDUCCIN NATURAL

E n la actualidad existe un variado nmero de herramientas que pueden servir


de ayuda en el aprendizaje de la lgica. El Asistente para Deduccin Natural
(ADN) es una herramienta didctica de apoyo para el aprendizaje de la tcnica de
deduccin natural diseada y desarrollada en el departamento de Ciencia de la
Computacin e Inteligencia Artificial de la Universidad de Alicante. Esta
herramienta pretende ser un instrumento didctico que ayude a los estudiantes a
escribir frmulas lgicas bien formadas y a realizar deducciones correctamente.
No se trata de un sistema que construya demostraciones de forma automtica;
simplemente es un asistente que supervisar y guiar al estudiante en el proceso,
ayudndole a elaborar sus propias deducciones. Comprueba si la frmula es
sintcticamente correcta (fbf) y si se ha obtenido de forma adecuada (aplicacin
de las reglas bsicas). Adems, posee algunas herramientas de apoyo, como el
visor de rboles sintcticos de las frmulas, informe detallado de los errores,
visor de reglas bsicas, aconsejador y ayuda en lnea.

Pgina 16
Deduccin: Natural y Automtica

ADN puede ser ejecutado con cualquier navegador, ya que se trata de un applet
escrito en Java que se encuentra disponible en internet en el sitio web:
http://www.dccia.ua.es/logica/ADN

En la Figura 9 se muestra la pantalla principal del ADN y las partes en las que se
divide la misma:
1. Editor de la frmula objetivo: nos permite editar la frmula que ser el
objetivo de la deduccin.
2. Cuerpo de la deduccin (pizarra): en esta zona se irn visualizando los
pasos de la deduccin. Se pueden observar tres partes (dispuestas en
columnas):
Numeracin de las lneas, para poder hacer referencia a ellas.
Frmulas lgicas que vamos obteniendo. Las sangras indican que
entramos en un nuevo supuesto (hacia la derecha) o que lo
cancelamos (vuelta a la izquierda), configurando lo que llamamos
subdeducciones.
Justificacin de la frmula obtenida mediante la aplicacin de una
regla bsica a una o ms frmulas anteriores.
3. Editor de frmulas: se utiliza para insertar nuevas frmulas dentro de la
deduccin y decir de qu frmulas han derivado las mismas.
4. rea de opciones del programa: aqu tenemos los botones que acceden a
las diferentes funciones del asistente: rbol, Aconsejar, Ayuda, Reglas, ...
5. Ventana de informacin: en esta rea se muestra informacin al usuario.

Figura 9: Ventana ADN

El ADN dispone de una herramienta muy til a la hora de realizar una


deduccin. Esta herramienta es el Aconsejador. El aconsejador analiza las
frmulas de la deduccin e intenta guiarnos hacia el objetivo o decirnos qu
reglas podemos aplicar. En cualquier momento podemos poner en marcha el
aconsejador, y se puede dejar visible durante toda la deduccin, con lo que se ir

Pgina 17
Lgica Computacional y Razonamiento

actualizando conforme aadamos o eliminemos frmulas. Aunque no siempre


nos llevar a la solucin, ya que la deduccin natural en lgica de primer orden
no es un problema decidible, si que puede servirnos de apoyo. Esto nos lleva
directamente al siguiente punto en el cual reflexionamos sobre como automatizar
la tcnica de deduccin.

Pgina 18
Deduccin: Natural y Automtica

DEDUCCIN AUTOMTICA

1 REFLEXIONES PARA LA AUTOMATIZACIN

L a automatizacin del razonamiento es un sueo muy antiguo desde los


diagramas lgicos de Ramn Llull hasta el autmata construido por rels que
jugaba finales de ajedrez construido por Torres Quevedo. Pero no se ha hecho
realidad hasta la aparicin de los ordenadores. En 1956 Newell y Simon
desarrollaron el Logic Theorist que demostr treinta y ocho teoremas de los
primeros cincuenta y dos que aparecan en el captulo segundo de los Principia
Matemtica de Russell y Whitehead. Desde entonces la inteligencia artificial ha
avanzado mucho y por caminos no presentidos.

Si intentamos automatizar el proceso de deduccin natural nos encontramos con


una serie de inconvenientes, que vamos a ir solucionando, aunque algunas veces
sea a costa de restringir la potencia de la lgica. La siguiente tabla muestra los
problemas con que nos podemos encontrar para automatizar la tcnica de
deduccin natural y las propuestas que han ido surgiendo para su resolucin y
que desarrollaremos en los siguientes apartados.

Inconveniente Solucin
Dominio (infinitos) Universo de Herbrand
Manejo cuantificadores Unificador ms general
Normalizacin: forma
Notacin mltiple
clausal
Estrategias de Refutacin o reduccin al
demostracin absurdo
Elevado nmero de reglas Regla de resolucin
Figura 10: Reflexin sobre automatizacin

2 UNIVERSO DE HERBRAND Y UNIFICACIN

E n el Clculo de Proposiciones, una frmula con n variable proposicionales


distintas, con valores de verdad en el conjunto {V, F}, tiene 2n
interpretaciones. En el lenguaje lgico que estamos utilizando disponemos del

Pgina 19
Lgica Computacional y Razonamiento

concepto de variable para referenciar a un elemento cualquiera del dominio.


Estos dominios pueden tener infinitos elementos. Para reducir el tratamiento
Herbrand plante un modelo para el anlisis de validez de una frmula basado
en la insatisfactibilidad y defini un universo abstracto el Universo de Herbrand.
Demostr que si una frmula no es satisfactible en este universo entonces
tampoco lo ser en otros dominios. El universo de Herbrand asociado a una
frmula es el conjunto de todos los trminos sin variables que se pueden
construir con las constantes y los smbolos de funcin del alfabeto de la frmula.

Por otro lado hemos visto que para manipular los cuantificadores mediante las
reglas de inferencia, debamos decidir que constantes utilizbamos. Este cambio
de las variables por constantes o particularizacin se llama sustitucin. Debemos
tener en cuenta que todas las ocurrencias de una variable deben ser sustituidas
por el mismo trmino (constante, variable o funcin) y que las sustituciones
siempre se hacen de poner trminos donde haba variables.

Llamamos unificacin al proceso de encontrar sustituciones de trminos que


hagan idnticas ciertas frmulas lgicas. El unificador no tiene porque ser nico.
En este caso debemos ahora pensar cul es el unificador que ms nos conviene.
Nos interesa un unificador lo ms simple posible para dejar la frmula lo ms
abierta posible para posteriores sustituciones. A esta sustitucin la llamaremos el
unificador ms general (umg).

3 FORMA CLAUSAL

P oder escribir la misma informacin de dos maneras distintas no es aconsejable


cuando intentamos hacer un tratamiento automtico. Y sin embargo sabemos
que podemos escribir una sentencia con diferentes frmulas lgicas equivalentes.
Por otra parte si hacemos un estudio semntico de las conectivas lgicas nos
damos cuenta que no son imprescindibles todas las que hemos visto, es decir,
podemos reducir el conjunto de conectivas lgicas. Una propuesta es utilizar
nicamente la negacin, la conjuncin y la disyuncin. Si adems ordenamos la
aparicin de estas, de forma que las conjunciones estn lo ms externamente
posible y la negacin en el interior, obtenemos frmulas ms adecuadas para un
tratamiento automtico.

Utilizaremos como base la notacin en forma clausal que siendo ms sencilla que
la notacin vista es igual de poderosa. Cualquier frmula lgica puede ser
normalizada transformndola a forma clausal, que consiste en una coleccin
(conjuncin) de clusulas, donde cada clusula es a su vez una disyuncin de
literales, siendo estos literales frmulas atmicas afirmadas o negadas.

Para transformar a forma clausal partiremos de una frmula bien formada de la


lgica que no tenga variables libres y seguiremos los pasos enumerados en la
figura.

Pgina 20
Deduccin: Natural y Automtica

1. Reducir conectivas lgicas: eliminacin de los implicadores y coimplicadores que


puedan aparecer en la frmula original.

2. Normalizar negadores: interiorizacin de los negadores de manera que cada


negador quede directamente adosado a una frmula atmica.

3. Normalizar variables: si es necesario, renombrar las variables de forma que cada


cuantificador tenga como ndice una variable con nombre distinto (variables distintas,
nombres distintos).

4. Eliminar cuantificadores existenciales: para lo cual utilizaremos las constantes y las


funciones de skolem.

5. Forma prenexa: adelantar los cuantificadores universales a la cabeza de la frmula.

6. Eliminar cuantificadores universales: llegados a este punto, sabemos que todas las
variables que aparecen estn cuantificadas universalmente, por tanto para simplificar
la notacin no escribiremos los smbolos .

7. Exteriorizar conjuntores: distribuir la disyuncin respecto a la conjuncin para dejar


fuera los conjuntores y dentro los disyuntores.

8. Extraer las clusulas: eliminacin de conjunciones (separacin en clusulas) y


obtencin de las distintas clusulas.

9. Normalizar variables: si es necesario, volvemos a renombrar las variables.

Figura 11: Transformacin a forma clausal

4 SISTEMAS DE REFUTACIN

L os sistemas de demostracin automtica estn concebidos para producir


demostraciones por reduccin al absurdo o refutaciones. Esta estrategia ya la
hemos comentado al hablar de la deduccin natural. Enunciado de una manera
ms usual de la demostracin automtica diremos que un sistema de refutacin
sigue los siguientes pasos:
Partimos de un conjunto de frmulas bien formadas C (premisas) a partir
del cual deseamos demostrar cierta fbf objetivo O (conclusin).
Negamos la fbf objetivo (O) y aadimos sta al conjunto de frmulas C
Si encontramos una contradiccin, entonces podemos concluir que la
frmula objetivo O se deduce del conjunto de frmulas C.

Pgina 21
Lgica Computacional y Razonamiento

5 REGLA DE RESOLUCIN

U n hecho primordial en el desarrollo de la demostracin automtica de


teoremas fue el descubrimiento del principio de resolucin por J. Alan
Robinson, que nos dice cmo puede derivarse una nueva proposicin a partir de
otras dos dadas.

Clusulas Padre
{ L, A1, A2, ..., An } { M, B1, B2, ..., Bm }

= UMG(L, M)

{ A1, ..., An, B1, ..., Bm }

Clusula Resolvente

Figura 12: Regla de resolucin

Se basa en la notacin clausal y tiene la caracterstica de encontrar las


contradicciones, lo que la hace especialmente adecuada para hacer
demostraciones aplicando la tcnica de refutacin. Pero ahora vamos a restringir
el tipo de clusulas a utilizar. Trabajaremos nicamente con clusulas de Horn
definidas, es decir, aquellas que tienen como mximo un tomo afirmado. Esto nos
permitir una mejor y ms eficiente implementacin de la comprobacin de
teoremas. Podemos diferenciar los siguientes tipos de clusulas de Horn:
1. Hiptesis o clusulas con un literal no negado, llamadas clusulas con
cabeza, que pueden ser a su vez hechos si no tienen literales negados y
reglas con literales negados.
2. Preguntas o clusulas con ningn literal no negado, llamadas clusulas sin
cabeza o decapitadas.

Hay trabajos demostrando que todo problema resoluble con clusulas generales,
tiene un modelo equivalente resoluble en Clusulas de Horn, por lo que las
restricciones de notacin no conllevan una prdida de capacidad de
representacin, y en cambio, s que facilitan la formulacin. Por tanto la regla de
resolucin quedara:

Pgina 22
Deduccin: Natural y Automtica

Clusulas Padre

A A 1 , ..., A k , ..., A n B B1 , B2 , ..., Bm

= UMG(A k ,B)

A ( A 1 , ..., A k-1 , B1 , ..., Bm, A k+1 , ..., A n )

Clusula Resolvente

Figura 13: Regla de resolucin con clusulas de horn definidas

El resolvente obtenido al aplicar la regla de resolucin no es nico, ya que puede


haber ms de una manera de escoger los literales a unificar (L y M). Adems, la
eleccin de las clusulas padre a resolver de entre el conjunto de clusulas
disponible tampoco es nica. Estas elecciones son importantes y dan lugar a las
estrategias de resolucin. Hay por tanto dos decisiones a tomar al hacer la
resolucin:
1) la seleccin de las clusulas a unificar y
2) la seleccin de los tomos a unificar dentro de esas clusulas.

El punto 1 se conoce como regla de bsqueda y el punto 2 como regla de seleccin.


Vamos en lo que sigue a estudiar qu estrategias utilizaremos en nuestras
demostraciones automticas.

Como ya hemos dicho, a partir de este momento vamos a trabajar nicamente


con clusulas de horn definidas, es decir, aquellas que tienen como mximo un
tomo afirmado. Distintos estudios han demostrado que todo problema
representado en clusulas de horn ser resoluble si tenemos slo una clusula
decapitada, y el resto con cabeza, es decir, si slo existe una pregunta. Esto es
fcil de ver de forma intuitiva:
- Al menos una clusula decapitada: al aplicar el mtodo de resolucin a
dos clusulas de Horn con cabeza, obtenemos como resultado otra clusula con
cabeza, con lo que no podramos derivar la clusula vaca.

clusula con cabeza clusula con cabeza


A A1, ..., Ak, ..., An B B1, B2, ..., Bm

= UMG(Ak,B)

A ( A1, ..., Ak-1, B1, ..., Bm, Ak+1, ..., An )

clusula resolvente con cabeza

Figura 14: Regla de resolucin con clusulas con cabeza

Pgina 23
Lgica Computacional y Razonamiento

- Slo una clusula decapitada: de existir varias clusulas decapitadas,


cualquier prueba por resolucin de una nueva clusula puede ser convertida en
una prueba usando como mucho una de ellas. Al resolver con la primera clusula
decapitada, obtenemos una nueva clusula decapitada, y por tanto no
necesitamos resolver con las otras clusulas decapitadas.

clusula decapitada clusula con cabeza


A1, ..., Ak, ..., An B B1, B2, ..., Bm

= UMG(Ak,B)

( A1, ..., Ak-1, B1, ..., Bm, Ak+1, ..., An )

clusula resolvente decapitada

Figura 15: Regla de resolucin con una clusula decapitada

Basndonos en este resultado definiremos una estrategia de resolucin que


partir de la clusula sin cabeza y trata de resolver clusulas con cabeza con
clusulas objetivo (sin cabeza). Esta estrategia se le conoce como resolucin lineal.

Clusulas Padre
clusula objetivo O clusula con cabeza C
A1, ..., Ak, ..., An B B1, B2, ..., Bm

= UMG(Ak,B)

( A1, ..., Ak-1, B1, ..., Bm, Ak+1, ..., An )

Clusula Resolvente O

Figura 16: Resolucin lineal con clusulas de horn definidas

Como regla de seleccin utilizaremos la de unificar el tomo ms a la izquierda


de la clusula objetivo. As, la regla de resolucin quedara:

Pgina 24
Deduccin: Natural y Automtica

Clusulas Padre
clusula objetivo O clusula con cabeza C
A1, A2,..., An B B1, B2, ..., Bm

= UMG(A1,B)

(B1, ..., Bm, A2, ..., An )

Clusula Resolvente O

Figura 17: Resolucin lineal con clusulas de horn definidas


con eleccin del tomo ms a la izquierda

A este regla la llamamos SLD-Resolucin porque:


- utilizamos clusulas de Horn Definidas
- utilizamos la estrategia de bsqueda Lineal: primero en profundidad
- utilizamos una regla de Seleccin: primero a la izquierda

Al utilizar resolucin lineal el programa lgico estar razonando hacia atrs


desde el objetivo propuesto hasta que encuentre el modo de terminar utilizando
las clusulas del programa, es decir se parte de las metas a conseguir. Este
mtodo de razonamiento se denomina tambin razonamiento dirigido al objetivo.
Esto resultar adecuado para sistemas interrogadores.

Una importante propiedad formal que presenta la resolucin es la de ser de


refutacin completa, es decir, si un conjunto de clusulas no es coherente, la
resolucin podr deducir de ellas la clusula vaca. As, si nuestras clusulas
(programa lgico) son coherentes, slo tenemos que aadirles la negacin de lo
que queremos probar. Si por resolucin deducimos la clusula vaca, nuestro
objetivo quedar probado.

6 PROGRAMACIN LGICA Y PROLOG

E sta eleccin de una estrategia fija (SLD-Resolucin) en el control de la


bsqueda hace que el programador se despreocupe del control y se centre en
la especificacin del problema a resolver. Empleada como un lenguaje para
comunicarse con los ordenadores, la lgica representa un formalismo de nivel
superior y ms orientado a la persona que otros lenguajes de programacin. Toda
esta base terica dio como resultado la aparicin de una clase de lenguajes de
programacin, la programacin lgica.

Pgina 25
Lgica Computacional y Razonamiento

Para poder acercarnos en lo posible a los lenguajes de programacin, a partir de


ahora, para las frmulas lgicas en forma clausal utilizaremos la siguiente
notacin especfica de la programacin lgica (es una notacin ms intuitiva y
cercana a una interpretacin procedimental):
1. Como es una coleccin de clusulas, las escribiremos en secuencia.
Recordemos que el orden es irrelevante ya que se trata de conjunciones
(propiedades asociativa y conmutativa de la conjuncin).
2. Cada clusula es una coleccin (disyuncin) de literales, que son frmulas
atmicas afirmadas o negadas:
- Escribiremos primero las frmulas atmicas no negadas llamadas
cabeza de la clusula, seguidas de las negadas, cuerpo de la clusula,
separados ambos grupos por el smbolo especial (si).
- Las frmulas atmicas no negadas (cabeza de la clusula) irn
separadas por el smbolo ; (o), y las negadas (cuerpo de la clusula)
sern escritas sin el negador () y separadas por el smbolo , (y).

Como la notacin de la programacin lgica es engorrosa para introducir en el


ordenador ya que los smbolos lgicos no aparecen en el teclado, modificaremos
la sintaxis para el lenguaje de programacin prolog:
Las variables se identifican porque empiezan por maysculas.
El smbolo lgico se escribe como :-
El objetivo (pregunta) no forma parte del programa y se introduce
desde la interfaz de prolog.
Las clusulas se separan por punto (.). De esta forma una clusula
puede escribirse en ms de una lnea.

Pgina 26
Deduccin: Natural y Automtica

EJEMPLO

1 FORMALIZACIN

A continuacin vemos un ejemplo que realiza todos los pasos comentados y


que nos ayudar a entenderlos mejor. El sentido comn no dice que el
siguiente argumento es correcto, pero vamos a demostrarlo formalmente.

El marido de la hermana del padre de alguien es su to


Dos personas son hermanos si tienen los mismos padres
Mi padre se llama David
Los padres de David son Eva y Blas
Los padres de Ana son Eva y Blas
Ana est casada con Carlos
Luego, al menos tengo un to

Como paso previo a la demostracin vamos a formalizar el argumento utilizando


el lenguaje de la lgica de primer orden. Para ello emplearemos los siguientes
smbolos:
Predicados:
C(x,y) x (marido) est casado con y (esposa)
H(x,y) x e y son hermanos
P(x,y) x es el padre de y
M(x,y) x es la madre de y
T(x,y) x es el to de y
Constantes:
yo yo
a Ana
b Blas
c Carlos
d David
e Eva

El dominio en el que trabajamos, y por tanto en el que tomarn valores las


variables y al que pertenecen las constantes, es el de las personas: D = {personas}.

Con esta interpretacin para los smbolos, la formalizacin de las frmulas que
forman nuestro argumento quedar:

x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }

Pgina 27
Lgica Computacional y Razonamiento

x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }


P(d,yo)
M(e,d) P(b,d)
M(e,a) P(b,a)
C(c,a)
Luego, x T(x,yo)

Para finalizar con esta introduccin veamos grficamente la estructura de las


frmulas de las dos primeras premisas:

x x

w y

z H(x,y)
y T(x,w)

w
z

P(z,x)
C(x,y)

P(z,y)

H(y,z) P(z,w)
M(w,x) M(w,y)

Figura 18: Estructura sintctica frmulas ejemplo

2 DEDUCCIN NATURAL

1 x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) } Premisa


2 x y { z w [P(z,x)P(z,y)M(w,x)M(w,y)] H(x,y) } Premisa
3 P(d,yo) Premisa
4 M(e,d) P(b,d) Premisa
5 M(e,a) P(b,a) Premisa
6 C(c,a) Premisa
7 w { y z [ C(c,y) H(y,z) P(z,w) ] T(c,w) } EU 1
8 y z [ C(c,y) H(y,z) P(z,yo) ] T(c,yo) EU 7
9 y { z w [ P(z,a) P(z,y) M(w,a) M(w,y) ] H(a,y) } EU 2
10 z w [ P(z,a) P(z,d) M(w,a) M(w,d) ] H(a,d) EU 9
11 M(e,d) P(b,d) M(e,a) P(b,a) IC 4,5

Pgina 28
Deduccin: Natural y Automtica

12 P(b,a) P(b,d) M(e,a) M(e,d) Co 11


13 w [ P(b,a) P(b,d) M(w,a) M(w,d) ] IE 12
14 z w [ P(z,a) P(z,d) M(w,a) M(w,d) ] IE 13
15 H(a,d) MP 10,14
16 C(c,a) H(a,d) IC 6,15
17 C(c,a) H(a,d) P(d,yo) IC 16,3
18 z [ C(c,a) H(a,z) P(z,yo) ] IE 17
19 y z [ C(c,y) H(y,z) P(z,yo) ] IE 18
20 T(c,yo) MP 8,19
21 x T(x,yo) IE 20

3 DEDUCCIN AUTOMTICA

3.1 Refutacin y Forma Clausal

Para aplicar la tcnica de refutacin tomamos las premisas afirmadas y la


conclusin negada, e intentamos encontrar una contradiccin. Para buscar la
contradiccin utilizaremos la regla de resolucin. Por tanto, para poder aplicar la
regla de resolucin, deberemos previamente transformar las frmulas a forma
clausal:

Premisa 1: x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }


1 Eliminar implicadores y coimplicadores:
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
2 Normalizar negadores:
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
3 Normalizar variables:
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
4 Eliminar cuantificadores existenciales:
x w { y z [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
5 Forma prenexa:
x w y z { [ C(x,y) H(y,z) P(z,w) ] T(x,w) }
6 Eliminar cuantificadores universales:
[ C(x,y) H(y,z) P(z,w) ] T(x,w)
7 Poner en FNC:
C(x,y) H(y,z) P(z,w) T(x,w)

Premisa 2: x y { z w [ P(z,x)P(z,y)M(w,x)M(w,y) ] H(x,y) }


1 Eliminar implicadores y coimplicadores:
x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }
2 Normalizar negadores:
x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }
x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }

Pgina 29
Lgica Computacional y Razonamiento

x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }


3 Normalizar variables:
x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }
4 Eliminar cuantificadores existenciales:
x y { z w [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }
5 Forma prenexa:
x y z w { [ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y) }
6 Eliminar cuantificadores universales:
[ P(z,x) P(z,y) M(w,x) M(w,y) ] H(x,y)
7 Poner en FNC:
P(z,x) P(z,y) M(w,x) M(w,y) H(x,y)

Premisa 3: P(d,yo)

Premisa 4: M(e,d) P(b,d)

Premisa 5: M(e,a) P(b,a)

Premisa 6: C(c,a)

Conclusin negada: x T(x,yo)


1 Eliminar implicadores y coimplicadores:
x T(x,yo)
2 Normalizar negadores:
x T(x,yo)
3 Normalizar variables:
x T(x,yo)
4 Eliminar cuantificadores existenciales:
x T(x,yo)
5 Forma prenexa:
x T(x,yo)
6 Eliminar cuantificadores universales:
T(x,yo)
7 Poner en FNC:
T(x,yo)

Por lo que hemos obtenido el siguiente conjunto de clusulas:

C1: C(x1,y1) H(y1,z1) P(z1,w1) T(x1,w1)


C2: P(z2,x2) P(z2,y2) M(w2,x2) M(w2,y2) H(x2,y2)
C3: P(d,yo)
C4: M(e,d)
C5: P(b,d)
C6: M(e,a)
C7: P(b,a)
C8: C(c,a)
C9: T(x3,yo)

Pgina 30
Deduccin: Natural y Automtica

3.2 Regla de Resolucin con Unificacin

Ahora ya podemos aplicar la regla de resolucin a este conjunto de clusulas


para buscar la contradiccin. Tendremos tambin en cuenta el concepto de
unificacin y escribiremos al lado del rbol de refutacin las sustituciones (el
unificador ms general - umg) que utilicemos. Los valores que podrn tomar las
distintas variables estarn en el Universo de Herbrand:
H = {a, b, c, d, e, yo}

Vamos a utilizar la representacin en forma de rbol para visualizar la manera en


que se van obteniendo nuevas clusulas hasta la produccin de la clusula NADA.

rbol de refutacin umg

C(x1,y1) H(y1,z1) P(z1,w1) T(x1,w1) C(c,a) {c/x1, a/y1}

H(a,z1) P(z1,w1) T(c,w1) P(z2,x2) P(z2,y2) M(w2,x2) M(w2,y2) H(x2,y2) {a/x2, y2/z1}

P(y2,w1) T(c,w1) P(z2,a) P(z2,y2) M(w2,a) M(w2,y2) P(d,yo) {d/y2, yo/w1}

T(c,yo) P(z2,a) P(z2,d) M(w2,a) M(w2,d) T(x3,yo) {c/x3}

P(z2,a) P(z2,d) M(w2,a) M(w2,d) P(b,a) {b/z2}

P(b,d) M(w2,a) M(w2,d) P(b,d) {}

M(w2,a) M(w2,d) M(e,a) {e/w2}

M(e,d) M(e,d)
{}

NADA

Figura 19: rbol de refutacin con regla de resolucin

Como hemos derivado la clusula NADA, podemos afirmar que el conjunto de


clusulas es insatisfacible, es decir, que no podemos encontrar ninguna
interpretacin que las haga todas verdaderas al mismo tiempo. Como base de
conocimiento procede de afirmar las premisas y negar la conclusin, lo que
indica es que no se pueden dar premisas ciertas y conclusin falsa, es decir que si
las premisas son verdaderas, la conclusin tambin lo ser. Dicho de otra
manera, que la deduccin es CORRECTA. Adems, la sustitucin que nos ha
permitido derivar la clusula NADA es:
{c/x1, a/y1}{a/x2, y2/z1}{d/y2, yo/w1}{c/x3}{b/z2}{e/w2}=
={c/x1, a/x2, c/x3, a/y1, d/y2, d/z1, b/z2, yo/w1, e/w2}

Pgina 31
Lgica Computacional y Razonamiento

Por tanto, no slo hemos deducido que x T(x,yo), sino que tambin hemos
obtenido un valor para ese alguien (x). Como la variable de la forma clausal que
corresponda era x3, y como el umg nos dice que tenemos que sustituir la x3 por c,
podemos afirmar que c (Carlos) es mi to.

4 PROGRAMACIN LGICA

4.1 Programa Lgico

Utilizando la sintaxis de la programacin lgica (que es ms intuitiva que la


forma clausal) tendremos el siguiente programa lgico:
C1: T(x1,w1) C(x1,y1), H(y1,z1), P(z1,w1)
C2: H(x2,y2) P(z2,x2), P(z2,y2), M(w2,x2), M(w2,y2)
C3: P(d,yo)
C4: M(e,d)
C5: P(b,d)
C6: M(e,a)
C7: P(b,a)
C8: C(c,a)
C9: T(x3,yo)

4.2 SLD-Resolucin
Objetivos Programa Lgico umg

T(x3,yo) T(x1,w1) C(x1,y1), H(y1,z1), P(z1,w1) {x3/x1, yo/w1}

C(x3,y1), H(y1,z1), P(z1,yo) C(c,a) {c/x3, a/y1}

H(a,z1), P(z1,yo) H(x2,y2) P(z2,x2), P(z2,y2), M(w2,x2), M(w2,y2) {a/x2, z1/y2}

P(z2,a), P(z2,z1), M(w2,a), M(w2,z1), P(z1,yo) P(b,a) {b/z2}

P(b,z1), M(w2,a), M(w2,z1), P(z1,yo) P(b,d) {d/z1}

M(w2,a), M(w2,d), P(z1,yo) M(e,a) {e/w2}

M(e,d), P(z1,yo) M(e,d) {}

P(z1,yo) P(d,yo) {d/z1}

NADA

Figura 20: rbol de refutacin programa lgico

Pgina 32
Deduccin: Natural y Automtica

4.3 Prolog

Utilizando la sintaxis del lenguaje de programacin prolog, tendremos la


siguiente base de conocimientos (hechos y reglas):

tio(X1,W1) :-
casados(X1,Y1),
hermanos(Y1,Z1),
padre(Z1,W1).
hermanos(X2,Y2) :-
padre(Z2,X2),
padre(Z2,Y2),
madre(W2,X2),
madre(W2,Y2) .
padre(david,yo).
madre(eva,david).
padre(blas,david).
madre(eva,ana).
padre(blas,ana).
casados(carlos,ana).

Y dada la siguiente pregunta :


?- tio(X,yo).

Prolog respondera:
X=carlos

Figura 21: Base de conocimiento prolog

Pgina 33
Lgica Computacional y Razonamiento

Si activamos la traza de prolog vemos los pasos que ha realizado para obtener la
respuesta:

Figura 22: Traza prolog

Pgina 34
Deduccin: Natural y Automtica

BIBLIOGRAFA

Barwise, J. y Etchemendy, J. (2000). Language, Proof and Logic. Seven Bridges Press / CSLI
Publications, Text / Software Package
Bratko, I. (1990). PROLOG Programming for Artificial Inteligence. 2, Addison-Wesley,
Callear, D. (1994). Prolog Programming for Students. With Expert Systems and Artificial
Intelligence Topics. Continuum,
Clocksin, W. F. y Mellish, C. S. (1987). Programacin en Prolog. Gustavo Gili,
Deransart, P., Ed-Dbali, A., y Cervoni, L. (1996). Prolog: The Standard. Reference Manual.
Springer-Verlag, New York.
Dodd, T. (1990). Prolog. A Logical Approach. Oxford University Press,
Garrido, M. (1991). Lgica Simblica. 2 ed., Editorial Tecnos,
Giannesini, F., Kanoui, H., Pasero, R., y van Caneghem, M. (1989). Prolog. Addison-
Wesley Iberoamericana,
Goldson, D., Reeves, S. y Bornat, R. (1993). A Review of Several Programs for the
Teaching of Logic, The Computer Journal, vol. 36, no. 4, 1993.
Llorens, F. (2001). Sistemas de Razonamiento y Conocimiento Distribuido. Agentes Inteligentes.
Ramn Rizo (director). Doctor Ingeniero (PhD), Tesis Doctoral. Dpto. Ciencia de la
Computacin e Inteligencia Artificial, Universidad de Alicante.
Llorens, F. y Castel, M. J. (1999). Lgica de Primer Orden. 2 edicin, Imprime: Ramn
Torres Goslvez, Alicante. Dpto. Ciencia de la Computacin e Inteligencia Artificial,
Universidad de Alicante
Llorens, F. y Mira, S. (2000a), ADN (Asistente para Deduccin Natural) Natural
Deduction Assistant, en Proceedings of the First International Congress on Tools for
Teaching Logic, Universidad de Salamanca, Cursos Extraordinarios, Salamanca, pp.
65-70.
Llorens, F. y Mira, S. (2000b), Herramienta para la enseanza de la Deduccin Natural, en
VI Jornadas sobre la Enseanza Universitaria de la Informtica, Servicio de Publicaciones,
Universidad de Alcal, Alcal de Henares, pp. 496-502.
Llorens, F. y Mira, S. (2002), ADN: una herramienta para la enseanza de la Deduccin
Natural, en Aportaciones de la Didctica de la Matemtica a diferentes perfiles
profesionales, M. C. Penalva, G. Torregrosa y J. Valls (eds.), Universidad de Alicante,
Alicante, pp. 447-460.
Mira, S. (2000). Asistente para Deduccin Natural (ADN). Faran Llorens (director). PFC
Ingeniero en Informtica. Dpto. Ciencia de la Computacin e Inteligencia Artificial,
Escuela Politcnica Superior, Universidad de Alicante.
Reeves, S. y Clarke, M. (1993). Logic for Computer Science. Reprinted. First printed 1990,
International Computer Science Series, Addison-Wesley Publishing,

Pgina 35
Lgica Computacional y Razonamiento

Socher-Ambrosius, R. y Johann, P. (1997). Deduction Systems. Graduate Texts in Computer


Science, Springer-Verlag, New York.
TTL (June de 2000). First International Congress on Tools for Teaching Logic, June de
2000, University of Salamanca, Spain,
Tymoczko, T. y Henle, J. (2002). Razn, dulce razn. Una gua de campo de la lgica moderna.
Editorial Ariel, Barcelona.

Pgina 36

Vous aimerez peut-être aussi