Sie sind auf Seite 1von 311

Departamento de Ciencias de la Computacion e Inteligencia Artificial

Universidad de Sevilla

Teor computacional (en ACL2) a sobre clculos proposicionales a

Memoria presentada por Francisco Jess Mart Mateos u n para optar al grado de Doctor en Matemticas a por la Universidad de Sevilla

Francisco Jess Mart Mateos u n V. B. Director

D. Jos Antonio Alonso Jimnez e e Sevilla, Junio de 2002

A mis padres ... ... a mis hermanos ... ... y sobre todo, a Inma.

Agradecimientos
El trabajo desarrollado en esta memoria est parcialmente nanciado por los a proyectos TIC2000-1368-C03-02 del Ministerio de Ciencia y Tecnolog y PB96a 1345 del Ministerio de Educacin y Ciencia. o En primer lugar, quiero agradecer a Jos Antonio Alonso Jimnez su direccin, e e o apoyo y comprensin, sin los cules este trabajo no habr sido posible. o a a Al Grupo de Lgica Computacional de la Universidad de Sevilla, cuyas reunioo nes de trabajo han sido fuente de ideas. En especial me gustar dar las gracias a a Jos Luis Ruiz Reina por su ayuda incondicional y a Mar Jos Hidalgo Doblado e a e por sus palabras de nimo. a A los miembros del Departamento de Ciencias de la Computacin e Inteligeno cia Articial de la Universidad de Sevilla, por lo mucho que me aprecian y me aguantan. A J Moore y Matt Kaufmann, creadores del sistema ACL2, por aceptar con agrado cualquier comentario o sugerencia acerca del sistema y por permitirme incluir una copia del mismo junto con la memoria. A mi familia, en especial a mis padres, Asuncin y Manuel, que hace mucho o tiempo depositaron su conanza en mi. Y nalmente a Inma, que siempre est dispuesta a escucharme y animarme. a Sin su apoyo, esta memoria no se habr terminado. a

Indice General
1 Introduccin o 2 El sistema de razonamiento ACL2 2.1 El lenguaje . . . . . . . . . . . . . . . 2.2 La lgica . . . . . . . . . . . . . . . . . o 2.2.1 Ordinales . . . . . . . . . . . . 2.2.2 Relaciones bien fundamentadas 2.2.3 Principio de denicin . . . . . o 2.2.4 Principio de induccin . . . . . o 2.2.5 Encapsulados . . . . . . . . . . 2.2.6 Instanciacin funcional . . . . . o 2.2.7 Equivalencias y Congruencias . 2.3 El demostrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 19 21 22 24 25 26 27 29 30 31 32 35 35 36 37 39 42 43 44 45 46 48 49 50 54 54 56 57 58 60

3 Un modelo formal de la lgica proposicional o 3.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 S mbolos y conectivas . . . . . . . . . . . . . . . 3.1.2 Representacin de las frmulas . . . . . . . . . o o 3.1.3 Frmulas proposicionales . . . . . . . . . . . . . o 3.1.4 Clasicacin de las frmulas . . . . . . . . . . . o o 3.1.5 Teorema de descomposicin unica . . . . . . . . o 3.1.6 S mbolos proposicionales de una frmula . . . . o 3.2 Semntica clsica . . . . . . . . . . . . . . . . . . . . . a a 3.2.1 Asignaciones . . . . . . . . . . . . . . . . . . . . 3.2.2 Funciones de verdad . . . . . . . . . . . . . . . 3.2.3 Valor de una frmula en una asignacin . . . . . o o 3.2.4 Satisfacibilidad, validez y consecuencia lgica . o 3.3 Semntica de Kleene . . . . . . . . . . . . . . . . . . . a 3.3.1 K-asignaciones . . . . . . . . . . . . . . . . . . 3.3.2 Funciones de verdad en K . . . . . . . . . . . . 3.3.3 Valor de una frmula en una K-asignacin . . . o o 3.3.4 Satisfacibilidad, validez y consecuencia lgica en o 3.4 Tablas de verdad . . . . . . . . . . . . . . . . . . . . . i

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . .

ii

Indice General 3.4.1 Asignaciones relevantes de una frmula . . . . . . . . . o 3.4.2 Decisin de validez basada en tablas de verdad . . . . . o 3.4.3 Decisin de satisfacibilidad basada en tablas de verdad o 3.4.4 Tablas de verdad en K . . . . . . . . . . . . . . . . . . Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 63 65 66 69 73 73 74 78 79 79 80 87 89 91 92 93 95 99 103 103 104 110 115 116 117 119 120 125 129 130 131 139 140 144 144 147 151

3.5

4 Clculo de tableros semnticos a a 4.1 Notacin uniforme . . . . . . . . . . . . . . . . . . o 4.1.1 Clasicacin basada en la notacin uniforme o o 4.1.2 Medida asociada a la notacin uniforme . . o 4.1.3 Notacin uniforme en K . . . . . . . . . . . o 4.2 Tableros semnticos . . . . . . . . . . . . . . . . . . a 4.2.1 Tableros semnticos proposicionales . . . . . a 4.2.2 Modelo de una rama: M ODR . . . . . . . . 4.2.3 Correccin y completitud de M ODR . . . . o 4.2.4 Satisfacibilidad por tableros: SATT . . . . . 4.2.5 Demostrabilidad por tableros: DATT . . . . 4.2.6 Deducibilidad por tableros: DEDU CT . . . 4.2.7 Tableros semnticos en K . . . . . . . . . . a 4.3 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

5 Clculo de secuentes a 5.1 Secuentes . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 El clculo G . . . . . . . . . . . . . . . . . . . . a 5.1.2 Contramodelo de un secuente: CON T RAM ODS 5.1.3 Correccin y completitud de CON T RAM ODS . o 5.1.4 Demostrabilidad por secuentes: DATS . . . . . . 5.1.5 Satisfacibilidad por secuentes: SATS . . . . . . . 5.1.6 Deducibilidad por secuentes: DEDU CS . . . . . . 5.1.7 Secuentes en K . . . . . . . . . . . . . . . . . . . 5.2 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

6 Extensiones de ACL2 6.1 Pruebas de terminacin basadas en multiconjuntos . . . . . o 6.1.1 Relaciones bien fundamentadas entre multiconjuntos 6.1.2 El comando defmul . . . . . . . . . . . . . . . . . . . 6.1.3 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Teor genricas . . . . . . . . . . . . . . . . . . . . . . . . as e 6.2.1 Teor genricas en ACL2 . . . . . . . . . . . . . . . as e 6.2.2 Herramienta de instanciacin genrica . . . . . . . . o e 6.2.3 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Indice General 7 Sistemas de transformacin proposicionales o 7.1 Un marco genrico para la decisin de satisfacibilidad . . . . . . . e o 7.1.1 Un algoritmo genrico de decisin de satisfacibilidad: SATG e o 7.1.2 Terminacin de SATG . . . . . . . . . . . . . . . . . . . . . o 7.1.3 Correccin y completitud de SATG . . . . . . . . . . . . . o 7.1.4 Un algoritmo genrico de decisin de validez: DATG . . . . e o 7.1.5 La teor genrica *sat-generico* . . . . . . . . . . . . . a e 7.1.6 Sistemas de transformacin proposicionales en K . . . . . . o 7.2 Un STP exitoso basado en tableros semnticos . . . . . . . . . . . a 7.2.1 Descripcin del STP exitoso T . . . . . . . . . . . . . . . . o 7.2.2 Formalizacin de T . . . . . . . . . . . . . . . . . . . . . . o 7.2.3 Un K-STP exitoso basado en tableros semnticos . . . . . a 7.3 Un STP exitoso basado en secuentes . . . . . . . . . . . . . . . . 7.3.1 Descripcin del STP exitoso S . . . . . . . . . . . . . . . . o 7.3.2 Formalizacin de S . . . . . . . . . . . . . . . . . . . . . . o 7.3.3 Un K-STP exitoso basado en secuentes . . . . . . . . . . . 7.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Procedimiento de Davis y Putnam 8.1 Clusulas y formas clausales . . . . . . . . . . . . . . . . . . a 8.1.1 Sintaxis y semntica . . . . . . . . . . . . . . . . . . a 8.1.2 Transformacin a forma clausal: FC . . . . . . . . . o 8.1.3 Clusulas y formas clausales en K . . . . . . . . . . . a 8.2 Davis y Putnam . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Transformaciones de formas clausales . . . . . . . . . 8.2.2 Decisin de satisfacibilidad por bifurcacin: SATB . . o o 8.2.3 Decisin de satisfacibilidad por Davis-Putnam: SATD o 8.2.4 Procedimiento de Davis y Putnam en K . . . . . . . 8.3 Un STP exitoso basado en Davis-Putnam . . . . . . . . . . . 8.3.1 Descripcin del STP exitoso D . . . . . . . . . . . . o 8.3.2 Formalizacin de D . . . . . . . . . . . . . . . . . . o 8.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii 155 156 156 162 163 165 165 166 168 168 170 176 176 177 179 184 185 189 190 190 195 203 205 206 215 220 225 227 228 230 236 241 242 242 248 252 255 258 259 263 271

9 Resolucin o 9.1 Resolucin condicionada . . . . . . . . . . . . . . . . . . . . . o 9.1.1 Conjuntos saturados por resolucin condicionada . . . o 9.1.2 Decisin de insatisfacibilidad por saturacin: IN SATR o o 9.1.3 Terminacin de IN SATR . . . . . . . . . . . . . . . . . o 9.1.4 Correccin de IN SATR y otras propiedades . . . . . . o 9.2 Teorema de completitud de Bezem . . . . . . . . . . . . . . . 9.2.1 Conjuntos representantes . . . . . . . . . . . . . . . . . 9.2.2 Modelo de un conjunto saturado por resolucin . . . . o 9.2.3 Completitud de IN SATR . . . . . . . . . . . . . . . .

iv Teor genrica e instancias . . . . . . . a e 9.3.1 La teor genrica *resolucion* a e 9.3.2 Instancias . . . . . . . . . . . . . 9.4 Ejemplos . . . . . . . . . . . . . . . . . . 10 Conclusiones Bibliograf a Glosario 9.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Indice General . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 272 272 282 285 297 298

Cap tulo 1 Introduccin o


Uno de los primeros objetivos de la Inteligencia Articial, es el de desarrollar un sistema informtico capaz de demostrar teoremas correspondientes a problemas a abiertos en matemticas. Esta idea es el punto de partida para el desarrollo de uno a de los campos de investigacin ms activos dentro de la Inteligencia Articial: el o a Razonamiento Automtico. La denicin que da Larry Wos [85] sobre este campo a o es la siguiente: Automated reasoning is concerned with the study of using the computer to assist in that part of problem solving requiring reasoning. Some questions arisinq during the study concern the representation of knowledge, the rules for deriving new knowledge frow that which is given, and strategies for controling the rules. Other questions concern the implementation of the resulting theory and concern various applications for which the corresponding software can be used. Theory, implementation, and application play equally vital and interconnecting roles for automated reasoning in its attempt to reach one of its primary goals the goal of providing an automated reasoning assistant. Los primeros trabajos en este campo utilizaban las lgicas clsicas (proposicioo a nal y de primer orden) como lenguaje para formalizar los problemas. As en los , aos 60 aparecen el procedimiento de Davis y Putnam [19] y los sistemas basados n en la regla de resolucin de Robinson [65]. En ambas aproximaciones los proo blemas se formalizan utilizando clusulas. El procedimiento de Davis y Putnam a utiliza unas reglas que van construyendo un modelo del conjunto de clusulas, a reduciendo el problema hasta hacerlo trivial. Por otro lado, la regla de resolucin o de Robinson es una regla de inferencia que deriva nuevas clusulas combinando a un algoritmo de unicacin y una generalizacin de la regla de modus ponens. De o o esta forma, si la clusula vac es generada, se puede armar que el conjunto de a a clusulas inicial es inconsistente y, por tanto, no tiene modelos. a 1

Cap tulo 1. Introduccin o

El trabajo en este tipo de sistemas se centra en tres aspectos, la bsqueda de u nuevas reglas de inferencia, la mejora de las estrategias de aplicacin de las reglas o y el diseo de implementaciones ecientes. En lo que respecta a los sistemas n basados en resolucin, el ms extendido es Otter [56]. Es necesario observar o a que con el sistema EQP, una variante de Otter, se ha demostrado con xito la e conjetura de Robbins, un problema abierto en matemticas [55]. Los sistemas a basados en el procedimiento de Davis y Putnam se encuentran entre los ms a ecientes para la lgica proposicional. En este caso, destacamos que con uno de o ellos, SATO [88], se han conseguido demostrar problemas abiertos en el estudio de quasigrupos [87]. Este tipo de sistemas resultan insucientes para abordar problemas de mayor complejidad, como la formalizacin de sistemas lgicos (por ejemplo hardware y o o software informtico) y la vericacin de sus propiedades. Para algunas de estas a o aplicaciones es necesario utilizar otras lgicas, distintas de la proposicional o de o primer orden, que proporcionen mayor expresividad: lgicas de orden superior, o modales, inductivas, constructivas, etc. Aunque la expresividad de estas lgicas es superior a la de la lgica de prio o mer orden, la dicultad de automatizar el proceso de deduccin es mayor. Este o hecho hace que los sistemas de razonamiento basados en estas lgicas sean ms o a interactivos que automticos. Si en un extremo se encuentran los sistemas totala mente automticos, como Otter o SATO, en el otro se encuentran los denominaa dos comprobadores de pruebas, cuyo objetivo es comprobar la validez de una prueba proporcionada por el usuario. En un punto intermedio entre automatismo e interactividad se encuentran los sistemas que siguen el estilo LCF [31], en el que las pruebas se construyen con un pequeo ncleo de reglas de inferencia y el usuario puede construir tcticas que n u a automatizan la aplicacin de secuencias de estas reglas. El uso de estas tcticas o a simplica el proceso de deduccin. o Cuando se utiliza un sistema de razonamiento automtico para formalizar un a sistema, es deseable que se pueda ejecutar el modelo formal del mismo. Esto incrementa la conanza en que el modelo construido se ajusta al sistema real. En algunos sistemas esto no es posible. En los basados en una lgica constructiva, se o pueden extraer programas ejecutables a partir de las pruebas desarrolladas. En otros, como ACL2, el lenguaje de la lgica es un lenguaje de programacin que o o permite ejecutar los modelos construidos an sin haber demostrado sus propieu dades. En [81] se puede encontrar una amplia relacin de sistemas de razonamiento o automtico en la que se indican sus principales caracter a sticas. El sistema ACL2 ACL2 es, segn la descripcin dada en [81], un demostrador automtico de u o a teoremas dirigido por un conjunto de reglas, construido de forma incremental

McCarthys Theory of Computation Edinburgh Pure Lisp Theorem Prover A Computational Logic NQTHM ACL2
1960 Boyer Moore Kaufmann 1970 1980 1990 2000

Figura 1.1: Evolucin del demostrador ACL2 o

mediante la demostracin de teoremas por parte del usuario. Incluye procedio mientos espec cos de decisin para lgica proposicional, igualdad y aritmtica o o e lineal, as como heur sticas de reescritura basada en congruencias, eliminacin o de destructores, generalizacin e induccin. El sistema ACL2 es un sucesor del o o demostrador de teoremas de Boyer y Moore, Nqthm [13] y su versin interactiva o 1 Pc-Nqthm [43]. La gura 1.1 muestra la evolucin del sistema desde el punto de o vista de uno de sus autores, J Moore. El demostrador de teoremas de Boyer y Moore fue construido en 1971 en Edimburgo. Originalmente ste era un demostrador de teoremas completamente e automtico para una lgica basada en un dialecto de Lisp. Las ideas clave de a o este demostrador eran: el uso de Lisp como lgica base, un principio de denicin o o para funciones recursivas totales, un uso extensivo de reescritura y evaluacin o simblica y una regla de induccin heur o o stica. El diseo de este sistema fue n fuertemente inuenciado por John McCarthy [54] y Woody Bledsoe. A lo largo del tiempo el demostrador fue evolucionando e incorporando nuevas funcionalidades. Un cambio clave en la historia del mismo fu la incorporacin e o en 1974 de un sistema de simplicacin, que hac uso de reglas de reescritura o a derivadas de teoremas demostrados por el usuario. Entonces el sistema dej de o ser completamente automtico, ya que un usuario experimentado pod guiarlo a a hacia la demostracin de un teorema complicado mediante la seleccin de un o o conjunto adecuado de lemas previos. En 1979 los autores del demostrador, Robert Boyer y J Stroother Moore, publican el libro A Computational Logic [11] en el que describen las tcnicas que e el demostrador emplea. En 1981 Boyer y Moore desarrollan Nqthm. Este es un sucesor del demostrador ideado en Edimburgo, que dispone de nuevos tipos de
Este gura esta tomada de las transparencias de la conferencia Machines Reasoning about Machines, que se pueden encontrar en la pgina personal de J Moore, a http://www.cs.utexas.edu/users/moore/publications/index.html
1

Cap tulo 1. Introduccin o

reglas mediante los que el usuario pod controlar el comportamiento del sistema, a as como de un procedimiento de decisin para la aritmtica lineal. En 1987 Matt o e Kaufmann implementa Pc-Nqthm proporcionando a Nqthm un sistema interactivo de comprobacin de pruebas. o En 1989, Boyer y Moore escriben la primera versin de ACL2, con la idea de o construir una lgica que permitiera razonar sobre un subconjunto aplicativo de o Common Lisp. Una de sus principales novedades es que las funciones denidas en la lgica pueden ser ejecutadas ecientemente en cualquier implementacin de o o Common Lisp. En 1990 se aade la instanciacin funcional como una regla de n o inferencia derivada, proporcionando a la lgica del demostrador caracter o sticas de orden superior [10]. Con el tiempo, Matt Kaufmann se involucra en el proyecto ACL2 y la dedicacin de Boyer decrece, hasta que ste decide dejar de ser considerado coautor o e del sistema. En la actualidad, la ultima versin de ACL2 es la 2.6 y puede ser o considerado una obra de J Moore y Matt Kaufmann, nutrindose de las ideas de e un numeroso grupo de usuarios. Clculos proposicionales a La lgica proposicional y los clculos proposicionales han sido objeto de estudio o a desde hace mucho tiempo. Por un lado, el problema de la satisfacibilidad proposicional fu el primer problema NP-completo conocido [17] de ah el gran inters e e en resolverlo de manera eciente. En la prctica este problema es fundamental a en la resolucin de muchos problemas que aparecen en razonamiento automtico, o a diseo asistido por ordenador, bases de datos, robtica, diseo de circuitos inten o n grados, etc. Un anlisis detallado de las distintas aproximaciones para resolver a el problema y sus aplicaciones se puede encontrar en [32]. En este sentido se han realizado algunos trabajos sobre formalizacin y vericacin de propiedades de o o algoritmos concretos para resolver el problema de satisfacibilidad, [33]. Por otro lado, los trabajos en lgica proposicional son punto de referencia para o resolver problemas similares en otras lgicas [25], [24]. En este sentido Caldwell o [15] realiza una formalizacin de un clculo de secuentes para la lgica proposicioo a o nal intuicionista, partiendo de un desarrollo similar para la lgica proposicional o clsica. Adems, ciertos resultados en lgica de primer orden se obtienen gracias a a o a un lema de ascenso que los relaciona con resultados similares en la lgica o proposicional. En esta memoria presentamos un modelo formal de la lgica proposicional, o formalizando algunos de los clculos proposicionales ms conocidos, para los cuaa a les se desarrollan y verican procedimientos de decisin de satisfacibilidad. Este o desarrollo es punto de partida para realizar modelos formales de otras lgicas. o Por otro lado, como indica Shankar en [74], el uso combinado de pequeos den mostradores especializados puede ser un pilar importante en el futuro del razonamiento automtico. En este trabajo formalizamos y vericamos las propiedades a

5 de correccin y completitud de algunos de estos demostradores para la lgica o o proposicional. Un modelo formal de la lgica proposicional o El punto de partida para el desarrollo de esta memoria es la formalizacin en o ACL2 de la lgica proposicional clsica. Las principales decisiones de diseo que o a n tomamos son las relativas a la representacin de las frmulas. De hecho no es o o tan importante la representacin de las mismas como el conjunto de propiedades o que tiene que vericar dicha representacin. Esta representacin se trata como o o un tipo abstracto de dato denido mediante un conjunto de funciones de acceso y constructoras, caracterizadas por un conjunto de propiedades que las relacionan. De esta forma la representacin se puede modicar para ajustarse a distintas o situaciones siempre y cuando el conjunto de propiedades que la caracteriza se mantenga. Para representar las frmulas utilizamos listas en notacin preja. Es decir, el o o primer elemento de estas listas es la conectiva principal de la frmula y los restano tes son las subfrmulas componentes. Las conectivas consideradas son negacin, o o conjuncin, disyuncin, implicacin y equivalencia. Los s o o o mbolos proposicionales estn representados mediante s a mbolos del sistema o nmeros enteros positivos. u Esto ultimo fue aadido para poder generar fcilmente frmulas dependientes n a o de un parmetro, como las frmulas de Urquhart [83] o las que representan el a o problema de las 8 reinas [62]. Al igual que sta, se han hecho a posteriori otras e modicaciones en la representacin para ajustarla a conjuntos de ejemplos diso ponibles en internet (IFIP2 , DIMACS3 [82], etc). En estas situaciones slo ha sido o necesario comprobar las propiedades que caracterizan la representacin, siendo o igual el desarrollo de los clculos lgicos. a o En lo que a la semntica se reere, la principal dicultad aparece con la a representacin de las asignaciones. Una asignacin es una funcin del conjunto o o o de s mbolos proposicionales en el conjunto de valores de verdad, por tanto, se trata de un objeto innito. Una posibilidad de representar las asignaciones es mediante funciones del lenguaje. Esta opcin diculta el uso de las asignaciones como o argumento en otras funciones, por ejemplo para calcular el valor de verdad de una frmula, o para expresar propiedades, por ejemplo para armar que una frmula o o es vlida. No descartamos completamente esta posibilidad, aunque queda fuera a de los objetivos de esta memoria ya que supondr profundizar en la capacidad a de ACL2 para formalizar resultados de orden superior. Una posibilidad ms asequible de representar las asignaciones es la utilizacin a o de listas de asociacin. Una lista de asociacin es una lista de pares en los que o o se relacionan los s mbolos de la lgica con el valor de verdad que se les asigna. o Una restriccin debida a este tipo de representacin es que, al tratarse de un o o
2 3

Disponibles en la pgina de Fabio Massacci: http://www.ing.unitn.it/~massacci/. a Disponibles en http://www.intellektik.informatik.tu-darmstadt.de/SATLIB/.

Cap tulo 1. Introduccin o

objeto nito, expl citamente slo se puede hacer corresponder un valor de verdad o a un conjunto nito de s mbolos proposicionales. Sin embargo, esta restriccin o no limita el modelo formal construido, ya que el valor de verdad de una frmula o depende de los valores de verdad de los s mbolos proposicionales que en ella aparecen, y ste es un conjunto nito. Por otro lado tendremos que decidir e qu valor de verdad le corresponde por defecto a aquellos s e mbolos que no se encuentran en la lista de asociacin que representa una asignacin. o o En esta memoria se han considerado dos opciones a la hora de hacer corresponder un valor de verdad por defecto a los s mbolos que no aparecen en la representacin de una asignacin. En la primera opcin, este valor es falso. De o o o esta forma la semntica que se obtiene es la clsica. Una segunda opcin es ina a o determinado, dando lugar a una formalizacin de la semntica trivalorada fuerte o a de Kleene. En esta ultima se hace expl cito el hecho de que se puede determinar el valor de verdad de una frmula, sin necesidad de conocer los valores de verdad o de todos los s mbolos proposicionales que en ella aparecen. Por ejemplo, si el valor de verdad del s mbolo p es cierto entonces no necesitamos saber el valor de verdad del s mbolo q para armar que la frmula p q es cierta. De hecho, si en o la semntica de Kleene se dene el concepto de validez con respecto a los valores a cierto e indeterminado, el resultado es homomrco a la semntica clsica, es o a a decir, tiene el mismo conjunto de frmulas vlidas. o a Hemos vericado las propiedades de completitud y correccin de los clculos o a lgicos desarrollados en esta memoria tanto en la semntica clsica como en la o a a semntica de Kleene. Las formalizaciones obtenidas son bastante similares. De a esta forma, presentamos en detalle las correspondientes a la semntica clsica e ina a dicamos las principales diferencias que aparecen cuando se considera la semntica a de Kleene. Tableros semnticos y secuentes a Una vez realizado el modelo formal de la lgica proposicional, hemos formalizado o algunos clculos bien conocidos en dicho modelo. El objetivo es demostrar que a los algoritmos basados en estos clculos son correctos y completos. a El primer clculo lgico que consideramos es el basado en tableros semnticos, a o a para el que hemos seguido la descripcin que se da en [26]. Un tablero semntico o a es un rbol cuyos nodos estn etiquetados con frmulas. Las ramas de un tablero a a o se interpretan como la conjuncin de todas las frmulas que etiquetan sus nodos. o o De esta forma, cuando en una rama hay una frmula que se comporta como la o conjuncin de otras dos, la rama se puede expandir aadindole estas compoo n e nentes y preservando el conjunto de modelos de la misma. El propio tablero se interpreta como la disyuncin de todas sus ramas. De esta forma, cuando en una o rama hay una frmula que se comporta como la disyuncin de dos componeno o tes, podemos aadir una bifurcacin en dicha rama, aadiendo cada una de las n o n dos componentes a una de las ramas de la bifurcacin. Si en una rama apareo

7 cen frmulas complementarias entonces ni ella ni las que se obtengan a partir de o ella tendrn modelos. Este proceso de expansin de las ramas se realiza hasta a o que en todas aparezcan frmulas complementarias o hasta obtener una rama sin o frmulas complementarias en la que el procedimiento de expansin descrito no o o genere nuevos nodos. La terminacin de este proceso queda asegurada pues en o cada paso quedan menos frmulas por expandir en las distintas ramas del tablero. o El resultado de correccin de un procedimiento de decisin de satisfacibilidad o o consiste en demostrar que si el procedimiento tiene xito al ser evaluado sobre e una frmula, entonces esta frmula tiene al menos un modelo. La manera de o o expresar este tipo de resultados en ACL2 es proporcionando expl citamente dicho modelo. En el clculo de tableros semnticos este modelo se obtiene a partir de a a una rama sin frmulas complementarias en la que el procedimiento de expansin o o no genere nuevos nodos. En este caso cualquier asignacin en la que los literales o de dicha rama sean ciertos es modelo de dicha rama y, por las propiedades de las reglas de expansin, modelo de la frmula original. o o Este proceso se ha formalizado dando lugar a procedimientos de decisin de o validez, satisfacibilidad y consecuencia lgica. Para estos procedimientos se han o demostrado resultados de correccin y completitud tanto en la semntica clsica o a a como en la semntica de Kleene. La formalizacin realizada es genrica en cierto a o e sentido, ya que se ha considerado la existencia de una funcin, sin proporcionarla o de forma expl cita, que selecciona la frmula a expandir en cada paso. De esta o forma, hemos construido toda una familia de procedimientos de decisin basados o en tableros semnticos y hemos demostrado la correccin y completitud de todos a o los elementos de esta familia. A continuacin presentamos el clculo de secuentes G de G. Gentzen [29]. o a Los secuentes son pares de listas de frmulas entre las que hay una relacin de o o consecuencia: la conjuncin de todas las frmulas del primer elemento del par (o o o o o parte izquierda) implica la disyuncin de todas las frmulas del segundo elemento del par (o parte derecha). Este clculo consta de un conjunto de axiomas y un a conjunto de reglas de inferencia. En el proceso para determinar la validez de una frmula, las reglas de inferencia del clculo G se utilizan hacia atrs, es decir, o a a se obtienen las premisas a partir de la conclusin de las reglas. De esta forma, a o partir del secuente que representa a una frmula se obtienen las premisas de una o regla de inferencia que tiene a dicho secuente en la conclusin. Las caracter o sticas de las reglas de inferencia nos aseguran que si todas las premisas son vlidas a entonces la conclusin tambin lo es. Para los secuentes obtenidos se vuelve o e a aplicar el mismo proceso, de forma que en todo momento se considera un conjunto de premisas tal que la validez de todas ellas implica la validez de la frmula original. El proceso continua hasta que todos los secuentes que estemos o considerando sean axiomas del clculo G , que son secuentes vlidos o se obtenga a a uno que no sea un axioma ni se pueda obtener como consecuencia de aplicar una regla de inferencia. La terminacin de este proceso queda asegurada pues las o premisas de una regla son menos complejas que la conclusin, es decir, en cada o

Cap tulo 1. Introduccin o

paso estamos considerando un conjunto de premisas ms simples (aunque quiz a a haya mayor cantidad de ellas). El clculo de secuentes utiliza un conjunto de reglas de expansin que presera o van la validez. De esta forma, si el proceso tiene xito asegura la validez de la e frmula original y si falla, indica que la frmula original es insatisfacible. En este o o caso se puede construir un contramodelo de dicha frmula a partir del secuente o que provoca el fallo en el proceso. Cualquier asignacin que sea modelo de todos o los literales de su parte izquierda y no lo sea de los literales de la parte derecha es contramodelo de dicho secuente y, por las propiedades de las reglas de inferencia, tambin es contramodelo de la frmula original. e o Al igual que para el clculo basado en tableros semnticos, este proceso se ha a a formalizado dando lugar a procedimientos de decisin de validez, satisfacibilidad o y consecuencia lgica, para los que se han demostrado resultados de correccin o o y completitud tanto en la semntica clsica como en la de Kleene. La formalizaa a cin realizada tambin es genrica en el mismo sentido que la realizada para el o e e clculo de tableros semnticos. Se ha considerado la existencia de una funcin, a a o sin proporcionarla de forma expl cita, que selecciona la regla a aplicar en cada paso. Por tanto, en este caso tambin hemos construido y vericado formalmente e una familia de procedimientos de decisin basados en el clculo de secuentes. o a Sistemas de transformacin proposicionales o Los dos clculos presentados tienen un patrn de comportamiento comn. Estos a o u mtodos no trabajan directamente con frmulas sino con unos objetos construie o dos a partir de ellas (ramas de un tablero semntico o secuentes). Los objetos se a modican repetidamente usando unas reglas de expansin que reducen su como plejidad. Estas reglas preservan el signicado de los objetos. Eventualmente, a partir de cierto tipo de objetos simples se pueden obtener asignaciones que prueban la satisfacibilidad de la frmula original. A estas asignaciones las llamaremos o asignaciones distinguidas. Si no se encuentra ninguno de estos objetos simples entonces la frmula original es insatisfacible. o Este patrn comn se formaliza en lo que llamamos sistemas de transformao u cin proposicionales o STP. Estos son ternas formadas por un conjunto de los o objetos proposicionales construidos a partir de las frmulas, un conjunto de reglas o o de expansin, que indican cmo modicar un objeto para obtener una lista de o componentes, y una relacin entre los objetos proposicionales y las asignaciones, o que establece qu asignaciones son distinguidas para cada uno de los objetos. En e el conjunto de reglas de expansin pueden existir reglas en las que la lista de o componentes sea vac y reglas que modiquen un objeto para obtener el s a mbolo t. Las primeras son reglas que sirven para eliminar objetos a partir de los cuales es imposible obtener una asignacin distinguida. Las segundas sirven para o indicar que a partir de determinados objetos se puede obtener una asignacin o distinguida.

9 Para asegurar que, a partir de un STP, se puede construir un procedimiento de decisin de satisfacibilidad, tenemos que exigirle ciertas propiedades. Por un o o lado, tenemos que disponer de una funcin de representacion mediante la cual se pueda construir un objeto proposicional asociado a una frmula, tal que las o asignaciones distinguidas de dicho objeto sean los modelos de la frmula. Este o objeto ser transformado usando las reglas de expansin, as que tenemos que a o asegurarnos de que hay una forma de utilizar dichas reglas de expansin (a lo que o llamaremos una regla de computacin), tal que las asignaciones distinguidas del o objeto sean tambin asignaciones distinguidas de alguna de sus componentes. De e esta forma, las reglas de expansin en las que la lista de componentes es vac o a sirven para identicar objetos que no tienen asignaciones distinguidas. Tambin e es necesario asegurar que aquellos objetos que la regla de computacin transforma o en el s mbolo t, tienen una asignacin distinguida y, para poder utilizar dicha o asignacin en los resultados de correccin del procedimiento, esta asignacin viene o o o proporcionada por una funcin modelo. o En esta situacin podemos denir un procedimiento genrico para decidir la o e satisfacibilidad de una frmula. El primer paso consiste en considerar la lista o formada por el resultado de aplicar la funcin de representacin a dicha frmula. o o o A continuacin, y de forma repetitiva, se considera un objeto de dicha lista y o se le aplica la regla de computacin obteniendo las componentes resultado de o utilizar cierta regla de expansin. Si se obtiene el s o mbolo t, el proceso termina con xito, la frmula original es satisfacible y un modelo se obtiene aplicando e o la funcin modelo sobre el ultimo objeto considerado. Si se obtiene una lista o de componentes, el proceso continua con el resultado de reemplazar el objeto considerado por estas componentes. Si, tras iterar este procedimiento, se obtiene la lista de objetos vac entonces la frmula original es insatisfacible. a, o Para formalizar este procedimiento en ACL2 se ha de asumir la existencia de funciones que describen el STP, una funcin de representacin, una regla o o de computacin y una funcin modelo, con las propiedades que hemos descrito. o o Sin embargo, existe una dicultad adicional relacionada con la terminacin del o procedimiento: se trabaja con una lista de objetos que, como resultado de aplicar ciertas reglas de expansin, aumenta su tamao en algunas iteraciones. o n Para demostrar la terminacin de un proceso recursivo en ACL2, tenemos que o proporcionar una medida de los argumentos y una relacin bien fundamentada, o denida sobre los valores obtenidos por dicha medida, de forma que, la medida de los argumentos en cada una de las llamadas recursivas sea menor, con respecto a la relacin bien fundamentada, que la medida de los argumentos originales. o En nuestro caso el unico argumento del proceso recursivo es una lista de objetos proposicionales, para los que sabemos que las reglas de expansin reducen su o complejidad. De esta forma, en cada paso se toma un objeto de dicha lista y se sustituye por varios de menor complejidad. Por tanto, se puede armar que la lista de objetos disminuye en cierto modo. Hemos construido una herramienta ACL2 para extender una relacin bien o

10

Cap tulo 1. Introduccin o

fundamentada, denida sobre los valores obtenidos por cierta medida, a multiconjuntos (es decir conjuntos con repeticiones) de estas medidas, de forma que la relacin resultante tambin es bien fundamentada. Esta herramienta se puede o e utilizar para demostrar la terminacin del proceso de decisin de satisfacibilidad o o asociado a un STP. Para ello basta con proporcionar una funcin de medida de o los objetos proposicionales, tal que, para toda regla de expansin, la medida de o las componentes obtenidas sea ms pequea que la medida del objeto al que se a n aplica dicha regla. Para poder reutilizar el trabajo realizado en la formalizacin de un STP o genrico y obtener procedimientos de decisin de satisfacibilidad basados en el e o clculo de tableros semnticos o en el de secuentes, se puede utilizar el proceso de a a instanciacin funcional del que dispone ACL2. Con este proceso, si se ha demoso trado un resultado para determinadas funciones con ciertas propiedades, se puede obtener de forma inmediata el mismo resultado para otras funciones siempre y cuando cumplan las mismas propiedades. Hemos construido otra herramienta ACL2 para automatizar este proceso. As conseguimos versiones concretas , del desarrollo realizado para un STP genrico, proporcionando las funciones que e describen el caso concreto y demostrando las propiedades m nimas que hay que exigir a un STP para poder realizar dicho desarrollo. Todo el desarrollo de los STP, su formalizacin, la construccin de procedio o mientos de decisin de satisfacibilidad y validez asociados y la demostracin de o o los resultados de correccin y completitud de los mismos, se ha realizado con xito o e tanto en la semntica clsica como en la de Kleene. Tambin se han construido a a e STP basados en el clculo de tableros semnticos y en el de secuentes obteniendo, a a a partir del desarrollo realizado para un STP genrico, procedimientos vericados e de decisin de satisfacibilidad y validez basados en estos dos clculos. o a El procedimiento de Davis y Putnam Presentamos a continuacin una formalizacin del procedimiento de Davis y Puto o nam para comprobar la satisfacibilidad de un conjunto de clusulas o forma a clausal. Previamente formalizamos la sintaxis y semntica de las clusulas y las a a formas clausales y proporcionamos un procedimiento que transforma una frmula o en una forma clausal lgicamente equivalente. Este procedimiento sirve para cao racterizar las frmulas vlidas, es por esto que no desarrollamos procesos de o a decisin de validez basados en el procedimiento de Davis y Putnam (ni tampoco o lo hacemos para resolucin). o El procedimiento de Davis y Putnam va construyendo un modelo de una forma clausal, considerando en cada paso que un determinado literal es cierto. La forma clausal se reduce en cada paso eliminando aquellas clusulas en las que aparece a el literal considerado cierto (pues ya son ciertas) y eliminando las ocurrencias del complementario de dicho literal (pues son falsas). Si en algn momento se u obtiene la clusula vac entonces la forma clausal original es insatisfacible. Si el a a

11 proceso termina con la lista vac de clusulas entonces la forma clausal original a a es satisfacible y se puede obtener un modelo a partir de los literales que se han considerado ciertos en el proceso de reduccin de la misma. Obviamente, para o cada literal considerado en cada paso existen dos posibilidades, que dicho literal sea cierto o que lo sea su complementario. La clave del procedimiento de Davis y Putnam consiste en identicar aquellos literales para los que slo es necesario o analizar una de las dos posibilidades. Sin embargo, en algunas ocasiones no existir ninguno de estos literales y ser necesario tomar uno cualquiera para a a considerar las dos opciones. Hemos formalizado este procedimiento de forma genrica. Se ha considerado e una funcin que selecciona un literal en cada paso, dando prioridad a aquellos o que no bifurcan el proceso frente a los que s lo hacen. De esta forma se pueden utilizar distintas heur sticas de seleccin de un literal. Hemos demostrado que el o procedimiento obtenido tiene las propiedades de correccin y completitud tanto o en la semntica clsica como en la de Kleene. Tambin hemos construido un a a e STP basado en el procedimiento de Davis y Putnam, obteniendo procedimientos vericados de decisin de satisfacibilidad y validez como versiones concretas del o desarrollo realizado para un STP genrico. e Procedimientos basados en resolucin o El ultimo de los clculos proposicionales formalizados es el que proporciona la re a gla de resolucin de Robinson. Esta regla acta sobre dos clusulas y obtiene una o u a tercera, llamada resolvente, que es consecuencia lgica de las iniciales. Los proo cedimientos basados en resolucin generan todas las resolventes posibles a partir o de un conjunto de clusulas, hasta obtener un conjunto saturado por resolucin, a o es decir, tal que cualquier resolvente entre dos elementos de dicho conjunto ya se encuentra en el mismo. Si en este proceso aparece la clusula vac entonces el a a, conjunto de clusulas original es insatisfacible. Si el conjunto saturado por rea solucin no contiene la clusula vac entonces el conjunto de clusulas original o a a, a es satisfacible. Hemos utilizado este proceso para construir un procedimiento de decisin de insatisfacibilidad de un conjunto de clusulas. o a Existe distintas variantes de la regla de resolucin de Robinson que dan lugar a o renamientos del proceso de resolucin. Estas variantes consisten en comprobar o determinada propiedad sobre dos clusulas antes de generar su resolvente. A este a proceso lo llamamos resolucin condicionada. Nuestra formalizacin es general o o en el sentido de que se asume la existencia de tal propiedad y se desarrolla un procedimiento basado en resolucin condicionada del que se pueden obtener como o versiones concretas los distintos renamientos del proceso de resolucin. o Es relativamente fcil demostrar que el procedimiento de decisin de insaa o tisfacibilidad basado en resolucin condicionada es correcto. Sin embargo, la o demostracin de la propiedad de completitud se complica debido a la generalidad o que se ha incorporado al proceso. La formalizacin de la misma se basa en la deo

12

Cap tulo 1. Introduccin o

mostracin de Bezem de la completitud de la resolucin condicionada [8]: a partir o o de una asignacin, relacionada en cierta forma con la condicin de resolucin, se o o o construye otra que es modelo de un conjunto de clusulas saturado por resolucin a o condicionada. La formalizacin que presentamos es la unica automatizacin que o o conocemos de dicha prueba. Puesto que el desarrollo del procedimiento de decisin de insatisfacibilidad o basado en resolucin condicionada se ha realizado de forma genrica, utilizando o e las herramientas desarrolladas para tal n, se pueden obtener versiones concretas y vericadas de dicho procedimiento para distintos renamientos de resolucin, o siempre que se proporcionen la condicin que describe el renamiento y la asigo nacin asociada necesaria para la prueba del resultado de completitud. De esta o forma hemos desarrollado procedimientos de decisin de insatisfacibilidad basao dos en resolucin binaria, positiva, negativa, semntica y con conjunto soporte. o a Observaciones sobre el contenido de la memoria Los cap tulos de esta memoria estn escritos para poder ser leidos sin necesidad a de tener un amplio conocimiento de Lisp o del sistema ACL2. Tras la denicin o de cada concepto se incluye su formalizacin en el sistema. De la misma forma, o tras el enunciado de todo teorema se describe de forma matemtica su prueba y a despus se presenta su formalizacin. Todas las formalizaciones estn incluidas e o a en cajas enumeradas a las que se hace referencia de la forma 143 . Al nal de la memoria hay un glosario de las funciones que forman parte de la formalizacin o desarrollada, en el que se indica la pgina donde se utilizan por primera vez. a En la memoria slo aparecen las deniciones y teoremas ms importantes, el o a resto, para guiar a ACL2 hacia las demostraciones realizadas, se pueden consultar en los libros ACL2 que se encuentran en el CD que acompaa a esta memoria. n Para mayor claridad, no hemos incluido las anotaciones espec cas de ACL2, como sugerencias de prueba o tipos de regla asociados, salvo en aquellos casos en los que la explicacin lo requiere. o

El contenido del CD
El CD que acompaa a la memoria contiene los cheros correspondientes a la n formalizacin desarrollada, una copia del sistema ACL2 e instrucciones para inso talarlo y evaluar en l la formalizacin. Veamos una descripcin ms detallada e o o a de los libros: Descripcin de los libros ACL2 o El conjunto de deniciones y teoremas (denominados eventos en la terminolog a de ACL2) que formalizan la teor presentada en esta memoria se encuentran a organizados en una serie de cheros, llamados libros. Estos libros estn certia cados en ACL2, es decir, todas las deniciones son admisibles y el sistema es

13 capaz de demostrar de forma automtica todos los teoremas (utilizando quiz a a un conjunto de eventos previo). Estos libros, junto con la salida que proporciona el sistema al certicarlos, se encuentran en el CD adjunto en el directorio calculos-proposicionales. Todos los libros tienen extensin .lisp. La salida o que proporciona el sistema al certicar un libro est almacenada en un chero con a el mismo nombre que el del libro, pero con extensin .log. Para cada cap o tulo de la memoria hay un subdirectorio cuyo nombre comienza con el nmero asociado u a dicho cap tulo. A continuacin describimos brevemente el contenido de cada o libro, indicando el cap tulo al que corresponde y el nombre del directorio que lo contiene. La gura 1.2 muestra la dependencia entre los libros correspondientes al desarrollo realizado en la semntica clsica. Esta grafo da una idea de como se a a interrelacionan dichos libros. Existe una interrelacin similar para los libros coo rrespondientes al desarrollo realizado en la semntica de Kleene. a Cap tulo 3: Directorio 3-logica. sintaxis: formalizacin de la sintaxis de la lgica proposicional. o o o a a o semantica: formalizacin de la semntica clsica de la lgica proposicional. semantica-K: formalizacin de la semntica de Kleene de la lgica o a o proposicional. tablas-de-verdad: desarrollo de procedimientos de decisin de satiso facibilidad y validez basados en tablas de verdad. Los resultados de correccin y completitud se demuestran con respecto a la semntica o a clsica. a tablas-de-verdad-K: desarrollo de procedimientos de decisin de sao tisfacibilidad y validez basados en tablas de verdad. Los resultados de correccin y completitud se demuestran con respecto a la semntica o a de Kleene. tulo 4: Directorio 4-tableros. Cap o o a uniforme: formalizacin de la notacin uniforme con la semntica clsica. a uniforme-K: formalizacin de la notacin uniforme con la semntica o o a de Kleene. tableros: desarrollo de procedimientos de decisin de satisfacibilio dad, validez y consecuencia lgica basados en el clculo de tableros o a semnticos. Los resultados de correccin y completitud se demuestran a o con respecto a la semntica clsica. a a

14

Cap tulo 1. Introduccin o tableros-K: desarrollo de procedimientos de decisin de satisfacibio lidad, validez y consecuencia lgica basados en el clculo de tableros o a semnticos. Los resultados de correccin y completitud se demuestran a o con respecto a la semntica de Kleene. a Cap tulo 5: Directorio 5-secuentes. o secuentes: desarrollo de procedimientos de decisin de satisfacibilidad, validez y consecuencia lgica basados en el clculo de secuentes. o a Los resultados de correccin y completitud se demuestran con respecto o a la semntica clsica. a a secuentes-K: desarrollo de procedimientos de decisin de satisfacibio lidad, validez y consecuencia lgica basados en el clculo de secuentes. o a Los resultados de correccin y completitud se demuestran con respecto o a la semntica de Kleene. a tulo 6: Directorio 6-extensiones. Cap o o multiconjuntos: prueba de la buena fundamentacin de la extensin a multiconjuntos de una relacin bien fundamentada. o defmul: denicin de una herramienta para la generacin automtica o o a de rdenes bien fundamentados entre multiconjuntos. o arboles-binarios: prueba de la terminacin (usando multiconjuno tos) de una versin iterativa de un esquema recursivo sobre rboles o a binarios. o teorias-genericas: denicin de una herramienta para la instanciacin de teor genricas. o as e insercion-ordenada: ejemplo de uso de la herramienta de instanciacin genrica. o e listas: estrategia de prueba para extender un resultado de manera conjuntiva a los elementos de una lista. Cap tulo 7: Directorio 7-generico. SAT-generico: denicin de procedimientos de decisin de satisfao o cibilidad y validez para un sistema de transformacin proposicional o cualquiera. Las propiedades de correccin y completitud se demueso tran con respecto a la semntica clsica. Tambin se dene una teor a a e a genrica para las funciones que describen dichos procedimientos. e SAT-generico-K: denicin de procedimientos de decisin de satisfao o cibilidad y validez para un K-sistema de transformacin proposicional o cualquiera. Las propiedades de correccin y completitud se demueso tran con respecto a la semntica de Kleene. Tambin se dene una a e

15 teor genrica para las funciones que describen dichos procedimiena e tos. SAT-tableros: instancia basada en el clculo de tableros semnticos, a a de la teor genrica denida para un sistema de transformacin proa e o posicional. SAT-tableros-K: instancia basada en el clculo de tableros semntia a cos, de la teor genrica denida para un K-sistema de transformacin a e o proposicional. SAT-secuentes: instancia basada en el clculo de secuentes, de la a teor genrica denida para un sistema de transformacin proposicioa e o nal. a SAT-secuentes-K: instancia basada en el clculo de secuentes, de la o teor genrica denida para un K-sistema de transformacin proposia e cional. Cap tulo 8: Directorio 8-davisputnam. clausulas: formalizacin de los conceptos de clusula y forma clausal o a con la semntica clsica. a a clausulas-K: formalizacin de los conceptos de clusula y forma clauo a sal con la semntica de Kleene. a forma-clausal: denicin de un procedimiento de transformacin a o o forma clausal. Las propiedades de este procedimiento se demuestran con respecto a la semntica clsica. a a o o forma-clausal-K: denicin de un procedimiento de transformacin a forma clausal. Las propiedades de este procedimiento se demuestran con respecto a la semntica de Kleene. a o davis-putnam: desarrollo de procedimientos de decisin de satisfacibilidad basado en el procedimiento de Davis y Putnam. Los resultados de correccin y completitud se demuestran con respecto a la semntica o a clsica. a davis-putnam-K: desarrollo de procedimientos de decisin de satisfacio bilidad basados en el procedimiento de Davis y Putnam. Los resultados de correccin y completitud se demuestran con respecto a la semntica o a de Kleene. SAT-davisputnam: instancia basada en el procedimiento de Davis y Putnam, de la teor genrica denida para un sistema de transformaa e cin proposicional. o

16 tulo 9: Directorio 9-resolucion. Cap

Cap tulo 1. Introduccin o

o a conjuntos: denicin y propiedades bsicas acerca de conjuntos. representantes: denicin de conjunto de representantes de una coo leccin de conjuntos. Teorema de existencia del conjunto de represeno tantes minimal. resolucion-sat: denicin de resolucin condicionada y conjunto sao o turado por resolucin condicionada. Denicin y prueba de terminao o cin de un procedimiento de decisin de insatisfacibilidad basado en o o resolucin condicionada. o resolucion-thm: formalizacin de la prueba de Bezem del teorema o de completitud de la resolucin condicionada. o resolucion-aux: demostracin de las propiedades de correccin y o o completitud del procedimiento de decisin de insatisfacibilidad basado o en resolucin condicionada. o resolucion-gen: denicin de una teor generica para las funcioo a nes a partir de las que se construye el procedimiento de decisin de o insatisfacibilidad basado en resolucin condicionada. Se incluyen inso tancias para de esta teor genrica para la resolucin binaria, positiva, a e o negativa, semntica y con conjunto soporte. a Directorio 0-ejemplos. urquhart: generador de frmulas de Urquhart. o pelletier: 17 primeras frmulas de Pelletier. o o plaisted: frmulas de Plaisted. reinas: generador de frmulas codicando el problema de las N reio nas. Estos libros tambin pueden ser obtenidos a travs de la siguiente pgina web: e e a http://www.cs.us.es/~fmartin/tesis/

17

sintaxis

semantica

reinas

urquhart

multiconjuntos

tablas-de-verdad

uniforme

secuentes

defmul

teorias-genericas

clausulas

conjuntos

tableros

SAT-generico

forma-clausal

davis-putnam

resolucion-sat

representantes

SAT-tableros

SAT-secuentes

SAT-davisputnam

resolucion-aux

resolucion-thm

resolucion-gen

Figura 1.2: Dependencias entre los libros desarrollados en la semntica clsica a a

18

Cap tulo 1. Introduccin o

Cap tulo 2 El sistema de razonamiento ACL2


Presentamos en este cap tulo una introduccin al sistema ACL2. El principal o objetivo del mismo es facilitar al lector la comprensin del cdigo que formaliza o o los distintos conceptos y propiedades desarrollados en esta memoria. Una introduccin ms completa acerca del funcionamiento del sistema se puede encontrar o a en [39]. ACL2 son las siglas de A Computational Logic for Applicative Common Lisp. El sistema ACL2 es, al mismo tiempo, un lenguaje de programacin, una lgica o o para razonar sobre los programas construidos en ese lenguaje y un demostrador que automatiza, en cierta medida, el razonamiento en la lgica. El sistema ACL2 o es un descendiente directo del demostrador automtico de Boyer y Moore, Nqthm a [13], del que hereda parte de su losof y su lgica, pero se modica para poder a o razonar sobre un subconjunto aplicativo de Common Lisp. Ambos sistemas han sido utilizados para formalizar gran variedad de resultados: a El Teorema Fundamental del Clculo [37]. La ley de cuadrados rec procos de Gauss [68]. La indecidibilidad del problema de la parada [12]. El teorema de Church-Rosser para el lambda-clculo [71]. a El teorema de Ramsey [47]. o El teorema de incompletitud de Gdel [72]. Correccin de un algoritmo de la transformada rpida de Fourier [28]. o a El teorema de pares cr ticos de Knuth y Bendix [66]. 19

20

Cap tulo 2. El sistema de razonamiento ACL2

Tambin se han mostrado muy ecaces en probar la correccin de sistemas e o digitales: diseos hardware, modelos de microprocesadores, software, etc. Por n ejemplo, se han vericado: La pila CLI, un sistema acadmico que incluye microprocesador, enlazae dor, ensamblador y compilador, y aplicaciones programadas en el lenguaje que acepta el compilador [58]. 21 de las 22 rutinas de la biblioteca de cadenas de Berkeley C (compiladas para el procesador Motorola 6820) [86]. Programas de microcdigo de la ROM del procesador de seales digitales o n CAP, de Motorola [14]. El microcdigo del algoritmo de divisin de coma otante y de ra cuadrada o o z del procesador AMD K5 [59, 70]. o u El cdigo RTL que implementa las operaciones elementales sobre nmeros de coma otante del procesador AMD Athlon [69]. Se puede encontrar ms referencias sobre stos y otros proyectos de vericacin a e o desarrollados con Nqthm y ACL2 en las pginas web de los sistemas ([42] y [13]). a Existen diversas fuentes de informacin que recomendamos para un estudio o detallado de ACL2: La mejor introduccin a ACL2 es el libro [39]. Viene acompaado de un o n segundo volumen [38] en el que se describen una serie de proyectos de vericacin que se han llevado a cabo usando el sistema. En [44] tambin se o e proporciona una introduccin rpida al sistema, explicando su evolucin a o a o partir de Nqthm. La pgina web de ACL2 [42] proporciona gran cantidad de informacin gea o neral sobre el sistema. Permite obtenerlo para su instalacin y proporciona o enlaces a documentos que describen mltiples aspectos de ACL2 y su uso. u Adems, se pueden encontrar varios tutoriales. a En el aspecto tcnico, la informacin ms completa sobre el sistema es el e o a manual de referencia, cuya versin ms actualizada se encuentra en [42]. o a La teor formal presentada en esta memoria ha sido desarrollada usando la a versin 2.6 del sistema. En lo que sigue describimos algunas caracter o sticas del lenguaje de programacin, la lgica y el demostrador automtico de ACL2, que o o a facilitan la comprensin de esta memoria. o

2.1. El lenguaje

21

2.1

El lenguaje

El lenguaje de programacin ACL2 es una extensin de un subconjunto aplicao o tivo de Common Lisp. Este subconjunto contiene los tipos de datos bsicos de a Common Lisp y la mayor de los elementos del mismo que no producen efectos a colaterales. De esta forma, elementos como las variables globales y las operaciones destructivas no son parte del lenguaje de programacin ACL2. De hecho, las funo ciones denidas con ACL2 son funciones en el sentido matemtico del trmino: su a e valor sobre un argumento dado es siempre el mismo y no depende de circunstancias externas a la funcin. Es por ello que decimos que ACL2 es un subconjunto o aplicativo (o funcional) de Common Lisp. Esta restriccin permite simplicar o considerablemente el razonamiento formal sobre los programas desarrollados con el lenguaje. Finalmente, ACL2 incorpora algunas funciones predenidas que no se encuentran en el estndar Common Lisp, extendindolo. a e No comentamos aqu las caracter sticas que ACL2 comparte con Common Lisp. Sin duda alguna, la mejor descripcin del estndar Common Lisp se eno a cuentra en [79], aunque cualquier manual de programacin Lisp proporciona ino formacin suciente para comprender la mayor parte del cdigo desarrollado en o o esta memoria. Por tanto, supondremos que el lector est familiarizado con las a nociones bsicas del lenguaje: notacin preja, constantes y variables, valores a o lgicos (t y nil), denicin de funciones y macros (defun y defmacro), estructuo o o ras condicionales (cond e if), entornos locales (let y let*), predicados lgicos o (and, or y not), funciones de manipulacin de listas (endp, consp, equal, member, o cons, car, cdr, append . . . ), listas de asociacin (assoc y acons), etc. Una de las caracter sticas de Common Lisp que no comparte ACL2, es la posibilidad de utilizar funciones como argumento en la evaluacin de una expreo sin. As la expresin Common Lisp (member e l :test #equal), comprueba o , o o si el elemento e pertenece a la lista l, utilizando la funcin equal para comparar e con los elementos de l. La funcin ACL2 que realiza esta comprobacin o o a es member-equal. De igual forma, en ACL2 estn predenidas las funciones subsetp-equal, assoc-equal, . . . , que actan como las correspondientes funu ciones Common Lisp sin el sujo -equal, pero utilizando la funcin equal para o comparar los elementos. A lo largo de esta memoria se utilizan otras caracter sticas ACL2 que no son propias de Common Lisp, cuyo comportamiento se explica la primera vez que se usan. Destacamos aqu dos funciones propias de ACL2 que son utilizadas con mucha frecuencia: iff: Es una funcin de comparacin lgica. La expresin (iff x y) es o o o o cierta si y slo si tanto x como y tienen el mismo valor lgico, es decir, o o o ambos son falsos (iguales a nil), o ambos son ciertos (distintos de nil). implies:Esta funcin es la implicacin lgica.La expresin (implies x y) o o o o es falsa si y slo si x es cierto (tiene un valor distinto de nil) e y es falso o (igual a nil).

22

Cap tulo 2. El sistema de razonamiento ACL2

2.2

La lgica o

Presentamos en esta seccin una introduccin informal de la lgica del sistema. o o o Una descripcin precisa, detallada y formal de la misma se puede encontrar en o [40]. Aqu slo comentamos algunos aspectos que permiten una mejor compren o sin de la teor presentada en la memoria. o a Consideremos el siguiente ejemplo, tomado de [39]: Supongamos denida, en el lenguaje de ACL2, una funcin de un argumento llamada ordena, que ordena o listas de nmeros. Supongamos tambin que queremos comprobar que dicha u e funcin es correcta. Para ello debemos vericar que devuelve una lista ordenada o con los mismos elementos que la de entrada. Centrmonos en la segunda de e estas propiedades. Una primera aproximacin ser comprobarlo manualmente o a evaluando algunos ejemplos. As el resultado de evaluar (ordena (4 1 7 3)) , es (1 3 4 7), que efectivamente es una permutacin de (4 1 7 3). Una forma o de automatizar este proceso es deniendo en ACL2 una funcin permutacion, que o implemente el concepto de permutacin mediante un predicado binario. De esta o forma, podr amos comprobar que el valor devuelto por la funcin ordena cumple o la propiedad descrita por la funcin permutacion para distintas situaciones1 : o ACL2 !>(permutacion (4 1 7 3) (ordena (4 1 7 3))) T ACL2 !>(permutacion (2 3 1 5) (ordena (2 3 1 5))) T Suponiendo que la denicin de la funcin permutacion es correcta, las evao o luaciones anteriores aumentan nuestra conanza en que la funcin ordena deo vuelve una permutacin de su argumento, pero no se puede armar que, para o cualquier objeto x, el valor de (permutacion x (ordena x)) es siempre t. Para demostrar esta armacin utilizamos la lgica de ACL2. o o ACL2 es una lgica de primer orden con igualdad sin cuanticadores. Los o trminos de la lgica son las expresiones, tal y como se entiende este concepe o to en Common Lisp, construidas con el lenguaje descrito en la seccin anterior. o Los operadores lgicos son la igualdad, representada con el predicado equal, y las o conectivas proposicionales habituales: , , , y , representadas con las funciones not, or, and, implies y iff, respectivamente. Las frmulas atmicas son o o igualdades de la forma (equal e1 e2), donde e1 y e2 son trminos. Las frmulas e o se denen recursivamente de la manera habitual. Una caracter stica importante de las frmulas es que sus variables se consideran universalmente cuanticadas, o as la frmula (equal (permutacion x (ordena x)) t) expresa el hecho de que o para cualquier valor de x, el valor de (permutacion x (ordena x)) es t.
En estas evaluaciones la cadena ACL2 !> es el prompt del sistema y, al igual que en los interpretes de Common Lisp, indica que ste est a la espera de que el usuario introduzca una e a expresin. o
1

2.2. La lgica o

23

Puesto que las frmulas se denen a partir de las expresiones y stas dependen o e de las deniciones (de funcin, constante, etc.) previamente realizadas, el cono cepto de frmula se dene respecto de una determinada historia de deniciones o previas. En la seccin 2.2.3 se explica en qu condiciones se admite la denicin o e o de una nueva funcin y cmo se incorpora sta a la lgica. o o e o Los axiomas y reglas de inferencia describen la lgica de ACL2 como una lgica o o proposicional con igualdad correspondiente a la axiomatizacin de Shoeneld [75] o (ver [40] para una descripcin ms precisa de la lgica de ACL2). Adems, o a o a como las variables de una frmula se consideran universalmente cuanticadas, o o se dispone de la siguiente regla de instanciacin: A partir de una frmula se o o e deriva (). Donde representa una asignacin de trminos a variables. Las funciones predenidas en ACL2 estn caracterizadas mediante axiomas a que especican su comportamiento. Por ejemplo, los axiomas que caracterizan el comportamiento de cons, car, cdr y consp son los siguientes: (equal (consp (cons x y)) t). (implies (equal (consp x) t) (equal (cons (car x) (cdr x)) x)). (equal (car (cons x y)) x). (equal (cdr (cons x y)) y). a La ultima regla de inferencia de la lgica es la de induccin, que ser comen o o tada en la seccin 2.2.4. o La manera de indicar al sistema que se ha de intentar la prueba de una frmula o , o en la lgica, es mediante el comando defthm. As la siguiente expresin indica o al sistema que debe intentar demostrar en la lgica, la frmula que representa la o o propiedad acerca de las funciones permutacion y ordena: (defthm permutacion-ordena (equal (permutacion x (ordena x)) t)) Cuando la frmula que se quiere demostrar es del tipo (equal <exp> t), la o expresin anterior puede reducirse a: o (defthm permutacion-ordena (permutacion x (ordena x))) Si el intento de prueba tiene xito, la frmula es almacenada en la lgica para e o o su posible uso en otros intentos de prueba. El s mbolo permutacion-ordena es el nombre con el que se asocia la frmula demostrada. o

24 Ordinal

Cap tulo 2. El sistema de razonamiento ACL2 Objeto ACL2 0 1 2 ... (1 . 0) (1 . 1) ... (1 1 . 0) (1 1 . 1) ... (1 1 1 . 0) ... (2 . 0) ... (3 . 0) (3 2 . 1) ... ((1 . 0) . 0) ... ((1 . 0) 5 3 3 . 5) ... ((2 . 0) . 0) ... (((1 . 0) . 0) . 0) ...

0 1 2 ... +1 ... 2 2+1 ... 3 ... 2 ... 3 3 + 2 + 1 ... ... + 5 + 3 2 + 5 ... 2 ( ) ... ( ) ...

Figura 2.1: Ordinales en ACL2

2.2.1

Ordinales

No incluimos aqu un desarrollo completo de la teor de ordinales, una buena a referencia para su estudio es [36]. Goodstein establece en [30] una forma de repreu sentar de manera constructiva los ordinales menores que 0 , mediante nmeros naturales y listas. En la gura 2.1 se muestran algunos ejemplos de la correspondencia entre ordinales (expresados en forma normal de Cantor) y los objetos ACL2 asociados segn dicha representacin. u o Como se observa, los nmeros naturales son ordinales ACL2. Un objeto de la u forma (o1 o2 ... on . n) es un ordinal ACL2 si a su vez los objetos o1, . . . , on, son ordinales ACL2 distintos de 0, en orden decreciente y n es un nmero u natural. Intuitivamente, los o1, . . . , on se corresponden con las potencias de

2.2. La lgica o

25

cuando el ordinal est expresado en forma normal de Cantor. Los coecientes a (naturales) en la forma normal de Cantor se corresponden con repeticiones de las potencias. El nmero n es el trmino independiente de la forma normal. u e En ACL2 se dene la funcin e0-ordinalp para reconocer aquellos objetos que o representan ordinales y la funcin e0-ord-< que formaliza el orden entre objetos o ACL2 que representan ordinales, implementando el orden usual entre stos. e

2.2.2

Relaciones bien fundamentadas

Un concepto importante dentro de la lgica de ACL2 es el de relacin noetheriana. o o Informalmente, una relacin se dice noetheriana (o que termina) si no existen o sucesiones decrecientes innitas en el conjunto en el que est denida: . . . x3 a x2 x1 . Este concepto no se puede formalizar directamente en ACL2, sin embargo s es posible hacerlo con la caracterizacin que proporciona el siguiente resultado2 : o Una relacin en un conjunto A es noetheriana si y slo si existe una o o funcin F : A Ord tal que si x y entonces F (x) < F (y), donde o < es el orden usual entre ordinales. Usando esta caracterizacin se pueden formalizar relaciones noetherianas cuyo o tipo ordinal no sea mayor que 0 , ya que existe una representacin de los ordinao les hasta este valor. De esta forma, la siguiente frmula expresa que la relacin o o binaria representada con la funcin rel es noetheriana en el conjunto caracterio o zado por la funcin mp, donde la funcin fn es una inmersin en los ordinales que o o garantiza esta propiedad: (and (implies (mp x) (e0-ordinalp (fn x))) (implies (and (mp x) (mp y) (rel x y)) (e0-ord-< (fn x) (fn y)))) Un concepto equivalente al de relacin noetheriana es el de relacin bien fundao o mentada, que son aquellas en las que todo subconjunto no vac tiene un elemento o minimal con respecto a la relacin3 . Es por esto que a las relaciones que verican o la propiedad anterior se las llama relaciones bien fundamentadas y a la propiedad teorema de buena fundamentacin. o Es posible demostrar que e0-ord-< es una relacin bien fundamentada sobre o el conjunto de objetos ACL2 que representan ordinales. Es decir, que no es posible obtener una cadena innita descendente (respecto de e0-ord-<) de objetos ACL2 que veriquen e0-ordinalp. Esta es la unica relacin bien fundamentada o primitiva en la lgica de ACL2. El usuario puede denir nuevas relaciones bien o fundamentadas demostrando que verican la propiedad anterior.
2 3

En el apndice A de [23] se encuentra una prueba del mismo. e En el apndice A.2 de [66] se encuentra una prueba de este hecho. e

26

Cap tulo 2. El sistema de razonamiento ACL2

2.2.3

Principio de denicin o

Al denir nuevas funciones en el lenguaje de ACL2, no slo describimos una o forma de realizar determinado clculo, adems ampliamos la lgica del sistema a a o con axiomas que caracterizan las funciones denidas. Por ello, el sistema restringe el tipo de funciones que se pueden denir, para evitar inconsistencias en la teor a desarrollada. Las condiciones bajo las cuales se admite una nueva denicin, o (defun f (x1 ... xn) <cuerpo>), son las siguientes: f es un s mbolo de funcin nuevo. o x1, . . . , xn, son s mbolos de variables distintos. <cuerpo> es una expresin en la que aparecen a lo sumo las funciones o a denidas previamente a la denicin de f y la propia f. Adems las unicas o variables libres que pueden aparecer en <cuerpo> son x1, . . . , xn. Existe una funcin m de n argumentos (a la que llamaremos medida de tero minacin) y una relacin bien fundamentada rel denida sobre un conjunto o o caracterizado por la funcin mp, tales que: o Se verica (mp (m (x1 ... xn))) o Para toda llamada recursiva de la funcin f, (f u1 ... un), condicionada por las expresiones t1, . . . , tm, se verica que la medida de u1, . . . , un es menor que la medida de x1, . . . , xn, con respecto a la relacin bien fundamentada rel, cuando se verican las condiciones o t1, . . . , tm: (implies (and t1 ... tm) (rel (m u1 ... un) (m x1 ... xn))) Donde decimos que una expresin t condiciona una llamada recursiva de la o a o funcin f si, para que el clculo que describe la funcin f se realice mediante dicha o llamada recursiva, se tiene que vericar t o (not t). Por ejemplo, en la siguiente denicin, los trminos (not (endp l1)) y (member-equal (car l1) l2) o e condicionan la unica llamada recursiva que existe: (defun permutacion (l1 l2) (cond ((endp l1) (endp l2)) ((member-equal (car l1) l2) (permutacion (cdr l1) (elimina-una (car l1) l2))) (t nil))) Si la denicin de f es admisible, se introduce en el lenguaje de ACL2 un o nuevo s mbolo de funcin de aridad n que realiza el clculo descrito en dicha o a

2.2. La lgica o

27

denicin y se aade a la lgica el axioma (equal (f x1 ... xn) <cuerpo>), o n o de forma que la teor ampliada con dicho axioma es una extensin conservativa a o de la inicial. Al probar la admisibilidad de una funcin, el sistema considera por defecto o sticas para dela relacin bien fundamentada e0-ord-< y usa una serie de heur o terminar la funcin de medida m. En los casos en los que el sitema no es capaz o de demostrar automticamente la terminacin de una funcin, el usuario puede a o o indicar, mediante la palabra clave :measure, una funcin de medida y/o, mediano te la palabra clave :well-founded-relation, una relacin bien fundamentada o con respecto a la que la medida decrece en cada llamada recursiva. Con estas indicaciones, la denicin de una funcin queda como sigue: o o (defun f (x1 ... xn) (declare (xargs :measure m :well-founded-relation rel )) <cuerpo>)

2.2.4

Principio de induccin o

Veamos ahora la ultima regla de inferencia de la lgica de ACL2: el principio o de induccin. Supongamos que (f x1 ... xn) es una frmula del lenguaje de o o o ACL2, donde x1, . . . , xn son sus variables libres, entonces dicha frmula se deriva a partir de las siguientes frmulas: o Caso base: (implies (and (not q1) ... (not qm)) (f x1 ... xn)) Casos de induccin: Para cada q1, . . . , qm: o (implies (and qi (f ti-1-1 ... ti-1-n) ... (f ti-ki-1 ... ti-ki-n)) (f x1 ... xn))) e donde q1, . . . , qm, ti-1-1, . . . , ti-1-n, . . . , ti-ki-1, . . . , ti-ki-n son trminos o y, para una funcin m de n argumentos (a la que llamaremos medida de induccin) o y una relacin bien fundamentada rel denida sobre un conjunto caracterizado o por la funcin mp, se pueden demostrar las siguientes frmulas en la lgica de o o o ACL2: (mp (m x1 ... xm)) Para cada ti-j-1, . . . , ti-j-n (1 i m y 1 jki): (implies qi (rel (m ti-j-1 ... ti-j-n) (m x1 ... xn)))

28

Cap tulo 2. El sistema de razonamiento ACL2

La idea es que para probar una frmula (f x1 ... xn) mediante el principio o de induccin, dividimos el problema en k +1 casos. Cada uno de estos casos viene o descrito por una condicin expresada por el trmino qi (casos inductivos), o bien o e o por la negacin de todos los qi (caso base). Para la demostracin de cada uno de o los casos inductivos se permite asumir que determinadas instancias de la frmula o (f x1 ... xn) son ciertas. En concreto, para probar el caso correspondiente a qi se suponen ciertas un nmero ki de instancias (f ti-j-1 ... ti-j-n), u 1 j ki. Cada una de estas instancias se denomina una hiptesis de induco cin. Para que este esquema de demostracin sea correcto, se debe demostrar o o previamente que para cada instancia de la frmula (f x1 ... xn) asumida en o cada hiptesis de induccin, la medida de sus argumentos (dada por la expresin o o o (m x1 ... xn), que toma valores que verican mp) es menor, con respecto a la relacin bien fundamentada rel, que la medida de los argumentos de la frmula o o que se quiere demostrar. Los esquemas de induccin estn ligados a deniciones recursivas. As la o a , o denicin de la funcin permutacion proporciona un esquema de induccin en el o o que, para demostrar una frmula (:P X Y), el caso base es: o (IMPLIES (AND (NOT (ENDP X)) (NOT (MEMBER-EQUAL (CAR X) Y))) (:P X Y))

y los casos inductivos son: (IMPLIES (AND (NOT (ENDP X)) (MEMBER-EQUAL (CAR X) Y) (:P (CDR X) (ELIMINA-UNA (CAR X) Y))) (:P X Y)) (IMPLIES (ENDP X) (:P X Y)))

Este esquema de induccin se justica por la admisibilidad de la funcin o o permutacion. As para probar la frmula (equal (permutacion x (ordena x)) t), lo , o normal ser utilizar el esquema de induccin asociado a la funcin permutacion a o o o la funcin ordena. Si usamos el primero, se tendrn que demostrar los siguientes o a casos:

2.2. La lgica o (IMPLIES (AND (NOT (ENDP X)) (NOT (MEMBER-EQUAL (CAR X) (ORDENA X)))) (PERMUTACION X (ORDENA X))) (IMPLIES (AND (NOT (ENDP X)) (MEMBER-EQUAL (CAR X) (ORDENA X)) (PERMUTACION (CDR X) (ELIMINA-UNA (CAR X) (ORDENA X)))) (PERMUTACION X (ORDENA X))) (IMPLIES (ENDP X) (PERMUTACION X (ORDENA X))))

29

El sistema utiliza un conjunto de heur sticas con el objeto de escoger un esquema de induccin para demostrar una frmula. Si el esquema de induccin o o o que elige no es el adecuado, la prueba puede fallar an siendo cierta la frmula. u o El usuario puede indicar al sistema el esquema de induccin que quiere utilizar o mediante un consejo, de esta forma: (defthm permutacion-ordena (permutacion x (ordena x)) :hints (("Goal" :induct (permutacion x (ordena x))))) La expresin que aparece a partir de la segunda l o nea del enunciado del resultado permutacion-ordena se denomina consejo. En este caso es un consejo de induccin (:induct), e indica al sistema que para demostrar la frmula se ha de o o utilizar el esquema de induccin asociado a la funcin permutacion, cuando sus o o argumentos son x y (ordena x)

2.2.5

Encapsulados

El principio de encapsulado permite introducir determinados s mbolos de funcin, o sin especicar completamente la funcin que representan, asumiendo solamente o una serie de propiedades que los denen de forma parcial. Para que una aplicacin del principio de encapsulado sea admisible y se preserve la consistencia, ha de o demostrarse previamente que existen funciones, llamadas testigos locales, que verican las propiedades que se quieren asumir. Una vez probado esto, se prescinde de las deniciones correspondientes a los testigos locales y los s mbolos de funcin o introducidos por el principio de encapsulado quedan parcialmente especicados mediante las propiedades asumidas. As es admisible asumir una propiedad sobre , o las funciones f1, . . . , fn, descrita por la frmula F si se verican: f1, . . . , fn son s mbolos de funcin nuevos. o

30

Cap tulo 2. El sistema de razonamiento ACL2 Existe deniciones admisibles de n funciones cuyos nombres son f1, . . . , o fn, tales que se puede demostrar la frmula F para dichas funciones.

Si el encapsulado es admisible, se introduce en el lenguaje de ACL2 los n o o s mbolos de funcin f1, . . . , fn y se aade a la lgica la frmula F como axioma. o Ntese que los testigos locales slo se usan para asegurar la admisibilidad del o o encapsulado, ya que los axiomas correspondientes a sus deniciones no se conservan. El axioma introducido por un encapsulado preserva la consistencia de la teor extiendida. Vase [41] para una demostracin rigurosa de esta armacin. a e o o Veamos la sintaxis del encapsulado en ACL2 con un ejemplo: supongamos que queremos asumir la existencia de una funcin ordena que devuelve una pero mutacin del argumento que recibe como entrada. El comando ACL2 que realiza o esto es el siguiente: (encapsulate (((ordena *) => *)) (local (defun ordena (x) x)) (defthm permutacion-ordena (permutacion x (ordena x))) ) La primera expresin es una lista con las descripciones de las aridades de las o funciones que se introducen con el principio del encapsulado (denominada signao tura). En este caso se indica que ordena es una funcin de un argumento que devuelve un unico valor. Los testigos locales se denen usando defun, pero se declaran como locales mediante local. La propiedad asumida sobre las funciones del encapsulado es expresada usando defthm. El encapsulado puede contener deniciones y propiedades declaradas como locales. Una vez demostrada la admisibilidad del encapsulado, slo las deniciones y propiedades no declaradas como o locales son incorporadas a la lgica de ACL2. o Las funciones introducidas mediante un encapsulado no se pueden ejecutar, ya que su especicacin parcial puede que no sea suciente como para poder deducir o el valor que toma para cualquier dato de entrada.

2.2.6

Instanciacin funcional o

La regla de instanciacin funcional es la forma en que la lgica de ACL2 utiliza o o resultados de segundo orden. Un t pico resultado de segundo orden tiene la

2.2. La lgica o

31

siguiente forma: Para toda funcin f que verique la propiedad P , entonces o f tambin verica la propiedad Q. La manera de formalizar este resultado e en ACL2 es mediante un encapsulado, en el que se asume la existencia de una funcin f que cumple la propiedad P descrita por la frmula P y, una vez admitido o o dicho encapsulado, la demostracin en la lgica de la frmula Q que describe la o o o propiedad Q. El resultado de segundo orden nos asegura que cualquier otra e funcin g, que cumpla la propiedad descrita por P, tambin cumple la propiedad o descrita por Q. El sistema no utiliza de forma automtica la regla de instanciacin funcional, a o slo lo hace si el usuario se lo indica con un consejo adecuado. Por ejemplo, o supongamos que despus de admitir el encapsulado de la seccin anterior acerca e o de la funcin ordena, que devuelve una permutacin de su argumento, hemos o o demostrado la siguiente propiedad: (defthm permutacion-ordena-ordena (permutacion x (ordena (ordena x)))) Entonces se puede probar la misma propiedad para cualquier otra funcin o mezcla para la que se pueda demostrar (permutacion x (mezcla x)): (defthm permutacion-mezcla (permutacion x (mezcla x))) (defthm permutacion-mezcla-mezcla (permutacion x (mezcla (mezcla x))) :hints (("Goal" :by (:functional-instance permutacion-ordena-ordena ((ordena mezcla)))))) La expresin que aparece a partir de la segunda l o nea del enunciado del resultado permutacion-mezcla-mezcla se denomina consejo. En este caso se trata de un consejo de instanciacin funcional (:functional-instance), en el que hay o que reutilizar la propiedad descrita por el resultado permutacion-ordena-ordena reemplazando el s mbolo de funcin ordena por mezcla. A la lista que asocia los o s mbolos de funcin del resultado de segundo orden con los s o mbolos de funcin o del caso concreto, la denominamos sustitucin funcional. o

2.2.7

Equivalencias y Congruencias

Una relacin de equivalencia en ACL2 es una funcin binaria para la que se han o o demostrado las propiedades de reexividad, simetr y transitividad. La manera a habitual de hacer esto es evaluando la macro defequiv sobre el s mbolo de funcin o

32

Cap tulo 2. El sistema de razonamiento ACL2

que se quiere incorporar como relacin de equivalencia en ACL2. Un ejemplo de o su uso y la frmula en la que se expande la evaluacin de esta macro, se muestran o o a continuacin: o (defequiv equiv) (defthm equiv-is-an-equivalence (and (booleanp (equiv x y)) (equiv x x) (implies (equiv x y) (equiv y x)) (implies (and (equiv x y) (equiv y z)) (equiv x z))) Una de las reglas de la lgica de ACL2 es la de igualdad con respecto a funo ciones: si los trminos xi e yi son iguales, entonces cualquier ocurrencia de xi e en un trmino (f x1 ... xi ... xn) se puede sustituir por yi, dando lugar a e (f x1 ... yi ... xn). De una forma similar, el usuario puede indicar al sistema que, para cierto s mbolo de funcin f, si se sustituye su i-simo argumento por o e uno equivalente con respecto a una relacin de equivalencia equiv1, el resultado o es equivalente al original con respecto a otra relacin de equivalencia equiv2. La o manera habitual de hacer esto es mediante una evaluacin de la macro defcong. o Un ejemplo de su uso y la frmula en la que se expande la evaluacin de esta o o macro, se muestran a continuacin: o (defcong equiv1 equiv2 (f x1 ... xn) i) (defthm equiv1-implies-equiv2-f-i (implies (equiv1 xi xi-equiv) (equiv2 (f x1 ... xi ... xn) (f x1 ... xi-equiv ... xn))))

2.3

El demostrador

La tercera componente del sistema ACL2 es un demostrador automtico para a la lgica descrita en la seccin anterior. El demostrador es automtico en el o o a sentido de que una vez que comienza un intento de prueba, no existe ninguna posibilidad por parte del usuario de interactuar. Sin embargo, es un demostrador interactivo en un sentido ms intuitivo. El punto de vista que ms se ajusta a a a la realidad es el que contempla al demostrador como un asistente que permite vericar que una determinada frmula es cierta. Pero debe quedar claro que o

2.3. El demostrador

33

la estrategia para abordar una demostracin no trivial debe ser diseada por el o n usuario, en la mayor de los casos inspirada en una demostracin realizada a a o mano previamente. La estrategia de prueba se comunica al demostrador mediante la construccin o de lo que llamamos un mundo lgico. Este se construye mediante la denicin o o de funciones que realizan clculos o formalizan propiedades y la demostracin de a o una serie de propiedades acerca de estas funciones, que el demostrador interpreta en forma de reglas y que dirigen su comportamiento al intentar abordar la prueba automtica de una frmula. Si la prueba de una frmula se culmina con xito, a o o e sta se codica en forma de regla, incrementando la informacin disponible en el e o mundo lgico y permitiendo su uso en demostraciones de sucesivos teoremas. o La forma usual de construir un mundo lgico consiste en proporcionar al o demostrador funciones (denidas con defun), propiedades de estas funciones (establecidas con defthm) o encapsulados en los que se asumen propiedades sobre s mbolos de funcin (expresados con encapsulate). A estas expresiones que siro ven para construir el mundo lgico las llamaremos eventos. Los eventos se suelen o almacenar en cheros, a los que llamaremos libros, en el mismo orden en que el sistema es capaz de admitirlos. El contenido de un libro puede ser incluido en el sistema con la orden (include-book <fichero>). Si el sistema es capaz de admitir todos los eventos incluidos en un libro, ste puede ser certicado, con lo e que se evita que, cuando el libro sea incluido en el sistema, se vuelvan a realizar todas las pruebas necesarias para admitir los eventos que contiene.

Sumario
En este cap tulo: Se ha introducido el lenguaje de programacin de ACL2, relacionndolo con o a el de Common Lisp. Se ha comentado en l neas generales la lgica de ACL2 y se han descrito o algunos elementos importantes de la misma. Se ha establecido la manera usual de interaccionar con el demostrador de ACL2.

34

Cap tulo 2. El sistema de razonamiento ACL2

Cap tulo 3 Un modelo formal de la lgica o proposicional


En este cap tulo presentamos una formalizacin en ACL2 de la lgica proposio o cional. El desarrollo se basa fundamentalmente en el cap tulo 2 de [26], siendo similar a otras presentaciones que se pueden encontrar en la literatura. Paralelamente a la denicin de los conceptos de la lgica se presenta la formalizacin o o o de los mismos en ACL2. Esta formalizacin constituye la base sobre la que se o desarrollan los cap tulos posteriores. En la primera seccin se presenta la sintaxis de la lgica proposicional y se o o discute la representacin de las frmulas. Se establecen una serie de propiedades o o que caracterizan esta representacin, de forma que el desarrollo posterior se basa o fundamentalmente en dichas propiedades. De esta forma, los cambios en la representacin no afectarn en la prueba de los resultados demostrados, siempre y o a cuando las propiedades sigan siendo ciertas en la nueva representacin. o A continuacin, se presenta la semntica clsica de la lgica proposicional y o a a o se discute la representacin de las asignaciones. En esta seccin se indica cmo o o o se incorporan los conceptos de satisfacibilidad, validez, consecuencia lgica y o equivalencia lgica en la formalizacin de los teoremas. o o En la tercera seccin se realiza un desarrollo similar al de la seccin previa o o para una semntica de la lgica proposicional basada en la lgica trivalorada a o o fuerte de Kleene [45]. Finalmente se desarrollan algoritmos para decidir la validez y la satisfacibilidad de una frmula proposicional, basados en tablas de verdad. Se demuestran o resultados de correccin y completitud de estos algoritmos en las dos semnticas o a presentadas.

3.1

Sintaxis

En esta seccin presentamos la formalizacin de la sintaxis de la lgica proposicioo o o nal. Se centra principalmente en la representacin de las frmulas proposicionales, o o 35

36

Cap tulo 3. Un modelo formal de la lgica proposicional o

para la que se han utilizado listas en notacin preja. Esta representacin est o o a formalizada mediante un conjunto de funciones de acceso y constructoras. Estas funciones se caracterizan por un conjunto de propiedades que no hacen referencia directa a la representacin escogida. Las deniciones de las funciones de acceso y o constructoras se han ocultado al sistema, quedando disponibles unicamente sus propiedades. Esta forma de actuar permite que los cambios en la representacin o no afecten a los resultados desarrollados posteriormente, bastar con redenir las a funciones de acceso y constructoras y demostrar las propiedades que las caracterizan. En esta seccin tambin se formalizan conceptos como el rango o el conjunto o e de s mbolos de una frmula, as como el teorema de descomposicin unica para la o o lgica proposicional. Los eventos que se presentan en esta seccin se encuentran o o en el libro sintaxis.lisp.

3.1.1

S mbolos y conectivas

Los elementos bsicos de la lgica proposicional son un conjunto innito de a o s mbolos, , que servirn para expresar proposiciones bsicas, es decir, enuna a ciados susceptibles de ser verdaderos o falsos. En el modelo formal de la lgica o proposicional el conjunto ser el formado por todos los s a mbolos del sistema, reconocidos con el predicado symbolp, excepto el s mbolo nil, junto con todos los nmeros enteros positivos. u (defun es-simbolo-proposicional (x) (or (and (symbolp x) (not (equal x nil))) (and (integerp x) (> x 0))))
1

Algunos s mbolos proposicionales en nuestra formalizacin son p1, p2, q1, q2, o a o 1, 2, ... As la expresin (es-simbolo-proposicional x) ser cierta si y slo , o si se verica la propiedad x . Una frmula de la lgica proposicional ser un objeto construido a partir de o o a los elementos de , utilizando conectivas proposicionales. Las conectivas pueden ser de aridad 0 (constantes), aridad 1 (monarias), aridad 2 (binarias), ... De todas las posibles conectivas que se pueden denir para la lgica proposicional, las de o aridad superior a 2 raramente aparecen en la literatura, as que slo considera o remos conectivas monarias y binarias. La unica conectiva monaria de inters es e la negacin (), las conectivas binarias que consideramos son: conjuncin (), o o o disyuncin (), implicacin () y equivalencia (). Estas conectivas son reo presentadas en la formalizacin de la lgica de la siguiente forma, el s o o mbolo representa la negacin, & la conjuncin, \/ la disyuncin, -> la implicacin y o o o o e <-> la equivalencia. En los sucesivo utilizaremos el trmino conectiva para hacer referencia tanto a las conectivas proposicionales como a sus representaciones en la formalizacin. o

3.1. Sintaxis

37

Para denir algunos conceptos como el de frmula proposicional, nos bastar o a con poder distinguir entre frmulas monarias y binarias. Esta distincin se estao o blece en funcin del tipo de la conectiva. Para ello introducimos dos funciones o que sirven para reconocer los dos tipos de conectivas, es-conectiva-monaria y es-conectiva-binaria (defun es-conectiva-monaria (c) (member-equal c (-))) (defun es-conectiva-binaria (c) (member-equal c (& \/ -> <->)))
2

3.1.2

Representacin de las frmulas o o

Las frmulas son representadas mediante listas utilizando una notacin preja. o o As el primer elemento ser una conectiva y el resto los argumentos, cuyo nmero , a u depender de la conectiva. De esta forma, la frmula p1 (p2 p3 ) se representa a o por la lista (& p1 (-> p2 p3)). De forma general si F y G son, respectivamente, las representaciones de las frmulas F y G, entonces la frmula F se representa o o por la lista (- F) y la frmula F G se representa por la lista ( F G), donde o es una conectiva binaria y su representacin. En lo sucesivo utilizaremos el o trmino frmula para hacer referencia tanto a las frmulas proposicionales como e o o a sus representaciones en la formalizacin. o Se han considerado funciones de acceso a los elementos de una frmula y o funciones constructoras de frmulas. Estas funciones son las unicas que hacen o referencia a la representacin. Una vez establecidas las propiedades que las relao cionan, que a su vez no hacen referencia a la representacin, las deniciones de o estas funciones se han ocultado. De esta forma, el sistema slo puede utilizar las o propiedades y por tanto el desarrollo posterior no depender de la representacin a o escogida. Esta forma de actuar permite que los cambios en la representacin no o afecten a los resultados desarrollados posteriormente, siempre y cuando se hayan demostrado en la nueva representacin, las propiedades que caracterizan a las o funciones de acceso y constructoras. 3.1.2.1 Funciones de acceso

Muchos conceptos denidos sobre frmulas proposicionales hacen referencia a la o conectiva principal y las subfrmulas componentes. De manera impl o cita se estn a considerando funciones de acceso a estos elementos. Estas funciones sirven para obtener las componentes de una frmula a partir de su representacin. Su denio o cin no depende del concepto de frmula proposicional, slo de la representacin o o o o escogida. El valor devuelto por estas funciones es un elemento concreto de una lista que se les pasa como argumento, de forma que si dicha lista es la representacin o

38

Cap tulo 3. Un modelo formal de la lgica proposicional o

de un frmula, dicho valor coincide con la conectiva principal o las subfrmulas o o componentes. Estas funciones son, op, que devuelve el primer elemento de una lista (si la lista representa una frmula ser la conectiva principal de la misma) o a y arg1 y arg2, que devuelven, respectivamente, el segundo y tercer elementos de una lista (si la lista representa una frmula, son sus subfrmulas componentes). o o A la hora de implementar estas funciones se ha de comprobar que la expresin o que se pasa como argumento tiene la longitud suciente para poder acceder a su primer, segundo y tercer elemento. Estas funciones devuelven nil en el caso de que la expresin argumento no sea una lista o no tenga la longitud adecuada. Esta o es la razn por la que el s o mbolo nil no es considerado un s mbolo proposicional, puesto que es comnmente utilizado para indicar un error en la evaluacin de una u o funcin. o Desde el punto de vista de la representacin, ser necesario distinguir las o a expresiones que representan frmulas de las que no. Llamaremos expresiones o monarias o expresiones binarias a aquellas que representan frmulas construidas o con una conectiva monaria o binaria, respectivamente. Estos conceptos son implementados por las funciones es-monaria y es-binaria, que comprueban si la expresin que se pasa como argumento es una lista de la longitud adecuada (2 o para las expresiones monarias y 3 para las binarias) y si su conectiva principal es, respectivamente, monaria o binaria. Estas funciones sirven para comprobar que la estructura de una expresin es la adecuada, no comprueban si dicha expresin o o representa una frmula proposicional correctamente construida. o 3.1.2.2 Funciones constructoras

Otro aspecto importante de la representacin de las frmulas es la construccin o o o de expresiones con la estructura correcta. Para cada conectiva denimos una funcin que construye una expresin para representar una frmula construida con o o o dicha conectiva y el nmero de argumentos correspondiente. Estas funciones son u negacion, conjuncion, disyuncion, implicacion y equivalencia. La expresin construida ser una lista en la que el primer elemento es una conectiva y o a los restantes elementos son las expresiones que representan la subfrmulas. As o , si F y G son expresiones que representan las frmulas F y G respectivamente, o entonces: Al evaluar (negacion F) se obtiene la expresin (- F). o Al evaluar (conjuncion F G) se obtiene la expresin (& F G). o o Al evaluar (disyuncion F G) se obtiene la expresin (\/ F G). o Al evaluar (implicacion F G) se obtiene la expresin (-> F G). Al evaluar (equivalencia F G) se obtiene la expresin (<-> F G). o

3.1. Sintaxis

39

Obviamente, el resultado devuelto por la funcin negacion es una expresin o o monaria y los resultados de las funciones conjuncion, disyuncion, implicacion y equivalencia son expresiones binarias. 3.1.2.3 Relacin entre funciones de acceso y constructoras o

Las funciones constructoras presentadas en el apartado anterior tienen la relacin adecuada con las funciones de acceso. La conectiva (op) de una expresin o o obtenida con alguna de las funciones constructoras coincide con la conectiva que dicha funcin utiliza. Tambin se verica que las componentes (arg1 o arg2) de o e una expresin obtenida con alguna de las funciones constructoras coincide con el o correspondiente argumento en su llamada. As (op (conjuncion F G)) es igual a &, (arg1 (negacion F)) es igual a F y (arg2 (implicacion F G)) es igual a G. Estos resultados se establecen en ACL2 de la siguiente forma: (defthm acceso-negacion (and (equal (op (negacion F)) -) (equal (arg1 (negacion F)) F))) (defthm acceso-conjuncion (and (equal (op (conjuncion F G)) &) (equal (arg1 (conjuncion F G)) F) (equal (arg2 (conjuncion F G)) G))) (defthm acceso-disyuncion (and (equal (op (disyuncion F G)) \/) (equal (arg1 (disyuncion F G)) F) (equal (arg2 (disyuncion F G)) G))) (defthm acceso-implicacion (and (equal (op (implicacion F G)) ->) (equal (arg1 (implicacion F G)) F) (equal (arg2 (implicacion F G)) G))) (defthm acceso-equivalencia (and (equal (op (equivalencia F G)) <->) (equal (arg1 (equivalencia F G)) F) (equal (arg2 (equivalencia F G)) G)))
3

3.1.3

Frmulas proposicionales o

o o mbolo proposicional. Notaremos Denicin 3.1 Una frmula atmica es un s o por At() al conjunto de las frmulas atmicas. o o

40

Cap tulo 3. Un modelo formal de la lgica proposicional o

Este concepto est implementado por la funcin es-atomica, de forma que a o la expresin (es-atomica F) es cierta si y slo si F At(): o o (defun es-atomica (F) (es-simbolo-proposicional F))
4

Denicin 3.2 El conjunto de las frmulas proposicionales es el menor conjunto o o P() tal que: 1. At() P(). 2. Si F P(), entonces F P(). 3. Si es una conectiva binaria y F, G P(), entonces (F G) P(). Este concepto est implementado por la funcin es-proposicional. As la a o , expresin (es-proposicional F) ser cierta si y slo si F P(). Para realizar o a o tal denicin hay que analizar recursivamente el objeto F: o 1. Si F es una expresin monaria, su argumento ha de ser una frmula propoo o sicional. o o 2. Si F es una expresin binaria, sus dos argumentos han de ser frmulas proposicionales. 3. En otro caso F ha de ser una frmula atmica. o o
5

(defun es-proposicional (F) (declare (xargs :measure (numero-conectivas F))) (cond ((es-monaria F) (es-proposicional (arg1 F))) ((es-binaria F) (and (es-proposicional (arg1 F)) (es-proposicional (arg2 F)))) (t (es-atomica F))))

Para que ACL2 admita esta funcin, se necesita una medida de los argumentos o que decrezca en las llamadas recursivas. Una medida habitual sobre frmulas o es el nmero de conectivas que en ellas aparece. Esta medida decrece en las u llamadas recursivas y, por tanto, puede ser utilizada para probar la terminacin o de funciones que hagan recursin sobre la estructura de una frmula. o o

3.1. Sintaxis

41

u o Denicin 3.3 El nmero de conectivas de una frmula proposicional F , tamo bin llamado rango de F , viene dado por la funcin r: e o o 1. Si F es atmica, r(F ) = 0. 2. Si F es la frmula monaria G, r(F ) = 1 + r(G). o 3. Si F es la frmula binaria (G1 G2 ), r(F ) = 1 + r(G1 ) + r(G2 ), (donde o es cualquier conectiva binaria).

La funcin numero-conectivas presentada en 6 formaliza este concepto. Es o importante notar que la denicin se hace independientemente de que el arguo mento sea una frmula proposicional. As esta denicin puede realizarse antes o , o de la denicin de es-proposicional y, por tanto, puede ser utilizada en la o prueba de terminacin de esta ultima. o

(defun numero-conectivas (F) (cond ((es-monaria F) (+ (numero-conectivas (arg1 F)) 1)) ((es-binaria F) (+ (numero-conectivas (arg1 F)) (numero-conectivas (arg2 F)) 1)) (t 0)))

El siguiente resultado no es necesario para la prueba de terminacin de la o funcin es-proposicional, sin embargo simplica mucho las pruebas cuando se o o usa numero-conectivas como medida de terminacin:

Teorema 3.4 El nmero de conectivas de una frmula proposicional compuesta u o es mayor que el nmero de conectivas de sus subfrmulas componentes. u o

La formulacin en ACL2 de este teorema es ms general puesto que hace o a referencia a expresiones monarias y binarias: el nmero de conectivas de una u expresin monaria o binaria es mayor que el nmero de conectivas de sus arguo u mentos. De esta forma, el resultado se puede establecer en ACL2 antes de la denicin de es-proposicional y por tanto, tambin puede ser utilizado en la o e prueba de terminacin de esta ultima. o

42

Cap tulo 3. Un modelo formal de la lgica proposicional o


7

(defthm numero-conectivas-monaria-decrece (implies (es-monaria F) (< (numero-conectivas (arg1 F)) (numero-conectivas F)))) (defthm numero-conectivas-binaria-decrece (implies (es-binaria F) (and (< (numero-conectivas (arg1 F)) (numero-conectivas F)) (< (numero-conectivas (arg2 F)) (numero-conectivas F)))))

Con estos resultados se demuestra fcilmente la terminacin de la funcin a o o es-proposicional.

3.1.4

Clasicacin de las frmulas o o

Una vez que est denida la funcin es-proposicional, podemos denir las a o funciones que sirven para clasicar las frmulas proposicionales en funcin de su o o conectiva principal. Estas funciones comprueban que la expresin que se les pasa o como argumento es una frmula proposicional correctamente construida y que su o conectiva principal es del tipo adecuado: (defun es-negacion (F) (and (equal (op F) -) (es-proposicional F))) (defun es-conjuncion (F) (and (equal (op F) &) (es-proposicional F))) (defun es-disyuncion (F) (and (equal (op F) \/) (es-proposicional F))) (defun es-implicacion (F) (and (equal (op F) ->) (es-proposicional F))) (defun es-equivalencia (F) (and (equal (op F) <->) (es-proposicional F)))
8

3.1. Sintaxis

43

Obviamente, estas funciones se comportan de la forma esperada cuando se utilizan sobre frmulas construidas con las funciones negacion, conjuncion, o disyuncion, implicacion y equivalencia, a partir de componentes proposicionales. As si F y G son frmulas proposicionales entonces se verican las propieda, o des (es-negacion (negacion F)), (es-conjuncion (conjuncion F G)), etc. Utilizando estas funciones se puede proporcionar una nueva caracterizacin o de las frmulas proposicionales: F es una frmula proposicional si y slo si F es o o o atmica, una negacin, una conjuncin, una disyuncin, una implicacin o una o o o o o equivalencia: (defthm otra-definicion-de-es-proposicional (iff (es-proposicional F) (or (es-atomica F) (es-negacion F) (es-conjuncion F) (es-disyuncion F) (es-implicacion F) (es-equivalencia F))))
9

3.1.5

Teorema de descomposicin unica o

En la formalizacin de la lgica proposicional, un mismo objeto ACL2 no puede o o representar dos frmulas distintas. Este resultado es conocido como el teorema o de descomposicin unica: o Teorema 3.5 Toda frmula proposicional tiene una y slo una de las siguientes o o formas: 1. Frmula atmica. o o o 2. F , para una unica frmula proposicional F . 3. (F G), para una unica conectiva binaria , y unas unicas frmulas propo o sicionales F y G. En nuestra formalizacin este teorema se expresa de la siguiente forma: Si o una frmula proposicional es de un tipo concreto (es-atomica, es-negacion, o es-conjuncion, es-disyuncion, es-implicacion o es-equivalencia), entonces no puede ser de ningn otro tipo. Se trata de 6 resultados, uno para cada u tipo de frmula, de los cuales mostramos en 10 los relativos a frmulas atmicas o o o y conjunciones. Los restantes se establecen de forma similar.

44

Cap tulo 3. Un modelo formal de la lgica proposicional o


10

(defthm unicidad-es-atomica (implies (es-atomica F) (and (not (es-negacion F)) (not (es-conjuncion F)) (not (es-disyuncion F)) (not (es-implicacion F)) (not (es-equivalencia F))))) (defthm unicidad-es-conjuncion (implies (es-conjuncion F) (and (not (es-atomica F)) (not (es-negacion F)) (not (es-disyuncion F)) (not (es-implicacion F)) (not (es-equivalencia F)))))

Estos resultados junto con 9 nos permiten demostrar propiedades por distino o o cin de casos: si una propiedad q0 es cierta para toda frmula atmica, negacin, o conjuncin, disyuncin, implicacin o equivalencia entonces es cierta para toda o o o frmula proposicional. o

3.1.6

S mbolos proposicionales de una frmula o

Terminamos esta seccin deniendo el conjunto de s o mbolos proposicionales de una frmula. o Denicin 3.6 Dada una frmula proposicional F P(), el conjunto de s o o mbolos proposicionales de F , V ar(F ), se dene como sigue: 1. Si F At(), V ar(F ) = {F }. 2. Si F = G, V ar(F ) = V ar(G). 3. Si F = (G1 G2 ), V ar(F ) = V ar(G1 ) V ar(G2 ) (donde es cualquier conectiva binaria). La construccin en ACL2 es recursiva sobre la estructura de la frmula. Si o o la frmula es monaria, el conjunto de sus s o mbolos coincidir con el conjunto de a s mbolos de su argumento. Si la frmula es binaria, el conjunto de sus s o mbolos ser la unin de los s a o mbolos de sus dos argumentos. Finalmente, si la frmula es o un s mbolo proposicional, el resultado es la lista formada por dicho s mbolo. En cualquier otro caso el resultado es vac El nmero de conectivas de la frmula de o. u o partida, es la medida que garantiza que esta funcin recursiva siempre termina. o

3.2. Semntica clsica a a (defun simbolos-proposicionales (F) (declare (xargs :measure (numero-conectivas F))) (cond ((es-monaria F) (simbolos-proposicionales (arg1 F))) ((es-binaria F) (union-equal (simbolos-proposicionales (arg1 F)) (simbolos-proposicionales (arg2 F)))) ((es-simbolo-proposicional F) (list F)) (t nil)))

45
11

La funcin union-equal realiza la unin de los elementos de dos listas elimio o nando las repeticiones. De esta forma se asegura que el resultado es un conjunto. Teorema 3.7 Dada una frmula cualquiera F P(), se verica: o 1. Si F es G, entonces V ar(G) V ar(F ). 2. Si F es (G1 G2 ) entonces V ar(G1 ) V ar(F ) y V ar(G2 ) V ar(F ) (donde es cualquier conectiva binaria). La demostracin de este resultado en ACL2 se basa en dos lemas previos, en los o que se prueba que cualquier lista que contenga todos los s mbolos proposicionales de una frmula compuesta, tambin contiene los s o e mbolos proposicionales de sus argumentos. (defthm subsetp-equal-simbolos-proposicionales-monaria (implies (es-monaria F) (subsetp-equal (simbolos-proposicionales (arg1 F)) (simbolos-proposicionales F)))) (defthm subsetp-equal-simbolos-proposicionales-binaria (implies (es-binaria F) (and (subsetp-equal (simbolos-proposicionales (arg1 F)) (simbolos-proposicionales F)) (subsetp-equal (simbolos-proposicionales (arg2 F)) (simbolos-proposicionales F)))))
12

3.2

Semntica clsica a a

Presentamos en esta seccin la formalizacin de la semntica clsica de la lgica o o a a o proposicional. Se discute la representacin de las asignaciones y su utilizacin o o

46

Cap tulo 3. Un modelo formal de la lgica proposicional o

para determinar el valor de verdad de una frmula proposicional. Tambin se o e denen los conceptos de satisfacibilidad y validez, y se indica cmo son utilizados o en la formalizacin de teoremas en el sistema. Los eventos ACL2 que se presentan o en esta seccin se encuentran en el libro semantica.lisp. o

3.2.1

Asignaciones

La lgica proposicional clsica es bivaluada. Notaremos como B al conjunto o a y representan los valores de los valores de verdad, B = { , }. Donde cierto y falso. En la formalizacin utilizaremos las constantes *V* y *F* para o representar los valores de verdad. El valor de *V* es (1) y el valor de *F* es (0). Se han escogido estos valores para asegurar que el conjunto de s mbolos proposicionales y el conjunto de valores de verdad son disjuntos, aunque esta propiedad no es necesaria para el desarrollo posterior. Denimos el predicado es-valor-de-verdad para comprobar si un objeto v pertenece al conjunto B. As la expresin (es-valor-de-verdad v) ser cierta si y slo si se verica la , o a o propiedad v B: (defun es-valor-de-verdad (v) (or (equal v *V*) (equal v *F*)))
13

Se podr utilizar los valores de verdad del sistema, nil para falso y cualquier an cosa distinta de nil para verdadero. Esta opcin no ha sido considerada ya que o podr dar lugar a confusiones entre los valores de verdad de la lgica y los del a o sistema. Con nuestra eleccin los valores de verdad de la lgica son independientes o o de los del sistema y adems, es ms fcil ampliar la representacin cuando se a a a o aumenta el nmero de valores de verdad. Tambin permite considerar otros u e valores de verdad, sin ms que cambiar el valor de las constantes *V* y *F*. a Denicin 3.8 Una asignacin sobre , es una funcin : B. Notaremos o o o V al conjunto de todas las asignaciones sobre . El valor de verdad de una frmula proposicional se determina a partir de los o valores de verdad de los s mbolos proposicionales que en ella aparecen, utilizando un conjunto de funciones asociadas a las conectivas lgicas. Las asignaciones o establecen un valor de verdad concreto para cada s mbolo proposicional. Para representar las asignaciones utilizamos listas de asociacin, en las que se relacioo nan los s mbolos proposicionales con el valor de verdad asignado. Una restriccin o debida a esta representacin es que unicamente podemos expresar asignaciones o en las que slo un nmero nito de s o u mbolos proposicionales tienen un valor expl citamente asignado. Llamamos asignaciones parciales a estas asignaciones. Denicin 3.9 Una asignacin parcial sobre , es una funcin parcial : o o o B, denida sobre un conjunto nito de elementos.

3.2. Semntica clsica a a

47

As la lista de asociacin ( (p . *F*) (q . *F*) (r . *V*) (s . *V*) ) , o representa la asignacin parcial , en la que (p) = (q) = y (r) = (s) = . o A la hora de utilizar una asignacin parcial para determinar el valor de verdad o de una frmula, no siempre tendremos la seguridad de que todos los s o mbolos de la frmula tengan un valor de verdad asociado en dicha asignacin. Por ello, o o tendremos que extender la denicin de las asignaciones parciales, considerando o un valor de verdad por defecto para los s mbolos sobre los que no estn denidas: a o Denicin 3.10 Dada una asignacin parcial sobre , : B, considerareo mos la extensin a una funcin total denida de la siguiente manera: : B, o o tal que, dado x (x) si est denida sobre x a (x) = en otro caso Por tanto, para calcular el valor de verdad de un s mbolo en la extensin de o una asignacin parcial, basta con comprobar si dicho s o mbolo tiene asociado el valor *V* en la asignacin parcial y, en caso contrario, su valor ser *F*. Este valor o a es devuelto por la funcin valor-de-simbolo denida en 14 . En lo sucesivo, o cuando hablemos de valor de verdad de un s mbolo en una asignacin parcial o estaremos haciendo referencia al valor en la extensin de dicha asignacin. o o (defun valor-de-simbolo (x sigma) (cond ((es-simbolo-proposicional x) (let ((valor (cdr (assoc-equal x sigma)))) (if (es-valor-de-verdad valor) valor *F*))) (t *F*)))
14

Hay que tener en cuenta que si un s mbolo aparece en varias ocasiones en una asignacin, el valor de verdad que se considera es el que proporciona la o primera ocurrencia del mismo. Por ejemplo, el valor de b en la asignacin parcial o ( (a . *V*) (b . *F*) (b . *V*) ) es *F*. Adems, si un s a mbolo no est a asociado a un valor de verdad correcto, la asignacin no se considera denida o para dicho s mbolo y por tanto su valor de verdad ser *F*. Por ejemplo, el valor a de c en la asignacin parcial ( (a . *V*) (c . t) ) es *F*. o Denicin 3.11 Sea una asignacin, x un s o o mbolo proposicional y v un valor de verdad, [x/v] es la asignacin denida por: o [x/v](y) = si y es x v (x) en otro caso

Este concepto se formaliza mediante la funcin asume-valor: o

48

Cap tulo 3. Un modelo formal de la lgica proposicional o


15

(defun asume-valor (x valor sigma) (acons x valor sigma))

3.2.2

Funciones de verdad

Las funciones de verdad denen el comportamiento semntico de las conectivas a lgicas. Estas funciones determinan el valor de verdad de una frmula compuesta o o a partir de los valores de verdad de sus componentes. Denicin 3.12 Para cada conectiva proposicional, , , , y , consideo ramos las funciones de verdad F : B B, y F , F , F , F : B B B, cuya denicin viene dada en las siguientes tablas: o X X F Y F F F F

La formalizacin de las funciones de verdad asociadas a las conectivas es la o siguiente: (defun funcion-de-verdad-de-negacion (i) (if (equal i *V*) *F* *V*)) (defun funcion-de-verdad-de-conjuncion (i j) (if (equal i *V*) (if (equal j *V*) *V* *F*) *F*)) (defun funcion-de-verdad-de-disyuncion (i j) (if (equal i *V*) *V* (if (equal j *V*) *V* *F*))) (defun funcion-de-verdad-de-implicacion (i j) (if (equal i *V*) (if (equal j *V*) j *F*) *V*)) (defun funcion-de-verdad-de-equivalencia (i j) (if (equal i *V*) (if (equal j *V*) *V* *F*) (if (equal j *V*) *F* *V*)))
16

3.2. Semntica clsica a a

49

3.2.3

Valor de una frmula en una asignacin o o

Denicin 3.13 La valoracin asociada a una asignacin es la funcin : o o o o P() B, tal que, dado F P(): 1. Si F es atmica, (F ) = (F ). o o 2. Si F es la frmula monaria G, (F ) = F ( (G)). o 3. Si F es la frmula binaria G1 G2 , (F ) = F ( (G1 ), (G2 )), donde es cualquier conectiva binaria. En nuestra formalizacin denimos la funcin valor, mostrada en 17 , que o o dados una frmula proposicional y una asignacin parcial, calcula el valor de o o verdad de la frmula en la valoracin asociada a la extensin de la asignacin o o o o parcial. El nmero de conectivas de la frmula de partida, es la medida que u o garantiza que esta funcin recursiva siempre termina. En lo sucesivo, cuando o hablemos del valor de verdad de una frmula en una asignacin, nos estaremos o o reriendo al valor de verdad de dicha frmula en la valoracin asociada. o o (defun valor (F sigma) (declare (xargs :measure (numero-conectivas F))) (cond ((es-negacion F) (funcion-de-verdad-de-negacion (valor (arg1 F) sigma))) ((es-conjuncion F) (funcion-de-verdad-de-conjuncion (valor (arg1 F) sigma) (valor (arg2 F) sigma))) ((es-disyuncion F) (funcion-de-verdad-de-disyuncion (valor (arg1 F) sigma) (valor (arg2 F) sigma))) ((es-implicacion F) (funcion-de-verdad-de-implicacion (valor (arg1 F) sigma) (valor (arg2 F) sigma))) ((es-equivalencia F) (funcion-de-verdad-de-equivalencia (valor (arg1 F) sigma) (valor (arg2 F) sigma))) (t (valor-de-simbolo F sigma))))
17

50

Cap tulo 3. Un modelo formal de la lgica proposicional o

o Denicin 3.14 Una asignacin es modelo de una frmula F , |= F , si el o o valor de verdad de F en dicha asignacin es verdadero, (F ) = . o Este concepto es incorporado a nuestra formalizacin de la siguiente forma: o (defun modelo (sigma F) (equal (valor F sigma) *V*))
18

Finalmente denimos el concepto de complementario, que relaciona una fro mula con otra cuyo valor de verdad es el contrario que el de la primera. Denicin 3.15 El complementario de una frmula F , que notaremos F , se o o dene de la siguiente forma: si F = G entonces F = G, en otro caso F = F . La funcin que implementa este concepto es la siguiente: o (defun complementario (F) (if (es-negacion F) (arg1 F) (negacion F)))
19

La principal propiedad del complementario de una frmula es la que relaciona o su valor de verdad con el de la original: o Teorema 3.16 Dada una frmula F y una asignacin , se tiene |= F si y slo o o si |= F . El siguiente evento formaliza esta propiedad: (defthm modelo-complementario (implies (es-proposicional F) (iff (modelo sigma (complementario F)) (not (modelo sigma F)))))
20

3.2.4

Satisfacibilidad, validez y consecuencia lgica o

o Denicin 3.17 Una frmula F es satisfacible si existe una asignacin tal que o o |= F . La formalizacin de este concepto supone la bsqueda de una asignacin moo u o delo de la frmula de partida. Dado que el conjunto de asignaciones es innito o (an considerando unicamente las asignaciones parciales), no podemos denir u una funcin que compruebe si existe una que sea modelo de una frmula. En su o o lugar, cuando queramos utilizar como condicin de un teorema el hecho de que o

3.2. Semntica clsica a a

51

una frmula es satisfacible, utilizaremos la expresin (modelo SIGMA F), donde o o SIGMA es una variable libre nueva. As si SAT es una funcin que implemeno , ta un algoritmo para decidir la satisfacibilidad de una frmula, el resultado de o completitud para dicha funcin ser: o a (defthm completitud-SAT (implies (and (es-proposicional F) (modelo SIGMA F)) (SAT F))) Este evento se interpreta de la siguiente forma: Si F es una frmula proposio e cional para la que existe SIGMA modelo de F, entonces la funcin SAT tiene xito o al ser evaluada sobre F. Cuando la armacin sobre la satisfacibilidad de una frmula aparece como o o conclusin de un resultado, tendremos que construir expl o citamente una asignacin modelo de dicha frmula. Esto ocurre con el resultado de correccin asociado o o o a la funcin SAT, donde se considera una funcin MOD que construye un modelo o o de F. (defthm correccion-SAT (implies (and (es-proposicional F) (SAT F)) (modelo (MOD F) F))) Denicin 3.18 Una frmula F es vlida, y lo notaremos |= F , si para cualquier o o a asignacin se tiene que (F ) = . o En nuestra formalizacin tampoco podemos denir una funcin que impleo o mente este concepto, ya que eso supondr trabajar con todas las asignaciones y a ste es un conjunto innito. En su lugar, cuando queramos utilizar como conclue sin de un teorema el hecho de que una frmula es vlida, usaremos de nuevo la o o a expresin (modelo SIGMA F), donde SIGMA es una variable libre nueva. As si o , DAT es una funcin que implementa un algoritmo para decidir la validez de una o frmula, el teorema de correccin de dicha funcin es el siguiente: o o o (defthm correccion-DAT (implies (and (es-proposicional F) (DAT F)) (modelo SIGMA F))) Puesto que el sistema interpreta los teoremas cuanticando universalmente las variables libres, el evento anterior se interpreta de la siguiente forma: Si la

52

Cap tulo 3. Un modelo formal de la lgica proposicional o

funcin DAT tiene xito al ser evaluada sobre una frmula F, entonces para toda o e o asignacin SIGMA, SIGMA es modelo de F. o La formalizacin no es tan simple cuando la armacin sobre la validez de o o una frmula aparece entre las hiptesis del teorema. Este es el caso del teorema o o de completitud asociado a la funcin DAT que arma lo siguiente: o ( : (modelo F )) (DAT F ) Este resultado no se puede expresar tal cual en el sistema, debido a la cuanticacin universal que hay en el antecedente. Normalmente, modicamos esta o formulacin hasta conseguir otra equivalente en la que no aparezcan cuanticao ciones en el antecedente: ( : (modelo F )) (DAT F ) ( : (modelo F )) (DAT F ) , (modelo F ) (DAT F ) (DAT F ) , (modelo F ) (DAT F ) , (modelo F )

Esta ultima expresin se puede formalizar como sigue: o (defthm completitud-DAT (implies (and (es-proposicional F) (not (DAT F))) (not (modelo (contramodelo-DAT F))))) o donde la funcin contramodelo-DAT proporciona una asignacin que, en las cono diciones del resultado, no es modelo de la frmula F. o Denicin 3.19 Una frmula F es consecuencia lgica de las frmulas o o o o H1 , . . . , Hn , y lo notaremos H1 , . . . , Hn |= F , si para toda asignacin que sea o modelo de todas las frmulas Hi , es modelo de F . o De nuevo se trata de un concepto que no podemos denir en nuestra formalizacin, en su lugar utilizaremos expresiones relativas a la funcin modelo. As o o , si CONSEC es una funcin que implementa un procedimiento para decidir si una o o o frmula F es consecuencia lgica de una lista de frmulas lista-H, el teorema de o correccin de dicha funcin es el siguiente: o o (defthm correccion-CONSEC (implies (and (lista-formulas lista-H) (es-proposicional F) (CONSEC lista-H F) (modelo-lista SIGMA lista-H)) (modelo SIGMA F)))

3.2. Semntica clsica a a

53

donde lista-formulas es una funcin que comprueba si su argumento es una o lista de frmulas proposicionales y modelo-lista es una funcin que comprueba o o si una asignacin es modelo de todos los elementos de una lista. o Este evento se interpreta de la siguiente forma: Si la funcin CONSEC tiene o xito al ser evaluada sobre la lista de frmulas lista-H y la frmula F, entonces e o o para toda asignacin SIGMA que sea modelo de todos los elementos de lista-H, o SIGMA es modelo de F. Para expresar el resultado de completitud asociado a la funcin CONSEC, se o utiliza una formulacin similar al del resultado de completitud de una funcin o o para decidir la validez: Si la funcin CONSEC no tiene xito al ser evaluada sobre o e una lista de frmulas lista-H y una frmula F, entonces existe una asignacin o o o que siendo modelo de todos los elementos de lista-H, no es modelo de F. La o funcin contramodelo-CONSEC proporciona dicha asignacin: o

(defthm completitud-CONSEC (implies (and (lista-formulas lista-H) (es-proposicional F) (not (CONSEC lista-H F))) (and (modelo-lista (contramodelo-CONSEC lista-H F) lista-H) (not (modelo (contramodelo-CONSEC lista-H F) F)))))

Denicin 3.20 Dos frmulas F1 y F2 son lgicamente equivalentes, y lo notao o o o remos F1 F2 , si tienen el mismo valor de verdad en cualquier asignacin. Este concepto tampoco se puede denir en nuestra formalizacin, en su lugar o , usaremos la expresin: (equal (valor F1 SIGMA) (valor F2 SIGMA)). As si o FN es un procedimiento para calcular cierto tipo de formas normales, el evento que arma que dicho procedimiento mantiene la equivalencia lgica ser el siguiente: o a

(defthm equivalencia-logica-FN (implies (es-proposicional F) (equal (valor (FN F) SIGMA) (valor F SIGMA))))

54

Cap tulo 3. Un modelo formal de la lgica proposicional o

3.3

Semntica de Kleene a

En determinadas ocasiones se puede determinar si una frmula es cierta o falsa, o an cuando se desconoce el valor de verdad de sus componentes. Por ejemplo, u o para armar que la frmula p q es cierta en una asignacin, basta con saber o que una de sus componentes es cierta. Este tipo de situaciones es el que se formaliza con la semntica de Kleene, en la que se consideran los valores de a verdad de la semntica clsica junto con un tercer valor que se interpreta como a a indeterminado o desconocido. En esta seccin presentamos la formalizacin de una semntica de la lgica o o a o proposicional basada en la lgica trivalorada fuerte de Kleene [45]. Siguiendo o un desarrollo similar al de la seccin anterior se presentan los conceptos de Ko asignacin, funciones de verdad de las conectivas, K-satisfacibilidad, K-validez, o o o consecuencia K-lgica y equivalencia K-lgica. Los eventos ACL2 que se presentan en esta seccin se encuentran en el libro semantica-K.lisp. o

3.3.1

K-asignaciones

La lgica trivalorada fuerte de Kleene utiliza los valores de verdad clsicos, o a y , interpretados como cierto y falso y un tercer valor, , que se interpreta como indeterminado o desconocido. As si el valor de una frmula en una , o o asignacin es , entonces no se tiene suciente informacin para decidir si es o verdadera o falsa. Teniendo en cuenta este hecho, llamaremos valores de verdad a los valores y y valor indeterminado a . Notaremos como K al conjunto formado por los tres valores: K = { , , } = B {}. Al igual que en la semntica clsica utilizamos las constantes *V* y *F* para a a representar los valores de verdad y . El valor indeterminado est representado a por nil. De esta forma slo habr que modicar ligeramente los eventos que o a describen la semntica clsica para obtener los correspondientes de la semntica a a a de Kleene. Denicin 3.21 Una K-asignacin sobre es una funcin : K. o o o Al igual que para la semntica clsica, utilizaremos listas de asociacin paa a o o o ra representar las K-asignaciones. Con esta representacin slo se pueden expresar asignaciones en las que un nmero nito de s u mbolos tienen un valor expl citamente asignado, as que tendremos que extenderlas deniendo su com portamiento cuando el valor no est proporcionado de forma expl e cita. El valor por defecto ser . De esta forma, para representar una K-asignacin basta con a o o indicar los s mbolos que tienen asignado un valor distinto de , con la limitacin de que ha de ser un nmero nito. Es decir, la representacin de una K-asignacin u o o ser una asignacin parcial (ver 3.9) extendida para asignar el valor a todos a o los s mbolos que no estn en su dominio. e

3.3. Semntica de Kleene a

55

o Denicin 3.22 Dada una asignacin parcial sobre , : B, considerao o remos la K-asignacin denida de la siguiente manera: K : K, tal que, dado x (x) si est denida sobre x a K (x) = en otro caso

o Por tanto, para calcular el valor de un s mbolo en la K-asignacin obtenida segn la denicin anterior, comprobamos si dicho s u o mbolo tiene asociado un valor de verdad en la asignacin parcial y, en caso contrario, su valor ser nil. Una o a versin ligeramente modicada de la funcin valor-de-simbolo nos proporciona o o este valor:

(defun valor-de-simbolo-K (x sigma) (cond ((es-simbolo-proposicional x) (let ((valor (cdr (assoc-equal x sigma)))) (if (es-valor-de-verdad valor) valor nil))) (t nil)))

21

Con respecto a esta funcin y la representacin de las asignaciones se tienen o o las mismas caracter sticas que en la semntica clsica. El valor de un s a a mbolo b ser el que proporciona el primer par (b . v) que aparezca en la asignacin y si a o un s mbolo no est asociado a un valor de verdad (*V* o *F*) correcto entonces a el valor de dicho s mbolo en la asignacin es nil. o o La forma de construir una nueva K-asignacin a partir de otra, cambiando el valor asignado para un s mbolo, es igual que en la semntica clsica: a a

Denicin 3.23 Sea una K-asignacin, x un s o o mbolo proposicional y v un valor de K, [x/v] es la asignacin denida por: o [x/v](y) = v si y es x (x) en otro caso

15

Este concepto se formaliza mediante la funcin asume-valor presentada en o .

56

Cap tulo 3. Un modelo formal de la lgica proposicional o

3.3.2

Funciones de verdad en K

La denicin de las funciones de verdad de las conectivas lgicas en la semntica o o a de Kleene, es una extensin de las funciones de verdad para la semntica clsica. o a a En esta extensin, en determinadas ocasiones, es posible determinar un valor o de verdad para una frmula an cuando los valores de verdad de alguna de sus o u componentes es indeterminado. Denicin 3.24 Para cada conectiva proposicional, , , , y , considerao mos las funciones de verdad en K: K : K K, y K , K , K , K : K K K, cuya denicin viene dada en las siguientes tablas: o X Y K K K K

La formalizacin de las funciones de verdad en la semntica de Kleene es la o a siguiente: (defun funcion-de-verdad-de-negacion-K (i) (cond ((equal i *F*) *V*) ((equal i *V*) *F*) (t nil))) (defun funcion-de-verdad-de-conjuncion-K (i j) (cond ((equal i *F*) *F*) ((equal i *V*) j) (t (cond ((equal j *F*) *F*) (t nil))))) (defun funcion-de-verdad-de-disyuncion-K (i j) (cond ((equal i *F*) j) ((equal i *V*) *V*) (t (cond ((equal j *V*) *V*) (t nil)))))
22

3.3. Semntica de Kleene a (defun funcion-de-verdad-de-implicacion-K (i j) (cond ((equal i *F*) *V*) ((equal i *V*) j) (t (cond ((equal j *V*) *V*) (t nil))))) (defun funcion-de-verdad-de-equivalencia-K (i j) (cond ((equal i *F*) (cond ((equal j *F*) *V*) ((equal j *V*) *F*) (t nil))) ((equal i *V*) (cond ((equal j *F*) *F*) ((equal j *V*) *V*) (t nil))) (t nil)))

57
22

3.3.3

Valor de una frmula en una K-asignacin o o

El valor de una frmula en una K-asignacin se determina a partir de los valores o o de los s mbolos proposicionales que en ella aparecen, utilizando las funciones de verdad en K: o Denicin 3.25 La K-valoracin asociada a una K-asignacin es la funcin o o o K : P() K, tal que, dado F P(): 1. Si F es atmica, K (F ) = (F ). o 2. Si F es la frmula monaria G, K (F ) = K (K (G)). o o 3. Si F es la frmula binaria G1 G2 , K (F ) = K (K (G1 ), K (G2 )), donde es cualquier conectiva binaria. Para calcular el valor de una frmula en una K-asignacin utilizamos la funcin o o o valor-K, cuya denicin es igual a la correspondiente para la lgica proposicional, o o denida en 17 , salvo que se utilizan las funciones de verdad en K presentadas o en 22 , y la funcin que determina el valor de un s o mbolo en una K-asignacin, denida en 21 . En lo sucesivo, cuando hablemos del valor de una frmula en o una K-asignacin estaremos haciendo referencia al valor de dicha frmula en la o o o valoracin asociada a la K-asignacin. o Denicin 3.26 Dada una K-asignacin y una frmula F , diremos que o o o 1. es modelo de F , |=K F , si el valor de F en es .

2. es nomodelo de F , |=K F , si el valor de F en es .

58

Cap tulo 3. Un modelo formal de la lgica proposicional o La formalizacin de estos conceptos es la siguiente: o

(defun modelo-K (sigma F) (equal (valor-K F sigma) *V*)) (defun no-modelo-K (sigma F) (equal (valor-K F sigma) *F*))

23

En la semntica clsica es suciente con denir el concepto de modelo, ya a a que el concepto de nomodelo es la negacin del primero. No ocurre esto en la o semntica de Kleene puesto que hay tres valores de verdad. As el concepto de a , contramodelo en la semntica clsica se corresponde con el de nomodelo en la a a semntica de Kleene. a

3.3.4

Satisfacibilidad, validez y consecuencia lgica en K o

o Denicin 3.27 Una frmula F es satisfacible en K o K-satisfacible, si existe o una K-asignacin tal que |=K F . o Al igual que ocurre en la semntica clsica, no podemos denir una funcin que a a o implemente este concepto, ni ninguno de los de esta seccin, pues eso supondr o a trabajar con todas las K-asignaciones, y ste es un conjunto innito. Analicemos e pues cmo son incorporados estos conceptos a los teoremas en la formalizacin. o o Con respecto a la satisfacibilidad en K, las observaciones son las mimas que en el caso de la semntica clsica. As los resultados de correccin y completitud para a a , o una funcin SAT que implementa un algoritmo para decidir la K-satisfacibilidad o de una frmula son: o (defthm correccion-SAT (implies (and (es-proposicional F) (SAT F)) (modelo-K (MOD F) F))) (defthm completitud-SAT (implies (and (es-proposicional F) (modelo-K sigma F)) (SAT F))) o o donde MOD es una funcin que proporciona un modelo en K de la frmula F. Denicin 3.28 Una frmula F es vlida en K o K-vlida, si para toda Ko o a a asignacin , el valor de F en es o . o

3.3. Semntica de Kleene a

59

Obsrvese que el concepto de frmula K-vlida no se dene de igual forma e o a que en la semntica clsica. Esto se debe a que para cualquier frmula F siempre a a o existen K-asignaciones que no son modelo en K de F . De hecho la K-asignacin o denida de forma que el valor de cualquier s mbolo es indeterminado, no es modelo en K de ninguna frmula. Una formulacin equivalente del concepto de K-validez o o es la siguiente: una frmula F es K-vlida si no existen K-asignaciones que sean o a nomodelo de F . De hecho, la semntica de Kleene con este concepto de validez es a homomrca a la semntica clsica, es decir, tiene el mismo conjunto de frmulas o a a o vlidas ([9] pg 74). a Si DAT es una funcin que implementa un algoritmo para decidir la K-validez o de una frmula, entonces los resultados de correccin y completitud para dicha o o funcin son: o (defthm correccion-DAT (implies (and (es-proposicional F) (DAT F) (valor-K F sigma)) (modelo-K sigma F))) (defthm completitud-DAT (implies (and (es-proposicional F) (not (DAT F))) (no-modelo-K (contramodelo-DAT F)))) En el resultado de correccin se ha aadido la hiptesis (valor-K F sigma) o n o o para asegurar que la K-asignacin sigma no deja indeterminada a la frmula F. o De esta forma, si se verica (DAT F) entonces, para toda K-asignacin sigma, el o valor de F en sigma es nil o *V*. La funcin contramodelo-DAT del teorema o de completitud proporciona una K-asignacin en la que F es falsa, de ah que se o o utilice la funcin no-modelo-K en la conclusin. o Denicin 3.29 Una frmula F es consecuencia lgica en K o consecuencia o o o o o K-lgica de las frmulas H1 , . . . , Hn , y lo notaremos H1 , . . . , Hn |=K F , si para o toda K-asignacin que sea modelo en K de todas las frmulas Hi , el valor de o F en es o . Al igual que con el concepto de K-validez, el de consecuencia K-lgica no se o dene como el correspondiente para la semntica clsica. La razn es la misma, a a o en determinados casos no se puede armar que toda K-asignacin que sea modelo o en K de las hiptesis, hace cierta la conclusin. Por ejemplo, esto ocurre cuando la o o conclusin es una frmula K-vlida y no hay hiptesis. Si CONSEC es una funcin o o a o o que implementa un procedimiento para decidir si una frmula F es consecuencia o lgica en K de una lista de frmulas lista-H, los resultados de correccin y o o o completitud para CONSEC son:

60

Cap tulo 3. Un modelo formal de la lgica proposicional o

(defthm correccion-CONSEC (implies (and (lista-formulas lista-H) (es-proposicional F) (CONSEC lista-H F) (modelo-lista-K sigma lista-H) (valor-K F sigma)) (modelo-K SIGMA F))) (defthm completitud-CONSEC (implies (and (lista-formulas lista-H) (es-proposicional F) (not (CONSEC lista-H F))) (and (modelo-lista-K (contramodelo-CONSEC lista-H F) lista-H) (no-modelo-K (contramodelo-CONSEC lista-H F) F)))) En el resultado de correccin se ha aadido la hiptesis (valor-K F sigma) o n o o o para asegurar que la K-asignacin sigma no deja la frmula F indeterminada. La funcin contramodelo-CONSEC del teorema de completitud, proporciona una Ko asignacin que es modelo en K de todas las frmulas de lista-H, pero hace falsa o o a F. En ambos eventos se utiliza la funcin lista-formulas, que comprueba o si su argumento es una lista frmulas proposicionales, y modelo-lista-K, que o comprueba si una K-asignacin es modelo en K de todas las frmulas de una o o lista. o Denicin 3.30 Dos frmulas F1 y F2 son lgicamente equivalentes en K, y lo o o o notaremos F1 K F2 , si tienen el mismo valor en cualquier K-asignacin. Si FN es un procedimiento para calcular cierto tipo de formas normales, el evento que arma que dicho procedimiento mantiene la equivalencia lgica en K o es el siguiente: (defthm equivalencia-logica-FN (implies (es-proposicional F) (equal (valor-K (FN F) SIGMA) (valor-K F SIGMA))))

3.4

Tablas de verdad

En esta seccin se denen funciones que implementan algoritmos para decidir la o satisfacibilidad y la validez de una frmula proposicional, basados en tablas de o verdad. Con las tablas de verdad se analiza el valor de verdad de una frmula, o con respecto a las asignaciones parciales que estn denidas unicamente para los a

3.4. Tablas de verdad

61

s mbolos que en ella aparecen. A estas asignaciones las llamaremos asignaciones relevantes. Una frmula ser satisfacible si y slo si una de sus asignaciones o a o relevantes es modelo de ella, y ser vlida si y slo si todas sus asignaciones a a o relevantes son modelo de ella. Estos resultados son formalizados y demostrados en el sistema. Las deniciones y teoremas que se presentan en las tres primeras subsecciones se encuentran en el libro tablas-de-verdad.lisp, el desarrollo del mtodo de las tablas de verdad en la semntica de Kleene se encuentra en el libro e a tablas-de-verdad-K.lisp.

3.4.1

Asignaciones relevantes de una frmula o

Denicin 3.31 Dado un conjunto nito de s o mbolos, V , la familia de sus asignaciones parciales es A(V ) = { : V B} Para construir la familia de las asignaciones parciales de una lista de s mbolos, procedemos recursivamente sobre dicha lista. En cada paso, aadimos las ligan duras de un nuevo s mbolo con un valor de verdad, a la familia de asignaciones conseguida en el paso anterior. (defun asignaciones (Xs) (if (endp Xs) (list nil) (let ((sigma-lst (asignaciones (cdr Xs)))) (append (asume-valor-lista (car Xs) *F* sigma-lst) (asume-valor-lista (car Xs) *V* sigma-lst))))) (defun asume-valor-lista (x v sigma-lst) (if (endp sigma-lst) nil (cons (asume-valor x v (car sigma-lst)) (asume-valor-lista x v (cdr sigma-lst))))) Denicin 3.32 Dada una frmula F P(), la familia de sus asignaciones o o relevantes es AR (F ) = A(V ar(F )) La familia de las asignaciones relevantes de una frmula se construye a partir o de la lista de s mbolos de dicha frmula. Para denir este concepto utilizamos la o funcin asignaciones sobre la lista de s o mbolos de la frmula obtenida con la o funcin simbolos-proposicionales, denida en 11 . o (defun asignaciones-formula (F) (asignaciones (simbolos-proposicionales F)))
25 24

62

Cap tulo 3. Un modelo formal de la lgica proposicional o

mbolos, V , y una asignacin , o Denicin 3.33 Dado un conjunto de s o la asignacin relevante de V inducida por es la funcin V : V B tal que o o V (x) = (x) para todo x V . o La funcin asignacion-inducida construye la asignacin relevante de un o conjunto de s mbolos inducida por una asignacin: o (defun asignacion-inducida (Xs sigma) (if (endp Xs) nil (asume-valor (car Xs) (valor-de-simbolo (car Xs) sigma) (asignacion-inducida (cdr Xs) sigma))))
26

El siguiente teorema establece un par de propiedades importantes de la asignacin inducida: o mbolos, V , y una asignacin , se Teorema 3.34 Dado un conjunto de s o verican: 1. V A(V ). 2. Para toda frmula F tal que V ar(F ) V se verica (F ) = V (F ). o La primera parte de este resultado se obtiene fcilmente a partir de la denia o cin de V . La segunda parte se debe a que el valor de verdad de una frmula se o determina a partir de los valores de verdad de los s mbolos que en ella aparecen, utilizando las funciones de verdad asociadas a las conectivas. Como V ar(F ) V entonces y V asignan el mismo valor de verdad a todos los s mbolos de F y por tanto, el valor de verdad de F en ambas asignaciones es el mismo. Los siguientes eventos formalizan el teorema anterior: (defthm asignacion-inducida-es-asignacion (member-equal (asignacion-inducida Xs sigma) (asignaciones Xs))) (defthm asignacion-inducida-equivale-a-la-original (implies (subsetp-equal (simbolos-proposicionales F) Xs) (equal (valor F (asignacion-inducida Xs sigma)) (valor F sigma))))
27

3.4. Tablas de verdad

63

3.4.2

Decisin de validez basada en tablas de verdad o

La validez de una frmula se puede decidir comprobando que todas sus asignao ciones relevantes son modelo de ella. Si se encuentra una en la que la frmula sea o falsa, entonces se puede armar que la frmula no es vlida. o a o Denicin 3.35 Una frmula F es vlida en una familia de asignaciones A si o a para toda A se tiene |= F . Denimos este concepto para familias nitas de asignaciones: (defun valida-en-asignaciones (F sigma-lst) (if (endp sigma-lst) t (and (modelo (car sigma-lst) F) (valida-en-asignaciones F (cdr sigma-lst)))))
28

o Algoritmo 3.36 (T AU T tv ) Dada una frmula F P(), T AU T tv (F ) es t si y slo si F es vlida en la familia de asignaciones AR (F ). En caso contrario el valor o a de T AU T tv (F ) es f . Este algoritmo est implementado por la siguiente funcin: a o (defun TAUT-tablas-de-verdad (F) (valida-en-asignaciones F (asignaciones-formula F)))
29

Obsrvese que, tanto en la descripcin del algoritmo como en los enunciados de e o las propiedades relacionadas con l, utilizamos los s e mbolos t y f para representar, respectivamente, los valores cierto y falso del sistema en el que se implementa dicho algoritmo. En nuestra formalizacin t representa el valor t y f el valor nil. o Esta notacin es utilizada en los restantes algoritmos que se presentan en esta o memoria. 3.4.2.1 Correccin del algoritmo o

a Teorema 3.37 Dada una frmula F , si T AU T tv (F ) = t entonces F es vlida. o Demostracin: o Sean una frmula F tal que T AU T tv (F ) = t y una asignacin . Por el o o teorema 3.34 se tiene V ar(F ) A(V ar(F )) = AR (F ), luego V ar(F ) (F ) = e pues T AU T tv (F ) = t. Por otro lado el teorema 3.34 tambin arma que (F ) = V ar(F ) (F ), luego |= F . Por tanto, para cualquier asignacin se tiene |= F y de aqu que F sea o vlida. a

64

Cap tulo 3. Un modelo formal de la lgica proposicional o Este resultado se formaliza como se indic en la seccin 3.2.4: o o

(defthm correccion-TAUT-tablas-de-verdad (implies (and (es-proposicional F) (TAUT-tablas-de-verdad F)) (modelo sigma F)))

30

27

La prueba de este resultado se obtiene a partir de los eventos establecidos en . Completitud del algoritmo

3.4.2.2

Teorema 3.38 Dada una frmula F , si T AU T tv (F ) = f entonces F no es vlida. o a Demostracin: o o o Sea F una frmula tal que T AU T tv (F ) = f entonces existe una asignacin a AR (F ) tal que |= F . Luego F no es vlida. La demostracin del teorema consiste en encontrar una asignacin relevano o te de la frmula F que no sea modelo de ella. Esto es lo que hace la funcin o o o o NO-MOD-tablas-de-verdad. Para obtener dicha asignacin se utiliza la funcin primer-contramodelo que devuelve la primera asignacin de una lista que no es o modelo de una frmula: o (defun NO-MOD-tablas-de-verdad (F) (primer-contramodelo F (asignaciones-formula F))) (defun primer-contramodelo (F sigma-lst) (if (endp sigma-lst) nil (if (not (modelo (car sigma-lst) F)) (car sigma-lst) (primer-contramodelo F (cdr sigma-lst))))) El teorema de completitud se formaliza siguiendo las indicaciones de la seccin o 3.2.4: (defthm completitud-TAUT-tablas-de-verdad (implies (and (es-proposicional F) (not (TAUT-tablas-de-verdad F))) (not (modelo (NO-MOD-tablas-de-verdad F) F))))
32 31

3.4. Tablas de verdad

65

3.4.3

Decisin de satisfacibilidad basada en tablas de o verdad

El algoritmo que decide la satisfacibilidad de una frmula basado en las tablas o de verdad, calcula el valor de verdad de la frmula en todas y cada una de sus o asignaciones relevantes. Si encuentra una en la que la frmula sea cierta, entonces o se puede armar que la frmula es satisfacible. o Denicin 3.39 Una frmula F es satisfacible en una familia de asignaciones A o o si A, |= F . Este concepto se dene fcilmente para familias nitas de asignaciones: a (defun satisfacible-en-asignaciones (F sigma-lst) (if (endp sigma-lst) nil (or (modelo (car sigma-lst) F) (satisfacible-en-asignaciones F (cdr sigma-lst)))))
33

Algoritmo 3.40 (SAT tv ) Dada una frmula F P(), SAT tv (F ) es t si y slo o o si F es satisfacible en la familia de asignaciones AR (F ). En caso contrario el valor de SAT tv (F ) es f . Este algoritmo est implementado por la siguiente funcin: a o (defun SAT-tablas-de-verdad (F) (satisfacible-en-asignaciones F (asignaciones-formula F))) 3.4.3.1 Correccin del algoritmo o
34

Teorema 3.41 Dada una frmula F , si SAT tv (F ) = t entonces F es satisfacible. o El resultado de correccin de la funcin que implementa el algoritmo tiene la o o siguiente forma (ver 3.2.4): (defthm correccion-SAT-tablas-de-verdad (implies (and (es-satisfacible F) (SAT-tablas-de-verdad F)) (modelo (MOD-tablas-de-verdad F) F)))
35

Donde MOD-tablas-de-verdad proporciona la primera asignacin del conjuno to AR (F ) que es modelo de F . La funcin MOD-tablas-de-verdad se ha denido o o a partir de la funcin primer-modelo, que devuelve la primera asignacin de una o lista que es modelo de una frmula: o

66

Cap tulo 3. Un modelo formal de la lgica proposicional o


36

(defun MOD-tablas-de-verdad (F) (primer-modelo F (asignaciones-formula F))) (defun primer-modelo (F sigma-lst) (if (endp sigma-lst) nil (if (modelo (car sigma-lst) F) (car sigma-lst) (primer-modelo F (cdr sigma-lst))))) 3.4.3.2 Completitud del algoritmo

o Teorema 3.42 Dada una frmula F , si F es satisfacible entonces SAT tv (F ) = t. Demostracin: o Puesto que F es satisfacible, existe una asignacin tal que |= F . Por el teoo rema 3.34 se tienen V ar(F ) A(V ar(F )) = AR (F ) y V ar(F ) (F ) = (F ). Luego F es satisfacible en la familia de asignaciones AR (F ), y de aqu SAT tv (F ) = t.

El resultado de completitud de la funcin que implementa el algoritmo tiene o la siguiente forma (ver 3.2.4): (defthm completitud-SAT-tablas-de-verdad (implies (and (es-proposicional F) (modelo sigma F)) (SAT-tablas-de-verdad F)))
37

La prueba de este resultado se obtiene a partir de los eventos establecidos en 27 .

3.4.4

Tablas de verdad en K

El mtodo de las tablas de verdad en la semntica de Kleene se basa en la misma e a idea que en la semntica clsica: basta con analizar el valor de una frmula en a a o sus asignaciones relevantes para determinar su validez o su satisfacibilidad en K. Para la formalizacin de este mtodo tambin se considera la familia de las o e e asignaciones relevantes de una frmula tal y como se deni en 3.32. Estas o o asignaciones no dejan indeterminada a la frmula a partir de la que se construyen. o o Teorema 3.43 Dada una frmula F y una asignacin parcial AR (F ) entono ces K (F ) = .

3.4. Tablas de verdad

67

La prueba de este teorema se debe a que las asignaciones relevantes asociadas a una frmula, asignan valores de verdad a todos los s o mbolos que en ella aparecen y las funciones de verdad de las conectivas, no generan indeterminaciones a partir de valores de verdad. La formalizacin es la siguiente: o (defthm asignaciones-asigna-valor-K (implies (and (es-proposicional F) (member-equal sigma (asignaciones-formula F))) (valor-K F sigma)))
38

mbolos, V y una K-asignacin , Denicin 3.44 Dado un conjunto de s o o la asignacin relevante de V inducida por es la funcin V : V B tal que: o o V (x) = si (x) = (x) en otro caso

La principal diferencia con el concepto de asignacin inducida en la semntica o a clsica, es que en este caso la K-asignacin puede no asignar un valor de verdad a a o o todos los elementos de V . Para construir una asignacin parcial denida en V se asigna el valor a todos los s mbolos que la K-asignacin deja indeterminados. o La funcin asigna-inducida-K construye esta asignacin relevante: o o (defun asignacion-inducida-K (Xs sigma) (if (endp Xs) nil (if (valor-de-simbolo (car Xs) sigma) (asume-valor (car Xs) (valor-de-simbolo-K (car Xs) sigma) (asignacion-inducida-K (cdr Xs) sigma)) (asume-valor (car Xs) *F* (asignacion-inducida-K (cdr Xs) sigma))))) El siguiente teorema establece las principales propiedades de la asignacin o inducida: mbolos, V , y una K-asignacin , se o Teorema 3.45 Dado un conjunto de s verican: 1. V A(V ). 2. Dada una frmula F tal que V ar(F ) V y K (F ) = , entonces F tiene o el mismo valor en y en V .
39

68

Cap tulo 3. Un modelo formal de la lgica proposicional o

La demostracin de este teorema se obtiene de forma similar a la del teorema o 3.34 para la semntica clsica. Su formalizacin es la siguiente: a a o (defthm asignacion-inducida-K-es-asignacion (member-equal (asignacion-inducida-K Xs sigma) (asignaciones Xs))) (defthm asignacion-inducida-K-equivale-a-la-original (implies (and (subsetp-equal (simbolos-proposicionales F) Xs) (valor-K F sigma)) (equal (valor-K F (asignacion-inducida-K Xs sigma)) (valor-K F sigma)))) 3.4.4.1 Decisin de K-validez basada en tablas de verdad o
40

Al igual que en el caso de la semntica clsica, la K-validez de una frmula se a a o determina comprobando que dicha frmula es cierta en todas sus asignaciones o relevantes. La funcin que implementa el algoritmo de decisin de K-validez es o o la siguiente: (defun TAUT-tablas-de-verdad-K (F) (valida-en-asignaciones-K F (asignaciones-formula F)))
41

donde valida-en-asignaciones-K es una funcin que comprueba si todas las o K-asignaciones de una lista son modelo de una frmula. Su denicin es similar a o o la de valida-en-asignaciones presentada en 28 salvo que se utiliza la funcin o o modelo-K para comprobar que las K-asignaciones son modelo de la frmula. Los resultados de correccin y completitud para esta funcin tienen la forma o o indicada en la seccin 3.3.4: o (defthm correccion-TAUT-tablas-de-verdad-K (implies (and (es-proposicional F) (TAUT-tablas-de-verdad-K F) (valor-K F sigma)) (modelo-K sigma F))) (defthm completitud-TAUT-tablas-de-verdad-K (implies (and (es-proposicional F) (not (TAUT-tablas-de-verdad-K F))) (no-modelo-K (NO-MOD-tablas-de-verdad-K F) F))) o donde la funcin NO-MOD-tablas-de-verdad-K devuelve la primera asignacin o relevante de una frmula que es nomodelo de ella. o
42

3.5. Ejemplos 3.4.4.2 Decisin de K-satisfacibilidad basada en tablas de verdad o

69

o o La K-satisfacibilidad de una frmula se determina comprobando que dicha frmula es cierta en alguna de sus asignaciones relevantes. La funcin que impleo menta el algoritmo de decisin de K-satisfacibilidad es la siguiente: o
43

(defun SAT-tablas-de-verdad-K (F) (satisfacible-en-asignaciones-K F (asignaciones-formula F)))

donde la funcin satisfacible-en-asignaciones-K comprueba si una frmula o o o es cierta en alguna de las K-asignaciones de una lista. La denicin de esta funcin es similar a la de satisfacible-en-asignaciones presentada en 33 o salvo que se utiliza la funcin modelo-K en lugar de modelo. o Los resultados de correccin y completitud para esta funcin son los siguientes: o o
44

(defthm correccion-SAT-tablas-de-verdad-K (implies (and (es-proposicional F) (SAT-tablas-de-verdad-K F)) (modelo-K (MOD-tablas-de-verdad-K F) F))) (defthm completitud-SAT-tablas-de-verdad-K (implies (and (es-proposicional F) (modelo-K sigma F)) (SAT-tablas-de-verdad-K F)))

donde la funcin MOD-tablas-de-verdad-K devuelve la primera asignacin releo o vante de una frmula que es modelo de ella. o

3.5

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin desao o o rrollados en este cap tulo, evalundolos sobre las 17 primeras frmulas de Pelletier a o [63]. Antes de realizar cualquier evaluacin, conviene compilar los cheros que o contienen el cdigo. De esta forma los tiempos de respuesta obtenidos son menoo res. Una forma de hacer esto es certicando los libros ACL2. Una vez hecho esto, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 3-logica:

70

Cap tulo 3. Un modelo formal de la lgica proposicional o

../calculos-proposicionales/3-logica> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/3-logica". ACL2 !> A continacin incluimos el libro que contiene los procedimientos de decisin o o basados en tablas de verdad. Los libros de los que ste depende son incluidos e automticamente por el sistema: a ACL2 !>(include-book "tablas-de-verdad") La familia de ejemplos que presentamos est formada por las 17 primeras a frmulas de Pelletier [63]. Esta familia est denida en el libro pelletier.lisp o a del directorio 0-ejemplos. Cada una de las frmulas est almacenada en una o a constante *pelletier-n*, para los valores de n de 1 a 17: ACL2 !>(include-book "../0-ejemplos/pelletier") ... ACL2 !>*pelletier-9* (|->| (& (& (/ P Q) (/ (- P) Q)) (/ P (- Q))) (- (/ (- P) (- Q)))) Se puede comprobar que cada una de estas frmulas es vlida evaluando sobre o a ellas la funcin TAUT-tablas-de-verdad: o ACL2 !>(TAUT-tablas-de-verdad *pelletier-9*) T Para evaluar todas las frmulas de la familia, obteniendo informacin sobre el o o tiempo de evaluacin, hemos denido la funcin evalua-ejemplos. Esta funcin o o o no puede ser utilizada en ACL2 puesto que no es completamente aplicativa. Para utilizarla, usamos el comando (value :q) para salir del entorno ACL2 y pasar al Common Lisp en el que est desarrollado1 , y cargamos el archivo ejemplos.lisp a que se encuentra en el directorio 0-ejemplos. La funcin evalua-ejemplos o recibe como primer argumento el nombre del procedimiento de decisicin que se o quiere utilizar, y como segundo argumento una lista en la que estn almacenados a los ejemplos que se quieren evaluar. En este caso hemos denido la constante *pelletier* que contiene dicha lista:
1

Se puede volver al entorno ACL2 evaluando (lp).

3.5. Ejemplos

71

ACL2 !>(value :q) Exiting the ACL2 read-eval-print loop. To re-enter, execute (LP). ACL2>(load "../0-ejemplos/ejemplos.lisp") Loading ../0-ejemplos/ejemplos.lisp Finished loading ../0-ejemplos/ejemplos.lisp T ACL2>(evalua-ejemplos TAUT-tablas-de-verdad *pelletier*) +=============================================+============+ | Frmula o | Tiempo | +---------------------------------------------+------------+ | 1) (p -> q) <-> (-q -> -p) | 0.000 | | 2) (-(-p) <-> p) | 0.000 | | 3) -(p -> q) -> (q -> p) | 0.000 | | 4) (-p -> q) <-> (-q -> p) | 0.000 | | 5) ((p | q) -> (p | r)) -> (p | (q -> r)) | 0.000 | | 6) (p | -p) | 0.000 | | 7) (p | -(-(-p))) | 0.000 | | 8) ((p -> q) -> p) -> p | 0.000 | | .... | ..... | +=============================================+============+ T Estas frmulas son muy simples y el tiempo de evaluacin es prcticamente o o a nulo para todas ellas.

Sumario
En este cap tulo: Se han visto cuestiones relativas a la representacin de las frmulas. Esta o o representacin se ha caracterizado mediante un conjunto de propiedades, en o los que se basa el desarrollo posterior. La representacin puede cambiarse o siempre que se mantengan dichas propiedades Se ha discutido la representacin de las asignaciones y cmo se utilizan o o para determinar el valor de verdad de una frmula. Se ha indicado como o se incorporan los conceptos de satisfacibilidad, validez, consecuencia lgica o y equivalencia lgica en la formalizacin de los teoremas. Esto se ha hecho o o tanto para la semntica clsica como para una semntica basada en la lgica a a a o trivalorada fuerte de Kleene.

72

Cap tulo 3. Un modelo formal de la lgica proposicional o Se han desarrollado algoritmos para decidir la validez y la satisfacibilidad de una frmula proposicional basados en tablas de verdad. Se han demostrado o la correccin y completitud de estos algoritmos. Se ha analizado como estos o algoritmos tambin sirven para decidir la validez y la satisfacibilidad en la e semntica de Kleene. a

Cap tulo 4 Clculo de tableros semnticos a a


Los sistemas de razonamiento basados en tableros semnticos han ganado atena cin en la ultima dcada. Se han utilizado para construir demostradores tales o e como SETHEO [60] o leanTAP [6], que pueden competir con sistemas actuales basados en resolucin, [80]. Tambin son adecuados para cooperar con demostrao e dores interactivos usados en vericacin de software, [1]. Otra razn de su auge o o es la necesidad de desarrollar mtodos de deduccin en lgicas no clsicas para e o o a las que los clculos basados en tableros son particularmente adecuados, [34]. a En este cap tulo presentamos el mtodo de los tableros semnticos para la e a lgica proposicional. Una descripcin ms detallada de este mtodo, analizando o o a e sus variantes y la relacin con otros mtodos como el procedimiento de Davis y o e Putnam, el clculo KE o el algoritmo de St a almarck pueden encontrarse en [35] o [18]. El cap tulo est dividido en dos secciones. En la primera se presenta la notaa cin uniforme para la lgica proposicional. Usando esta notacin se expresan las o o o reglas del clculo de tableros de una forma ms concisa. En esta seccin tambin a a o e se establecen los eventos relacionados con su formalizacin. La notacin uniforme o o se puede utilizar tanto en la semntica clsica como en la semntica de Kleene. a a a Al nal de esta seccin se comentan las diferencias entre las dos versiones. o En la segunda seccin se presenta el mtodo de los tableros semnticos. o e a Basndonos en esta presentacin, se formaliza un algoritmo para demostrar la saa o tisfacibilidad de una frmula, tanto en la semntica clsica como en la semntica o a a a de Kleene. Se presentan los resultados de correccin y completitud de este alo goritmo y los eventos que los establecen. Un desarrollo similar se realiza con un algoritmo para decidir la validez de una frmula y otro para la consecuencia o lgica. o

4.1

Notacin uniforme o

La notacin uniforme fue desarrollada independientemente por Smullyan [78] y o Lis [49]. Esta notacin sirve para clasicar las frmulas proposicionales en cuao o 73

74

Cap tulo 4. Clculo de tableros semnticos a a

tro categor distintas: las que se comportan de forma conjuntiva, las que se as comportan de forma disyuntiva, las dobles negaciones y los literales. Al tener slo cuatro situaciones distintas, las deniciones de determinados conceptos se o simplican al considerar la notacin uniforme. Este es el caso del vericador de o satisfacibilidad basado en tableros semnticos presentado en la seccin 4.2. Tama o bin se presenta una medida asociada a la notacin uniforme, que ser util para e o a demostrar la terminacin de funciones recursivas basadas en esta notacin. Los o o eventos que se presentan en las dos primeras subsecciones se encuentran en el libro uniforme.lisp. La versin para la semntica de Kleene comentada en la o a ultima subseccin se encuentra en el libro uniforme-K.lisp. o

4.1.1

Clasicacin basada en la notacin uniforme o o

Agruparemos todas las frmulas proposicionales de la forma (G1 G2 ) y (G1 G2 ), o en dos categor las que actan de manera conjuntiva, a las que llamaremos as, u -frmulas, y las que actan de manera disyuntiva, a las que llamaremos o u -frmulas. La siguiente denicin establece estas dos categor o o as: Denicin 4.1 Una -frmula es una frmula del tipo G1 G2 , (G1 G2 ) o o o o (G1 G2 ). Una -frmula es una frmula del tipo G1 G2 , (G1 G2 ), o o Toda -frmula (-frmula) tiene dos o o G1 G2 , G1 G2 o (G1 G2 ). componentes 1 y 2 (1 y 2 ) que se indican en las siguientes tablas: 1 G1 G2 G1 (G1 G2 ) G1 G1 G2 G1 G1 G2 G1 G2 (G1 G2 ) G1 G2 2 G2 G2 G2 G1 G2 G1 G2

1 G1 G2 G1 (G1 G2 ) G1 (G1 G2 ) G1

2 G2 G2 G2

Donde G1 y G2 son frmulas proposicionales cualesquiera. o Las frmulas de la forma (G1 G2 ) y (G1 G2 ), se pueden considerar o tanto -frmulas como -frmulas. Si se tiene en cuenta que G1 G2 (G1 o o G2 ) (G1 G2 ) y (G1 G2 ) (G1 G2 ) (G1 G2 ), entonces se trata o de -frmulas. Si, por el contrario, se consideran las equivalencias G1 G2 (G1 G2 ) (G1 G2 ) y (G1 G2 ) (G1 G2 ) (G1 G2 ), entonces se trata de -frmulas. En esta presentacin las hemos considerado -frmulas. o o o Denimos las funciones alfa-formula y beta-formula, presentadas en 45 , para distinguir los dos tipos de frmulas. A su vez, para construir las como ponentes, consideramos las funciones componente-1, que calcula 1 y 1 , y componente-2, que calcula 2 y 2 . Estas funciones se encuentran denidas en 46 .

4.1. Notacin uniforme o (defun alfa-formula (F) (or (es-conjuncion F) (and (es-negacion F) (or (es-disyuncion (arg1 F)) (es-implicacion (arg1 F)))))) (defun beta-formula (F) (or (es-disyuncion F) (es-implicacion F) (es-equivalencia F) (and (es-negacion F) (or (es-conjuncion (arg1 F)) (es-equivalencia (arg1 F)))))) (defun componente-1 (F) (cond ((es-negacion F) (let ((F-1 (arg1 F))) (cond ((es-conjuncion F-1) (negacion (arg1 ((es-disyuncion F-1) (negacion (arg1 ((es-implicacion F-1) (arg1 F-1)) ((es-equivalencia F-1) (conjuncion (arg1 F-1) (negacion (arg2 (t F)))) ((es-conjuncion F) (arg1 F)) ((es-disyuncion F) (arg1 F)) ((es-implicacion F) (negacion (arg1 F))) ((es-equivalencia F) (conjuncion (arg1 F) (arg2 (t F)))

75
45

46

F-1))) F-1)))

F-1))))

F)))

(defun componente-2 (F) (cond ((es-negacion F) (let ((F-1 (arg1 F))) (cond ((es-conjuncion F-1) (negacion (arg2 F-1))) ((es-disyuncion F-1) (negacion (arg2 F-1))) ((es-implicacion F-1) (negacion (arg2 F-1))) ((es-equivalencia F-1) (conjuncion (negacion (arg1 F-1)) (arg2 F-1))) (t F)))) ((es-conjuncion F) (arg2 F)) ((es-disyuncion F) (arg2 F)) ((es-implicacion F) (arg2 F)) ((es-equivalencia F) (conjuncion (negacion (arg1 F)) (negacion (arg2 F)))) (t F)))

76

Cap tulo 4. Clculo de tableros semnticos a a

o o Denicin 4.2 Una doble negacin es una frmula de la forma (G). La unica o o componente de una doble negacin (G) es la frmula G. o o El predicado doble-negacion sirve para reconocer este tipo de frmulas y la funcin componente-neg-neg proporciona la componente. o (defun doble-negacion (F) (and (es-negacion F) (es-negacion (arg1 F)))) (defun componente-neg-neg (F) (if (doble-negacion F) (arg1 (arg1 F)) F)) o o o Denicin 4.3 Un literal es una frmula atmica o su negacin. Llamaremos o literales positivos a las frmulas atmicas y literales negativos a las negaciones o o de frmulas atmicas. o o Consideramos las funciones literal-positivo y literal-negativo para reconocer los dos tipos de literales. Los literales son los elementos ms bsicos en a a la clasicacin de las frmulas basada en la notacin uniforme y no tienen como o o ponentes. (defun es-literal-positivo (F) (es-atomica F)) (defun es-literal-negativo (F) (and (es-negacion F) (es-atomica (arg1 F)))) (defun es-literal (F) (or (es-literal-positivo F) (es-literal-negativo F))) El siguiente teorema establece la idea intuitiva en la que se basa la clasicacin o anterior: las -frmulas tienen un comportamiento conjuntivo y las -frmulas o o tienen un comportamiento disyuntivo. Teorema 4.4 Toda -frmula (-frmula) es lgicamente equivalente a la cono o o juncin (disyuncin) de sus componentes. o o
48 47

4.1. Notacin uniforme o (defthm valor-componentes-alfa-formula (implies (alfa-formula F) (equal (valor F sigma) (funcion-de-verdad-de-conjuncion (valor (componente-1 F) sigma) (valor (componente-2 F) sigma))))) (defthm valor-componentes-beta-formula (implies (beta-formula F) (equal (valor F sigma) (funcion-de-verdad-de-disyuncion (valor (componente-1 F) sigma) (valor (componente-2 F) sigma)))))

77
49

Teorema 4.5 La componente de una doble negacin es lgicamente equivalente o o a la frmula original. o (defthm valor-componentes-doble-negacion (implies (doble-negacion F) (equal (valor F sigma) (valor (componente-neg-neg F) sigma))))
50

En los eventos que formalizan los dos teoremas anteriores la variable sigma representa una asignacin cualquiera. De esta forma, la interpretacin del evento o o valor-componente-alfa-formula es la siguiente: Para toda asignacin sigma, o el valor de la frmula F en sigma es igual a la conjuncin de los valores en sigma o o de sus componentes. El siguiente teorema establece la clasicacin basada en la notacin uniforme: o o o Teorema 4.6 Toda frmula proposicional es una -frmula, una -frmula, una o o doble negacin o un literal. o Este resultado proporciona una nueva caracterizacin de es-proposicional o y, por tanto, una nueva manera de denir funciones por recursin en la estructura o de las frmulas. o (defthm definicion-uniforme-de-es-proposicional (iff (es-proposicional F) (or (doble-negacion F) (alfa-formula F) (beta-formula F) (es-literal F))))
51

78

Cap tulo 4. Clculo de tableros semnticos a a

4.1.2

Medida asociada a la notacin uniforme o

En la seccin 3.1.3 hemos visto una medida con respecto a la que las subfrmulas o o de toda frmula proposicional compuesta son menores que la original. Esta meo dida es util para demostrar la terminacin de funciones denidas recursivamente o sobre frmulas. La notacin uniforme proporciona una nueva manera de clasicar o o las frmulas, de aqu que tengamos que denir una nueva medida, con respecto o a la cual las componentes de una frmula compuesta en la notacin uniforme o o sean menores que la frmula original. Utilizamos una extensin de la medida o o proporcionada en [7] para tener en cuenta las equivalencias: Denicin 4.7 La medida uniforme de una frmula proposicional u(F ) es: o o 1. Si F es atmica, u(F ) = 0. o 2. Si F = G, u(F ) = 1 + u(G). 3. Si F = G1 G2 , donde es una conectiva binaria distinta de la equivalencia, u(F ) = 2 + u(G1 ) + u(G2 ). 4. Si F = G1 G2 , u(F ) = 5 + u(G1 ) + u(G2 ). La funcin medida-uniforme implementa esta medida: o (defun medida-uniforme (F) (cond ((es-equivalencia F) (+ 5 (medida-uniforme (arg1 (medida-uniforme (arg2 ((or (es-conjuncion F) (es-disyuncion F) (es-implicacion F)) (+ 2 (medida-uniforme (arg1 (medida-uniforme (arg2 ((es-negacion F) (+ 1 (medida-uniforme (arg1 (t 0)))
52

F)) F))))

F)) F)))) F))))

El siguiente teorema demuestra que las medidas uniformes de las componentes de una doble negacin, -frmula o -frmula son menores que las medidas o o o uniformes de la frmula original. o Teorema 4.8 Sea F una frmula proposicional: o 1. Si F = (G), entonces u(G) < u(F ).

4.2. Tableros semnticos a

79

2. Si F es una -frmula de componentes 1 y 2 , entonces u(1 ) < u(F ) y o u(2 ) < u(F ). 3. Si F es una -frmula de componentes 1 y 2 , entonces u(1 ) < u(F ) y o u(2 ) < u(F ). La formalizacin de estas propiedades es la siguiente: o (defthm medida-uniforme-componente-neg-neg-disminuye (implies (doble-negacion F) (< (medida-uniforme (componente-neg-neg F)) (medida-uniforme F)))) (defthm medida-uniforme-componentes-alfa-disminuye (implies (alfa-formula F) (and (< (medida-uniforme (componente-1 F)) (medida-uniforme F)) (< (medida-uniforme (componente-2 F)) (medida-uniforme F))))) (defthm medida-uniforme-componentes-beta-disminuye (implies (beta-formula F) (and (< (medida-uniforme (componente-1 F)) (medida-uniforme F)) (< (medida-uniforme (componente-2 F)) (medida-uniforme F))))) La prueba de estos resultados se obtiene gracias al procedimiento de decisin o para la aritmtica lineal que tiene implementado ACL2. e
53

4.1.3

Notacin uniforme en K o

El unico aspecto relativo a la notacin uniforme que est relacionado con la o a semntica, es el que establece el comportamiento de las -frmulas, -formulas y a o dobles negaciones con respecto a sus componentes, teoremas 4.4 y 4.5. Estos resultados siguen siendo ciertos en la semntica de Kleene y su prueba se obtiene de a forma similar. La formalizacin de los mismos es igual a la presentada en 49 y 50 o pero utilizando las funciones valor-K, funcion-de-verdad-de-conjuncion-K y funcion-de-verdad-de-disyuncion-K.

4.2

Tableros semnticos a

En esta seccin se presenta el mtodo de los tableros semnticos proposicionales, o e a siguiendo la descripcin dada en [26]. Este es un sistema de refutacin, es decir, o o

80 G G

Cap tulo 4. Clculo de tableros semnticos a a 1 2 1 2

Figura 4.1: Reglas de expansin de tableros o a para probar que una frmula F es vlida, se comienza a trabajar con F hasta o producir una contradiccin. Desde un punto de vista ms constructivo, el mtodo o a e comienza a trabajar con un conjunto de frmulas, y devuelve un modelo de dicho o conjunto. As si no es posible construir un modelo para la frmula F , entonces , o F es vlida. a Simultneamente a la presentacin del mtodo, se describen los elementos a o e necesarios para su formalizacin hasta desarrollar un algoritmo para comprobar o la satisfacibilidad de una frmula en la semntica clsica. A continuacin se o a a o presentan los principales eventos relacionados con la prueba automtica de la a correccin y completitud de dicho algoritmo. El mtodo de los tableros semnticos o e a tambin es utilizado para construir algoritmos para decidir la validez de una e frmula y la consecuencia lgica. En la ultima seccin se comenta cmo estos o o o o algoritmos se pueden utilizar en la semntica de Kleene y se indican las principales a diferencias con los de la semntica clsica. Los eventos relativos a la semntica a a a clsica presentados en esta seccin se encuentran en el libro tableros.lisp, los a o relativos a la semntica de Kleene en el libro tableros-K.lisp. a

4.2.1

Tableros semnticos proposicionales a

El mtodo de los tableros semnticos trabaja con rboles nitos con sus nodos e a a etiquetados con frmulas. Estos rboles son modicados de acuerdo al conjunto o a de reglas de expansin mostrado en la gura 4.1. Para simplicar el nmero de o u reglas, estas se expresan utilizando la notacin uniforme. o Las reglas de expansin se aplican como se describe a continuacin: dado un o o rbol nito T con sus nodos etiquetados con frmulas proposicionales, se seleca o ciona una rama en la que haya una ocurrencia de una frmula no literal F . Si o F es G, entonces se aumenta la rama , aadiendo al nal un nodo etiquetado n con G. Si F es una -frmula, entonces se aumenta la rama , aadiendo al o n o nal dos nodos etiquetados con las componentes 1 y 2 de la frmula original. Finalmente, si F es una -frmula, entonces aadimos dos hijos al nodo nal de o n , cada uno de ellos etiquetado con una de las componentes 1 y 2 de la frmula o original. Si llamamos T al rbol resultante, diremos que T se obtiene a partir a de T mediante la aplicacin de una regla de expansin de tableros. o o

4.2. Tableros semnticos a


T1 (p q) p T2 (p q) p (p q) p p 1 T3 (p q) p (p q) p T4 (p q) p (p q) p q p p T5 (p q) p (p q) p q p p

81

 Q  Q

 Q  Q

 Q  Q

Figura 4.2: Un ejemplo del mtodo de los tableros semnticos e a o Denicin 4.9 Sea {A1 , . . . , An } un conjunto nito de frmulas proposicionales. o 1. El siguiente rbol de un rama es un tablero para {A1 , . . . , An }: a A1 A2 . . . An 2. Si T es un tablero para {A1 , . . . , An } y T se obtiene a partir de T mediante una regla de expansin de tableros, entonces T es un tablero para o {A1 , . . . , An }. La gura 4.2 muestra una secuencia de transformaciones mediante el uso de reglas de expansin de tableros. El tablero inicial T1 consta de una unica rama o e o con la frmula (p q) p, sta es una -frmula cuyas componentes son o o o (p q) y p. Al aplicar la regla de expansin para las -frmulas se obtiene el tablero T2 . En T2 hay una ocurrencia de la frmula (p q), sta es una o e o frmula cuyas componentes son p y q. Al aplicar la regla de expansin para las o -frmulas se obtiene el tablero T3 . En T3 hay una ocurrencia de la frmula p o o e o en la rama 1 , sta es una doble negacin cuya componente es p. Al aplicar la regla de expansin para las dobles negaciones en la rama 1 , se obtiene el tablero o T4 . Se puede aplicar otra vez la regla de expansin para las dobles negaciones o a la ocurrencia de la frmula p en la rama 2 del tablero T4 , dando lugar al o tablero T5 . Obsrvese que una misma ocurrencia de una frmula puede pertenecer a dise o tintas ramas y por tanto, se le puede aplicar una regla de expansin en cada una o de ellas. Esto ocurre en el tablero T3 de la gura 4.2, la misma ocurrencia de la frmula p aparece en las ramas 1 y 2 , por tanto la regla de expansin para o o las dobles negaciones se puede aplicar para esta frmula tanto en 1 como en 2 . o En la formalizacin representamos las ramas de un tablero utilizando listas de o frmulas. La funcin es-rama-tablero, mostrada en 54 , sirve para comprobar o o

82

Cap tulo 4. Clculo de tableros semnticos a a

esta propiedad. De esta forma, el resultado de aplicar una regla de expansin a o una rama consistir en aadir las correspondientes componentes a la lista que la a n representa. Cuando se aplica la regla de expansin para las -frmulas, se crean o o dos copias de la lista que representa la rama original y se aade una componente n a cada una de ellas. As si la misma ocurrencia de una frmula aparece en dos , o ramas distintas, dicha frmula aparecer en las dos listas que las representan. o a (defun es-rama-tablero (rama) (or (endp rama) (and (es-proposicional (car rama)) (es-rama-tablero (cdr rama)))))
54

Denicin 4.10 Dado un tablero T y una asignacin . Diremos que es o o modelo de una rama de T y lo notaremos |= , si y slo si es modelo o de todas las frmulas que aparecen en . Diremos que es modelo de T y lo o notaremos |= T , si y slo si es modelo de alguna de sus ramas. Diremos que o dos tableros T1 y T2 son lgicamente equivalentes y lo notaremos T1 T2 si para o o toda asignacin , |= T1 si y slo si |= T2 . o La funcin modelo-rama formaliza el concepto de modelo de una rama. o (defun modelo-rama (sigma rama) (cond ((endp rama) t) (t (and (modelo sigma (car rama)) (modelo-rama sigma (cdr rama))))))
55

De esta forma, un tablero se interpreta como la disyuncin de sus ramas, o o de aqu que la regla para las -frmulas genere bifurcaciones. Las ramas de un tablero se interpretan como la conjuncin de las frmulas que en ellas aparecen, o o es por esto que la regla para las -frmulas aade las dos componentes a la misma o n rama. Teorema 4.11 Dada una rama y una asignacin : o 1. Si es la rama obtenida aplicando una regla de expansin a una -frmula o o de entonces |= si y slo si |= . o 2. Si 1 y 2 son las ramas obtenidas aplicando una regla de expansin a una o -frmula de entonces |= si y slo si |= 1 o |= 2 . o o 3. Si es la rama obtenida aplicando una regla de expansin a una doble o o negacin de entonces |= si y slo si |= . o La prueba de este teorema se obtiene fcilmente a partir de la semntica de a a los tableros y las propiedades 4.4 y 4.5. Su formalizacin aparece en 59 . o

4.2. Tableros semnticos a

83

o Corolario 4.12 Si T se obtiene a partir de T mediante una regla de expansin de tableros entonces T T . Teniendo en cuenta esta interpretacin de los tableros, las repeticiones de una o frmula en una misma rama pueden ser eliminadas dando lugar a un tablero o lgicamente equivalente al original. Por tanto, desde el punto de vista de la o interpretacin, no es necesario aplicar varias veces una misma regla de expansin o o a la ocurrencia de una frmula dentro de una rama, ya que esto genera repeticiones o innecesarias. En el tablero T3 de la gura 4.2, aplicar la regla de expansin para o o las -frmulas a (p q)p en cualquiera de las dos ramas genera repeticiones de las frmulas (p q) y p. Diremos que la ocurrencia de una frmula F en o o una rama est expandida si se le ha aplicado una regla de expansin de tableros a o en dicha rama. Denicin 4.13 Una rama de un tablero se dice que est cerrada si contiene o a frmulas complementarias. o La funcin rama-cerrada formaliza este concepto: o (defun rama-cerrada (rama) (cond ((endp rama) nil) ((member-equal (complementario (car rama)) (cdr rama)) t) (t (rama-cerrada (cdr rama))))) Teorema 4.14 Si es una rama cerrada de un tablero, entonces no posee modelos, es decir, para toda asignacin , |= . o La demostracin de este teorema es trivial debido a la denicin de modelo o o de una rama. Su formalizacin es la siguiente: o (defthm rama-cerrada-no-tiene-modelos (implies (and (rama-cerrada rama) (es-rama-tablero rama)) (not (modelo-rama sigma rama))))
57 56

Teorema 4.15 Si es una rama no cerrada de un tablero, en la que todas las ocurrencias de frmulas no literales estn expandidas, entonces la asignacin o a o denida de forma que (p) = si y slo si p es un literal positivo que aparece o en , es un modelo de . Demostracin: o La prueba de este resultado se basa en los siguientes hechos:

84

Cap tulo 4. Clculo de tableros semnticos a a 1. Si F es una -frmula que aparece en , entonces sus componentes 1 y 2 o tambin estn en . Por tanto, si es la rama que se obtiene eliminando e a de las ocurrencias de F , se verica |= si y slo si |= , puesto que o 1 y 2 aparecen en . o 2. Si F es una -frmula que aparece en , entonces alguna de sus componentes e a 1 o 2 tambin est en . Por tanto, si es la rama que se obtiene eliminando de las ocurrencias de F , se verica |= si y slo si |= , o puesto que una de las componentes 1 o 2 aparece en . e a 3. Si F = G aparece en , entonces su componente G tambin est en . Por tanto, si es la rama que se obtiene eliminando de las ocurrencias de F , se verica |= si y slo si |= , puesto que G aparece en . o

De esta forma, slo tenemos que demostrar que es modelo de todos los o o literales que aparecen en . Por denicin de esto es cierto para los literales positivos. Si q es un literal negativo que aparece en , entonces q no aparece en puesto que no es una rama cerrada y por tanto (q) = , luego es modelo de q.

La prueba de este teorema sugiere que las ocurrencias de frmulas expandidas o dentro de una rama son innecesarias desde el punto de vista de la interpretacin de o la misma. Teniendo en cuenta esta idea y la observacin acerca de las repeticiones o de elementos dentro de una rama, las reglas de expansin quedan como sigue: o 1. Para aplicar una regla de expansin a una -frmula de la rama , se elimina o o la frmula a expandir y se aaden sus componentes, si es que no estaban o n ya en la rama. 2. Para aplicar una regla de expansin a una -frmula de la rama , se crean o o dos nuevas ramas iguales a la original en las que se ha eliminado la frmula o expandida y a cada una de ellas se aade una componente de la -frmula n o expandida, si es que dicha componente no estaba ya en la rama. 3. Para aplicar una regla de expansin a una doble negacin de la rama , se o o elimina la frmula a expandir y se aade su componente, si es que no estaba o n ya en la rama. De esta forma, los tableros de la gura 4.2 se pueden representar de la siguiente forma: T1 T2 T3 T4 T5 = = = = = (p q) p (p q), p p, p , q, p p, p , q, p p, p , q, p

4.2. Tableros semnticos a

85

El rbol T1 est formado por una unica rama con la frmula (p q) p. a a o Al aplicarle la regla de expansin para las -frmulas, se sustituye dicha frmula o o o por sus componentes, dando lugar a la lista (p q), p , que es la unica rama a o del rbol T2 . A este rbol se le puede aplicar la regla de expansin para las a -frmulas, eliminando la frmula (p q) y generando dos ramas, cada una de o o ellas con una componente de (p q). El resultado es el rbol T3 , que tiene dos a ramas: p, p y q, p . En la primera rama de este rbol se puede aplicar a la regla de expansin para las dobles negaciones. Esta regla elimina la ocurrencia o de la frmula p y aade su componente p a la primera rama. El resultado es o n el rbol T4 cuyas ramas son p, p y q, p . En este punto, slo queda una a o frmula a la que se pueda aplicar una regla de expansin, se trata de p en la o o segunda rama de T4 . Al aplicar dicha regla la frmula p es reemplazada por o a p, dando lugar al rbol T5 . En la formalizacin, utilizamos la funcin elimina-una para eliminar una o o frmula de una lista y la funcin a~ade-elemento para aadir una frmula a una o o n n o lista, si es que no aparece ya en ella: (defun elimina-una (F lista) (cond ((endp lista) lista) ((equal (car lista) F) (cdr lista)) (t (cons (car lista) (elimina-una F (cdr lista)))))) (defun a~ade-elemento (F lista) n (if (member-equal F lista) lista (cons F lista))) As las reglas de expansin actan de la siguiente forma: sea rama una rama , o u de un tablero y F una frmula no literal que aparece en rama: o o 1. Si F es una -frmula, el resultado de aplicar la correspondiente regla de expansin es: o (a~ade-elemento (componente-1 F) n (a~ade-elemento (componente-2 F) n (elimina-una F rama))) 2. Si F es una -frmula, el resultado de aplicar la correspondiente regla de o expansin es: o (a~ade-elemento (componente-1 F) (elimina-una F rama)) n (a~ade-elemento (componente-2 F) (elimina-una F rama)) n
58

86

Cap tulo 4. Clculo de tableros semnticos a a 3. Si F es una doble negacin, el resultado de aplicar la correspondiente regla o de expansin es: o

(a~ade-elemento (componente-neg-neg F) (elimina-una F rama)) n

Una vez establecido el comportamiento de las reglas de expansin, presentao mos la formalizacin del teorema 4.11: o
59

(defthm modelo-rama-doble-negacion (implies (and (member-equal F rama) (doble-negacion F)) (iff (modelo-rama sigma (a~ade-elemento (componente-neg-neg F) n (elimina-una F rama))) (modelo-rama sigma rama))))

(defthm modelo-rama-alfa-formula (implies (and (member-equal F rama) (alfa-formula F)) (iff (modelo-rama sigma (a~ade-elemento (componente-1 F) n (a~ade-elemento (componente-2 F) n (elimina-una F rama)))) (modelo-rama sigma rama)))) (defthm modelo-rama-beta-formula (implies (and (beta-formula F) (member-equal F rama)) (iff (modelo-rama sigma rama) (or (modelo-rama sigma (a~ade-elemento (componente-1 F) n (elimina-una F rama))) (modelo-rama sigma (a~ade-elemento (componente-2 F) n (elimina-una F rama)))))))

4.2. Tableros semnticos a

87

4.2.2

Modelo de una rama: M ODR

Puesto que las reglas de expansin de tableros preservan la validez, se pueden o utilizar para obtener un modelo de un conjunto de frmulas. Para ello basta o con aplicar las reglas de expansin a la rama formada por dichas frmulas, hasta o o obtener una rama no cerrada en la que todas las ocurrencias de frmulas no o literales estn expandidas. A partir de esta rama se puede construir un modelo e del conjunto de frmulas inicial. El siguiente algoritmo realiza dicho proceso: o Algoritmo 4.16 (M ODR ) El dato de entrada de este algoritmo es una rama de un tablero y acta como se describe a continuacin: u o 1. Si es una rama cerrada, el algoritmo termina y devuelve f . 2. Se selecciona una frmula F no literal y no expandida de la rama . o (a) Si F es una -frmula o una doble negacin, se aplica a la correso o pondiente regla expansin de tableros y se evala el algoritmo con la o u nueva rama obtenida. (b) Si F es una -frmula, se le aplica a la regla de expansin para las o o frmulas obteniendo dos nuevas ramas, 1 y 2 . Se evala el algoritmo o u u sobre una de ellas, 1 , y si devuelve f entonces se evala sobre la otra, 2 . o 3. Si no tiene ocurrencias de frmulas no literales no expandidas, el algoritmo termina y devuelve . El algoritmo anterior no est completamente determinado, puesto que no se a indica cmo se escoge la frmula F . Para resolver esta indeterminacin hemos o o o considerado una funcin seleccion, que escoge una frmula no literal de una o o rama, si es que existe. Si la rama no contiene frmulas no literales, la funcin o o seleccion devuelve nil. Se ha asumido la existencia de esta funcin en un o encapsulado ACL2, caracterizndola por las siguientes propiedades: a Si la funcin seleccion devuelve un valor, entonces dicho valor pertenece o a la rama. Si la funcin seleccion devuelve un valor, entonces dicho valor es un literal. o Si la funcin seleccion no devuelve ningn valor, entonces todos los eleo u mentos de la rama son literales. La formalizacin de estas propiedades es la siguiente: o

88

Cap tulo 4. Clculo de tableros semnticos a a


60

(defthm si-existe-no-literal-seleccion-pertenece (implies (seleccion rama) (member-equal (seleccion rama) rama))) (defthm si-existe-no-literal-seleccion-no-es-literal (implies (seleccion rama) (not (es-literal (seleccion rama))))) (defthm si-no-seleccion-miembros-literales (implies (and (not (seleccion rama)) (es-rama-tablero rama) (member-equal F rama)) (es-literal F)))

De esta forma, el resto del desarrollo presentado en esta seccin es genrico, o e en el sentido de que sirve para cualquier funcin seleccion que verique estas o propiedades. La funcin que implementa el algoritmo M ODR es la siguiente: o (defun MOD-rama (rama) (declare (xargs :measure (medida-uniforme-rama rama))) (cond ((endp rama) nil) ((rama-cerrada rama) nil) (t (let ((F (seleccion rama))) (cond ((doble-negacion F) (MOD-rama (a~ade-elemento (componente-neg-neg F) n (elimina-una F rama)))) ((alfa-formula F) (MOD-rama (a~ade-elemento n (componente-1 F) (a~ade-elemento (componente-2 F) n (elimina-una F rama))))) ((beta-formula F) (or (MOD-rama (a~ade-elemento (componente-1 F) n (elimina-una F rama))) (MOD-rama (a~ade-elemento (componente-2 F) n (elimina-una F rama))))) (t rama))))))
61

4.2. Tableros semnticos a

89

Utilizando una funcin seleccion concreta, por ejemplo la que devuelve la o primera frmula no literal de una lista, podemos utilizar la funcin anterior para o o comprobar la satisfacibilidad de una rama de un tablero. En caso de que la rama sea satisfacible, la funcin devuelve una lista de literales a partir de la que se o puede construir un modelo de la rama original. Si la rama no es satisfacible, la funcin devuelve nil. o ACL2 !>(MOD-rama ((-> (- p) q) (-> q r) (\/ r s))) (R (- Q) P) ACL2 !>(MOD-rama ((-> p q) (-> q (- r)) (& p r))) NIL En el primer ejemplo la rama (p q), (q r), (r s) es satisfacible. Cualquier asignacin en la que todos los literales de la lista que se obtiene como o resultado sean ciertos, es modelo de dicha rama. En el segundo ejemplo, la rama (p q), (q r), (p r) es instatisfacible. Para que la funcin MOD-rama sea admitida por el sistema es necesario probar o su terminacin. Para ello hemos proporcionado una medida de los argumentos, o medida-uniforme-rama, que decrece en las llamadas recursivas. Denicin 4.17 La medida uniforme de una rama u+ () es la suma de las o medidas uniformes de todas las frmulas que aparecen en dicha rama. As o , + u ( F1 , . . . , Fn ) = u(F1 ) + + u(Fn ). La funcin medida-uniforme-rama formaliza este concepto: o (defun medida-uniforme-rama (rama) (cond ((endp rama) 0) (t (+ (medida-uniforme (car rama)) (medida-uniforme-rama (cdr rama))))))
62

Teorema 4.18 Si es una rama obtenida al aplicar una regla de expansin a o otra rama entonces u+ ( ) < u+ (). El evento asociado a este teorema se genera de forma automtica al evaluar a el evento 61 . Su demostracin se obtiene gracias a los teoremas 53 y al hecho o de que para toda -frmula F , u(1 ) + u(2 ) < u(). o

4.2.3

Correccin y completitud de M ODR o

Teorema 4.19 (Correccin de M ODR ) Dada una rama , si M ODR () = o = f entonces tiene modelos. Adems si es la asignacin denida de forma a o o que (p) = si y slo si p es un literal positivo que aparece en , entonces |= .

90

Cap tulo 4. Clculo de tableros semnticos a a

Demostracin: o Si M ODR () = = f , entonces es una rama no cerrada en la que todas las frmulas no literales estn expandidas. Por el teorema 4.15, la asignacin o a o denida en el enunciado es modelo de la rama . Por el teorema 4.11, esta asignacin es modelo de cualquier rama a partir de la cual se haya obtenido o mediante reglas de expansin de tableros. Por tanto es modelo de la rama o inicial.

La funcin genera-modelo-literales construye la asignacin mencionada o o en el teorema de correccin: o (defun genera-modelo-literales (lista-L) (cond ((endp lista-L) nil) ((es-literal-positivo (car lista-L)) (asume-valor (car lista-L) *V* (genera-modelo-literales (cdr lista-L)))) (t (genera-modelo-literales (cdr lista-L))))) La formalizacin del teorema de correccin es la siguiente: o o
64 63

(defthm correccion-MOD-rama (implies (and (es-rama-tablero rama) (MOD-rama rama)) (modelo-rama (genera-modelo-literales (MOD-rama rama)) rama))) Teorema 4.20 (Completitud de M ODR ) Dada una rama , si existe una asignacin modelo de , entonces M ODR () = f o La prueba de este resultado se obtiene fcilmente a partir del teorema 4.11. a Su formalizacin es la siguiente: o
65

(defthm completitud-MOD-rama (implies (and (consp rama) (es-rama-tablero rama) (modelo-rama sigma rama)) (MOD-rama rama)))

4.2. Tableros semnticos a

91

4.2.4

Satisfacibilidad por tableros: SATT

Para determinar la satisfacibilidad de una frmula F y, si es satisfacible, obtener o la informacin necesaria para construir un modelo de F , basta con utilizar el o algoritmo M ODR con la rama formada unicamente por la frmula F . o Algoritmo 4.21 (SATT ) Dada F P(), SATT (F ) es M ODR ( F ). La funcin que implementa este algoritmo es la siguiente: o (defun SAT-tableros-semanticos (F) (MOD-rama (list F)))
66

Si una frmula es satisfacible, esta funcin devuelve una lista de literales a o o partir de la que se puede obtener un modelo de dicha frmula. Si la frmula es o o insatisfacible, la funcin devuelve nil: o ACL2 !>(SAT-tableros-semanticos (& (-> p q) (- (- p)))) (P Q) ACL2 !>(SAT-tableros-semanticos (& (/ p q) (& (- p) (- q)))) NIL En el primer ejemplo, la frmula (p q)p es satisfacible y una asignacin o o que la hace cierta es cualquiera en la que p y q sean ciertos. En el segundo ejemplo, la frmula (p q) (p q) es insatisfacible. o o Teorema 4.22 Dada F P(), F es satisfacible si y slo si SATT (F ) = f . o Adems, si SATT (F ) = = f , y es la asignacin denida de forma que (p) = a si y slo si p es un literal positivo que aparece en , entonces |= F . o Demostracin: o Por denicin SATT (F ) = f si y slo si M ODR ( F ) = f y, por los teoremas o o de correccin y completitud de M ODR , esto ocurre si y slo si F tiene un o o modelo; es decir, F es satisfacible. Si SATT (F ) = = f y es la asignacin denida en el enunciado, entonces o por el teorema de correccin de M ODR , es modelo de F y por tanto, modelo o de F .

Los siguientes eventos establecen los resultados de correccin y completitud o de la funcin que implementa el algoritmo SATT : o

92

Cap tulo 4. Clculo de tableros semnticos a a


67

(defthm correccion-SAT-tableros-semanticos (implies (and (es-proposicional F) (SAT-tableros-semanticos F)) (modelo (genera-modelo-literales (SAT-tableros-semanticos F)) F))) (defthm completitud-SAT-tableros-semanticos (implies (and (es-proposicional F) (modelo sigma F)) (SAT-tableros-semanticos F)))

Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 64 y 65 , cuando el valor de la variable rama es (list F).

4.2.5

Demostrabilidad por tableros: DATT

El mtodo de los tableros semnticos tambin es utilizado para vericar la validez e a e de una frmula F , para ello basta con comprobar que la rama formada por F o no tiene modelos. Denicin 4.23 Una frmula F es demostrable por tableros, y lo notaremos o o o T F , si existe una sucesin de tableros T1 , . . . , Tm , tal que: T1 es el tablero de una unica rama con la frmula F , T1 = o F .

Para todo i > 1, Ti se obtiene a partir de Ti1 mediante una regla de expansin de tableros. o a Todas las ramas de Tm estn cerradas. o Algoritmo 4.24 (DATT ) Dada una frmula F P(), DATT (F ) es t si y slo o si M ODR ( F ) es f . La funcin que implementa este algoritmo es la siguiente: o (defun DAT-tableros-semanticos (F) (not (MOD-rama (list (negacion F)))))
68

o Esta funcin devuelve T si la frmula que se le pasa como argumento es deo mostrable por tableros. En caso contrario devuelve nil.

4.2. Tableros semnticos a ACL2 !>(DAT-tableros-semanticos (<-> (<-> p q) (<-> q p))) T ACL2 !>(DAT-tableros-semanticos (-> (-> p q) (& r s))) NIL

93

En el primer ejemplo la frmula (p q) (q p) es demostrable por o tableros, es decir, es vlida. En el segundo, la frmula (p q) (r s) no es a o demostrable por tableros. a o Teorema 4.25 Dada una frmula F P(), F es vlida si y slo si DATT (F ) o es t. Demostracin: o Por denicin DATT (F ) = t si y slo si M ODR ( F ) = f y, por los teoremas o o de correccin y completitud de M ODR , esto ocurre si y slo si la rama F es o o o a satisfacible, es decir, F no es vlida. Luego DATT (F ) = t si y slo si F es vlida. a

Los siguientes eventos establecen los resultados de correccin y completitud o de la funcin que implementa el algoritmo DATT : o (defthm correccion-DAT-tableros-semanticos (implies (and (es-proposicional F) (DAT-tableros-semanticos F)) (modelo sigma F)))
69

(defthm completitud-DAT-tableros-semanticos (implies (and (es-proposicional F) (not (DAT-tableros-semanticos F))) (not (modelo (genera-modelo-literales (SAT-tableros-semanticos (negacion F))) F)))) Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 65 y 64 cuando el valor de la variable rama es (list (negacion F)).

4.2.6

Deducibilidad por tableros: DEDU CT

Finalmente, tambin se puede utilizar el mtodo de los tableros semnticos para e e a o o comprobar si una frmula F , es consecuencia lgica de un conjunto de hiptesis o H1 , . . . , Hn . Para ello basta con comprobar que la rama F, H1 , . . . , Hn no tiene modelos.

94

Cap tulo 4. Clculo de tableros semnticos a a

o Denicin 4.26 Dadas las frmulas F, H1 , . . . , Hn , decimos que F es deducible o por tableros a partir de las hiptesis H1 . . . , Hn , y lo notaremos H1 , . . . , Hn T F , o si existe una sucesin de tableros T1 , . . . , Tm , tal que: o T1 es el tablero de una unica rama con las frmulas F, H1 , . . . , Hn , T1 = o F, H1 , . . . , Hn . Para todo i > 1, Ti se obtiene a partir de Ti1 mediante una regla de expansin de tableros. o a Todas las ramas de Tn estn cerradas. Algoritmo 4.27 (DEDU CT ) Dadas las frmulas F, H1 , . . . , Hn , el valor de o DEDU CT ( H1 , . . . , Hn , F ) es t si y slo si M ODR ( F, H1 , . . . , Hn ) es f . o La funcin que implementa este algoritmo es la siguiente: o (defun DEDUC-tableros-semanticos (lista-H F) (not (MOD-rama (cons (negacion F) lista-H))))
70

o Esta funcin devuelve T si la frmula F es deducible por tableros a partir de o las hiptesis lista-H. En caso contrario devuelve nil. o ACL2 !>(DEDUC-tableros-semanticos ((-> p q) p) q) T ACL2 !>(DEDUC-tableros-semanticos ((-> p q) p) (- q)) NIL En el primer ejemplo la frmula q es deducible por tableros a partir de las o frmulas (p q) y p. En el segundo ejemplo, la frmula q no es deducible por o o tableros a partir de las frmulas (p q) y p. o Teorema 4.28 Dadas las frmulas F, H1 , . . . , Hn P(), F es consecuencia o lgica de {H1 , . . . , Hn } si y slo si DEDU CT ( H1 , . . . , Hn , F ) es t. o o Demostracin: o o Por denicin DEDU CT ( H1 , . . . , Hn , F ) = t si y slo si se verica o M ODR ( F, H1 , . . . , Hn ) = f y, por los teoremas de correccin y completitud de o M ODR , esto ocurre si y slo si la rama F, H1 , . . . , Hn es satisfacible, es decir, o si y slo si existe una asignacin modelo de los Hi y modelo de F . Finalmente o o o esto es equivalente a que F no sea consecuencia lgica de {H1 , . . . , Hn }. o o Por tanto F es consecuencia lgica de {H1 , . . . , Hn } si y slo si el valor de DEDU CT ( H1 , . . . , Hn , F ) es t. Los siguientes eventos establecen los resultados de correccin y completitud o de la funcin que implementa el algoritmo DEDU CT : o

4.2. Tableros semnticos a (defthm correccion-DEDUC-tableros-semanticos (implies (and (es-rama-tablero lista-H) (es-proposicional F) (DEDUC-tableros-semanticos lista-H F) (modelo-rama sigma lista-H)) (modelo sigma F))) (defthm completitud-consecuencia-por-tableros (let ((sigma (genera-modelo-literales (MOD-rama (cons (negacion F) lista-H))))) (implies (and (es-rama-tablero lista-H) (es-proposicional F) (not (DEDUC-tableros-semanticos lista-H F))) (and (modelo-rama sigma lista-H) (not (modelo sigma F))))))

95
71

Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 65 y 64 cuando el valor de la variable rama es (cons (negacion F) lista-H).

4.2.7

Tableros semnticos en K a

Los algoritmos desarrollados en las subsecciones previas tambin pueden ser utie lizados para decidir la satisfacibilidad, validez y consecuencia lgica en K. Los o algoritmos son los mismos, puesto que no se basan en aspectos semnticos, pero a no ocurre lo mismo con los conceptos y propiedades que aseguran su correccin o y completitud. La semntica en K de las ramas de un tablero sigue siendo la misma: una a K-asignacin es modelo de una rama si y slo si lo es de todas las frmulas que en o o o ella aparecen. La funcin que implementa este concepto es ligeramente diferente o puesto que utiliza la funcin modelo-K en lugar de modelo: o (defun modelo-rama-K (sigma rama) (cond ((endp rama) t) (t (and (modelo-K sigma (car rama)) (modelo-rama-K sigma (cdr rama))))))
72

Una rama cerrada es una lista de frmulas en la que aparecen frmulas como o plementarias. De esta forma una K-asignacin no puede ser modelo de todas o las frmulas de una rama cerrada. La formalizacin de esta propiedad es similar o o a la presentada en 57 pero utilizando la funcin modelo-rama-K en lugar de o modelo-rama.

96

Cap tulo 4. Clculo de tableros semnticos a a

Las propiedades 4.4 y 4.5 de la notacin uniforme se mantienen en la semntica o a de Kleene. Es por esto que las reglas de expansin tambin preserven los modelos o e en K tal y como se establece en el teorema 4.11. La formalizacin de estas o propiedades es similar a la presentada en 59 , utilizando modelo-rama-K en lugar de modelo-rama 4.2.7.1 Modelo en K de una rama

Los algoritmos para decidir la satisfacibilidad, validez y consecuencia lgica preo sentados en las subsecciones anteriores se basan en un procedimiento que busca una asignacin modelo de una rama. Este procedimiento es igualmente vlido en o a la semntica de Kleene, ya que no hace referencia a aspectos semnticos de las a a frmulas. Utilizamos la funcin MOD-rama presentada en 61 para formalizar este o o procedimiento. Los resultados de correccin y completitud de este procedimiento en la semno a tica de Kleene se establecen de igual forma que en la semntica clsica. Su a a formalizacin es la siguiente: o (defthm correccion-MOD-rama (implies (and (es-rama-tablero rama) (MOD-rama rama)) (modelo-rama-K (genera-modelo-literales-K (MOD-rama rama)) rama))) (defthm completitud-MOD-rama (implies (and (consp rama) (es-rama-tablero rama) (modelo-rama-K sigma rama)) (MOD-rama rama))) La unica diferencia entre estos eventos y los presentados en 64 y 65 es el uso o de la funcin modelo-rama-K, para comprobar que una K-asignacin es modelo o de una rama, y la funcin genera-modelo-literales-K, para construir una Ko asignacin a partir de una rama no cerrada con todas sus frmulas no literales o o expandidas. Para que la K-asignacin construida por genera-modelo-literales-K sea o modelo de la rama a partir de la que se construye, tenemos que asegurarnos de que asigna un valor de verdad a todos los literales que aparecen en dicha rama. La denicin presentada en 63 slo nos asegura que los literales positivos tendrn o o a asignado *V* como valor de verdad, el valor de los literales negativos se obtiene por el comportamiento por defecto de las extensiones de las asignaciones parciales en la semntica clsica. En la semntica de Kleene el valor por defecto es y a a a
73

4.2. Tableros semnticos a

97

por tanto dicha construccin no es la adecuada para generar un modelo de una o rama. La K-asignacin que se construye a partir de una rama no cerrada en la que o todas las frmulas no literales estn expandidas es la siguiente: o a si x es un literal positivo que aparece en si x es un literal negativo que aparece en (x) = en otro caso La funcin genera-modelo-literales-K formaliza esta construccin: o o (defun genera-modelo-literales-K (lista-L) (cond ((endp lista-L) nil) ((es-literal-positivo (car lista-L)) (asume-valor (car lista-L) *V* (genera-modelo-literales-K (cdr lista-L)))) ((es-literal-negativo (car lista-L)) (asume-valor (arg1 (car lista-L)) *F* (genera-modelo-literales-K (cdr lista-L)))) (t (genera-modelo-literales-K (cdr lista-L)))))
74

4.2.7.2

Decisin de K-satisfacibilidad basada en tableros semnticos o a

El algoritmo para decidir la K-satisfacibilidad es el mismo que el de la semntica a clsica. La funcin que lo implementa es SAT-tableros-semanticos, presentada a o o o en 66 . La formalizacin y prueba de sus propiedades de correccin y completitud es similar a las de la semntica clsica. Los eventos son los siguientes: a a (defthm correccion-SAT-tableros-semanticos (implies (and (es-proposicional F) (SAT-tableros-semanticos F)) (modelo-K (genera-modelo-literales-K (SAT-tableros-semanticos F)) F))) (defthm completitud-SAT-tableros-semanticos (implies (and (es-proposicional F) (modelo-K sigma F)) (SAT-tableros-semanticos F)))
75

98 4.2.7.3

Cap tulo 4. Clculo de tableros semnticos a a Decisin de K-validez basada en tableros semnticos o a

El procedimiento para determinar si una frmula es K-vlida es el mismo que el o a de la semntica clsica. La funcin DAT-tableros-semanticos, presentada en a a o 68 , implementa este procedimiento. Los resultados de correccin y completitud o son los siguientes: (defthm correccion-DAT-tableros-semanticos (implies (and (es-proposicional F) (DAT-tableros-semanticos F) (valor-K F sigma)) (modelo-K sigma F))) (defthm completitud-DAT-tableros-semanticos (implies (and (es-proposicional F) (not (DAT-tableros-semanticos F))) (no-modelo-K (genera-modelo-literales-K (SAT-tableros-semanticos (negacion F))) F))) Como se indic en la seccin 3.3.4 el resultado de correccin tiene una hiptesis o o o o adicional en la que se arma que la asignacin sigma asigna un valor de verdad o a la frmula F, es decir un valor distinto de nil. En el resultado de completitud o la conclusin arma la existencia de una K-asignacin que es nomodelo de la o o frmula F. o 4.2.7.4 o Decisin de consecuencia K-lgica basada en tableros o semnticos a
76

Al igual que en los dos casos anteriores, el algoritmo para decidir la consecuencia lgica en K es el mismo que para la semntica clsica. La funcin que lo o a a o implementa, DEDUC-tableros-semanticos, est denida en 70 . Los resultados a de correccin y completitud se han construido siguiendo las indicaciones de la o seccin 3.3.4. o (defthm correccion-DEDUC-tableros-semanticos (implies (and (es-rama-tablero lista-H) (es-proposicional F) (DEDUC-tableros-semanticos lista-H F) (modelo-rama-K sigma lista-H) (valor-K F sigma)) (modelo-K sigma F)))
77

4.3. Ejemplos (defthm completitud-consecuencia-por-tableros (let ((sigma (genera-modelo-literales-K (MOD-rama (cons (negacion F) lista-H))))) (implies (and (es-rama-tablero lista-H) (es-proposicional F) (not (DEDUC-tableros-semanticos lista-H F))) (and (modelo-rama-K sigma lista-H) (no-modelo-K sigma F)))))

99
78

4.3

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin desao o o rrollados en este cap tulo, evalundolos sobre algunos ejemplos: algunas frmulas a o de Urquhart [83] y frmulas representando el problema de las N reinas [62]. o Antes de realizar cualquier evaluacin, conviene compilar los cheros que cono tienen el cdigo. De esta forma los tiempos de respuesta obtenidos son menores. o Una forma de hacer esto es certicando los libros ACL2. Una vez hecho esto, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 4-tableros: ../calculos-proposicionales/4-tableros> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/4-tableros". ACL2 !> A continacin incluimos el libro que contiene la teor desarrollada en este o a cap tulo. Los libros de los que ste depende son incluidos automticamente por e a el sistema: ACL2 !>(include-book "tableros") La primera familia de ejemplos que presentamos est formada por las siguiena tes frmulas de Urquhart: o U1 U2 U3 U4 : : : : v1 v2 v3 v4 v1 (v1 (v2 v1 )) (v2 (v1 (v3 (v2 v1 )))) (v3 (v2 (v1 (v4 (v3 (v2 v1 )))))) ...

100

Cap tulo 4. Clculo de tableros semnticos a a

Esta familia est denida en el libro urquhart.lisp del directorio 0-ejemplos. a Cada una de las frmulas se obtiene evaluando (urquhart n), para distintos vao u mbolos lores de n. En este caso hemos utilizado nmeros enteros positivos como s proposicionales: ACL2 ... ACL2 (<-> ACL2 (<-> ACL2 (<-> ACL2 (<-> !>(include-book "../0-ejemplos/urquhart") !>(urquhart 1) 1 1) !>(urquhart 2) 2 (<-> 1 (<-> 2 1))) !>(urquhart 3) 3 (<-> 2 (<-> 1 (<-> 3 (<-> 2 1))))) !>(urquhart 4) 4 (<-> 3 (<-> 2 (<-> 1 (<-> 4 (<-> 3 (<-> 2 1)))))))

Para poder utilizar los procedimientos de decisin desarrollados en este cap o tulo, tenemos que proporcionar una denicin concreta de la funcin que seleco o ciona una frmula de una rama. El s o mbolo asociado a esta funcin ya existe en o el sistema por lo que tendremos que redenirla. Las propiedades de los procedimientos de decisin de satisfacibilidad, validez y consecuencia lgica se mantienen, o o siempre que la nueva denicin de la funcin seleccion tenga las propiedades o o presentadas en 60 . ACL2 !>(set-ld-redefinition-action (:warn . :overwrite) state) ACL2 !>(defun seleccion (lista) (cond ((endp lista) nil) ((es-literal (car lista)) (seleccion (cdr lista))) (t (car lista)))) Una vez hecho esto, se puede utilizar la funcin DAT-tableros-semanticos o para comprobar la validez de las frmulas de Urquhart: o ACL2 !>(DAT-tableros-semanticos (urquhart 1)) T ACL2 !>(DAT-tableros-semanticos (urquhart 2)) T En la tabla 4.1 se muestran los tiempos de evaluacin de la funcin o o DAT-tableros-semanticos para las 15 primeras frmulas de Urquhart. o La segunda familia de ejemplos es una formulacin del problema de las N o reinas en lgica proposicional. Fijado un valor de N , cada casilla de un tablero o

4.3. Ejemplos Frmula tiempo o U1 0.000 U2 0.010 U3 0.000 U4 0.020 U5 0.060 Frmula tiempo o U6 0.160 U7 0.420 U8 1.090 U9 2.850 U10 6.600 Frmula tiempo o U11 15.810 U12 38.470 U13 86.460 U14 197.000 U15 473.540

101

Tabla 4.1: Tiempos de evaluacin de las frmulas de Urquhart o o Tamao del tablero n Tiempo 2 3 4 5 6 0.000 0.140 1.240 5.740 527.110

Tabla 4.2: Tiempos de evaluacin para el problema de las N reinas o de tamao N N se representa por una variable proposicional distinta. Dada una n asignacin cualquiera, si una variable es cierta en dicha asignacin, interpretamos o o que hay una reina situada en la casilla correspondiente, si la variable es falsa, interpretamos que la casilla est libre. El problema consiste en obtener una a asignacin en la que sean ciertas las frmulas que describen las restricciones del o o problema: En cada la hay al menos una reina. Si en una casilla hay una reina entonces no puede haber reinas situadas en la misma la, columna o diagonales que dicha casilla. Esta familia est denida en el libro reinas.lisp del directorio 0-ejemplos. a Cada una de las frmulas se obtiene evaluando (n-reinas n), para distintos o u mbolos proposivalores de n. Hemos utilizado nmeros enteros positivos como s cionales: la casilla de la la i, columna j, se representa con el nmero (i1)n+j, u con 1 i, j n. ACL2 !>(include-book "../0-ejemplos/reinas") ... ACL2 !>(n-reinas 2) (& (/ 1 2) (& (/ 3 4) (& (|->| 1 (& (- 2) (& (- 3) (- 4)))) (& (|->| 2 (& (- 1) (& (- 4) (- 3)))) (& (|->| 3 (& (- 4) (& (- 1) (- 2)))) (|->| 4 (& (- 3) (& (- 2) (- 1)))))))))

102

Cap tulo 4. Clculo de tableros semnticos a a

En la tabla 4.2 se muestran los tiempos de evaluacin de la funcin o o SAT-tableros-semanticos para algunas de estas frmulas. o

Sumario
En este cap tulo: Se ha formalizado la notacin uniforme para la lgica proposicional clsica. o o a Se han presentado los eventos que establecen sus principales propiedades. Se ha denido una medida asociada a la notacin uniforme que resulta util o para demostrar la terminacin de funciones recursivas basadas en la misma. o La notacin uniforme es utilizada tanto en la semntica clsica como en la o a a semntica de Kleene. a Se ha formalizado el mtodo de los tableros semnticos. La notacin unie a o forme es utilizada para expresar las reglas de expansin en las que se basa o este mtodo. e Se ha desarrollado una funcin que implementa un algoritmo para como probar la satisfacibilidad de una frmula en el sentido clsico, basado en o a el mtodo de los tableros semnticos. Se han establecido los eventos que e a demuestran la correccin y completitud de este algoritmo. o e o Tambin se han desarrollado una funcin que implementa un algoritmo para comprobar la validez de una frmula y otro que comprueba si una frmula o o es consecuencia lgica de un conjunto de hiptesis. Se han presentado los o o eventos que establecen sus propiedades de correccin y completitud en la o semntica clsica. a a Se ha demostrado que los algoritmos desarrollados tambin pueden ser utie lizados en la semntica de Kleene, presentado los eventos que establecen a sus propiedades de correccin y completitud en K. o

Cap tulo 5 Clculo de secuentes a


El clculo de secuentes fue introducido por G. Gentzen en 1935 [29]. Desde entona ces ha sido ampliamente estudiado y utilizado siendo la base de algunos sistemas de razonamiento automtico como Nuprl [16]. Como sus duales, los basados en a tableros, los clculos basados en secuentes son muy utiles en el desarrollo de a mtodos de deduccin en lgicas multivaluadas [3]. Para ms informacin sobre e o o a o los clculos de secuentes se puede consultar [2]. a En este cap tulo presentamos el clculo de secuentes proposicionales. Basna a donos en esta presentacin, se formaliza un algoritmo para decidir la satisfacio bilidad de una frmula en la semntica clsica. Se presentan los resultados de o a a correccin y completitud de este algoritmo y los eventos que los establecen. Un o desarrollo similar es realizado con un algoritmo para decidir la validez de una frmula y otro para la consecuencia lgica. o o Los algoritmos desarrollados en el caso clsico son igualmente vlidos en la a a semntica de Kleene, slo hay que caracterizar adecuadamente la semntica de los a o a secuentes para demostrar sus propiedades de correccin y completitud. En el caso o clsico se caracterizan aquellas situaciones en las que un secuente es cierto, aunque a se utiliza la propiedad contraria. En la semntica de Kleene se caracterizan las a situaciones en las que un secuente es falso. Un desarrollo similar del clculo de a secuentes proposicionales en la semntica de Kleene, ha sido realizado en Nuprl a en [15].

5.1

Secuentes

Los secuentes son pares de listas de frmulas entre las que existe una relacin o o de consecuencia. El clculo de secuentes consta de un conjunto de axiomas y un a conjunto de reglas de inferencia. Para probar la validez de una frmula, se conso truye un secuente a partir de dicha frmula y se comprueba si este secuente se o puede obtener como resultado de aplicar sucesivamente las reglas de inferencia a los axiomas. Cuando el intento de prueba falla, proporciona un contramodelo de la frmula inicial. De forma simultnea a la presentacin del mtodo, se describen o a o e 103

104

Cap tulo 5. Clculo de secuentes a

los elementos necesarios para su formalizacin y se desarrolla un algoritmo para o decidir la validez de una frmula. A continuacin se describen los principales o o eventos relacionados con la prueba automtica de la correccin y completitud de a o dicho algoritmo. Tambin se describe un algoritmo para comprobar la satisfacibie lidad de una frmula. Los eventos relativos a la semntica clsica presentados en o a a esta seccin se encuentran en el libro secuentes.lisp, los relativos a la semntica o a de Kleene en el libro secuentes-K.lisp.

5.1.1

El clculo G a

Denicin 5.1 Un secuente es un par , de secuencias nitas de frmulas. o o En lo sucesivo notaremos los secuentes de la forma , llamaremos a parte izquierda del secuente y a parte derecha. El s mbolo sugiere que existe cierta relacin de consecuencia entre las dos partes y, de hecho, esa es la o intencin. Usaremos la expresin 1 , F, 2 para distinguir una ocurrencia de la o o o frmula F entre las secuencias de frmulas 1 y 2 . Los secuentes en los que una o de las dos secuencias de frmulas es vac se notarn como y . o a a En la formalizacin usamos listas para representar los secuentes. En estas liso tas el primer elemento es la parte izquierda del secuente y el resto de los elementos forman la parte derecha. As si S es la representacin del secuente , enton, o ces (car S) es la secuencia de frmulas y (cdr S) es la secuencia de frmulas o o . A continuacin se muestran algunos ejemplos de secuentes y sus representao ciones: r, p q, s p, q (p q), r ( ( (- r) p ) q (- s) ) ( ( p (- q) ) ) ( ( ) (& p q) r )

La funcin es-secuente sirve para comprobar si una expresin es un secuente o o representado de la forma descrita anteriormente. Para ello se dene previamente la funcin lista-formulas que comprueba si su argumento es una lista de o frmulas. o (defun es-secuente (S) (and (consp S) (lista-formulas (car S)) (lista-formulas (cdr S)))) (defun lista-formulas (lista-F) (or (endp lista-F) (and (es-proposicional (car lista-F)) (lista-formulas (cdr lista-F)))))
79

5.1. Secuentes

105

Como se ha comentado antes, el s mbolo sirve para indicar una relacin o de consecuencia entre la partes izquierda y derecha de un secuente: si todas las frmulas de la parte izquierda son ciertas entonces alguna de la parte derecha o tambin lo es. Se trata de una extensin a secuentes del concepto de modelo de e o una frmula. o Denicin 5.2 Una asignacin es modelo de un secuente , y lo notareo o o o mos |= , si existe una frmula F en tal que |= F o existe una frmula G en tal que |= G. Una asignacin es contramodelo de un secuente o si no es modelo suyo. Diremos que un secuente es vlido, si para toda a asignacin se verica |= . o De esta forma, una asignacin es modelo de un secuente si no es modelo o de todas las frmulas de su parte izquierda o bien si, siendo modelo de todas o las frmulas de su parte izquierda, es modelo de alguna de las frmulas de la o o parte derecha. Por tanto, desde el punto de vista de su interpretacin, un o secuente F1 , . . . , Fn G1 , . . . , Gm es lgicamente equivalente a la frmula o o (F1 . . . Fn ) (G1 . . . Gm ). La funcin modelo-secuente implementa el concepto de modelo de un secueno te. Esta funcin utiliza las funciones modelo-conjuncion y modelo-disyuncion. o La primera comprueba si una asignacin es modelo de todas las frmulas de una o o lista y la segunda, si una asignacin es modelo de alguna frmula de una lista. o o Obviamente, si una asignacin no es modelo de todas las frmulas de la parte o o izquierda de un secuente entonces es modelo del secuente.
80

(defun modelo-secuente (sigma S) (if (modelo-conjuncion sigma (car S)) (modelo-disyuncion sigma (cdr S)) t)) (defun modelo-conjuncion (sigma Gamma) (cond ((endp Gamma) t) (t (and (modelo sigma (car Gamma)) (modelo-conjuncion sigma (cdr Gamma)))))) (defun modelo-disyuncion (sigma Delta) (cond ((endp Delta) nil) (t (or (modelo sigma (car Delta)) (modelo-disyuncion sigma (cdr Delta))))))

106

Cap tulo 5. Clculo de secuentes a

El concepto de secuente y el clculo G fueron introducidos originariamente a por G. Gentzen [29]. Este clculo consta de un conjunto de axiomas y un conjunto a de reglas de inferencia. Los axiomas son un tipo simple de secuentes vlidos y a las reglas de inferencia preservan la validez. De esta forma cualquier secuente obtenido como resultado de aplicar sucesivamente las reglas de inferencia a los axiomas es vlido. a Denicin 5.3 Un secuente es un axioma si existe alguna frmula en o o comn en sus partes izquierda y derecha: = . u La funcin secuente-axioma formaliza este concepto, comprobando que exiso te algn elemento en la interseccin entre las dos partes de un secuente. La funcin u o o intersectp-equal comprueba que la interseccin de dos listas es no vac o a:
81

(defun secuente-axioma (S) (intersectp-equal (car S) (cdr S)))

a Teorema 5.4 Si el secuente es un axioma entonces es vlido. Demostracin: o Si el secuente es un axioma entonces existe una frmula F que aparece o en y en . Dada una asignacin cualquiera , si es modelo de F entonces o existe una frmula en de la que es modelo. Si no es modelo de F , entonces o existe una frmula en de la que no es modelo. Luego es modelo de . o

La prueba de este resultado en la formalizacin se obtiene fcilmente a paro a tir de las deniciones de modelo-conjuncion y modelo-disyuncion. El evento asociado es el siguiente:
82

(defthm secuente-axioma-es-valido (implies (secuente-axioma S) (modelo-secuente sigma S)))

Ntese que para armar que el secuente S es vlido, se utiliza una nueva o a o o o variable sigma que representa una asignacin cualquiera, tal y cmo se indic en la seccin 3.2.4. o

5.1. Secuentes p, q p
-der

107 q q, p q, q p
-der -der -izq

q p, p p, (q p)

q q p
-izq

p q q p Figura 5.1: Un ejemplo de inferencia en el clculo G a Denicin 5.5 El conjunto de reglas de inferencia del clculo G es el siguiente: o a 1 , 2 F, (-izq) 1 , F, 2 1 , F, G, 2 (-izq) 1 , F G, 2 F, 1 , 2 (-der) 1 , F, 2

1 , F, 2 1 , G, 2 (-der) 1 , F G, 2 1 , F, G, 2 (-der) 1 , F G, 2 F, 1 , G, 2 (-der) 1 , F G, 2

1 , F, 2 1 , G, 2 (-izq) 1 , F G, 2 1 , 2 F, 1 , G, 2 (-izq) 1 , F G, 2

1 , F, G, 2 1 , 2 F, G, (-izq) 1 , F G, 2 F, 1 , G, 2 G, 1 , F, 2 (-der) 1 , F G, 2 o Donde , 1 , 2 , , 1 y 2 son secuencias nitas de frmulas. A la derecha de cada regla hemos indicado el nombre por el que se le har a referencia en el resto del cap tulo. Cada regla consta de uno o dos secuentes (encima de la l nea) llamados premisas, a partir de los cuales se inere un unico secuente (debajo de la l nea) llamado conclusin. Gentzen tambin consider reo e o glas estructurales para eliminar frmulas repetidas en la parte izquierda (derecha) o de un secuente. Estas repeticiones no afectan a la satisfacibilidad de un secuente, sin embargo conviene eliminarlas a la hora de implementar un algoritmo basado en el clculo G , pues llevan a repetir en varias ocasiones una misma tarea. a La gura 5.1 muestra un ejemplo de inferencia en el clculo de secuentes. Los a secuentes p, q p y q q, p son axiomas a partir de los que se obtienen q p, p y q, q p utilizando respectivamente las reglas de inferencia -der y -izq. A partir de estos dos secuentes y mediante la aplicacin de la o regla -der se obtienen, respectivamente, p, (q p) y q q p .

108

Cap tulo 5. Clculo de secuentes a

Estos dos secuentes son las premisas necesarias para la obtencin del secuente o p q q p mediante la regla de inferencia -izq. El clculo G se utiliza para determinar la validez de un secuente considerando a las reglas de inferencia hacia atrs. Esto es posible puesto que todos los elemena tos de las premisas de las reglas se pueden obtener a partir de la conclusin. o Llamaremos reglas de expansin a las reglas del clculo G cuando son utilizadas o a hacia atrs, es decir, para determinar un conjunto de premisas a partir de las a que se puede inferir un secuente. Las funciones secuentes-expansion-izq y secuentes-expansion-der utilizan las reglas de esta forma. o La funcin secuentes-expansion-izq recibe como argumentos una frmula o F y dos listas de frmulas Gamma y Delta. Las listas de frmulas Gamma y Delta o o representan respectivamente las partes izquierda y derecha de un secuente y F es o una frmula no atmica que aparece en Gamma. La funcin devuelve las premisas o o de las reglas de inferencia -izq, -izq, -izq, -izq y -izq, en funcin del tipo o de frmula que sea F. El resultado es devuelto como una lista de secuentes dado o que algunas de las reglas tienen una unica premisa y otras tienen dos. Para la implementacin de esta funcin se han utilizado las funciones elimina-una y o o a~ade-elemento, 58 . El uso de esta ultima evita incluir elementos repetidos en n las partes izquierda y derecha de las premisas. (defun secuentes-expansion-izq (F Gamma Delta) (let ((Gamma- (elimina-una F Gamma))) (cond ((es-negacion F) (list (cons Gamma- (a~ade-elemento (arg1 F) Delta)))) n ((es-conjuncion F) (list (cons (a~ade-elemento n (arg1 F) (a~ade-elemento n (arg2 F) Gamma-)) Delta))) ((es-disyuncion F) (list (cons (a~ade-elemento (arg1 F) Gamma-) Delta) n (cons (a~ade-elemento (arg2 F) Gamma-) Delta))) n ((es-implicacion F) (list (cons Gamma- (a~ade-elemento (arg1 F) Delta)) n (cons (a~ade-elemento (arg2 F) Gamma-) Delta))) n ((es-equivalencia F) (list (cons (a~ade-elemento n (arg1 F) (a~ade-elemento n (arg2 F) Gamma-)) Delta) (cons Gamma- (a~ade-elemento n (arg1 F) (a~ade-elemento n (arg2 F) Delta))))) (t nil))))
83

5.1. Secuentes

109

La funcin secuentes-expansion-der se dene de manera similar para las o reglas de inferencia -der, -der, -der, -der y -der: (defun secuentes-expansion-der (F Gamma Delta) (let ((Delta- (elimina-una F Delta))) (cond ((es-negacion F) (list (cons (a~ade-elemento (arg1 F) Gamma) Delta-))) n ((es-conjuncion F) (list (cons Gamma (a~ade-elemento (arg1 F) Delta-)) n (cons Gamma (a~ade-elemento (arg2 F) Delta-)))) n ((es-disyuncion F) (list (cons Gamma (a~ade-elemento n (arg1 F) (a~ade-elemento n (arg2 F) Delta-))))) ((es-implicacion F) (list (cons (a~ade-elemento (arg1 F) Gamma) n (a~ade-elemento (arg2 F) Delta-)))) n ((es-equivalencia F) (list (cons (a~ade-elemento (arg1 F) Gamma) n (a~ade-elemento (arg2 F) Delta-)) n (cons (a~ade-elemento (arg2 F) Gamma) n (a~ade-elemento (arg1 F) Delta-)))) n (t nil))))
84

En el ejemplo de la gura 5.1, el secuente cuya validez se establece es p q q p . A este secuente se le puede aplicar la regla de expansin -izq o para obtener los secuentes p, (q p) y q q p . Aplicando la regla de expansin -der a cada uno de estos dos secuentes se obtienen reso pectivamente q p, p y q, q p . Finalmente al aplicar la regla de expansin -der al primero de ellos se obtiene el axioma p, q p y al aplicar o la regla de expansin -izq al segundo, el axioma q q, p . o Teorema 5.6 Si P re es el conjunto de premisas de una de las reglas de inferencia o o del clculo G y es la conclusin, entonces para toda asignacin se verica: a |= si y slo si para todo secuente S P re, |= S. o Este teorema se demuestra fcilmente a partir del concepto de modelo de un a secuente y las funciones de verdad de las conectivas proposicionales. La prueba es tediosa dado el nmero de casos distintos que tiene. Para formalizar este teorema u se han utilizado cuatro eventos: modelo-expansion-secuentes-izq-1 prueba el resultado para las reglas -izq y -izq.

110

Cap tulo 5. Clculo de secuentes a

modelo-expansion-secuentes-izq-2 prueba el resultado para las reglas -izq, -izq y -izq. modelo-expansion-secuentes-der-1 prueba el resultado para las reglas -der, -der y -der. modelo-expansion-secuentes-der-2 prueba el resultado para las reglas -der y -der. En 85 se muestran los dos primeros eventos, los otros dos han sido construidos de forma similar. Los dos casos se diferencian en el nmero de premisas de la u regla de inferencia utilizada. Para distinguirlos se comprueba la longitud de la lista de premisas con la funcin len: o (defthm modelo-expansion-secuentes-izq-1 (implies (and (equal (len (secuentes-expansion-izq F Gamma Delta)) 1) (es-proposicional F) (not (es-atomica F)) (member-equal F Gamma)) (let ((Premisas (secuentes-expansion-izq F Gamma Delta))) (iff (modelo-secuente sigma (car Premisas)) (modelo-secuente sigma (cons Gamma Delta)))))) (defthm modelo-expansion-secuentes-izq-2 (implies (and (equal (len (secuentes-expansion-izq F Gamma Delta)) 2) (es-proposicional F) (not (es-atomica F)) (member-equal F Gamma)) (let ((Premisas (secuentes-expansion-izq F Gamma Delta))) (iff (modelo-secuente sigma (cons Gamma Delta)) (and (modelo-secuente sigma (car Premisas)) (modelo-secuente sigma (cadr Premisas)))))))
85

5.1.2

Contramodelo de un secuente: CON T RAM ODS

Puesto que las reglas de inferencia preservan la validez, se pueden utilizar para comprobar si un secuente es vlido. Para ello basta con encontrar una forma de a obtener dicho secuente aplicando reglas de inferencia a los axiomas. Es necesario observar que la aplicacin de las reglas de inferencia se puede conmutar, es decir, si o un secuente se puede obtener como consecuencia de aplicar dos reglas de inferencia distintas a un conjunto de premisas, entonces da igual el orden en que se utilicen dichas reglas. Esto se debe a que no hay dos reglas de inferencia que sirvan para

5.1. Secuentes p, q p q p, p
-der

111 q q, p q, q p
-izq -der -izq

q, (p q) p p q q p Figura 5.2: Conmutacin de reglas en G o obtener la misma frmula dentro de un secuente y a que las reglas de inferencia o slo afectan a la frmula que se inere, el resto no son alteradas. En el ejemplo de o o la gura 5.1 se pueden conmutar las aplicaciones de las reglas -izq y -der y se obtiene la derivacin mostrada en la gura 5.2, en la que el conjunto de premisas o a partir de las que se aplican dichas reglas no cambia. Si el proceso para determinar la validez de un secuente falla, obtendremos un secuente en el que todas las frmulas son atmicas y que no es un axioma. o o Estos secuentes no se pueden obtener como resultado de aplicar una regla de inferencia. A partir de los elementos de este tipo de secuentes se puede construir un contramodelo de los mismos: Denicin 5.7 Un secuente es atmico si y son secuencias nitas de o o frmulas atmicas. o o Teorema 5.8 Sea un secuente atmico que no es un axioma. La asignao cin denida de forma que (p) = si y slo si p aparece en , no es modelo o o de . Demostracin: o Puesto que es modelo de todos los elementos de , para que sea modelo de tendr que ser modelo de algn elemento de , pero esto no ocurre a u puesto que y no tienen elementos en comn. Luego |= . u

Dado que las reglas de inferencia del clculo G preservan la validez, la asiga nacin as construida a partir de un secuente atmico S que no sea un axioma, o o ser contramodelo de cualquier secuente obtenido mediante una aplicacin de las a o reglas de inferencia, en las que se utilice S entre las premisas. De esta forma se dispone de un procedimiento que comprueba si un secuente es vlido y, en caso de que esto no sea cierto, proporciona informacin suciente a o para construir un contramodelo del mismo. El siguiente algoritmo aplica las reglas de G como reglas de expansin, hasta encontrar un secuente a partir del o cual se puede construir un contramodelo.

112

Cap tulo 5. Clculo de secuentes a

Algoritmo 5.9 (CON T RAM ODS ) El dato de entrada de este algoritmo es un u o secuente y acta como se describe a continuacin: 1. Si es una axioma, el algoritmo termina y devuelve f . 2. Se selecciona una frmula F no atmica de la lista y se utiliza la regla de o o expansin para la ocurrencia de F en el lado izquierdo del secuente. o (a) Si la regla de expansin utilizada tiene una unica premisa S, se evala o u el algoritmo sobre dicha premisa. (b) Si la regla de expansin utilizada tiene dos premisas S1 y S2 , se evala o u el algoritmo sobre una de ellas, S1 , y si devuelve f entonces se evala u sobre la otra, S2 . 3. Si en no hay frmulas no atmicas, se selecciona una frmula F no atmica o o o o de la lista y se utiliza la regla de expansin para la ocurrencia de F en o el lado derecho del secuente. (a) Si la regla de expansin utilizada tiene una unica premisa S, se evala o u el algoritmo sobre dicha premisa. u (b) Si la regla de expansin utilizada tiene dos premisas S1 y S2 , se evala o u el algoritmo sobre una de ellas, S1 , y si devuelve f entonces se evala sobre la otra, S2 . o o 4. Si y no tienen frmulas no atmicas, se devuelve el secuente . Este algoritmo no est completamente determinado, puesto que no se indica a cmo se escoge la frmula F , ya sea de o de . Para resolver esta indetero o minacin hemos considerado una funcin seleccion, que escoge una frmula no o o o atmica de una lista de frmulas, si es que existe. Si la lista no contiene frmulas o o o no atmicas devuelve nil. Se ha asumido la existencia de esta funcin en un o o encapsulado ACL2, caracterizndola por las siguientes propiedades: a Si (seleccion Gamma) devuelve un valor, entonces dicho valor pertenece a Gamma. Si la funcin seleccion devuelve un valor, entonces dicho valor no es una o formula atmica. o u Si (seleccion Gamma) no devuelve ningn valor, entonces todos los elementos de Gamma son frmulas atmicas. o o De esta forma, el resto del desarrollo presentado en esta seccin es genrico, o e en el sentido de que es vlido para cualquier funcin seleccion vericando estas a o propiedades. La formalizacin de estas propiedades es la siguiente: o

5.1. Secuentes (defthm si-existe-no-atomica-seleccion-pertenece (implies (seleccion Gamma) (member-equal (seleccion Gamma) Gamma))) (defthm si-existe-no-atomica-seleccion-no-es-atomica (implies (seleccion Gamma) (not (es-atomica (seleccion Gamma))))) (defthm si-no-seleccion-miembros-atomicos (implies (and (not (seleccion Gamma)) (lista-formulas Gamma) (member-equal F Gamma)) (es-atomica F)))

113
86

La funcin que implementa el algoritmo CON T RAM ODS es la siguiente: o (defun CONTRAMOD-secuentes (S) (declare (xargs :measure (medida-secuente S))) (cond ((endp S) nil) ((secuente-axioma S) nil) (t (let* ((Gamma (car S)) (Delta (cdr S)) (F-1 (seleccion Gamma)) (F-2 (seleccion Delta))) (cond (F-1 (let ((Premisas (secuentes-expansion-izq F-1 Gamma Delta))) (cond ((equal (len Premisas) 1) (CONTRAMOD-secuentes (car Premisas))) ((equal (len Premisas) 2) (or (CONTRAMOD-secuentes (car Premisas)) (CONTRAMOD-secuentes (cadr Premisas)))) (t S)))) (F-2 (let ((Premisas (secuentes-expansion-der F-2 Gamma Delta))) (cond ((equal (len Premisas) 1) (CONTRAMOD-secuentes (car Premisas))) ((equal (len Premisas) 2) (or (CONTRAMOD-secuentes (car Premisas)) (CONTRAMOD-secuentes (cadr Premisas)))) (t S)))) (t S))))))
87

114

Cap tulo 5. Clculo de secuentes a

Utilizando una funcin seleccion concreta, por ejemplo la que devuelve la o primera frmula no atmica de una lista, podemos utilizar la funcin anterior o o o para comprobar la existencia de un contramodelo de un secuente. Si el secuente tiene contramodelos, la funcin devuelve un secuente atmico a partir del que se o o puede construir uno. Si el secuente no tiene contramodelos la funcin devuelve o nil. ACL2 !>(NO-MOD-secuentes ( ( (-> p q) ) (-> (- p) (- q)) )) ((Q) P) ACL2 !>(NO-MOD-secuentes ( ( (-> p q) ) (-> (- q) (- p)) )) NIL En el primer ejemplo el secuente p q p q tiene un contramodelo. Cualquier asignacin en la que q sea cierta y p falsa es contramodelo de dicho o secuente. En el segundo ejemplo, el secuente p q p q no tiene contramodelos. Para que la funcin CONTRAMOD-secuentes sea admitida por ACL2, se ha de o demostrar que termina para cualquier dato de entrada. Para ello hemos proporcionado una medida del argumento, medida-secuente, que decrece en las llamadas recursivas. Denicin 5.10 El nmero de conectivas de un secuente rS ( ) es la suma o u del nmero de conectivas que aparecen en todas las frmulas que lo componen. u o As rS ( F1 , . . . , Fn G1 , . . . , Gm ) = r(F1 ) + + r(Fn ) + r(G1 ) + + r(Gm ). , La funcin medida-secuente formaliza este concepto. Para ello se utiliza la o funcin medida-lista-formulas que suma el nmero de conectivas de todas las o u frmulas que aparecen en una lista: o (defun medida-secuente (S) (+ (medida-lista-formulas (car S)) (medida-lista-formulas (cdr S)))) (defun medida-lista-formulas (Gamma) (cond ((endp Gamma) 0) (t (+ (numero-conectivas (car Gamma)) (medida-lista-formulas (cdr Gamma)))))) Teorema 5.11 Si el secuente S es obtenido como premisa al utilizar una regla de inferencia para concluir otro secuente S, entonces rS (S ) < rS (S). El evento asociado a este teorema se genera de forma automtica al evaluar a o a u el evento 87 . Su demostracin se obtiene fcilmente dado que el nmero de conectivas de las subfrmulas de una frmula proposicional compuesta es menor o o que el de la frmula original, resultado establecido en 7 . o
88

5.1. Secuentes

115

5.1.3

Correccin y completitud de CON T RAM ODS o

Teorema 5.12 (Correccin de CON T RAM ODS ) Dado un secuente , o si CON T RAM ODS ( ) = S = f entonces no es un secuente vlido. a Adems, si es la asignacin denida de forma que (p) = si y slo si p aparece a o o en la parte izquierda de S, entonces |= . Demostracin: o Si CON T RAM ODS ( ) = S = f entonces S es un secuente atmico y o por el teorema 5.8, se tiene que la asignacin denida en el enunciado no es o modelo de S. Por el teorema 5.6, esta asignacin no es modelo de ningn secuente o u obtenido al aplicar una secuencia de reglas de inferencia, en las que se utilice S entre las premisas. Al obtener S como resultado, el algoritmo nos asegura que dicho secuente aparece como premisa en una secuencia de reglas de inferencia que concluye con . Por tanto, no es modelo de .

o La funcin genera-contramodelo-secuente construye la asignacin mencioo nada en el teorema anterior. Para denir esta funcin consideramos la funcin o o genera-asignacion-positiva que construye una asignacin en la que todos los o s mbolos proposicionales de una lista son verdaderos. (defun genera-contramodelo-secuente (S) (genera-asignacion-positiva (car S)))
89

(defun genera-asignacion-positiva (atomos) (cond ((endp atomos) nil) ((es-simbolo-proposicional (car atomos)) (asume-valor (car atomos) *V* (genera-asignacion-positiva (cdr atomos)))) (t (genera-asignacion-positiva (cdr atomos))))) La formalizacin del teorema de correccin es la siguiente: o o (defthm correccion-CONTRAMOD-secuentes (implies (and (es-secuente S) (CONTRAMOD-secuentes S)) (not (modelo-secuente (genera-contramodelo-secuente (CONTRAMOD-secuentes S)) S))))
90

Teorema 5.13 (Completitud de CON T RAM ODS ) Dado un secuente , si existe una asignacin que no es modelo de , entonces se tiene o CON T RAM ODS ( ) = f .

116

Cap tulo 5. Clculo de secuentes a

La prueba de este resultado se obtiene fcilmente a partir del teorema 5.6. Su a formalizacin es la siguiente: o (defthm completitud-CONTRAMOD-secuentes (implies (and (es-secuente S) (not (modelo-secuente sigma S))) (CONTRAMOD-secuentes S))
91

5.1.4

Demostrabilidad por secuentes: DATS

o o Teorema 5.14 Dado una frmula F P(), una asignacin es modelo de F si y slo si es modelo del secuente F . o La prueba de este teorema es trivial a partir del concepto de modelo de un secuente. Este teorema permite utilizar el clculo de secuentes para decidir la a validez de una frmula F , para ello basta con comprobar que el secuente F es o vlido, es decir, no tiene contramodelos. a Denicin 5.15 Una frmula F es demostrable por secuentes, y lo notaremos o o o S F , si, aplicando las reglas de expansin de G , no se puede obtener un contramodelo del secuente F . Algoritmo 5.16 (DATS ) Dada una frmula F P(), DATS (F ) es t si y slo o o si CON T RAM ODS ( F ) es f . La funcin que implementa este algoritmo es la siguiente: o (defun DAT-secuentes (F) (not (CONTRAMOD-secuentes (cons nil (list F)))))
92

o Esta funcin devuelve T si la frmula que se le pasa como argumento es deo mostrable por secuentes. En caso contrario devuelve nil. ACL2 !>(DAT-secuentes (<-> (<-> p q) (<-> q p))) T ACL2 !>(DAT-secuentes (-> (-> p q) (& r s))) NIL En el primer ejemplo la frmula (p q) (q p) es demostrable por o secuentes, es decir, es vlida. En el segundo, la frmula (p q) (r s) no es a o demostrable por secuentes. o Teorema 5.17 Dada una frmula F P(), F es vlida si y slo si DATS (F ) a o es t.

5.1. Secuentes

117

Demostracin: o o Por denicin DATS (F ) = t si y slo si CON T RAM ODS ( F ) = f y, por o los teoremas de correccin y completitud de CON T RAM ODS , esto ocurre si y o slo si F tiene un contramodelo. Luego DATS (F ) = t si y slo si F no tiene o o contramodelos, es decir es vlido, lo que, por el teorema 5.14, es equivalente a a que F sea vlida a

Los siguientes eventos establecen los resultados de correccin y completitud de o la funcin que implementa el algoritmo DATS . La condicin acerca de la validez o o de la frmula F se establece como se indic en la seccin 3.2.4. o o o (defthm correccion-DAT-secuentes (implies (and (es-proposicional F) (DAT-secuentes F)) (modelo sigma F))) (defthm completitud-DAT-secuentes (implies (and (es-proposicional F) (not (DAT-secuentes F))) (not (modelo (genera-contramodelo-secuente (CONTRAMOD-secuentes (cons nil (list F)))) F)))) Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 91 y 90 cuando el valor de la variable S es (cons nil (list F)).
93

5.1.5

Satisfacibilidad por secuentes: SATS

Teorema 5.18 Dada una frmula F P(), F es satisfacible si y slo si el o o secuente F tiene un contramodelo. Este teorema es una consecuencia del teorema 5.14 y permite utilizar el clculo a de secuentes para obtener un modelo de una frmula F , para ello basta con o generar un contramodelo del secuente F . Algoritmo 5.19 (SATS ) Dada una frmula F P(), SATS (F ) es igual a o CON T RAM ODS (F ). La funcin que implementa este algoritmo es la siguiente: o (defun SAT-secuentes (F) (CONTRAMOD-secuentes (cons (list F) nil)))
94

118

Cap tulo 5. Clculo de secuentes a

Si una frmula es satisfacible, esta funcin devuelve un secuente atmico a o o o partir del que se puede obtener un modelo de dicha frmula. Si la frmula es o o insatisfacible, la funcin devuelve nil: o ACL2 !>(SAT-secuentes (& (-> p (- q)) (- (- p)))) ((P) Q) ACL2 !>(SAT-secuentes (& (/ p q) (& (- p) (- q)))) NIL En el primer ejemplo, la frmula (p q) p es satisfacible y una asigo nacin que la hace cierta es cualquiera en la que p sea cierto y q falso. En el o segundo ejemplo, la frmula (p q) (p q) es insatisfacible. o Teorema 5.20 Dada una frmula F P(), F es satisfacible si y slo si o o SATS (F ) = S = f . Adems, si SATS (F ) = S = f y es la asignacin dea o nida de forma que (p) = si y slo si p est en la parte izquierda del secuente o a S, entonces |= F . Demostracin: o Por denicin SATS (F ) = S = f si y slo si CON T RAM ODS (F ) = o o S = f . Por los resultados de correccin y completitud de CON T RAM ODS esto o ocurre si y slo si el secuente F tiene un contramodelo y esto, por el teorema o 5.18, es equivalente a que F sea satisfacible. Si SATS (F ) = S = f y es la asignacin denida en el enunciado, entonces por el teorema de correccin de o o o CON T RAM ODS , es contramodelo de F , luego, por la denicin de modelo de un secuente, es modelo de F .

Los siguientes eventos establecen los resultados de correccin y completitud o de la funcin que implementa el algoritmo SATS . La condicin acerca de la o o satisfacibilidad de la frmula F se establece como se indic en la seccin 3.2.4. o o o (defthm correccion-SAT-secuentes (implies (and (es-proposicional F) (SAT-secuentes F)) (modelo (genera-contramodelo-secuente (SAT-secuentes F)) F))) (defthm completitud-SAT-secuentes (implies (and (es-proposicional F) (modelo sigma F)) (SAT-secuentes F)))
95

5.1. Secuentes

119

Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 90 y 91 cuando el valor de la variable S es (cons (list F) nil).

5.1.6

Deducibilidad por secuentes: DEDU CS

Finalmente, tambin se puede utilizar el clculo de secuentes para comprobar si e a una frmula F es consecuencia lgica de un conjunto de hiptesis H1 , . . . , Hn . o o o a Para ello basta con comprobar que el secuente H1 , . . . , Hn F es vlido, es decir, que no tiene contramodelos. Denicin 5.21 Dadas las frmulas F, H1 , . . . , Hn , decimos que F es deducible o o por secuentes a partir de las hiptesis H1 . . . , Hn , y lo notaremos H1 , . . . , Hn S o o F , si, aplicando las reglas de expansin de G , no se puede obtener un contramodelo del secuente H1 , . . . , Hn F . Algoritmo 5.22 (DEDU CS ) Dadas las frmulas F, H1 , . . . , Hn P(), o DEDU CS ( H1 , . . . , Hn , F ) es t si y slo si CON T RAM ODS ( H1 , . . . , Hn F ) o es f . La funcin que implementa este algoritmo es la siguiente: o (defun DEDUC-secuentes (lista-H F) (not (CONTRAMOD-secuentes (cons lista-H (list F)))))
96

Esta funcin devuelve T si la frmula F es deducible por secuentes a partir de o o las hiptesis lista-H. En caso contrario devuelve nil. o ACL2 !>(DEDUC-secuentes ((-> p q) p) q) T ACL2 !>(DEDUC-secuentes ((-> p q) p) (- q)) NIL En el primer ejemplo la frmula q es deducible por secuentes a partir de las o frmulas (p q) y p. En el segundo ejemplo, la frmula q no es deducible por o o secuentes a partir de las frmulas (p q) y p. o Teorema 5.23 Dadas las frmulas F, H1 . . . , Hn P(), F es consecuencia o o lgica de {H1 , . . . , Hn } si y slo si DEDU CS ( H1 , . . . , Hn , F ) es t. o Demostracin: o Por la denicin de DEDU CS se tiene DEDU CS ( H1 , . . . , Hn , F ) = t si o y slo si CON T RAM ODS ( H1 , . . . , Hn F ) = f y, por los teoremas de coo rreccin y completitud de CON T RAM ODS , esto ocurre si y slo si el secuente o o

120

Cap tulo 5. Clculo de secuentes a

H1 , . . . , Hn F tiene un contramodelo, es decir, si y slo si existe una asignao cin modelo de los Hi que no es modelo de F . Finalmente esto es equivalente o a que F no sea consecuencia lgica de {H1 , . . . , Hn }. o Por tanto F es consecuencia lgica del conjunto de hiptesis {H1 , . . . , Hn } si o o y slo si DEDU CS ( H1 , . . . , Hn , F ) es t. o

Los siguientes eventos establecen los resultados de correccin y completitud o de la funcin que implementa el algoritmo DEDU CS : o (defthm correccion-DEDUC-secuentes (implies (and (lista-formulas lista-H) (es-proposicional F) (DEDUC-secuentes lista-H F) (modelo-conjuncion sigma lista-H)) (modelo sigma F)))
97

(defthm completitud-DEDUC-secuentes (let ((sigma (genera-contramodelo-secuente (CONTRAMOD-secuentes (cons lista-H (list F)))))) (implies (and (lista-formulas lista-H) (es-proposicional F) (not (DEDUC-secuentes lista-H F))) (and (modelo-conjuncion sigma lista-H) (not (modelo sigma F)))))) Las pruebas de estos resultados se obtienen respectivamente como instancias de los eventos presentados en 91 y 90 cuando el valor de la variable S es (cons lista-H (list F)).

5.1.7

Secuentes en K

Los algoritmos desarrollados en las subsecciones previas tambin pueden ser utie lizados para decidir la satisfacibilidad, validez y consecuencia lgica en K. Los o algoritmos son los mismos, puesto que no se basan en aspectos semnticos, pero a no ocurre lo mismo con los conceptos y propiedades que aseguran su correccin o y completitud. La semntica en K de un secuente es similar a la semntica clsica: un secuente a a a es cierto en una K-asignacin si alguna de las frmulas de es falsa o o o alguna de las frmulas de es cierta. Sin embargo, el mtodo basado en secuentes o e busca un contramodelo, de ah que sea necesario caracterizar las situaciones en las que una asignacin hace falso un secuente. En la semntica clsica basta con o a a

5.1. Secuentes

121

utilizar la negacin de la funcin modelo-secuente, esto no sirve en la semntica o o a de Kleene pues no deja fuera el valor indeterminado. Denicin 5.24 Una K-asignacin es nomodelo de un secuente si o o es modelo de todos los elementos de y de las negaciones de todos los elementos de . La funcin no-modelo-secuente-K formaliza este concepto, para ello utiliza o las funciones modelo-conjuncion-K y no-modelo-conjuncion-K que comprueban si una K-asignacin es modelo, respectivamente nomodelo, de todos los o elementos de una lista: (defun no-modelo-secuente-K (sigma S) (and (modelo-conjuncion-K sigma (car S)) (no-modelo-conjuncion-K sigma (cdr S)))) (defun modelo-conjuncion-K (sigma Gamma) (cond ((endp Gamma) t) (t (and (modelo-K sigma (car Gamma)) (modelo-conjuncion-K sigma (cdr Gamma)))))) (defun no-modelo-conjuncion-K (sigma Delta) (cond ((endp Delta) t) (t (and (no-modelo-K sigma (car Delta)) (no-modelo-conjuncion-K sigma (cdr Delta)))))) Un secuente axioma es un secuente en el que alguna frmula aparece sio multneamente en la parte izquierda y en la parte derecha. De esta forma no a existe ninguna K-asignacin que sea nomodelo de un secuente axioma. La foro malizacin de esta propiedad es la siguiente: o (defthm secuente-axioma-no-tiene-no-modelos (implies (secuente-axioma S) (not (no-modelo-secuente-K sigma S))))
99 98

Las reglas del clculo G no hacen referencia a la semntica de los secuena a tes, por tanto se aplican de igual forma tanto en la semntica clsica como a a en la semntica de Kleene. Es por esto por lo que utilizamos las funciones a secuentes-expansion-izq y secuentes-expansion-der, presentadas en 83 y 84 , para formalizar el clculo de secuentes en K. Sin embargo, las proa piedades semnticas de estas funciones han de ser reformuladas con respecto a al concepto de nomodelo de un secuente: una K-asignacin es nomodelo de o un secuente conclusin de una regla de expansin si y slo si es nomodelo o o o

122

Cap tulo 5. Clculo de secuentes a

de alguna de las premisas. La formalizacin de esta propiedad para la funcin o o modelo-expansion-secuentes-izq es la siguiente:

(defthm modelo-expansion-secuentes-izq-1 (implies (and (equal (len (secuentes-expansion-izq F Gamma Delta)) 1) (es-proposicional F) (not (es-atomica F)) (member-equal F Gamma)) (let ((Premisas (secuentes-expansion-izq F Gamma Delta))) (iff (no-modelo-secuente-K sigma (car Premisas)) (no-modelo-secuente-K sigma (cons Gamma Delta))))))

100

(defthm modelo-expansion-secuentes-izq-2 (implies (and (equal (len (secuentes-expansion-izq F Gamma Delta)) 2) (es-proposicional F) (not (es-atomica F)) (member-equal F Gamma)) (let ((Premisas (secuentes-expansion-izq F Gamma Delta))) (iff (no-modelo-secuente-K sigma (cons Gamma Delta)) (or (no-modelo-secuente-K sigma (car Premisas)) (no-modelo-secuente-K sigma (cadr Premisas)))))))

Los eventos para la funcin modelo-expansion-secuentes-der se construyen o de forma similar.

5.1.7.1

Nomodelo en K de un secuente

Los algoritmos para decidir la validez, satisfacibilidad y consecuencia lgica preo sentados a lo largo de este cap tulo, se basan en un procedimiento que busca un contramodelo de un secuente, es decir, una asignacin que lo hace falso. Eso te procedimiento, al que hemos llamado CONTRAMOD-secuentes se dene en la semntica de Kleene de igual forma a como se ha hecho en la semntica clsica. a a a Su formalizacin se encuentra en 87 . o Los resultados de correccin y completitud de este procedimiento en la semno a tica de Kleene se establecen de forma similar al caso de la semntica clsica. Su a a formalizacin es la siguiente: o

5.1. Secuentes

123
101

(defthm correccion-CONTRAMOD-secuentes (implies (and (es-secuente S) (CONTRAMOD-secuentes S)) (no-modelo-secuente-K (genera-no-modelo-secuente-K (CONTRAMOD-secuentes S)) S))) (defthm completitud-CONTRAMOD-secuentes (implies (and (es-secuente S) (no-modelo-secuente-K sigma S)) (CONTRAMOD-secuentes S)))

En este caso hemos utilizado la funcin no-modelo-secuente-K para como probar que una K-asignacin es nomodelo de un secuente. Obsrvese que en o e los correspondientes teoremas en la semntica clsica se utiliza la negacin del a a o predicado modelo-secuente. (defun genera-no-modelo-secuente-K (S) (cond ((es-secuente S) (append (genera-asignacion-positiva-K (car S)) (genera-asignacion-negativa-K (cdr S)))) (t nil)))
102

(defun genera-asignacion-positiva-K (Xs) (cond ((endp Xs) nil) ((es-simbolo-proposicional (car Xs)) (asume-valor (car Xs) *V* (genera-asignacion-positiva-K (cdr Xs)))) (t (genera-asignacion-positiva-K (cdr Xs))))) (defun genera-asignacion-negativa-K (Xs) (cond ((endp Xs) nil) ((es-simbolo-proposicional (car Xs)) (asume-valor (car Xs) *F* (genera-asignacion-negativa-K (cdr Xs)))) (t (genera-asignacion-negativa-K (cdr Xs))))) La funcin genera-no-modelo-secuente-K proporciona un nomodelo de un o secuente atmico que no es un axioma. En el caso de la semntica clsica es o a a suciente con asegurar que todos los tomos del lado izquierdo del secuente son a verdaderos. En la semntica de Kleene tenemos que asignar expl a citamente un valor de verdad a todos los tomos del secuente para evitar que quede indenido. a

124

Cap tulo 5. Clculo de secuentes a

La funcin genera-no-modelo-secuente-K realiza esta tarea, para ello utiliza las o funciones genera-asignacion-positiva-K y genera-asignacion-negativa-K que construyen el trozo de K-asignacin que hace verdaderos, respectivamente o falsos, todas las frmulas del lado izquierdo del secuente, respectivamente el lado o derecho.

5.1.7.2

Decisin de K-validez basada en secuentes o

a El procedimiento para decidir si una frmula es K-vlida es el mismo que el de o la semntica clsica. La funcin DAT-secuentes, presentada en 92 , implementa a a o este procedimiento. Los resultados de correccin y completitud son los siguientes: o

(defthm correccion-DAT-secuentes (implies (and (es-proposicional F) (DAT-secuentes F) (valor-K F sigma)) (modelo-K sigma F)))

103

(defthm completitud-DAT-secuentes (implies (and (es-proposicional F) (not (DAT-secuentes F))) (no-modelo-K (genera-no-modelo-secuente-K (CONTRAMOD-secuentes (cons nil (list F)))) F)))

Como se indic en la seccin 3.3.4 el resultado de correccin tiene una hiptesis o o o o adicional en la que se arma que la asignacin sigma asigna un valor de verdad o a la frmula F. En el resultado de completitud la conclusin arma la existencia o o de una K-asignacin que es nomodelo de la frmula F. o o

5.1.7.3

Decisin de K-satisfacibilidad basada en secuentes o

El algoritmo para decidir la K-satisfacibilidad es el mismo que el de la semntica a clsica. La funcin que lo implementa es SAT-secuentes, presentada en 94 . La a o formalizacin y prueba de sus propiedades de correccin y completitud es similar o o a las de la semntica clsica. Los eventos son los siguientes: a a

5.2. Ejemplos (defthm correccion-SAT-secuentes (implies (and (es-proposicional F) (SAT-secuentes F)) (modelo-K (genera-no-modelo-secuente-K (SAT-secuentes F)) F))) (defthm completitud-SAT-secuentes (implies (and (es-proposicional F) (modelo-K sigma F)) (SAT-secuentes F))) 5.1.7.4 o Decisin de consecuencia K-lgica basada en secuentes o

125
104

Al igual que en los dos casos anteriores, el algoritmo para decidir la consecuencia lgica en K es el mismo que para la semntica clsica. La funcin que lo impleo a a o a o menta, DEDUC-secuentes, est denida en 96 . Las resultados de correccin y completitud se han construido siguiendo las indicaciones de la seccin 3.3.4. o (defthm correccion-DEDUC-secuentes (implies (and (lista-formulas lista-H) (es-proposicional F) (DEDUC-secuentes lista-H F) (modelo-conjuncion-K sigma lista-H) (valor-K F sigma)) (modelo-K sigma F)))
105

(defthm completitud-DEDUC-secuentes (let ((sigma (genera-no-modelo-secuente-K (CONTRAMOD-secuentes (cons lista-H (list F)))))) (implies (and (lista-formulas lista-H) (es-proposicional F) (not (DEDUC-secuentes lista-H F))) (and (modelo-conjuncion-K sigma lista-H) (no-modelo-K sigma F)))))

5.2

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin deo o o sarrollados en este cap tulo, presentando datos sobre su evaluacin en algunas o frmulas de Urquhart [83] y frmulas representando el problema de las N reinas o o [62]. En la seccin 4.3 se indica como se cargan en ACL2 los cheros en los que o se denen estas familias de frmulas. o

126

Cap tulo 5. Clculo de secuentes a

Una vez certicados los libros, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 5-secuentes:

../calculos-proposicionales/5-secuentes> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/5-secuentes". ACL2 !>

A continacin incluimos el libro que contiene la teor desarrollada en este o a cap tulo. Los libros de los que ste depende son incluidos automticamente por e a el sistema:

ACL2 !>(include-book "secuentes")

Para poder utilizar los procedimientos de decisin desarrollados en este cap o tulo, tenemos que proporcionar una denicin concreta de la funcin que seleco o ciona una frmula de un secuente. El s o mbolo asociado a esta funcin ya existe en o el sistema por lo que tendremos que redenirla. Las propiedades de los procedimientos de decisin de satisfacibilidad, validez y consecuencia lgica se mantienen o o siempre que la nueva denicin de la funcin seleccion tenga las propiedades o o presentadas en 86 .

ACL2 !>(set-ld-redefinition-action (:warn . :overwrite) state) ACL2 !>(defun seleccion (lista) (cond ((endp lista) nil) ((es-atomica (car lista)) (seleccion (cdr lista))) (t (car lista))))

En la tabla 5.1 se muestran los tiempos de evaluacin de la funcin o o o DAT-secuentes para las 15 primeras frmulas de Urquhart. En la tabla 5.2 se muestra la misma informacin sobre la evaluacin de la funcin SAT-secuentes o o o para las frmulas correspondientes al problema de las N reinas, para algunos o valores de N .

5.2. Ejemplos Frmula tiempo o U1 0.000 U2 0.000 U3 0.000 U4 0.000 U5 0.010 Frmula tiempo o U6 0.010 U7 0.050 U8 0.110 U9 0.230 U10 0.560 Frmula tiempo o U11 1.380 U12 3.170 U13 7.370 U14 16.650 U15 37.490

127

Tabla 5.1: Tiempos de evaluacin de las frmulas de Urquhart o o Tamao del tablero n Tiempo 2 3 4 5 6 0.000 0.050 0.420 1.900 170.450

Tabla 5.2: Tiempos de evaluacin para el problema de las N reinas o

Sumario
En este cap tulo: Se ha formalizado el clculo de secuentes. Basndonos en este clculo se ha a a a desarrollado un procedimiento que implementa un algoritmo para decidir la validez de un secuente, mediante la bsqueda de un contramodelo. Se u han demostrado las propiedades de correccin y completitud en el sentido o clsico de este procedimiento. a Basndonos en el procedimiento de bsqueda de un contramodelo de un a u secuente se han desarrollado procedimientos para decidir la validez, satisfacibilidad y consecuencia lgica. Se han demostrado las propiedades de o correccin y completitud en el sentido clsico de estos procedimientos. o a Se ha demostrado que los algoritmos desarrollados tambin pueden ser utie lizados en la semntica de Kleene, presentado los eventos que establecen a sus propiedades de correccin y completitud en K. o

128

Cap tulo 5. Clculo de secuentes a

Cap tulo 6 Extensiones de ACL2


ACL2 es un sistema abierto en el que cualquier usuario puede desarrollar herramientas para facilitar su trabajo. Desde cierto punto de vista, estas herramientas son extensiones del sistema que pueden llegar a integrarse con l. Nos separae mos momentneamente del desarrollo de la teor sobre clculos proposicionales, a a a para presentar dos de estas herramientas que hemos desarrollado y que sern de a utilidad en los cap tulos posteriores. En la primera seccin presentamos una herramienta para facilitar las pruebas o de terminacin de funciones recursivas compleja. Esta herramienta proporciona o una determinada extensin de una relacin bien fundamentada denida sobre un o o o conjunto A, que es de utilidad en la prueba de terminacin de funciones que hacen recursin sobre una lista de elementos de dicho conjunto. El desarrollo de esta o herramienta revel un pequeo error en el sistema subsanado en la versin actual o n o del mismo. La herramienta fue presentada en [67] y actualmente se distribuye junto con el sistema. En la segunda seccin se presenta una herramienta que facilita la reutilizacin o o de resultados de segundo orden. Para establecer un resultado de segundo orden en el sistema, se consideran determinadas funciones para las que se asumen ciertas propiedades, a partir de las que se demuestra el resultado. Este resultado es cierto para cualquier conjunto de funciones que cumplan las propiedades asumidas y se puede establecer utilizando instanciacin funcional. La herramienta que o se desarrolla en esta seccin realiza de forma automtica este proceso de instano a ciacin funcional, facilitando as la labor del usuario. De nuevo el desarrollo de la o herramienta revel un error en el sistema, ms grave que el anterior, en el proceso o a 1 de instanciacin funcional . La herramienta ha sido presentada en [52]. o
Este error est corregido en la copia del sistema que aparece en el CD que acompaa a esta a n memoria. En la seccin Recent changes to this page de la pgina en internet del sistema [42] o a se puede encontrar ms informacin sobre la forma de corregir este error. a o
1

129

130

Cap tulo 6. Extensiones de ACL2

6.1

Pruebas de terminacin basadas en o multiconjuntos

Como se ha comentado en la seccin 2.2.3, para que el sistema admita la denicin o o de una funcin en la lgica, es necesario demostrar que dicha funcin termina. o o o Para ello, se ha de probar que una determinada medida de los argumentos de la funcin decrece en las llamadas recursivas, con respecto a cierta relacin bien o o fundamentada. Para funciones recursivas simples, esta prueba de terminacin se o efecta automticamente por el sistema. Sin embargo, existen esquemas recursiu a vos complicados para los que el sistema no es capaz de probar la terminacin sin o ayuda por parte del usuario, que debe indicar la relacin bien fundamentada y/o o la funcin de medida con la que se ha de intentar la prueba. o Una herramienta para demostrar la terminacin de funciones recursivas son o los multiconjuntos. Informalmente, un multiconjunto es un conjunto con elementos repetidos. Dershowitz y Manna [20] demostraron que toda relacin bien o fundamentada sobre un conjunto A induce una relacin bien fundamentada sobre o el conjunto de multiconjuntos nitos cuyos elementos estn en A. Este resultado a es util para demostrar la terminacin de funciones entre cuyos argumentos apa o rece una lista de elementos del conjunto A de los que algunos, en las llamadas recursivas, son reemplazados por otros ms pequeos con respecto a la relacin a n o bien fundamentada en A. En esta seccin se dene una relacin entre multiconjuntos inducida por una o o relacin binaria y se demuestra que si esta ultima es bien fundamentada entonces o la relacin entre multiconjuntos tambin lo es. Este resultado se demuestra en o e un marco genrico, permitiendo as la posterior denicin en el sistema de ree o laciones bien fundamentadas entre multiconjuntos, inducidas por relaciones bien fundamentadas. Para facilitar la denicin de la relacin entre multiconjuntos o o o hemos desarrollado un comando llamado defmul que, a partir de una relacin bien fundamentada, genera de forma automtica la relacin entre multiconjuna o tos y demuestra que tambin es bien fundamentada. Este comando es un buen e ejemplo de cmo el demostrador puede ser extendido mediante herramientas eso pec cas que hacen ms fcil determinadas tareas. Finalmente se muestra un a a ejemplo de uso de la relacin entre multiconjuntos inducida por una relacin bien o o fundamentada. En esta memoria se ha utilizado esta herramienta para demostrar la terminacin de ciertas funciones en las secciones 7.1.2 y 8.1.2.1. o Los eventos relacionados con los multiconjuntos y la prueba de la buena fundamentacin de la relacin entre multiconjuntos inducida, se encuentran en el o o libro multiconjuntos.lisp. La denicin del comando defmul se encuentra en o o el libro defmul.lisp. El ejemplo desarrollado en la ultima parte de esta seccin se encuentra en el libro arboles-binarios.lisp.

6.1. Pruebas de terminacin basadas en multiconjuntos o

131

6.1.1

Relaciones bien fundamentadas entre multiconjuntos

Denicin 6.1 Un multiconjunto sobre un conjunto A es una funcin o o M : A N, donde N es el conjunto de los nmero naturales. Decimos que M u es un multiconjunto nito si hay un nmero nito de elementos de A tales que u M (x) > 0. El conjunto de todos los multiconjuntos nitos sobre A lo notaremos por M(A). Intuitivamente, un multiconjunto sobre A es una funcin que asigna a cada o u elemento de A el nmero de veces que dicho elemento aparece en el multiconjunto. Usaremos una notacin similar a la de conjuntos para representar los mulo ticonjuntos nitos: representaremos como { a, b, b, b, c, e, e} el multiconjunto {a, }, denido sobre el conjunto {a, b, c, d, e} en el que M (a) = 2, M (b) = 3, M (c) = 1, M (d) = 0 y M (e) = 2. De esta forma, si M (x) = n > 0 entonces el valor x aparee cer n veces en la representacin de M . Obsrvese que el orden de los elementos a o en la representacin del multiconjunto M no es importante, { b, a, a, b, e, c, e} o {b, } representa el mismo multiconjunto que { a, b, b, b, c, e, e} {a, }. En la formalizacin representaremos los multiconjuntos nitos sobre un cono junto A, como listas de elementos de dicho conjunto, en las que pueden aparecer repeticiones. De esta forma la lista (a a b b b c e e) representa el multiconjunto { a, b, b, b, c, e, e} Al igual que antes, el orden de los elementos en estas }. {a, listas no es importante. Si mp es un predicado que caracteriza la pertenencia al conjunto A, entonces la pertenencia al conjunto M(A) queda caracterizada por el siguiente predicado: (defun mul-mp (M) (if (atom M) (equal M nil) (and (mp (car M)) (mul-mp (cdr M)))))
106

Los conceptos y operaciones habituales sobre multiconjuntos son similares a las de conjuntos, teniendo en cuenta las mltiples ocurrencias de los elementos. u Los que son necesarios a lo largo de esta seccin son: o Denicin 6.2 Sean M1 , M2 M(A) y x A o x pertenece a M1 , y lo notaremos x M1 , si M1 (x) > 0. M1 est incluido en M2 , y lo notaremos M1 M2 , si para cada x A se a tiene M1 (x) M2 (x). o, El multiconjunto vac que notaremos , es la funcin que a cada x A o le asigna 0.

132

Cap tulo 6. Extensiones de ACL2

La unin de M1 y M2 , que notaremos M1 M2 , es la funcin que a cada o o x A le asigna M1 (x) + M2 (x). La diferencia de M1 y M2 , que notaremos M1 \M2 , es la funcin que a cada o o x A le asigna M1 (x) M2 (x), si M1 (x) M2 (x) 0 en caso contrario. Puesto que representamos los multiconjuntos utilizando listas con repeticiones, algunos de los conceptos anteriores se formalizan utilizando funciones predenidas en el sistema. De esta forma la funcin member-equal formaliza el o o o concepto de pertenencia, la funcin subsetp-equal el de contencin, la funcin o o. append la unin y la funcin endp sirve para distinguir el multiconjunto vac o o La unica operacin que es necesario formalizar es la diferencia de multicon o juntos. Para ello consideramos la funcin elimina-una, presentada en 58 , que o elimina una ocurrencia de un elemento de una lista. Para calcular la diferencia entre dos multiconjuntos M-1 y M-2 hacemos lo siguiente: para cada ocurrencia de un elemento en M-2, eliminamos una ocurrencia de dicho elemento de M-1. La funcin que resulta es: o (defun mul-diferencia (M-1 M-2) (if (endp M-2) M-1 (mul-diferencia (elimina-una (car M-2) M-1) (cdr M-2))))
107

La siguiente denicin proporciona una forma de extender una relacin deo o nida sobre un conjunto A al conjunto de multiconjuntos nitos sobre A: Denicin 6.3 Sea una relacin binaria denida sobre un conjunto A. La o o 2 relacin entre multiconjuntos inducida por sobre M(A), notada por M , o se dene de la siguiente manera: N M M si y slo si M \ N = y para todo o y N \ M , existe x M \ N tal que y x. Una visin intuitiva de la relacin entre multiconjuntos inducida por una o o relacin binaria es proporcionada por Smullyan en [77]. Se dispone de una bolsa o llena de bolas etiquetadas con nmeros enteros positivos, no importa cuantas u bolas hay con la misma etiqueta ni que nmeros etiquetan las bolas. Esta bolsa u es un multiconjunto nito de nmeros enteros. La relacin entre multiconjuntos u o inducida por el orden usual entre los nmeros enteros, consiste en tomar de la u bolsa una bola con etiqueta n y reemplazarla por tantas bolas como queramos etiquetadas con cualquier valor menor que n.
La denicin original de Dershowitz y Manna [20] es ms amplia, pero la presentada aqu o a es ms adecuada para su formalizacin en ACL2. Ambas deniciones son equivalentes cuando a o se trata de una relacin de orden parcial. o
2

6.1. Pruebas de terminacin basadas en multiconjuntos o

133

En la formalizacin denimos la relacin entre multiconjuntos de la siguiente o o forma: supongamos que rel es una funcin binaria que representa una relacin o o denida sobre el conjunto A. Para denir la relacin entre dos multiconjuntos M o y N , consideramos las diferencias N \ M y M \ N , y comprobamos que para cada elemento de la primera, existe en la segunda un elemento mayor con respecto a la relacin rel. La funcin que implementa este proceso es mul-rel: o o (defun mul-rel (N M) (let ((M-N (mul-diferencia M N)) (N-M (mul-diferencia N M))) (and (consp M-N) (paratodo-existe-rel-mayor N-M M-N)))) (defun paratodo-existe-rel-mayor (N M) (if (endp N) t (and (existe-rel-mayor (car N) M) (paratodo-existe-rel-mayor (cdr N) M)))) (defun existe-rel-mayor (x M) (cond ((endp M) nil) ((rel x (car M)) t) (t (existe-rel-mayor x (cdr M))))) Como se ha comentado al principio de esta seccin, nuestro objetivo es deo mostrar que, dada una relacin bien fundamentada, la relacin entre multicono o juntos inducida por ella tambin es bien fundamentada. Como se indic en la e o seccin 2.2.2, el concepto de relacin bien fundamentada es equivalente al de relao o cin noetheriana. A lo largo de esta seccin utilizaremos indistintamente ambos o o trminos. De esta forma, el resultado que queremos demostrar lo enunciamos e utilizando el trmino relacin noetheriana, que es el que aparece en el art e o culo original de Dersowitz y Manna, [20]. La prueba de este resultado utiliza el lema de Knig para el que son necesarios determinados conceptos sobre rboles. o a Denicin 6.4 Un rbol es un par formado por un elemento, al que llamamos o a etiqueta del rbol, y una lista posiblemente vac y no necesariamente nita de a a rboles, a los que llamamos hijos del rbol. Dado un rbol T, notaremos por e(T) a a a a su etiqueta. Un rbol T es descendiente de otro rbol T si T es un hijo de T a a o es descendiente de alguno de sus hijos. Un rbol es nito si tiene un nmero a u nito de descendientes, en otro caso se llama innito. Un rbol es nitamente a ramicado si tiene una cantidad nita de hijos. Una rama de un rbol T es una a secuencia de rboles {Ti }i0 tales que T0 = T y para todo i, Ti+1 es un hijo de a Ti . Una rama es innita si la secuencia de rboles que la dene es innita. Una a
108

134

Cap tulo 6. Extensiones de ACL2

hoja es un rbol cuya lista de hijos es vac Dado un rbol T, el conjunto de sus a a. a hojas es el formado por todos sus descendientes que sean hojas. Teorema 6.5 (Lema de Knig) Todo rbol innito y nitamente ramicado o a tiene una rama innita. Demostracin: o Sea T un rbol innito y nitamente ramicado. Sea T0 = T. Dado un rbol a a innito y nitamente ramicado Ti , el nmero de sus descendientes es igual a la u suma del nmero de descendientes de cada uno de sus hijos ms el nmero de u a u hijos que tiene. Cmo Ti es innito y tiene un nmero nito de hijos, alguno de o u ellos ha de tener una cantidad innita de descendientes. Sea Ti+1 dicho hijo. De esta forma estamos construyendo una secuencia innita de rboles {Ti }i0 a tales que T0 = T y para todo i, Ti+1 es un hijo de Ti , es decir, una rama innita de T.

El principal resultado de esta seccin es el siguiente: o Teorema 6.6 (Dersowitz y Manna, [20]) Sea una relacin noetheriana soo bre un conjunto A. Entonces M es noetheriana. Demostracin: o La prueba es por reduccin al absurdo. Supongamos que M no es noetheo riana sobre M(A). Entonces existe una sucesin innita de elementos de M(A) o tal que: M M4 M M3 M M2 M M1 . Vamos a construir un rbol innito T tal que para cada descendiente T de a T y para cada hijo T de T se tiene que e(T ) e(T ): 1. La etiqueta de T es un elemento cualquiera a A y sus hijos son rboles a (en principio hoja) cuyas etiquetas son los elementos de M1 . As para cada , ocurrencia de un elemento x en M1 hay una hoja de T cuya etiqueta es x. 2. Como M2 M M1 , para cada y M2 \ M1 existe x M1 \ M2 tal que y x. En este caso aadimos el rbol hoja cuya etiqueta es y como hijo de una n a de las hojas de T etiquetadas con x. De nuevo se verica que para cada ocurrencia de un elemento x en M2 hay una hoja de T cuya etiqueta es a x. Adems, como M2 \ M1 = , al menos se ha aadido un descendiente n nuevo al rbol T. a 3. Supongamos que ya hemos modicado T hasta llegar al multiconjunto Mi . De esta forma, para cada ocurrencia de un elemento x en Mi hay una hoja de T cuya etiqueta es x. Como Mi+1 M Mi , para cada y Mi+1 \ Mi existe x Mi \ Mi+1 tal que y x. En este caso aadimos el rbol hoja n a cuya etiqueta es y como hijo de una de las hojas de T etiquetadas con x.

6.1. Pruebas de terminacin basadas en multiconjuntos o

135

De nuevo se verica que para cada ocurrencia de un elemento x en Mi+1 hay una hoja de T cuya etiqueta es x. Adems, como Mi+1 \ Mi = , al a menos se ha aadido un descendiente nuevo al rbol T. n a Finalizada la construccin del rbol T, se verica que en cada paso se ha o a aadido al menos un descendiente nuevo y, como la sucesin {Mi }i1 es innita, n o el rbol T es innito. Por otro lado, si T es un descendiente de T y T es hijo a de T , entonces T se ha aadido en alguno de los pasos de construccin de T de n o forma que e(T ) e(T ). Por el lema de Knig, T tiene una rama innita: {Ti }i0 , tal que T0 = T y o para todo i, Ti+1 es un hijo de Ti . De esta forma, la sucesin innita de elementos o de A: {e(Ti )}i1 , verica que e(Ti+1 ) e(Ti ), por la construccin de T, y esto o est en contradiccin con el hecho de que es noetheriana sobre A. Por tanto a o M es noetheriana sobre M(A).

Consideremos de nuevo el ejemplo de Smullyan sobre la bolsa llena de bolas etiquetadas con nmero enteros positivos. Supongamos que en cada paso se u toma de la bolsa una bola con etiqueta n y se reemplaza por tantas bolas como queramos etiquetadas con cualquier valor menor que n. El teorema anterior nos asegura que en algn momento la bolsa se queda vac u a. Veamos a continuacin como se formaliza el teorema anterior en ACL2. El o teorema trata sobre una relacin noetheriana cualquiera . En la seccin 2.2.2 o o hemos visto cmo se caracterizan este tipo de relaciones. De esta forma asumimos o en un encapsulado de ACL2 la existencia de una funcin binaria rel, que repreo senta la relacin noetheriana, un predicado mp, que caracteriza la pertenencia al o o o conjunto A y una funcin de inmersin en los ordinales fn. La unica propiedad que se exige a estas funciones es que rel represente una relacin de buena o fundamentacin en el conjunto caracterizado por mp con funcin de inmersin fn: o o o (defthm rel-es-bien-fundamentada-en-mp (and (implies (mp x) (e0-ordinalp (fn x))) (implies (and (mp x) (mp y) (rel x y)) (e0-ord-< (fn x) (fn y)))))
109

Con respecto a rel y mp consideramos las funciones mul-mp, 106 , que caracteriza la pertenencia a M(A), y mul-rel, 108 , que implementa la relacin o entre multiconjuntos inducida por rel. La demostracin del teorema consiste en o denir una funcin de inmersin mul-fn y establecer el siguiente evento: o o

136

Cap tulo 6. Extensiones de ACL2


110

(defthm mul-rel-es-bien-fundamentada-en-mul-mp (and (implies (mul-mp M) (e0-ordinalp (mul-fn M))) (implies (and (mul-mp M) (mul-mp N) (mul-rel N M)) (e0-ord-< (mul-fn N) (mul-fn M)))))

Puesto que la formulacin del resultado es distinta a la original, la demoso tracin tambin es diferente. Nuestra prueba se basa en el siguiente resultado o e de la teor de ordinales (vase [36]): dado un ordinal , el conjunto M() de a e los multiconjuntos nitos de elementos de (ordinales menores que ), ordenado mediante la relacin entre multiconjuntos inducida por el orden usual entre o o ordinales, es isomorfo al ordinal y el isomorsmo viene dado por la funcin H 1 n tal que H({1 , . . . , n }) = + . . . + . Este resultado se prueba usando la forma normal de Cantor y sus propiedades. El isomorsmo H sugiere la siguiente denicin de la funcin mul-fn: dado o o un multiconjunto de elementos que cumplen mp, se aplica fn a cada elemento para obtener un multiconjunto de ordinales. Luego se utiliza H para obtener un ordinal menor que 0 . Si los ordinales estn representados en notacin ACL2 (vase la a o e seccin 2.2.1), entonces la funcin H se puede denir fcilmente, siempre y cuando o o a la funcin fn nunca devuelva 0: basta con ordenar los ordinales del multiconjunto o y aadir 0 como cdr nal. Ntese que la restriccin sobre fn puede ser superada n o o u sin dicultad, deniendo fn1 igual a fn, excepto para los nmeros enteros, en cuyo caso se aade 1. De esta manera, fn1 siempre devuelve ordinales distintos n o o de cero para cualquier objeto que cumpla la propiedad mp y es montona si y slo si fn lo es. (defun mul-fn (M) (if (consp M) (insercion-ordenada (fn1 (car M)) (mul-fn (cdr M))) 0)) (defmacro fn1 (x) (suma-1-si-es-entero (fn ,x))) (defun suma-1-si-es-entero (x) (if (integerp x) (1+ x) x)) (defun insercion-ordenada (x M) (cond ((atom M) (cons x M)) ((not (e0-ord-< x (car M))) (cons x M)) (t (cons (car M) (insercion-ordenada x (cdr M))))))
111

6.1. Pruebas de terminacin basadas en multiconjuntos o

137

En estas condiciones, la primera parte del evento que asegura la buena fundamentacin de la relacin mul-rel, mostrado en 110 , es bastante fcil de deo o a mostrar: (implies (mul-mp M) (e0-ordinalp (mul-fn M))) Nos centraremos en la prueba de la otra parte de dicho evento: (implies (and (mul-mp M) (mul-mp N) (mul-rel N M)) (e0-ord-< (mul-fn N) (mul-fn M))))) La prueba se desarrolla por induccin en el nmero de elementos de N. Obsrveo u e se que M no puede ser vac y que si N es vac el resultado se cumple trivialmente. o o Por tanto, supongamos que M y N no son vac Sean u un elemento de M y v un eleos. mento de N tales que (fn1 u) y (fn1 v) son los mayores elementos (respecto del orden entre ordinales) de los multiconjuntos { {(fn1 x) : x es un elemento de M} } }, y{ {(fn1 y) : y es un elemento de N} respectivamente. Estos elementos se obtienen con la funcin fn1-maximo: o (defun fn1-maximo (M) (cond ((atom M) nil) ((atom (cdr M)) (car M)) (t (let ((max-cdr (fn1-maximo (cdr M)))) (if (e0-ord-< (fn1 max-cdr) (fn1 (car M))) (car M) max-cdr)))))
112

De esta forma u es (fn1-maximo M) y v es (fn1-maximo N). Veamos los distintos casos que se pueden dar en funcin de los valores (fn1 u) y (fn1 v): o o Si (fn1 v) es menor que (fn1 u) entonces, por denicin del orden entre los ordinales se tiene que (mul-fn N) es menor que (mul-fn M). Este hecho se formaliza con el siguiente evento: (defthm induccion-caso-1 (implies (and (not (atom N)) (not (atom M)) (mul-mp N) (mul-mp M) (mul-rel N M) (e0-ord-< (fn1 (fn1-maximo N)) (fn1 (fn1-maximo M)))) (e0-ord-< (mul-fn N) (mul-fn M))))
113

138

Cap tulo 6. Extensiones de ACL2

Si (fn1 u) es menor que (fn1 v) entonces, como (fn1 u) es el mayor ordinal de { {(fn1 x) : x es un elemento de M} v est en N\M y, por la denicin }, a o de mul-rel, existe z en M\N tal que (rel v z). Por tanto (fn1 v) es menor que (fn1 z). Luego (fn1 u) es menor que (fn1 z), lo que contradice el hecho de que u es el elemento de M tal que (fn1 u) es el mayor ordinal de { {(fn1 x) : x es un elemento de M} Este hecho se formaliza con el siguiente }. evento: (defthm induccion-caso-2 (implies (and (not (atom N)) (not (atom M)) (mul-mp N) (mul-mp M) (mul-rel N M)) (not (e0-ord-< (fn1 (fn1-maximo M)) (fn1 (fn1-maximo N))))))
114

a Si (fn1 u) es igual a (fn1 v) entonces v est en M, ya que en otro caso existir a un elemento z en M\N tal que (rel v z) y se tendr la misma contradiccin que a o en el caso anterior. En este caso consideramos M-aux y N-aux los resultados de o eliminar de M y N, respectivamente, una ocurrencia de v. Por la denicin de mul-rel se sigue vericando (mul-rel N-aux M-aux) y el nmero de elementos u o o de N-aux es menor que el de N. Luego, por hiptesis de induccin, se tiene que (mul-fn N-aux) es menor que (mul-fn M-aux). Finalmente, y gracias a las propiedades demostradas acerca de mul-fn y la funcin que elimina un elemento o de un multiconjunto, se obtiene que (mul-fn N) es menor que (mul-fn M). Este ultimo resultado se formaliza de la siguiente forma: (defthm induccion-caso-3 (Implies (and (not (atom N)) (not (atom M)) (mul-mp N) (mul-mp M) (equal (fn1 (fn1-maximo M)) (fn1 (fn1-maximo N))) (e0-ord-< (mul-fn (elimina-una (fn1-maximo N) N)) (mul-fn (elimina-una (fn1-maximo N) M))) (mul-rel N M)) (e0-ord-< (mul-fn N) (mul-fn M))))
115

Este esquema de induccin tan particular no es generado por el sistema a o menos que se le indique expresamente. La siguiente funcin recursiva servir o a para generar el esquema de induccin presentado: o

6.1. Pruebas de terminacin basadas en multiconjuntos o (defun induccion-mul-rel (N M) (cond ((or (atom N) (atom M)) t) (t (let* ((Max-M (fn1-maximo M)) (Max-N (fn1-maximo N)) (Fn1-Max-M (fn1 Max-M)) (Fn1-Max-N (fn1 Max-N))) (if (equal Fn1-Max-M Fn1-Max-N) (induccion-mul-rel (elimina-una Max-N N) (elimina-una Max-N M)) t)))))

139
116

Una vez denida la funcin que proporciona el esquema de induccin y deo o mostrados los distintos casos del mismo, se demuestra sin dicultad la segunda parte del evento rel-es-bien-fundamentada-en-mp.

6.1.2

El comando defmul

En la seccin anterior hemos formalizado y demostrado la buena fundamentao cin de la relacin en un marco genrico, ya que no se han asumido propiedades o o e particulares de las funciones rel, mp y fn, excepto la que asegura la buena fundamentacin de rel. Esto nos permite usar instancias funcionales del teorema o mul-rel-es-bien-fundamentada-en-mul-mp, para demostrar la buena fundamentacin de cualquier relacin entre multiconjuntos inducida por una relacin o o o bien fundamentada denida previamente en ACL2. A tal efecto, supongamos que tenemos previamente denida una relacin relx, o de la cual se sabe que cumple la propiedad de buena fundamentacin sobre un o o conjunto de objetos caracterizados por la propiedad mpx, con funcin de inmersin f nx. Es decir, se ha probado el siguiente teorema: o (defthm nombre (and (implies (mpx x) (e0-ordinalp (f nx x))) (implies (and (mpx x) (mpx y) (relx x y)) (e0-ord-< (f nx x) (f nx y))))) Para denir en la lgica de ACL2 la relacin entre multiconjuntos inducida o o por la relacin relx y probar su buena fundamentacin, hemos de establecer, en o o principio, los siguientes eventos en ACL2: Las deniciones que se necesitan para implementar la relacin entre o multiconjuntos inducida por relx: las funciones existe-relx-mayor, paratodo-existe-relx-mayor y mul-relx de manera totalmente anloga a a las dadas en 108 .

140

Cap tulo 6. Extensiones de ACL2

o o La denicin de la funcin que caracteriza los multiconjuntos, mul-mpx, de forma similar la mostrada en 106 . La denicin de la funcin de inmersin mul-f nx, similar a la presentada o o o en 111 . El teorema de buena fundamentacin para mul-relx, mul-mpx y mul-f nx. o Este teorema puede ser probado directamente usando una instancia funcional del teorema mul-rel-es-bien-fundamentada-en-mul-mp. La sustitucin funcional que hay que usar debe asignar a los s o mbolos x, y, rel, fn, mp, existe-rel-mayor, paratodo-existe-rel-mayor, mul-rel, mul-mp o y mul-fn los correspondientes a la nueva relacin denida: x, y, relx, f nx, mpx, existe-relx-mayor, paratodo-existe-relx-mayor, mul-relx, mul-mpx y mul-f nx, respectivamente. En lugar de tener que realizar todos los eventos anteriores, cada vez que se necesite denir la relacin entre multiconjuntos inducida por una relacin bien o o fundamentada, este proceso se puede automatizar. Hemos denido un comando llamado defmul, que nos proporciona una manera automtica de realizar esta a tarea. En este caso, para denir la relacin mul-relx, inducida por relx, y probar o su buena fundamentacin, basta con la siguiente llamada a defmul: o (defmul (relx nombre mpx f nx x y)) Esta llamada a defmul lleva a cabo todos los eventos anteriores. Estos eventos se completan con xito, sin que se requiera ayuda por parte del usuario. La e denicin de defmul se encuentra en el libro defmul.lisp, que debe ser incluido o por cualquier libro que use este comando.

6.1.3

Ejemplo

El siguiente ejemplo est inspirado en [76], donde Slind formaliza varios esquemas a de transformacin de programas utilizando el sistema HOL. Uno de sus ejemplos o es la transformacin de un esquema recursivo general sobre rboles binarios, a o a una forma iterativa. El ejemplo es original de Wand [84] y tambin ha sido e desarrollado en el sistema PVS por Shankar [73]. Denicin 6.7 Un rbol binario es un rbol hoja o un rbol que tiene unicao a a a mente dos hijos. Dado un rbol binario T que no sea una hoja, llamaremos hijo a izquierdo, y lo notaremos i(T), a su primer hijo e hijo derecho, y lo notaremos d(T), a su segundo hijo. Es habitual denir funciones sobre rboles binarios con el siguiente esquema a o recursivo: La funcin base comprueba si estamos en el caso base de la recursin. o

6.1. Pruebas de terminacin basadas en multiconjuntos o

141

En ese caso se utiliza la funcin f-base para obtener un valor. Si no estamos en o el caso base, se hacen llamadas recursivas sobre los hijos izquierdo y derecho (obtenidos respectivamente con las funciones i y d) y se combinan los resultados con o la funcin combina. La funcin f-recursiva representa este esquema recursivo: o (defun f-recursiva (TT) (declare (xargs :measure (medida TT) :well-founded-relation rel-bin)) (if (base TT) (f-base TT) (combina (f-recursiva (i TT)) (f-recursiva (d TT)))))
117

Para que el sistema admita esta funcin se proporciona una funcin de medida o o cuyo valor en los argumentos de las llamadas recursivas es menor, con respecto a una relacin bien fundamentada, que el valor en el argumento original. La o funcin de medida es medida y la relacin bien fundamentada rel-bin. Estas o o funciones han de vericar las siguientes propiedades: o 1. La funcin rel-bin es una relacin bien fundamentada en el conjunto cao racterizado por mp-bin con funcin de inmersin fn-bin: o o (defthm rel-bin-es-bien-fundamentada-en-mp-bin (and (implies (mp-bin x) (e0-ordinalp (fn-bin x))) (implies (and (mp-bin x) (mp-bin y) (rel-bin x y)) (e0-ord-< (fn-bin x) (fn-bin y)))))
118

2. El valor de la funcin medida est en el conjunto caracterizado por mp-bin: o a (defthm medida-es-mp-bin (mp-bin (medida TT)))
119

3. El valor de la funcin medida en los hijos izquierdo y derecho de un rbol o a a binario es menor, con respecto a rel-bin, que el valor en el rbol original. (defthm hijos-rel-bin (implies (not (base TT)) (and (rel-bin (medida (i TT)) (medida TT)) (rel-bin (medida (d TT)) (medida TT)))))
120

142

Cap tulo 6. Extensiones de ACL2

En estas condiciones se puede denir un esquema recursivo de cola o iterativo que, cuando la funcin combina es asociativa y tiene elemento neutro dado por o la funcin constante neutro, es equivalente al recursivo: o (defun f-iterativa (TT) (f-iterativa-aux (list TT) (neutro)))
121

(defun f-iterativa-aux (Lista-TT v) (declare (xargs :measure (medida-lista Lista-TT) :well-founded-relation mul-rel-bin)) (cond ((endp Lista-TT) v) ((base (car Lista-TT)) (f-iterativa-aux (cdr Lista-TT) (combina v (f-base (car Lista-TT))))) (t (f-iterativa-aux (list* (i (car Lista-TT)) (d (car Lista-TT)) (cdr Lista-TT)) v)))) La funcin f-iterativa hace una llamada a la funcin auxiliar o o f-iterativa-aux a la que se pasan como argumento la lista unitaria formada por el rbol binario para el se quiere realizar determinado clculo y el elemento neutro a a de la funcin combina. El primer argumento de la funcin f-iterativa-aux se o o interpreta como la lista de rboles binarios para los que todav no se ha realizado a a el clculo. El segundo argumento es un acumulador donde se almacena el valor a obtenido para los rboles a los que ya se ha realizado el clculo. Esta funcin a a o comprueba si el primer rbol de Lista-TT est en el caso base, en cuyo caso a a realiza una llamada recursiva sobre el resto de la lista lista-TT y el resultado de combinar el valor del acumulador con el valor obtenido para dicho rbol. Si el a primer rbol de Lista-TT no est en el caso base, se realiza una llamada recursiva a a sobre el resultado de reemplazar dicho rbol por sus hijos izquierdo y derecho, a sin modicar el acumulador. La terminacin de la funcin f-iterativa-aux no es trivial pues la longitud o o de su primer argumento aumenta en la segunda llamada recursiva. Si establecemos una analog con el ejemplo de Smullyan, los rboles binarios son las bolas a a de una bolsa, que es el primer argumento de f-iterativa-aux. En cada llamada recursiva se toma de la bolsa una bola, es decir un rbol binario, etiquetada con la a medida de dicho rbol (dada por la funcin medida) y, o se elimina (primera llaa o mada recursiva), o se reemplaza por las bolas que representan sus hijos (segunda llamada recursiva) etiquetadas con sus medidas correspondientes, que son menores que la de la bola eliminada, con respecto a una relacin bien fundamentada o (la dada por la funcin rel-bin). o

6.1. Pruebas de terminacin basadas en multiconjuntos o

143

Es decir, la terminacin de la funcin f-iterativa-aux se basa en que el o o multiconjunto de las medidas de los rboles de su primer argumento, decrece con a respecto a la relacin entre multiconjuntos inducida por rel-bin. Para construir o el multiconjunto de las medidas consideramos la funcin medida-lista: o (defun medida-lista (Lista-TT) (if (endp Lista-TT) nil (cons (medida (car Lista-TT)) (medida-lista (cdr Lista-TT)))))
122

La relacin entre multiconjuntos inducida por rel-bin, junto con el evento o que asegura que es una relacin bien fundamentada, se obtiene al evaluar la o siguiente expresin: o (defmul (REL-BIN REL-BIN-ES-BIEN-FUNDAMENTADA-EN-MP-BIN MP-BIN FN-BIN X Y)) En la denicin de la funcin f-iterativa-aux, 121 , se han indicado la o o medida de los argumentos que se ha de considerar para demostrar su terminacin, o (medida-lista Lista-TT) y la relacin bien fundamentada con respecto a la que o esta medida disminuye, mul-rel-bin. Esta ultima funcin es la que se obtiene o al evaluar la expresin anterior. o Finalmente, cuando la funcin combina es asociativa y el valor dado por la o funcin constante neutro es un elemento neutro de la misma, se puede demostrar o que las funciones f-recursiva y f-iterativa son equivalentes. (defthm f-recursiva-igual-f-iterativa (equal (f-iterativa TT) (f-recursiva TT))) (defthm combina-asociativa (equal (combina (combina v-1 v-2) v-3) (combina v-1 (combina v-2 v-3)))) (defthm combina-neutro (equal (combina (neutro) v) v)) Otros ejemplos del uso de la relacin entre multiconjuntos inducida por una o relacin dada se pueden encontrar en [67] y en [51]. o
123

144

Cap tulo 6. Extensiones de ACL2

6.2

Teor genricas as e

Como se ha visto en la seccin anterior, en ACL2 se pueden probar resultados o sobre funciones para las cuales unicamente se asumen determinadas propiedades. Estos resultados son generales en el sentido de que son ciertos para cualquier conjunto de funciones que cumpla las propiedades asumidas, y se pueden reutilizar mediante el proceso de instanciacin funcional. De esta forma se pueden estableo cer y utilizar resultados de segundo orden en ACL2. Sin embargo, el proceso de instanciacin funcional es tedioso cuando se trata de gran cantidad de eventos, o o hay que denir nuevas funciones a partir de aquellas para las que se asumen determinadas propiedades. En esta seccin denimos un conjunto de herramientas que facilitan la reutilio zacin de resultados de segundo orden en ACL2. De esta forma, dado un conjunto o de funciones que cumplan las condiciones de un resultado de segundo orden, estas herramientas construyen de forma automtica las funciones y teoremas necesarios a para demostrar la propiedad que establece dicho resultado. En la primera parte de esta seccin se describe el tipo de situacin en el que se pueden utilizar estas o o herramientas, utilizando como ejemplo el teorema de buena fundamentacin de o la relacin entre multiconjuntos inducida por una relacin bien fundamentada. o o En la segunda parte se describe cmo funcionan las herramientas de instanciacin o o genrica y en la tercera se proporciona un ejemplo de uso. e En esta memoria se ha utilizado las herramientas de instanciacin genrica o e para obtener versiones concretas de teoremas de segundo orden en las secciones 7.2, 7.3 y 9.3. Los eventos correspondientes a las herramientas de instanciacin o funcional se encuentran en el libro teorias-genericas.lisp y el ejemplo desarrollado al nal de esta seccin en el libro insercion-ordenada.lisp. o

6.2.1

Teor genricas en ACL2 as e

o Una teora en ACL2 es una lista de eventos de tipo denicin y teorema, admitidos por el sistema, tal y como podr aparecer en un libro cualquiera. Una teor an a genrica es una teor que depende de la existencia de un conjunto de funciones, e a a las que llamaremos funciones genricas, que verican ciertas propiedades. e Por ejemplo, en la seccin anterior se ha supuesto la existencia de tres funcioo nes: una relacin bien fundamentada rel, una funcin que caracteriza la perteo o nencia a un conjunto mp y una funcin de inmersin en los ordinales fn, vericando o o la siguiente propiedad: (defthm rel-es-bien-fundamentada-en-mp (and (implies (mp x) (e0-ordinalp (fn x))) (implies (and (mp x) (mp y) (rel x y)) (e0-ord-< (fn x) (fn y)))))
124

6.2. Teor genricas as e

145

A partir de estas funciones se han desarrollado las deniciones de las funciones mul-mp, existe-rel-mayor, paratodo-existe-rel-mayor, mul-rel y mul-fn, y se ha demostrado el siguiente teorema:
125

(defthm mul-rel-es-bien-fundamentada-en-mul-mp (and (implies (mul-mp M) (e0-ordinalp (mul-fn M))) (implies (and (mul-mp M) (mul-mp N) (mul-rel N M)) (e0-ord-< (mul-fn N) (mul-fn M)))))

En este caso, los eventos correspondientes a las deniciones de la funciones mul-mp, existe-rel-mayor, paratodo-existe-rel-mayor, mul-rel y mul-fn y el evento mul-rel-es-bien-fundamentada-en-mul-mp forman una teor gena e rica denida para las funciones rel, mp y fn. La caracter stica principal de las teor genricas es que formalizan resultados as e de segundo orden en ACL2. En el caso de las relaciones de multiconjuntos, la teor genrica formaliza el siguiente teorema: a e Teorema 6.8 Sea A un conjunto, : A A B un relacin binaria y f : o o A Ord una funcin, tales que para todo par de elementos u, v A se tiene u v = f (u) < f (v). Entonces existe una funcin f : M(A) Ord tal que o para todo par de multiconjuntos M, N M(A) se tiene N M M = f (N ) < f (M ). Para utilizar estos resultados de segundo orden, debemos proporcionar versiones concretas de las funciones para las que se dene la teor genrica, demosa e trando que tienen las mismas propiedades asumidas para ellas. Una vez hecho esto, se pueden construir las versiones concretas de los eventos que proporciona la teor genrica, sustituyendo en sus deniciones las funciones genricas por las a e e concretas. Para demostrar las versiones concretas de los teoremas que proporciona la teor genrica, se utiliza una instancia funcional en la que las funciones a e genricas son sustituidas por las concretas. e Esto es precisamente lo que hace, entre otras cosas, la macro defmul a partir o de versiones concretas de las funciones rel, mp y fn. Consideremos la relacin de o orden entre ordinales denida por la funcin e0-ord-<, la funcin e0-ordinalp o que caracteriza los ordinales de ACL2 y la funcin identidad id, como funcin de o o inmersin. Estas funciones verican la propiedad exigida para las funciones rel, o mp y fn:

146

Cap tulo 6. Extensiones de ACL2


126

(defthm e0-ord-<-es-bien-fundamentada-en-e0-ordinalp (and (implies (e0-ordinalp x) (e0-ordinalp (id x))) (implies (and (e0-ordinalp x) (e0-ordinalp y) (e0-ord-< x y)) (e0-ord-< (id x) (id y)))))

Por tanto, se pueden construir versiones concretas de las funciones que proporciona la teor genrica, sin ms que sustituir las funciones rel, mp y fn por a e a e0-ord-<, e0-ordinalp e id, respectivamente. Estas versiones concretas son: (defun mul-mp-ord (M) (if (atom M) (equal M nil) (and (e0-ordinalp (car M)) (mul-mp-ord (cdr M))))) (defun mul-rel-ord (N M) (let ((M-N (mul-diferencia M N)) (N-M (mul-diferencia N M))) (and (consp M-N) (paratodo-existe-rel-mayor-ord N-M M-N)))) (defun paratodo-existe-rel-mayor-ord (N M) (if (endp N) t (and (existe-rel-mayor-ord (car N) M) (paratodo-existe-rel-mayor-ord (cdr N) M)))) (defun existe-rel-mayor-ord (x M) (cond ((endp M) nil) ((e0-ord-< x (car M)) t) (t (existe-rel-mayor-ord x (cdr M))))) (defun mul-fn-ord (M) (if (consp M) (insercion-ordenada (fn1-ord (car M)) (mul-fn-ord (cdr M))) 0)) (defmacro fn1-ord (x) (suma-1-si-es-entero (id ,x)))
127

6.2. Teor genricas as e

147

Hemos indicado en negrita los usos de las funciones concretas que han sustituido a las generales. Obsrvese que, como estos eventos ya exist en el sistema, e an es necesario asignarles un nuevo nombre. En este caso les hemos aadido el sun jo -ord y hemos indicado con letra cursiva todos los usos de estos nuevos nombres. El teorema de buena fundamentacin para la funcin mul-rel-ord se obo o tiene como una instancia funcional del teorema de buena fundamentacin para o mul-rel:
128

(defthm mul-rel-ord-es-bien-fundamentada-en-mul-mp-ord (and (implies (mul-mp-ord x) (e0-ordinalp (mul-fn-ord x))) (implies (and (mul-mp-ord x) (mul-mp-ord y) (mul-rel-ord x y)) (e0-ord-< (mul-fn-ord x) (mul-fn-ord Y)))) :hints (("Goal" :by (:functional-instance mul-rel-es-bien-fundamentada-en-mul-mp (mul-mp mul-mp-ord) (exite-rel-mayor existe-rel-mayor-ord) (paratodo-existe-rel-mayor paratodo-existe-rel-mayor-ord) (mul-rel mul-rel-ord) (mul-fn mul-fn-ord) (rel e0-ord-<) (mp e0-ordinalp) (fn id)))))

Al conjunto de versiones concretas de los eventos proporcionados por una teor genrica lo denominamos instancia de la teor y al proceso por el que se a e a, han obtenido, instanciacin genrica. o e

6.2.2

Herramienta de instanciacin genrica o e

Para poder automatizar el proceso de instanciacin genrica, necesitamos dispoo e ner de todos los eventos de una teor genrica para poder construir las versiones a e concretas a partir de ellos. Para ello utilizamos una constante en la que se almacenan los eventos en el mismo orden en que son admitidos por el sistema. De esta forma, un desarrollo habitual de una teor genrica tendr el siguiente aspecto: a e a

148

Cap tulo 6. Extensiones de ACL2

(encapsulate (...) (propiedades de las funciones genricas) e ) (defun f1 (...) ...) (defthm thm1 ...) (defun f2 (...) ...) (defthm thm2 ...) (defthm thm3 ...) \ | | | | | | | /

Estos eventos dependen de las propiedades de las funciones genricas. e

(defconst *<teoria>* ((defun f1 (...) ...) (defthm thm1 ...) (defthm thm3 ...)))

\ | /

Eventos de la teor genrica a e

El primer evento es un encapsulado en el que se asume la existencia de las funciones genricas con determinadas propiedades. A continuacin se desarrollan e o los eventos que dependen de estas funciones genricas y sus propiedades. Finale mente utilizamos defconst para almacenar la secuencia de eventos que forman la teor genrica en una constante *<teoria>*. Una vez que se ha asignado un a e valor a una constante, ste no puede ser modicado. Las constantes en ACL2 son e meras abreviaturas de expresiones ms complejas, de esta forma, para cada teor a a genrica se ha de utilizar una constante distinta. Aqu <teoria> representa el e nombre unico con el que se denomina la teor a. Obsrvese que no todos los eventos que dependen de las propiedades de las fune ciones genricas aparecen en la teor genrica. Esto se debe a que es habitual en e a e ACL2 utilizar funciones y teoremas auxiliares que ayudan en la prueba de un teorema, pero que no sirven para nada ms. Este es el caso de la funcin maximo-fn1 a o y los eventos induccion-caso-1, induccion-caso-2 e induccion-caso-3 para el caso de las relaciones de multiconjuntos. Una vez construida la constante con la secuencia de eventos que hay que instanciar, para poder realizar el proceso de instanciacin funcional, necesitamos o un conjunto de funciones concretas que sustituyan a las funciones genricas para e las que se dene la teor Estas funciones, y su relacin con las genricas se a. o e proporciona a travs de una lista de asociacin. Por ejemplo la siguiente es una e o lista de asociacin que establece dicha relacin para las funciones genricas y o o e concretas del ejemplo de las relaciones de multiconjuntos:

6.2. Teor genricas as e ((rel e0-ord-<) (mp e0-ordinalp) (fn id))

149

Para instanciar una denicin de la teor genrica, sustituimos en la misma o a e todas las ocurrencias de las funciones genricas por las funciones concretas, segn e u la relacin dada por dicha lista de asociacin. Como hemos visto antes, es neceo o sario escoger un nuevo nombre para la instancia obtenida. El par formado por el nombre de la funcin genrica y el nuevo nombre escogido para la instancia pasan o e a formar parte de la lista de asociacin, para ser utilizados en la siguiente instano cia. En el ejemplo de las relaciones de multiconjuntos, al generar la instancia de la funcin mul-fn, la lista de asociacin se amplia dando lugar a la siguiente: o o ((mul-fn (rel (mp (fn mul-fn-ord) e0-ord-<) e0-ordinalp) id))

Para instanciar un teorema de la teor genrica, sustituimos en el mismo a e todas las ocurrencias de las funciones genricas por las funciones concretas, segn e u la relacin dada por la lista de asociacin. Al igual que para las deniciones, es o o necesario escoger un nuevo nombre para la instancia obtenida. Adems se incluye a un consejo para demostrar la versin concreta del teorema, como una instancia o funcional del teorema genrico en el que las funciones genricas se sustituyen por e e las concretas tal y como se indica en la lista de asociacin. o Este proceso es realizado por la macro definstancia-*<teoria>* (donde <teoria> es el nombre con el que se denomina a la teor genrica que se desea a e instanciar) cuyos argumentos son la lista de asociacin inicial, que relaciona las o funciones para las que se dene la teor genrica con las concretas, y una cadena a e que se utiliza como sujo para construir los nuevos nombres de los eventos instana ciados. Por ejemplo, si *multiconjuntos* es la constante que almacena la teor genrica de las relaciones de multiconjuntos, lo siguiente es una instancia de dicha e teor que construye la relacin entre multiconjuntos de ordinales inducida por a o e0-ord-<: (definstancia-*multiconjuntos* ((rel e0-ord-<) (mp e0-ordinalp) (fn id)) "-ord")

150

Cap tulo 6. Extensiones de ACL2

Debido a restricciones del sistema, no podemos utilizar como argumento la constante que almacena la teor genrica. As es necesario construir la macro a e , a e definstancia-*<teoria>* para cada teor genrica denida. Esto la hacemos con la macro construye-teoria-generica de la siguiente forma:

(construye-teoria-generica *<teoria>*)

Un ultimo paso en la automatizacin de este proceso consiste en la macro o define-teoria-generica, que se encarga de almacenar los eventos indicados con la palabra reservada exportar en la constante que representa la teor y a realiza la construccin de la macro definstancia-*<teoria>*: o

(define-teoria-generica *<teoria>* (encapsulate (...) (propiedades de las funciones genricas) e ) (exportar (defun f1 (...) ...)) (exportar (defthm thm1 ...)) (defun f2 (...) ...) (defthm thm2 ...) (exportar (defthm thm3 ...)) )

Esta ultima macro slo se puede utilizar cuando la teor genrica se desarrolla o a e en un unico libro. Cuando los eventos que forman la teor genrica se encuentran a e desarrollados en distintos libros, hay que crear expl citamente la constante que almacena la teor genrica y evaluar la macro construye-teoria-generica a e sobre ella.

6.2. Teor genricas as e

151

6.2.3

Ejemplo

Presentamos a continuacin un ejemplo de uso de la herramienta de instanciacin o o genrica. A partir de una relacin de orden total en un conjunto dado, denimos e o un procedimiento de ordenacin por insercin sobre listas de elementos de dicho o o conjunto. En el desarrollo genrico se demuestra que con dicho procedimiento se e obtienen listas ordenadas. Primero asumimos en un encapsulado la existencia de las funciones para las que se dene la teor genrica, junto con sus propiedades: a e
129

(encapsulate (((menor * *) => *) ((dominio *) => *)) (local (defun menor (x y) (declare (ignore x y)) t)) (local (defun dominio (x) (declare (ignore x)) t)) (defthm menor-es-transitivo (implies (and (dominio x) (dominio y) (dominio z) (menor x y) (menor y z)) (menor x z))) (defthm menor-es-total (implies (and (dominio x) (dominio y) (not (menor x y))) (menor y x))) )

Una vez hecho esto, establecemos el conjunto de resultados (deniciones y teoremas) que forma la teor genrica. En este caso denimos una funcin de ordea e o nacin por insercin y demostramos que devuelve listas ordenadas. Esta funcin o o o es ordena-insercion y para denirla utilizamos la funcin inserta-en-orden, o que aade un elemento a una lista ordenada, de forma que el resultado sea tamn bin ordenado. e

152

Cap tulo 6. Extensiones de ACL2


130

(defun ordena-insercion (x) (if (endp x) nil (inserta-en-orden (car x) (ordena-insercion (cdr x))))) (defun inserta-en-orden (e x) (if (or (endp x) (menor e (car x))) (cons e x) (cons (car x) (inserta-en-orden e (cdr x)))))

Para demostrar que la funcin ordena-insercion ordena listas de elementos o del conjunto de partida, denimos la funcin lista-en-dominio, que caracteriza o las listas de elementos de dicho conjunto, y lista-ordenada, que comprueba si todos los elementos de una lista estn ordenados: a (defun lista-en-dominio (x) (or (endp x) (and (dominio (car x)) (lista-en-dominio (cdr x))))) (defun lista-ordenada (x) (or (endp x) (endp (cdr x)) (and (menor (car x) (cadr x)) (lista-ordenada (cdr x))))) Antes de demostrar las propiedades de ordena-insercion probamos que la funcin inserta-en-orden se comporta adecuadamente con respecto a las funo ciones anteriores: lista-en-dominio y lista-ordenada: (defthm inserta-en-orden-preserva-el-dominio (implies (and (dominio e) (lista-en-dominio x)) (lista-en-dominio (inserta-en-orden e x)))) (defthm inserta-en-orden-es-ordenada (implies (and (lista-en-dominio x) (lista-ordenada x) (dominio e)) (lista-ordenada (inserta-en-orden e x))))
132 131

6.2. Teor genricas as e

153

Finalmente se demuestra que la funcin ordena-insercion devuelve una lista o ordenada:


133

(defthm ordena-insercion-preserva-el-dominio (implies (lista-en-dominio x) (lista-en-dominio (ordena-insercion x)))) (defthm ordena-insercion-es-ordenada (implies (lista-en-dominio x) (lista-ordenada (ordena-insercion x))))

A continuacin se dene la teor genrica *insercion-ordenada* para las o a e funciones dominio y menor. Las propiedades asumidas para estas funciones son las establecidas por los eventos menor-es-transitivo y menor-es-total en 129 . Los eventos que proporciona esta teor son las deniciones presentadas a en 130 y 131 y el teorema ordena-insercion-es-ordenada. Se asigna a la constante *insercion-ordenada* la lista de los eventos que se quieren instanciar y se evala la macro construye-teoria-generica sobre esta constante: u

(defconst *insercion-ordenada* ((defun ordena-insercion (x) ...) (defun inserta-en-orden (e x) ...) (defun lista-en-dominio (x) ...) (defun lista-ordenada (x) ...) (defthm ordena-insercion-es-ordenada ...)) ) (construye-teoria-generica *insercion-ordenada*)

Ahora disponemos de la macro definstancia-*insercion-ordenada* con la que podemos instanciar la teor genrica construida. A continuacin se muestra a e o un uso de esta macro, para construir un procedimiento de ordenacin por insercin o o para listas de nmeros enteros: u

154 (defun orden-enteros (x y) (<= x y))

Cap tulo 6. Extensiones de ACL2


134

(definstancia-*insercion-ordenada* ((dominio integerp) (menor orden-enteros)) "-enteros") Cuando esta herramienta sea utilizada en algn punto de esta memoria, omiu tiremos el proceso de creacin de la constante que almacena la teor genrica, o a e si bien se indicarn las funciones para las que se dene, sus propiedades asumia das y los eventos que proporciona. Otros ejemplos del uso de la herramienta de instanciacin genrica se pueden encontrar en [52]. o e

Sumario
En este cap tulo: Se ha probado formalmente que la relacin entre multiconjuntos inducida o por una relacin bien fundamentada es bien fundamentada. o El resultado anterior se ha demostrado de una manera general, lo que nos ha permitido denir un comando que genera de forma automtica la relaa cin bien fundamentada entre multiconjuntos a partir de una relacin bien o o fundamentada concreta. Se ha desarrollado el concepto de teor genrica, denida para un conjunto a e de funciones con determinadas propiedades, en la que se demuestran resultados de segundo orden sobre dichas funciones. Estos resultados pueden ser reutilizados para cualquier conjunto de funciones concretas cumpliendo las mismas propiedades que las funciones sobre las que se dene la teor a genrica. e Se ha desarrollado unas herramientas que facilitan la labor de reutilizar los resultados que proporcionan las teor genricas. as e

Cap tulo 7 Sistemas de transformacin o proposicionales


En los cap tulos 4 y 5 se han presentado dos mtodos para decidir la satisfacie bilidad de una frmula proposicional. En estos mtodos se construyen ciertas o e estructuras a partir de las frmulas, se dene la semntica de estas estructuras y o a se buscan asignaciones en las que tengan un valor distinguido. En este cap tulo presentamos un marco genrico en el que se pueden expresar como casos particue lares este tipo de procedimientos para decidir la satisfacibilidad de una frmula. o Este marco genrico es interesante por dos razones. Por un lado, el formalismo e terico abstrae determinadas propiedades de los distintos mtodos, a partir de las o e cuales todos ellos funcionan de la misma forma. Estas propiedades son la base para demostrar la correccin y completitud de los procedimientos de decisin o o de satisfacibilidad. Por otro lado, la formalizacin del marco genrico y el uso o e de las herramientas de instanciacin genrica nos permiten obtener de forma o e automtica funciones vericadas que implementan los procedimientos de decisin a o de satisfacibilidad. En la primera seccin se dene el marco genrico que se obtiene como resultado o e de abstraer ciertas propiedades en los mtodos para decidir la satisfacibilidad. e Este mrco generico se desarrolla tanto para la semntica clsica como para la a a a semntica de Kleene. En ambos casos se formaliza la abstraccin y se dene una a o teor genrica que, gracias a las herramientas de instanciacin funcional, permite a e o instanciar dicha abstraccin. o En la segunda y tercera seccin se presentan respectivamente el mtodo de los o e tableros semnticos y el de secuentes como casos particulares del marco genrico. a e En estas secciones se presentan los eventos necesarios para instanciar con xito e la teor asociada al marco genrico. a e 155

156

Cap tulo 7. Sistemas de transformacin proposicionales o

7.1

Un marco genrico para la decisin de e o satisfacibilidad

Analizando los mtodos basados en tableros semnticos y secuentes presentados e a en los cap tulos anteriores, se puede observar un comportamiento comn. Estos u mtodos no trabajan directamente con frmulas sino con unos objetos construie o dos a partir de ellas. Los objetos se modican repetidamente usando reglas de expansin que reducen su complejidad. Estas reglas preservan el signicado de o los objetos. Eventualmente, a partir de cierto tipo de objetos simples, se pueden obtener asignaciones que prueban la satisfacibilidad de la frmula original. A o estas asignaciones las llamaremos asignaciones distinguidas. Si no se encuentra ninguno de estos objetos simples entonces la frmula original es insatisfacible. o De esta forma, el mtodo de los tableros semnticos puede ser visto como e a la aplicacin de un conjunto de reglas de expansin actuando sobre las ramas o o de rboles etiquetados con frmulas. Estas ramas son los objetos sobre los que a o trabaja el mtodo. Las reglas son aplicadas hasta obtener una rama sin frmulas e o complementarias en la que todas las frmulas no literales hayan sido expandidas. o Para esta rama se puede construir fcilmente una asignacin distinguida, denida a o de forma que todos los literales positivos de la rama sean ciertos y todos los negativos falsos. Si no se obtiene dicha rama, entonces todas las ramas contendrn a frmulas complementarias. Esto indica que la frmula original es insatisfacible. o o En el mtodo basado en secuentes, los objetos sobre los que se trabaja son los e secuentes. Estos objetos son modicados de acuerdo con las reglas de expansin o hasta obtener un secuente atmico que no sea un axioma. A partir de este o secuente se puede construir fcilmente una asignacin distinguida, denida de a o forma que todos los tomos de la parte izquierda del secuente sean ciertos y los a de la parte derecha falsos. Esta asignacin distinguida hace falso el secuente o a partir del que se construye y, por las propiedades de las reglas de expansin, o tambin hace falso el secuente considerado inicialmente. Si este secuente inicial se e construye de forma que sea lgicamente equivalente a la negacin de una frmula, o o o estaremos demostrando que dicha frmula es satisfacible. o En esta seccin formalizamos un marco genrico que reeja el comportamiento o e comn de estos mtodos. Los eventos relacionados con la semntica clsica preu e a a sentados en esta seccin se encuentran en SAT-generico.lisp, y los relacionados o con la semntica de Kleene en SAT-generico-K.lisp. a

7.1.1

Un algoritmo genrico de decisin de e o satisfacibilidad: SATG

o Denicin 7.1 Un sistema de transformacin proposicional en (STP) o es una tripleta G = O, R, V , donde O, R y V son conjuntos tales que R O (O {t}) y V O V . Donde V = { : B} y O es el conjunto

7.1. Un marco genrico para la decisin de satisfacibilidad e o de las secuencias nitas de elementos de O.

157

Diremos que O es el conjunto de los objetos proposicionales (o simplemente objetos) y R el conjunto de las reglas de expansin. Utilizaremos la notacin o o O YG L para indicar que (O, L) es un elemento de R. Si (O, ) V diremos que es una asignacin distinguida de O y lo notaremos de la siguiente forma, o |=G O. Ntese que se permite la existencia de reglas de la forma O YG o y reglas de la forma O YG t. Las primeras son reglas que sirven para eliminar objetos a partir de los cuales es imposible obtener una asignacin distinguida. Las segundas o o sirven para indicar que a partir del objeto O se puede obtener una asignacin distinguida. Para el mtodo de los tableros semnticos presentado en el cap e a tulo 4 los objetos son las ramas, las asignaciones distinguidas de una rama son aquellas que la hacen cierta y las reglas de expansin se construyen a partir de las reglas de o expansin de tableros mostradas en la gura 4.1, junto con reglas que eliminan o ramas cerradas y reglas que indican que, a partir de ramas no cerradas con todas las frmulas no literales expandidas, se puede obtener un modelo. o Denicin 7.2 Dado un STP G = O, R, V : o 1. Una regla de computacin es una funcin r : O O {t} o o tal que r R. o o o 2. Una funcin de representacin es una funcin i : P() O. o 3. Una funcin de medida es una funcin : O Ord. o 4. Una funcin modelo es una funcin : Ot V , o o donde Ot = {O O : O YG t}. Una regla de computacin establece un criterio de utilizacin de las reglas de o o expansin. En el mtodo de los tableros semnticos el criterio utilizado elimina o e a primero las ramas cerradas, despus intenta aplicar las regla de expansin para las e o dobles negaciones, -frmulas y -frmulas, en este orden, y nalmente, detecta o o la existencia de ramas no cerradas con todas sus frmulas no literales expandidas. o Una funcin de representacin establece una relacin entre las frmulas y los o o o o objetos proposicionales, proporcionando as el objeto inicial para el que se va a buscar una asignacin distinguida. En el caso de los tableros semnticos, la o a funcin de representacin construye una lista unitaria a partir de una frmula o o o dada. La funcin de medida sirve para justicar la terminacin del procedimiento de o o bsqueda de una asignacin distinguida. La funcin modelo proporciona dicha u o o asignacin distinguida a partir de cierto tipo de objetos bsicos. En el mtodo o a e de los tableros semnticos, la funcin de medida es la medida uniforme de una a o

158

Cap tulo 7. Sistemas de transformacin proposicionales o

rama y la funcin modelo es la que construye una asignacin en la que todos los o o literales de una rama son ciertos. Denicin 7.3 Decimos que un STP es exitoso con respecto a una regla de o o computacin r, una funcin de representacin i, una funcin de medida y una o o o funcin modelo si se verican las siguientes propiedades: o P1 : Oi r(O) = (Oi ) < (O) P2 : F P() = ( |= F |=G i(F )) P3 : O O r(O) = t = ( |=G O Oi r(O), |=G Oi ) P4 : O O r(O) = t = (O) |=G O Ms adelante se denir el algoritmo SATG para comprobar la satisfacibilidad a a de una frmula proposicional y se demostrar que, para todo STP exitoso G, dicho o a algoritmo (basado en la regla de computacin y la funcin de representacin que o o o hacen que G sea exitoso) termina para cualquier frmula proposicional que reciba o como entrada y es correcto y completo. La formalizacin del algoritmo y el o establecimiento de sus propiedades se basan en que G es exitoso. Veamos como se formaliza este hecho. La propiedad de ser exitoso se basa en la existencia de cuatro funciones con determinadas propiedades. Para poder formalizar este tipo de situacin en ACL2 o utilizamos el mecanismo de encapsulado. De esta forma se introducen s mbolos de funcin para los cuales se asumen un conjunto de propiedades. Las funciones o y sus interpretaciones en la formalizacin son las siguientes: o (gen-objeto O) (gen-asignacion-distinguida sigma O) (gen-regla-computacion O) (gen-representacion F) (gen-medida O) (gen-modelo O) OO |=G O r(O) i(F ) (O) (O)

Algunas propiedades de estas funciones vienen dadas por sus dominios de denicin y sus valores. As se han de vericar: o o 1. r : O O {t}, cuya formalizacin es: (defthm member-gen-regla-computacion-es-gen-objeto (implies (and (gen-objeto O-1) (member-equal O-2 (gen-regla-computacion O-1))) (gen-objeto O-2)))
135

7.1. Un marco genrico para la decisin de satisfacibilidad e o 2. i : P() O, cuya formalizacin es: o

159

(defthm gen-representacion-es-gen-objeto (implies (es-proposicional F) (gen-objeto (gen-representacion F))))

136

o 3. : O Ord, cuya formalizacin es: (defthm gen-medida-es-e0-ordinalp (e0-ordinalp (gen-medida O)))


137

Obsrvese que en la tercera propiedad no se exige que el argumento de la e funcin gen-medida sea un elemento de O. La propiedad mostrada en 137 es o ms general y siempre se puede obtener sin ms que denir la funcin igual a a a o 0 para cualquier elemento que no se encuentre en O. Las propiedades P1 , P2 , P3 y P4 denen el concepto de STP exitoso. Su formalizacin es la siguiente: o (defthm P1 (implies (member-equal O-2 (gen-regla-computacion O-1)) (e0-ord-< (gen-medida O-2) (gen-medida O-1))))
138

Obsrvese que no se exige que el objeto O-1 sea un elemento de O. Esta e propiedad es ms general y siempre se puede obtener sin ms que denir la funcin a a o r igual a para cualquier elemento que no se encuentre en O. (defthm P2 (implies (es-proposicional F) (iff (gen-asignacion-distinguida sigma (gen-representacion F)) (modelo sigma F))))
139

Para poder expresar la propiedad Oi r(O), |=G Oi , denimos la funcin gen-asignacion-distinguida-lista, que comprueba si una asignacin es o o distinguida para alguno de los objetos de una lista:

160

Cap tulo 7. Sistemas de transformacin proposicionales o


140

(defthm P3 (implies (and (gen-objeto O) (not (equal (gen-regla-computacion O) t))) (iff (gen-asignacion-distinguida-lista sigma (gen-regla-computacion O)) (gen-asignacion-distinguida sigma O)))) (defun gen-asignacion-distinguida-lista (sigma lista-O) (cond ((endp lista-O) nil) (t (or (gen-asignacion-distinguida sigma (car lista-O)) (gen-asignacion-distinguida-lista sigma (cdr lista-O))))))

(defthm P4 (implies (and (gen-objeto O) (equal (gen-regla-computacion O) t)) (gen-asignacion-distinguida (gen-modelo O) O)))

141

Dado un STP G = O, R, V , una regla de computacin r y una funcin de o o representacin i, denimos el algoritmo SATG para demostrar la satisfacibilidad o de una frmula proposicional: o Algoritmo 7.4 (SATG ) El dato de entrada de este algoritmo es una frmula F , o y acta de la siguiente forma: u 1. Inicialmente se considera la lista de objetos i(F ) 2. Dada una lista de objetos O1 , . . . , On , se selecciona un elemento Oj (a) Si r(Oj ) = t, entonces el algoritmo termina y devuelve Oj . (b) Si r(Oj ) = O1 , . . . , Om , entonces el algoritmo vuelve al paso 2 con la lista O1 , . . . , Om , O1 , . . . , Oj1 , Oj+1 , . . . , On . 3. Si la lista de objetos se queda vac el algoritmo termina y devuelve f . a, La idea intuitiva es la siguiente: dada F , el algoritmo comienza con el objeto i(F ) y repetidamente aplica las reglas de R hasta que se obtiene t o no quedan ms objetos. La terminacin de este proceso est garantizada por una funcin a o a o de medida con respecto a la cual los objetos expandidos sean menores que los originales. Si el proceso termina al obtener t, entonces existe un objeto O tal que r(O) = t y, a partir de ste, se puede obtener una asignacin distinguida. e o

7.1. Un marco genrico para la decisin de satisfacibilidad e o

161

Esta asignacin es un modelo de la frmula original. Si el proceso termina al no o o quedar objetos, la frmula original es insatisfacible. o Ntese que en el punto 2 se escoge un elemento cualquiera Oj . Esta eleco cin incorpora cierta heur o stica al algoritmo. En la formalizacin se considera o la existencia de una funcin gen-seleccion que selecciona un elemento de una o lista. (defthm gen-seleccion-member (implies (consp lista-O) (member-equal (gen-seleccion lista-O) lista-O)))
142

Las funciones anteriores y sus propiedades son asumidas en un encapsulado. Una vez hecho esto, se dene la funcin SAT-generico que implementa el algoo ritmo SATG . Esta funcin se basa en OBJ-SAT-generico, que implementa los o puntos 2 y 3 de la descripcin del algoritmo. o (defun SAT-generico (F) (OBJ-SAT-generico (list (gen-representacion F))))
143

(defun OBJ-SAT-generico (lista-O) (declare (xargs :measure (gen-medida-lista lista-O) :well-founded-relation mul-e0-ord-<)) (if (endp lista-O) nil (let* ((O (gen-seleccion lista-O)) (resto (elimina-una (gen-seleccion lista-O) lista-O)) (expansion (gen-regla-computacion O))) (cond ((equal expansion t) (list O)) (t (OBJ-SAT-generico (append expansion resto))))))) Para que el sistema admita la funcin OBJ-SAT-generico es necesario que o se pueda demostrar su terminacin. Para ello hemos proporcionado una medida o de los argumentos, gen-medida-lista, denida como la extensin a listas de la o medida . La prueba de la terminacin se detalla en la siguiente seccin. o o La funcin OBJ-SAT-generico busca un objeto a partir del cul se pueda o a obtener una asignacin distinguida. Esta es la versin genrica de la funcin o o e o que implementa el algoritmo M ODR para el mtodo de los tableros semnticos e a y CON T RAM ODS para el mtodo basado en secuentes. De esta forma, si la e funcin de representacin verica la propiedad P2 , la funcin SAT-generico proo o o porciona informacin suciente para construir un modelo de una frmula satisfao o cible F . Para ello basta con evaluar la funcin modelo sobre el objeto devuelto o

162

Cap tulo 7. Sistemas de transformacin proposicionales o

por SATG , cuando ste es aplicado con xito sobre F . Notaremos M ODG a esta e e construccin, implementada por la funcin MOD-generico. o o (defun MOD-generico (F) (gen-modelo (car (SAT-generico F))))
144

7.1.2

Terminacin de SATG o

Para demostrar la terminacin del algoritmo SATG basta con demostrar que la o funcin OBJ-SAT-generico termina. El argumento de esta funcin es una lista o o de objetos proposicionales. Para demostrar su terminacin hemos considerado o una extensin de la medida a listas de objetos: o Denicin 7.5 Dada una funcin de medida : O Ord, la extensin de o o o a O es la funcin : O M(Ord) denida como sigue, ( O1 , . . . , On ) = o { {(O1 ), . . . , (On )} }. La funcin gen-medida-lista formaliza este concepto: o (defun gen-medida-lista (lista-O) (if (endp lista-O) nil (cons (gen-medida (car lista-O)) (gen-medida-lista (cdr lista-O)))))
145

Estas medidas se comparan con respecto a la extensin a multiconjuntos deo nida en 6.3 de la relacin de orden entre los ordinales. Notaremos <M a esta o o extensin. La funcin que la formaliza es mul-e0-ord-<. Su denicin y propieo o dades se obtienen al evaluar el siguiente evento: (defmul (E0-ORD-< NIL E0-ORDINALP E0-ORD-<-FN NIL NIL))
146

Teorema 7.6 Dados un STP G = O, R, V , una regla de computacin r, una o o funcin de representacin i y una funcin de medida vericando P1 , entonces o o el algoritmo SATG termina para cualquier frmula inicial. o Demostracin: o Para demostrar la terminacin de SATG , tendremos que probar que el punto o 2 es un bucle nito. Supongamos que O1 , . . . , On es la lista de objetos en dicho punto, Oj el objeto seleccionado y r(Oj ) = O1 , . . . , Om . Por la propiedad P1 se tiene que para todo k, (Ok ) < (Oj ). Por tanto se verica ( O1 , . . . , Om ) <M ( Oj ). Y, por la denicin de la extensin a o o

7.1. Un marco genrico para la decisin de satisfacibilidad e o

163

multiconjuntos dada en 6.3, se tiene que ( O1 , . . . , Om , O1 , . . . , Oj1 , Oj+1 , . . . , On ) <M ( O1 , . . . , On ) De esta forma, en cada iteracin, la medida de la lista considerada en el o punto 2 es menor, con respecto a <M , que en el paso anterior. Luego el punto 2 es un bucle nito, puesto que <M es una relacin bien fundamentada. o En la formalizacin este resultado queda como sigue: o (defthm OBJ-SAT-generico-terminacion (let* ((O (gen-seleccion lista-O)) (resto (remove-one (gen-seleccion lista-O) lista-O)) (expansion (gen-regla-computacion O))) (implies (and (consp lista-O) (not (equal expansion t))) (mul-e0-ord-< (gen-medida-lista (append expansion resto)) (gen-medida-lista lista-O)))))
147

7.1.3

Correccin y completitud de SATG o

Teorema 7.7 Sea G = O, R, V un STP exitoso con respecto a una regla de computacin r, una funcin de representacin i, una funcin de medida y una o o o o funcin modelo . Entonces: o 1. SATG es correcto: Dada una frmula F , si SATG (F ) = f , entonces F es o satisfacible. Adems, si SATG (F ) = O , entonces (O) |= F . a 2. SATG es completo: Dada una frmula F , si F es satisfacible entonces o SATG (F ) = f . Demostracin: o Antes de pasar a demostrar el teorema, obsrvese que si O1 , . . . , On es la e lista de objetos en el punto 2 del algoritmo, Oj es el elemento seleccionado y r(Oj ) = O1 , . . . , Om entonces, por la propiedad P3 , se tiene que para cualquier asignacin , existe O en O1 , . . . , On tal que |=G O si y slo si existe O en o o O1 , . . . , Om , O1 , . . . , Oj1 , Oj+1 , . . . , On tal que |=G O . SATG es correcto: Si SATG (F ) = O entonces r(O) = t y, por P4 , , o (O) |=G O. As por la observacin anterior, en toda lista considerada en el punto 2 existe O tal que (O) |=G O . Por lo tanto, esto tambin ocurre en la e lista inicial, i(F ) , es decir, (O) |=G i(F ), y, por P2 , (O) |= F . SATG es completo: Sea |= F , entonces por P2 , |=G i(F ). As por la , observacin indicada al principio de esta demostracin, en toda lista considerada o o en el punto 2 existe O tal que |=G O . Por lo tanto, la lista en el punto 2 no

164

Cap tulo 7. Sistemas de transformacin proposicionales o

puede quedarse vac y, como el algoritmo termina, en algn paso se considerar a u a un objeto O tal que r(O) = t. Por tanto, SATG (F ) = O = f . Los siguientes teoremas establecen los resultados de correccin y completitud o o o de SATG . La condicin acerca de la satisfacibilidad de la frmula F se establece como se indic en la seccin 3.2.4. o o (defthm correccion-SAT-generico (implies (and (es-proposicional F) (SAT-generico F)) (modelo (MOD-generico F) F))) (defthm completitud-SAT-generico (implies (and (es-proposicional F) (modelo sigma F)) (SAT-generico F))) Previamente se han demostrado propiedades de correccin y completitud sio milares acerca de OBJ-SAT-generico para una lista de objetos proposicionales lista-O: (defthm correccion-OBJ-SAT-generico (implies (and (gen-objeto-lista lista-O) (OBJ-SAT-generico lista-O)) (gen-asignacion-distinguida-lista (gen-modelo (car (OBJ-SAT-generico lista-O))) lista-O)))
149 148

(defthm completitud-OBJ-SAT-generico (implies (and (gen-objeto-lista lista-O) (gen-asignacion-distinguida-lista sigma lista-O)) (OBJ-SAT-generico lista-O))) En estos eventos la funcin gen-objeto-lista comprueba que su argumento o es una lista de elementos de O: (defun gen-objeto-lista (lista-O) (cond ((endp lista-O) t) (t (and (gen-objeto (car lista-O)) (gen-objeto-lista (cdr lista-O))))))
150

Los eventos mostrados en 148 se obtienen como una instancia de los presentados en 149 cuando el valor lista-O es (list (gen-representacion F)).

7.1. Un marco genrico para la decisin de satisfacibilidad e o

165

7.1.4

Un algoritmo genrico de decisin de validez: DATG e o

El algoritmo anterior se puede utilizar para decidir la validez de una frmula F , o para ello basta con comprobar que el algoritmo SATG devuelve f cuando se aplica a F . o o Algoritmo 7.8 (DATG ) Dada una frmula F P(), DATG (F ) es t si y slo si SATG (F ) es f . La funcin que implementa este algoritmo es la siguiente: o (defun DAT-generico (F) (not (SAT-generico (negacion F))))
151

Teorema 7.9 Sea G = O, R, V un STP exitoso con respecto a una regla de computacin r, una funcin de representacin i, una funcin de medida y o o o o una funcin modelo . Dada una frmula F P(), F es vlida si y slo si o o a o DATG (F ) = t. La prueba de este teorema se tiene gracias a las propiedades de correccin y o completitud de SATG . Los siguientes eventos establecen los resultados de correccin y completitud de la funcin que implementa el algoritmo DATG : o o (defthm correccion-DAT-generico (implies (and (es-proposicional F) (DAT-generico F)) (modelo sigma F))) (defthm completitud-DAT-generico (implies (and (es-proposicional F) (not (DAT-generico F))) (not (modelo (MOD-generico (negacion F)) F)))) La prueba de estos resultados se obtiene como una instancia de los resultados presentados en 149 cuando el valor de la variable lista-O es (list (gen-representacion (negacion F)).
152

7.1.5

La teor genrica *sat-generico* a e

Utilizando las herramientas de construccin de teor genricas presentadas en o as e la seccin 6.2, se ha denido la teor genrica *sat-generico* para facilitar la o a e reutilizacin de los resultados anteriores. Las funciones para las que se dene esta o teor son las siguientes: a

166

Cap tulo 7. Sistemas de transformacin proposicionales o gen-objeto gen-asignacion-distinguida gen-asignacion-distinguida-lista gen-regla-computacion gen-representacion gen-medida gen-modelo gen-seleccion

Las propiedades asumidas para estas funciones son las presentadas en 135 , 136 , 137 , 142 y los eventos correspondientes a P1 , P2 , P3 y P4 , mostrados en 138 , 139 , 140 y 141 respectivamente. Esta teor proporciona, entre otros eventos, las deniciones de las funciones a que implementan SATG , DATG y M ODG , el teorema de terminacin de SATG o mostrado en 147 y los resultados de correccin y completitud mostrados en 149 , o 148 y 152 . Para utilizar esta teor bastar con proporcionar versiones concretas de las a a funciones para las que est denida y demostrar que cumplen las propiedades a asumidas en la misma. Una vez hecho esto se puede utilizar la herramienta de instanciacin genrica presentada en la seccin 6.2, para obtener algoritmos verio e o cados para decidir la satisfacibilidad y la validez de una frmula proposicional. o

7.1.6

Sistemas de transformacin proposicionales en K o

Un desarrollo similar al presentado en las secciones anteriores se puede realizar en el contexto de la semntica de Kleene, basta con reconsiderar los conceptos a relacionados con la semntica. El primero de estos conceptos es el de sistema de a transformacin proposicional: o o Denicin 7.10 Un K-sistema de transformacin proposicional en (Ko STP) es una tripleta G = O, R, V , donde O, R y V son conjuntos tales que R O (O {t}) y V O K . Donde K = { : K}. Los elementos de un K-STP se interpretan de igual forma que en el caso clsico, la unica diferencia es que los elementos de V son pares formados por a objetos proposicionales y K-asignaciones. Otro concepto a reconsiderar es el de funcin modelo: o Denicin 7.11 Dado un K-STP G = O, R, V , una funcin K-modelo es una o o funcin : Ot K , donde Ot = {O O : O YG t}. o Finalmente denimos el concepto de K-STP exitoso, basta con reformular la propiedad P2 con respecto al concepto de modelo en K.

7.1. Un marco genrico para la decisin de satisfacibilidad e o

167

Denicin 7.12 Decimos que un K-STP es exitoso con respecto a una regla de o computacin r, una funcin de representacin i, una funcin de medida y una o o o o funcin K-modelo si se verican las propiedades P1 , P3 , P4 y o P2 : F P() = ( |=K F |=G i(F )) La formalizacin de la propiedad P2 es la siguiente: o (defthm P2-K (implies (es-proposicional F) (iff (gen-asignacion-distinguida sigma (gen-representacion F)) (modelo-K sigma F))))
153

a Los procedimientos SATG , M ODG y DATG se denen en la semntica de Kleene de igual forma que en la semntica clsica, por tanto, consideramos las a a mismas funciones para implementarlos. Esta funciones se han denido en 143 , 144 y 151 . La prueba de la terminacin de OBJ-SAT-generico es independiente o de la semntica considerada. a Las propiedades de correccin y completitud en K de los algoritmos SATG o y DATG se formalizan con respecto al concepto de modelo en K, siguiendo las indicaciones dadas en la seccin 3.3.4. Los eventos correspondientes son los sio guientes: (defthm correccion-SAT-generico (implies (and (es-proposicional F) (SAT-generico F)) (modelo-K (MOD-generico F) F))) (defthm completitud-SAT-generico (implies (and (es-proposicional F) (modelo-K sigma F)) (SAT-generico F))) (defthm correccion-DAT-generico (implies (and (es-proposicional F) (DAT-generico F) (valor-K F sigma)) (modelo-K sigma F))) (defthm completitud-DAT-generico (implies (and (es-proposicional F) (not (DAT-generico F))) (no-modelo-K (MOD-generico (negacion F)) F)))
154

168

Cap tulo 7. Sistemas de transformacin proposicionales o

Todos estos resultados, junto con una teor genrica que facilita su reutilizaa e cin, se encuentran en el libro SAT-generico-K.lisp. o

7.2

Un STP exitoso basado en tableros semnticos a

El algoritmo basado en tableros semnticos descrito en el cap a tulo 4 se puede interpretar como una versin particular del algoritmo SATG . Los objetos propoo sicionales son las ramas de los tableros semnticos. Las asignaciones distinguidas a de una rama son aquellas que son modelo de dicha rama. El objeto inicial es una rama formada unicamente por la frmula cuya satisfacibilidad se quiere compro o bar. Estas ramas son expandidas de acuerdo a las reglas de la gura 4.1 para obtener nuevas ramas. Las ramas cerradas no son escogidas para expandir pues no poseen modelos. Esto se corresponde con una regla de expansin que elimina o las ramas cerradas, es decir, cuya parte derecha es . Si se encuentra una rama no cerrada con todas sus frmulas no literales expandidas, el algoritmo termina y o devuelve dicha rama. Esto se corresponde con una regla de expansin que indica o que a partir de dicha rama se puede obtener un modelo, es decir, cuya parte a derecha es t. Si todas las ramas estn cerradas el algoritmo termina y devuelve f . Esto se corresponde con el hecho de que no queden ramas por procesar, ya que las ramas cerradas son eliminadas. En esta seccin desarrollamos un sistema de transformacin proposicional bao o sado en esta descripcin. Primero describimos formalmente este sistema junto con o una regla de computacin, una funcin de representacin, una funcin de medida o o o o y una funcin modelo adecuadas para demostrar que es exitoso. A continuacin o o presentamos su formalizacin, relacionndola con la desarrollada en el cap o a tulo 4. Finalmente comentamos cmo se hace este mismo proceso en la semntica o a de Kleene. Los eventos relacionados con la semntica clsica presentados en esa a ta seccin se encuentran en el libro SAT-tableros.lisp, los relacionados con la o semntica de Kleene se encuentran en el libro SAT-tableros-K.lisp. a

7.2.1

Descripcin del STP exitoso T o

Consideramos el siguiente sistema de transformacin proposicional basado en el o mtodo de los tableros semnticos: e a a Denicin 7.13 T = OT , RT , VT es el STP basado en tableros semnticos en o el que OT es el conjunto de listas nitas de frmulas P() , representando las o ramas de los tableros, VT es el conjunto de pares (, ) tales que es modelo de la rama , y RT es el conjunto de reglas de expansin representado por el o siguiente conjunto de esquemas de regla:

7.2. Un STP exitoso basado en tableros semnticos a RT 1 RT 2 RT 3 RT 4 RT 5 : 1 , G, 2 , G, 3 YT : 1 , G, 2 YT 1 , G, 2 : 1 , , 2 YT 1 , 1 , 2 , 2 : 1 , , 2 YT 1 , 1 , 2 , 1 , 2 , 2 : YT t si no contiene frmulas no literales o ni pares de frmulas complementarias o

169

donde , 1 , 2 y 3 son listas nitas de frmulas. o Utilizando el STP anterior, junto con una funcin de representacin iT y una o o regla de computacin rT adecuadas, podemos expresar el algoritmo SATT como o a un caso particular del algoritmo SATG . Adems, para garantizar las propiedades de terminacin, correccin y completitud, tenemos que proporcionar una funcin o o o o de medida T y una funcin modelo T , de forma que T sea exitoso con respecto a rT , iT , T y T . Denicin 7.14 Para el STP T denimos: o 1. La funcin de representacin iT tal que para toda F P(), iT (F ) = F . o o u 2. La regla de computacin rT que acta de la siguiente forma. Dada una o lista de frmulas , si es una rama cerrada, se le aplica una regla del tipo o RT 1 . En otro caso se selecciona una frmula F no literal en . Si F es una o doble negacin, -frmula o -frmula, se aplica a una regla del tipo RT 2 , o o o RT 3 o RT 4 , segn el caso, descomponiendo F . Si no contiene frmulas u o no literales, se aplica a una regla del tipo RT 5 . 3. La funcin de medida T , que es la medida uniforme de una lista de o frmulas, u+ . As para toda lista de frmulas se tiene: T () = u+ (). o , o 4. La funcin modelo T tal que, para toda lista de frmulas , T () es la o o o asignacin denida de forma que T () |= p si y slo si p es un literal o positivo que aparece en . Teorema 7.15 El STP T es exitoso con respecto a la regla de computacin rT , o o la funcin de representacin iT , la funcin de medida T y la funcin modelo T . o o o Demostracin: o Para demostrar el teorema tendremos que probar las propiedades P1 , P2 , P3 y P4 para las funciones rT , iT , T y T . P1 : Dada i rT (), entonces i es una rama obtenida al aplicar una regla de expansin de tableros a , luego por el teorema 4.18 se verica que T (i ) = o + u (i ) < u+ () = T (). o u P2 : Dada la frmula F , |=T F = iT (F ) si y slo si es modelo de algn o elemento de F , es decir, si y slo si es modelo de F . o

170

Cap tulo 7. Sistemas de transformacin proposicionales o

P3 : Dada la rama tal que rT () = t, entonces es una rama cerrada, en cuyo o caso rT () = , o tiene alguna frmula no literal, en cuyo caso rT () es la lista de las ramas obtenidas al aplicar una regla de expansin de tableros a . o a Si es una rama cerrada, entonces |=T por el teorema 4.14 y adems no existe ninguna rama en rT (). Por tanto se tiene la equivalencia |=T i rT (), |=T i Si tiene alguna frmula no literal, por el teorema 4.11 se tiene que una o o asignacin es modelo de ( |=T ) si y slo si es modelo de alguna de o las ramas que se obtienen al aplicar a una regla de expansin de tableros o (i rT (), |=T i ). P4 : Dada la rama tal que rT () = t, entonces es una rama no cerrada con todas sus frmulas no literales expandidas y, por el teorema 4.15, la asignacin o o denida de forma que (p) = si y slo si p es un literal positivo que aparece o en , es un modelo de . Esta asignacin es T (), por tanto T () |=T o

7.2.2

Formalizacin de T o

Para formalizar el conjunto de objetos proposicionales en el que se basa T , tenemos que denir una funcin que caracterice dichos objetos. En la descripcin o o de T se dene el conjunto OT como el formado por las listas nitas de frmulas. o De esta forma, para caracterizar la pertenencia a dicho conjunto, basta con comprobar que todos los elementos de una lista son frmulas. En 54 se deni la o o o funcin es-rama-tablero que realiza dicha comprobacin. Para mantener la coo rrespondencia con los nombres de las funciones utilizadas en la formalizacin del o marco genrico, llamamos a esta funcin tab-objeto: e o (defun tab-objeto (rama) (or (endp rama) (and (es-proposicional (car rama)) (tab-objeto (cdr rama)))))
155

Las asignaciones distinguidas de una rama son los modelos de dicha rama. En 55 se deni la funcin modelo-rama que comprueba si una asignacin es o o o modelo de una rama. De esta forma, la propiedad |=T O se caracteriza utilizando dicha funcin. Como antes, para mantener la correspondencia con la o formalizacin del marco genrico, la llamamos tab-asignacion-distinguida: o e

7.2. Un STP exitoso basado en tableros semnticos a

171
156

(defun tab-asignacion-distinguida (sigma rama) (cond ((endp rama) t) (t (and (modelo sigma (car rama)) (tab-asignacion-distinguida sigma (cdr rama))))))

a La regla de computacin rT no est completamente determinada puesto que, o si la rama a la que hay que aplicarla no est cerrada, se ha de escoger una a frmula de dicha rama y no se indica el criterio que se utiliza para hacer esto. o De hecho, esto tambin ocurr en el procedimiento de bsqueda de un modelo e a u de una rama. Como entonces, esta indeterminacin se resuelve considerando una o funcin seleccion que escoge una frmula no literal de una rama, si es que existe. o o La existencia de esta funcin se asume en un encapsulado ACL2, caracterizndola o a por las propiedades formalizadas en 60 . La funcin que implementa la regla de computacin es la siguiente: o o (defun tab-regla-computacion (rama) (if (rama-cerrada rama) nil (let ((F (seleccion rama))) (cond ((doble-negacion F) (list (a~ade-elemento (componente-neg-neg F) n (elimina-una F rama)))) ((alfa-formula F) (list (a~ade-elemento n (componente-1 F) (a~ade-elemento (componente-2 F) n (elimina-una F rama))))) ((beta-formula F) (list (a~ade-elemento (componente-1 F) n (elimina-una F rama)) (a~ade-elemento (componente-2 F) n (elimina-una F rama)))) (t t)))))
157

En esta denicin hemos utilizado la funcin rama-cerrada, denida en 56 , o o que comprueba si una lista de frmulas tiene literales complementarios, as como o las funciones que caracterizan las dobles negaciones, -frmulas y -frmulas, o o denidas en 47 y 45 y las que calculan sus componentes, denidas en 47 y 46 . Las funciones elimina-una y a~ade-elemento son las denidas en 58 , la n primera elimina un elemento de una lista y la segunda aade un elemento a una n lista, si es que no estaba ya en ella. Obsrvese que el resultado devuelto por la funcin anterior es t o una lista de e o ramas. La formalizacin de esta propiedad es la siguiente: o

172

Cap tulo 7. Sistemas de transformacin proposicionales o


158

(defthm member-tab-regla-computacion-tab-objeto (implies (and (tab-objeto rama-1) (member-equal rama-2 (tab-regla-computacion rama-1))) (tab-objeto rama-2))

La funcin de representacin iT es bastante simple, consiste en construir una o o lista formada por una unica frmula. La funcin tab-representacion realiza o o esta construccin. Fcilmente se demuestra que el resultado que devuelve es un o a elemento de OT . (defun tab-representacion (F) (list F)) (defthm tab-representacion-es-tab-objeto (implies (es-proposicional F) (tab-objeto (tab-representacion F)))) La funcin de medida T es la medida uniforme de una lista de frmulas. o o Esta funcin est implementada por medida-uniforme-rama, denida en 62 . o a Para mantener la correspondencia con la formalizacin del marco genrico, la o e llamaremos tab-medida. El resultado devuelto por esta funcin es un ordinal. o (defun tab-medida (rama) (cond ((endp rama) 0) (t (+ (medida-uniforme (car rama)) (tab-medida (cdr rama)))))) (defthm tab-medida-es-e0-ordinalp (e0-ordinalp (tab-medida rama))) La funcin modelo T construye una asignacin en la que todos los literales o o positivos de una rama son ciertos. Esta construccin es la que realiza la funcin o o genera-modelo-literales, denida en 63 . Como en casos anteriores utilizaremos el nombre tab-modelo para mantener la correspondencia con los nombres de funciones utilizados en la formalizacin del marco genrico. o e (defun tab-modelo (lista-L) (cond ((endp lista-L) nil) ((es-simbolo-proposicional (car lista-L)) (asume-valor (car lista-L) *V* (tab-modelo (cdr lista-L)))) (t (tab-modelo (cdr lista-L)))))
161 160 159

7.2. Un STP exitoso basado en tableros semnticos a

173

Veamos a continuacin la formalizacin de las propiedades que garantizan que o o T es un STP exitoso. La propiedad P1 est formalizada por el evento P1-tab y a se demuestra fcilmente a partir de los eventos presentados en 53 y al hecho de a que para toda -frmula F , u(1 ) + u(2 ) < u(). o (defthm P1-tab (implies (member-equal rama-2 (tab-regla-computacion rama-1)) (e0-ord-< (tab-medida rama-2) (tab-medida rama-1))))
162

La prueba de la propiedad P2 se obtiene inmediatamente a partir de las deniciones de modelo de una rama y la funcin de representacin. Su formalizacin o o o es la siguiente: (defthm P2-tab (implies (es-proposicional F) (iff (tab-asignacion-distinguida sigma (tab-representacion F)) (modelo sigma F))))
163

Para formalizar la propiedad P3 necesitamos denir una funcin que comprueo be si una asignacin es modelo de alguna de las ramas de una lista. Esta funcin o o es tab-asignacion-distinguida-lista. La formalizacin de esta funcin y de o o la propiedad P3 es la siguiente: (defthm P3-tab (implies (and (tab-objeto rama) (not (equal (tab-regla-computacion rama) t))) (iff (tab-asignacion-distinguida-lista sigma (tab-regla-computacion rama)) (tab-asignacion-distinguida sigma rama)))) (defun tab-asignacion-distinguida-lista (sigma tablero) (cond ((atom tablero) nil) (t (or (tab-asignacion-distinguida sigma (car tablero)) (tab-asignacion-distinguida-lista sigma (cdr tablero))))))
164

174

Cap tulo 7. Sistemas de transformacin proposicionales o

La prueba del evento P3-tab se obtiene a partir de resultados similares a los presentados en 59 , en los que se utiliza la funcin tab-asignacion-distinguida o en lugar de modelo-rama. Finalmente la propiedad P4 se demuestra fcilmente a partir de la denicin a o de tab-modelo y el hecho de que la rama sobre la que se evala slo contiene u o literales y no tiene pares de frmulas complementarias. Su formalizacin es la o o siguiente:

(defthm P4-tab (implies (and (tab-objeto rama) (equal (tab-regla-computacion rama) t)) (tab-asignacion-distinguida (tab-modelo rama) rama))

165

El siguiente evento realiza una instancia de la teor genrica *sat-generico* a e utilizando las funciones que describen el STP exitoso T . Para seleccionar la rama a procesar en cada paso hemos utilizado la funcin car, que devuelve el primer o elemento de una lista.

(definstancia-*sat-generico* ((gen-objeto tab-objeto) (gen-representacion tab-representacion) (gen-asignacion-distinguida tab-asignacion-distinguida) (gen-asignacion-distinguida-lista tab-asignacion-distinguida-lista) (gen-regla-computacion tab-regla-computacion) (gen-seleccion car) (gen-medida tab-medida) (gen-modelo tab-modelo)) "-tableros")

166

Una vez evaluado este evento, se obtiene automticamente la funcin que a o e implementa el algoritmo SATT como una instancia de SATG . Tambin se obtienen versiones basadas en tableros del algoritmo de decisin de validez DATG y o del procedimiento de construccin de modelos M ODG . Estas funciones son las o siguientes:

7.2. Un STP exitoso basado en tableros semnticos a (DEFUN SAT-GENERICO-TABLEROS (F) (OBJ-SAT-GENERICO-TABLEROS (LIST (TAB-REPRESENTACION F)))) (DEFUN MOD-GENERICO-TABLEROS (F) (TAB-MODELO (CAR (SAT-GENERICO-TABLEROS F)))) (DEFUN DAT-GENERICO-TABLEROS (F) (NOT (SAT-GENERICO-TABLEROS (NEGACION F)))) (DEFUN OBJ-SAT-GENERICO-TABLEROS (LISTA-O) (IF (ENDP LISTA-O) NIL (LET* ((O (CAR LISTA-O)) (RESTO (ELIMINA-UNA (CAR LISTA-O) LISTA-O)) (EXPANSION (TAB-REGLA-COMPUTACION O))) (COND ((EQUAL EXPANSION T) (LIST O)) (T (OBJ-SAT-GENERICO-TABLEROS (APPEND EXPANSION RESTO)))))))

175

Adems de generar automticamente estas funciones, al instanciar la teor a a a genrica *sat-generico*, tambin se obtienen de forma automtica los eventos e e a que establecen sus propiedades de correccin y completitud: o (DEFTHM CORRECCION-SAT-GENERICO-TABLEROS (IMPLIES (AND (ES-PROPOSICIONAL F) (SAT-GENERICO-TABLEROS F)) (MODELO (MOD-GENERICO-TABLEROS F) F))) (DEFTHM COMPLETITUD-SAT-GENERICO-TABLEROS (IMPLIES (AND (ES-PROPOSICIONAL F) (MODELO SIGMA F)) (SAT-GENERICO-TABLEROS F))) (DEFTHM CORRECCION-DAT-GENERICO-TABLEROS (IMPLIES (AND (ES-PROPOSICIONAL F) (DAT-GENERICO-TABLEROS F)) (MODELO SIGMA F))) (DEFTHM COMPLETITUD-DAT-GENERICO-TABLEROS (IMPLIES (AND (ES-PROPOSICIONAL F) (NOT (DAT-GENERICO-TABLEROS F))) (NOT (MODELO (MOD-GENERICO-TABLEROS (NEGACION F)) F))))

176

Cap tulo 7. Sistemas de transformacin proposicionales o

7.2.3

Un K-STP exitoso basado en tableros semnticos a

A partir del mtodo de los tableros semnticos tambin se puede construir un Ke a e STP exitoso, de forma que los procedimientos de decisin de validez y satisfacibio lidad presentados en la seccin 4.2.7, se puedan obtener como casos particulares o de los procedimientos genricos. e El K-STP exitoso basado en tableros semnticos se diferencia del desarrollado a para la semntica clsica en el concepto de K-asignacin distinguida y en la a a o funcin K-modelo. Las K-asignaciones distinguidas se denen con respecto al o o concepto de modelo en K. La funcin que las caracteriza es modelo-rama-K, o presentada en 72 . La funcin K-modelo tiene que construir una K-asignacin en o la que todos los literales de una rama sean ciertos, esta construccin se obtiene o con la funcin genera-modelo-literales-K, presentada en 74 . o La prueba de la propiedad P1 es la misma que para el caso de la semntica a clsica. La propiedad P2 es trivial a partir del concepto de modelo en K y a la funcin de representacin. Las reglas de expansin preservan los K-modelos o o o como se expuso en la seccin 4.2.7, de aqu que se verique la propiedad P3 . o Finalmente, la propiedad P4 se cumple gracias a que la funcin K-modelo no deja o indeterminado ningn literal de la rama a la que se aplica. u

7.3

Un STP exitoso basado en secuentes

El procedimiento para decidir la satisfacibilidad basado en secuentes descrito en el cap tulo 5, tambin se puede interpretar como una versin particular del e o algoritmo SATG . En esta ocasin, los objetos proposicionales son los secuentes. o El objeto inicial asociado a una frmula F es el secuente F . Se verica que o o una asignacin es modelo de F si y slo si es contramodelo de F , de aqu o que las asignaciones distinguidas de un secuente sean las que lo hacen falso. Los secuentes son modicados de acuerdo con las reglas de expansin mostradas en o la denicin 5.5. Los secuentes axioma no son escogidos para expandir pues o no poseen contramodelos. Esto se corresponde con una regla de expansin que o elimina dichos secuentes, es decir, cuya parte derecha es . Si se encuentra un secuente atmico que no sea axioma, el algoritmo termina y devuelve dicho o secuente. Esto se corresponde con una regla de expansin que indica que a partir o de dicho secuente se puede obtener un contramodelo, es decir, una regla cuya parte derecha es t. Si no se obtiene ninguno de estos secuentes, el algoritmo termina y devuelve f . En esta seccin desarrollamos un sistema de transformacin proposicional bao o sado en esta descripcin. Primero describimos formalmente este sistema junto con o una regla de computacin, una funcin de representacin, una funcin de medida o o o o y una funcin modelo adecuadas para demostrar que es exitoso. A continuacin o o presentamos su formalizacin, relacionndola con la desarrollada en el cap o a tulo 5. Finalmente comentamos cmo se hace este mismo proceso en la semntica de o a

7.3. Un STP exitoso basado en secuentes

177

Kleene. Los eventos relacionados con la semntica clsica presentados en esta a a seccin se encuentran en el libro SAT-secuentes.lisp, los relacionados con la o semntica de Kleene se encuentran en el libro SAT-secuentes-K.lisp. a

7.3.1

Descripcin del STP exitoso S o

Consideramos el siguiente sistema de transformacin proposicional basado en el o clculo de secuentes: a Denicin 7.16 S = OS , RS , VS es el STP basado en secuentes en el que o OS es el conjunto de los secuentes, VS es el conjunto de pares (S, ) tales que o es contramodelo del secuente S, y RS es el conjunto de reglas de expansin representado por el siguiente conjunto de esquemas de regla: 1 , F, 2 1 , F, 2 YS RS 1 : RS 2 : 1 , F, 2 YS 1 , 2 F, RS 3 : 1 , F G, 2 YS F, G, 1 , 2 RS 4 : 1 , F G, 2 YS F, 1 , 2 , G, 1 , 2 RS 5 : 1 , F G, 2 YS 1 , 2 F, , G, 1 , 2 RS 6 : 1 , F G, 2 YS F, G, 1 , 2 , 1 , 2 F, G, RS 7 : 1 , F, 2 YS F, 1 , 2 RS 8 : 1 , F G, 2 YS F, 1 , 2 , G, 1 , 2 RS 9 : 1 , F G, 2 YS F, G, 1 , 2 RS 10 : 1 , F G, 2 YS F, G, 1 , 2 RS 11 : 1 , F G, 2 YS F, G, 1 , 2 , G, F, 1 , 2 o RS 12 : YS t si es un secuente atmico que no es un axioma donde , 1 , 2 , , 1 y 2 son listas nitas de frmulas. o Utilizando el STP anterior, junto con una funcin de representacin iS y una o o regla de computacin rS adecuadas, podemos expresar el algoritmo SATS como o a un caso particular del algoritmo SATG . Adems, para garantizar las propiedades de terminacin, correccin y completitud tenemos que proporcionar una funcin o o o de medida S y una funcin modelo S , de forma que S sea exitoso con respecto o a rS , iS , S y S . Denicin 7.17 Para el STP S denimos: o 1. La funcin de representacin iS tal que para toda F P(), iS (F ) = F . o o u 2. La regla de computacin rS que acta de la siguiente forma. Dada un o secuente , si dicho secuente es una axioma, se le aplica una regla del tipo RS 1 . En otro caso se selecciona una frmula F no atmica de . o o En funcin del tipo de dicha frmula se le aplica una de las reglas RS 2 , o o RS 3 , RS 4 , RS 5 o RS 6 , descomponiendo F . Si en no hay frmulas no o

178

Cap tulo 7. Sistemas de transformacin proposicionales o atmicas, se selecciona una frmula F no atmica de . En funcin del o o o o tipo de dicha frmula se le aplica una de las reglas RS 7 , RS 8 , RS 9 , RS 10 o o RS 11 , descomponiendo F . Si el secuente es atmico, se le aplica una o regla del tipo RS 12 .

3. La funcin de medida S , que es el nmero de conectivas de un secuente, o u , rS . As para todo secuente S se tiene S (S) = rS (S). 4. La funcin modelo S tal que, para todo secuente S, S (S) es la asignacin o o denida de forma que (p) = si y slo si p es un s mbolo que aparece en o la parte izquierda de S. Teorema 7.18 El STP S es exitoso con respecto a la regla de computacin rS , o la funcin de representacin iS , la funcin de medida S y la funcin modelo S . o o o o Demostracin: o Para demostrar el teorema tendremos que probar las propiedades P1 , P2 , P3 y P4 para las funciones rS , iS , S y S . P1 : Dado Si rS (S), entonces Si es un secuente obtenido como premisa al utilizar una regla de inferencia para concluir S, luego por el teorema 5.11 se verica que S (Si ) = rS (Si ) < rS (S) = S (S). P2 : Dada la frmula F , |=S F = iS (F ) si y slo si es contramodelo de F , o o es decir, si y slo si es modelo de F . o P3 : Dado el secuente S tal que rS (S) = t, entonces S es un secuente axioma, en cuyo caso rS (S) = , o existe una frmula no atmica en su parte izquierda o o o su parte derecha, en cuyo caso rS (S) es la lista de premisas de una de las reglas de inferencia del clculo G . a Si S es un secuente axioma entonces, por el teorema 5.4, cualquier asignacin o es modelo de S, luego |=S S. Por otro lado, rS (S) es la lista vac Por a. tanto se tiene la equivalencia |=S S Si rS (S), |=S Si Si existe una frmula no atmica en la parte izquierda o derecha de S entonces, o o por el teorema 5.6, se tiene que una asignacin es modelo de S si y slo si o o es modelo de todas las premisas de una regla de inferencia cuya conclusin sea o o S. Por tanto, es contramodelo de S ( |=S S) si y slo si es contramodelo de alguna de las premisas (Si rS (S), |=S Si ). P4 : Dado el secuente S tal que rS (S) = t, entonces S es un secuente atmico que o no es un axioma y, por el teorema 5.8, la asignacin denida de forma que o (p) = si y slo si p aparece en la parte izquierda de S, no es modelo de S. o Esta asignacin es S (S), por tanto S (S) |=S S o

7.3. Un STP exitoso basado en secuentes

179

7.3.2

Formalizacin de S o

Para formalizar el conjunto de objetos proposicionales en el que se basa S, tenemos que denir una funcin que caracterice dichos objetos. Esta funcin ya o o ha sido denida en 79 , para mantener la correspondencia con los nombres de las funciones utilizadas en la formalizacin del marco genrico, la llamaremos o e sec-objeto: (defun sec-objeto (S) (and (consp S) (lista-formulas (car S)) (lista-formulas (cdr S))))
167

Las asignaciones distinguidas de un secuente son sus contramodelos, es decir, aquellas asignaciones en las que todos los elementos de la parte izquierda del secuente son ciertos y todos los de la parte derecha son falsos. La funcin que como prueba esta propiedad es sec-asignacion-distinguida. Para comprobar que la asignacin hace ciertos todos los elementos de la parte izquierda del secuente o utilizamos la funcin modelo-conjuncion, denida en 80 . De forma anloga o a denimos no-modelo-conjuncion para comprobar que la asignacin hace falsos o todos los elementos de la parte derecha del secuente. (defun sec-asignacion-distinguida (sigma S) (and (modelo-conjuncion sigma (car S)) (no-modelo-conjuncion sigma (cdr S)))) (defun no-modelo-conjuncion (sigma Gamma) (cond ((endp Gamma) t) ((not (modelo sigma (car Gamma))) (no-modelo-conjuncion sigma (cdr Gamma))) (t nil))) El comportamiento de la funcin sec-asignacion-distinguida es el cono trario al de la funcin modelo-secuente denida en 80 . El valor devuelto por o o sec-asignacion-distinguida es T si y slo si el valor de modelo-secuente es nil. La regla de computacin rS no est completamente determinada puesto que, o a si el secuente al que hay que aplicarla no es un axioma, se ha de escoger una frmula no atmica de su parte izquierda o de su parte derecha, y no se indica el o o criterio a seguir para realizar esta seleccin. De hecho, esto tambin ocurr en el o e a procedimiento de bsqueda de un contramodelo de un secuente. Como entonces, u esta indeterminacin se resuelve considerando una funcin seleccion que escoge o o una frmula no atmica de una lista, si es que existe. La existencia de esta o o
168

180

Cap tulo 7. Sistemas de transformacin proposicionales o

funcin se asume en un encapsulado ACL2, caracterizndola por las propiedades o a formalizadas en 86 . La funcin que implementa la regla de computacin es la siguiente: o o (defun sec-regla-computacion (S) (let ((Gamma (car S)) (Delta (cdr S))) (if (secuente-axioma S) nil (let ((F-1 (seleccion Gamma))) (if F-1 (secuentes-expansion-izq F-1 Gamma Delta) (let ((F-2 (seleccion Delta))) (if F-2 (secuentes-expansion-der F-2 Gamma Delta) t)))))))
169

En esta denicin hemos utilizado la funcin secuente-axioma, denida en o o 81 , que comprueba si hay alg n elemento en com n en las partes izquierda y u u derecha de un secuente. Tambin se han utilizado secuentes-expansion-izq y e secuentes-expansion-der, denidas respectivamente en 83 y 84 , para obtener las premisas de las reglas de inferencia correspondientes al tipo de las frmulas o F-1 y F-2. El resultado devuelto por esta funcin es t o una lista de secuentes: o (defthm member-sec-regla-computacion-es-sec-objeto (implies (and (sec-objeto S-1) (member-equal S-2 (sec-regla-computacion S-1))) (sec-objeto S-2)))
170

La funcin de representacin iS es muy simple, consiste en construir el secuente o o o o F . La funcin sec-representacion realiza esta construccin. El resultado que devuelve es un secuente. (defun sec-representacion (F) (list (list F))) (defthm sec-representacion-es-sec-objeto (implies (es-proposicional formula) (sec-objeto (sec-representacion formula))))
171

7.3. Un STP exitoso basado en secuentes

181

La funcin de medida S es el nmero de conectivas de un secuente. Esta o u funcin est implementada por medida-secuente, denida en 88 . Para mano a tener la correspondencia con la formalizacin del marco genrico, la llamaremos o e sec-medida. El resultado que devuelve es un ordinal. (defun sec-medida (S) (+ (medida-lista-formulas (car S)) (medida-lista-formulas (cdr S)))) (defthm sec-medida-es-e0-ordinalp (e0-ordinalp (sec-medida S))) La funcin modelo S construye una asignacin en la que todos los s o o mbolos de la parte izquierda de un secuente son ciertos. Esta construccin es la que realiza o la funcin genera-contramodelo-secuente, denida en 89 . Como en casos o anteriores utilizamos el nombre sec-modelo para mantener la correspondencia con los nombres de funciones utilizados en la formalizacin del marco genrico. o e (defun sec-modelo (S) (genera-asignacion-positiva (car S)))
173 172

Veamos a continuacin la formalizacin de las propiedades que garantizan que o o S es un STP exitoso. La propiedad P1 est formalizada por el evento P1-sec y a se demuestra fcilmente dado que el nmero de conectivas de las subfrmulas de a u o una frmula compuesta es menor que el de la original. o (defthm P1-sec (implies (member-equal S-2 (sec-regla-computacion S-1)) (e0-ord-< (sec-medida S-2) (sec-medida S-1))))
174

La prueba de la propiedad P2 se obtiene inmediatamente a partir de las deniciones de contramodelo de un secuente y la funcin de representacin. Su o o formalizacin es la siguiente: o (defthm P2-sec (implies (es-proposicional F) (iff (se-asignacion-distinguida sigma (sec-representacion F)) (modelo sigma F))))
175

182

Cap tulo 7. Sistemas de transformacin proposicionales o

Para formalizar la propiedad P3 necesitamos denir una funcin que como pruebe si una asignacin es contramodelo de alguno de los secuentes de una lista. o Esta funcin es sec-asignacion-distinguida-lista. La formalizacin de esta o o funcin y de la propiedad P3 es la siguiente: o

(defthm P3-sec (implies (and (sec-objeto S) (not (equal (sec-regla-computacion S) t))) (iff (sec-asignacion-distinguida-lista sigma (sec-regla-computacion S)) (sec-asignacion-distinguida sigma S)))) (defun sec-asignacion-distinguida-lista (sigma lista-S) (cond ((endp lista-S) nil) (t (or (sec-asignacion-distinguida sigma (car lista-S)) (sec-asignacion-distinguida-lista sigma (cdr lista-S))))))

176

La prueba del evento P3-sec se obtiene a partir de resultados similares para secuentes-expansion-izq y secuentes-expansion-der. Finalmente, la propiedad P4 se demuestra fcilmente a partir de la denicin a o u o de sec-modelo y el hecho de que el secuente sobre el que se evala es atmico y no es un axioma. Su formalizacin es la siguiente: o

(defthm P4-sec (implies (and (sec-objeto S) (equal (sec-regla-computacion S) t)) (sec-asignacion-distinguida-K (sec-modelo-K S) S)))

177

El siguiente evento realiza una instancia de la teor genrica *sat-generico* a e utilizando las funciones que describen el STP exitoso S. Para seleccionar el secuente a procesar en cada paso hemos utilizado la funcin car, que devuelve el o primer elemento de una lista.

7.3. Un STP exitoso basado en secuentes

183
178

(definstancia-*sat-generico* ((gen-objeto sec-objeto) (gen-representacion sec-representacion) (gen-asignacion-distinguida sec-asignacion-distinguida) (gen-asignacion-distinguida-lista sec-asignacion-distinguida-lista) (gen-regla-computacion sec-regla-computacion) (gen-seleccion car) (gen-medida sec-medida) (gen-modelo sec-modelo)) "-secuentes")

Una vez evaluado este evento, se obtiene automticamente la funcin que a o implementa el algoritmo SATS , como una instancia de SATG . Tambin se obtiee nen versiones basadas en secuentes del algoritmo de decisin de validez DATG y o del procedimiento de construccin de modelos M ODG . Estas funciones son las o siguientes:

(DEFUN SAT-GENERICO-SECUENTES (F) (OBJ-SAT-GENERICO-SECUENTES (LIST (SEC-REPRESENTACION F)))) (DEFUN MOD-GENERICO-SECUENTES (F) (SEC-MODELO (CAR (SAT-GENERICO-SECUENTES F)))) (DEFUN DAT-GENERICO-SECUENTES (F) (NOT (SAT-GENERICO-SECUENTES (NEGACION F)))) (DEFUN OBJ-SAT-GENERICO-SECUENTES (LISTA-O) (IF (ENDP LISTA-O) NIL (LET* ((O (CAR LISTA-O)) (RESTO (ELIMINA-UNA (CAR LISTA-O) LISTA-O)) (EXPANSION (SEC-REGLA-COMPUTACION O))) (COND ((EQUAL EXPANSION T) (LIST O)) (T (OBJ-SAT-GENERICO-SECUENTES (APPEND EXPANSION RESTO)))))))

Adems de generar automticamente estas funciones, al instanciar la teor a a a genrica *sat-generico*, tambin se obtienen de forma automtica los eventos e e a que establecen sus propiedades de correccin y completitud. o

184

Cap tulo 7. Sistemas de transformacin proposicionales o

(DEFTHM CORRECCION-SAT-GENERICO-SECUENTES (IMPLIES (AND (ES-PROPOSICIONAL F) (SAT-GENERICO-SECUENTES F)) (MODELO (MOD-GENERICO-SECUENTES F) F))) (DEFTHM COMPLETITUD-SAT-GENERICO-SECUENTES (IMPLIES (AND (ES-PROPOSICIONAL F) (MODELO SIGMA F)) (SAT-GENERICO-SECUENTES F))) (DEFTHM CORRECCION-DAT-GENERICO-SECUENTES (IMPLIES (AND (ES-PROPOSICIONAL F) (DAT-GENERICO-SECUENTES F)) (MODELO SIGMA F))) (DEFTHM COMPLETITUD-DAT-GENERICO-SECUENTES (IMPLIES (AND (ES-PROPOSICIONAL F) (NOT (DAT-GENERICO-SECUENTES F))) (NOT (MODELO (MOD-GENERICO-SECUENTES (NEGACION F)) F))))

7.3.3

Un K-STP exitoso basado en secuentes

A partir del clculo de secuentes tambin se puede construir un K-STP exitoso, a e de forma que los procedimientos de decisin de validez y satisfacibilidad preo sentados en la seccin 5.1.7, se puedan obtener como casos particulares de los o procedimientos genricos. e El K-STP exitoso basado en secuentes se diferencia del desarrollado para la semntica clsica en el concepto de K-asignacin distinguida y en la funcin Ka a o o modelo. Las K-asignaciones distinguidas se denen con respecto al concepto de modelo en K. La funcin que las caracteriza es no-modelo-secuente-K, preseno tada en 98 . La funcin K-modelo tiene que construir una K-asignacin en la o o que todos las frmulas atmicas de la parte izquierda de un secuente sean ciero o tas, y las de la parte derecha falsas. Esta construccin se obtiene con la funcin o o genera-no-modelo-secuente-K, presentada en 102 . La prueba de la propiedad P1 es la misma que para el caso de la semntica a clsica. La propiedad P2 es trivial a partir del concepto de no-modelo en K y la a funcin de representacin. Las reglas de expansin preservan los K-no-modelos o o o como se expuso en la seccin 5.1.7, de aqu que se verique la propiedad P3 . o Finalmente, la propiedad P4 se cumple gracias a que la funcin K-modelo no deja o indeterminada ninguna frmula atmica del secuente al que se aplica. o o

7.4. Ejemplos

185

7.4

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin deo o o sarrollados en este cap tulo, presentando datos sobre su evaluacin en algunas o frmulas de Urquhart [83] y frmulas representando el problema de las N reinas o o [62]. En la seccin 4.3 se indica como se cargan en ACL2 los cheros en los que o se denen estas familias de frmulas. o Una vez certicados los libros, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 7-generico:

../calculos-proposicionales/7-generico> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/7-generico". ACL2 !>

Veamos primero los procedimientos de decisin obtenidos al instanciar el maro co genrico con el STP basado en tableros semnticos. Incluimos el libro que e a contiene los eventos correspondientes. Los libros de los que ste depende son e incluidos automticamente por el sistema: a

ACL2 !>(include-book "SAT-tableros")

Al igual que ocurre con los procedimientos de decisin desarrollados en el o cap tulo 4, tenemos que proporcionar una denicin concreta de la funcin que o o selecciona una frmula de una rama. o

ACL2 !>(set-ld-redefinition-action (:warn . :overwrite) state) ACL2 !>(defun seleccion (lista) (cond ((endp lista) nil) ((es-literal (car lista)) (seleccion (cdr lista))) (t (car lista))))

186

Cap tulo 7. Sistemas de transformacin proposicionales o

o o En la tabla 7.11 se muestran los tiempos de evaluacin de la funcin o DAT-generico-tableros para las 15 primeras frmulas de Urquhart. En la 1 o o o tabla 7.2 se muestra la misma informacin sobre la evaluacin de la funcin SAT-generico-tableros para las frmulas correspondientes al problema de las o N reinas, para algunos valores de N . Frmula tiempo o U1 0.000 U2 0.000 U3 0.010 U4 0.020 U5 0.130 Frmula tiempo o U6 0.160 U7 0.550 U8 1.410 U9 3.770 U10 8.150 Frmula tiempo o U11 19.720 U12 49.050 U13 118.590 U14 249.060 U15 538.960

Tabla 7.1: Tiempos de evaluacin de las frmulas de Urquhart (tableros) o o

Tamao del tablero n Tiempo

2 3 4 5 6 0.000 0.150 1.290 5.920 543.390

Tabla 7.2: Tiempos de evaluacin para el problema de las N reinas (tableros) o Uno de los procedimientos que se obtienen como resultado de instanciar el marco genrico es el que proporciona un modelo de una frmula. Podemos utilizar e o dicho procedimiento para obtener modelos para las frmulas que describen el o problema de las N reinas1 . Estos modelos se corresponden con soluciones de dicho problema: ACL2 ((15 ACL2 ((24 !>(MOD-generico-tableros (n-reinas 4)) 1) (9 1) (8 1) (2 1)) !>(MOD-generico-tableros (n-reinas 5)) 1) (17 1) (15 1) (8 1) (1 1))

En la codicacin que se ha hecho del problema de las N reinas, la solucin o o obtenida para un tablero de tamao 4 es la que tiene reinas situadas en las n casillas con los nmeros 2 (primera la, segunda columna), 8 (segunda la, cuarta u columna), 9 (tercera la, primera columna) y 15 (cuarta la, tercera columna). La solucin obtenida para un tablero de tamao 5 es la que tiene reinas situadas o n en las casillas con los nmeros 1 (primera la, primera columna), 8 (segunda u
En el chero SAT-tableros.lisp hay tres STP basados en tableros semnticos, el descrito a en este cap tulo, con respecto al cual se proporcionan los datos, es el segundo.
1

7.4. Ejemplos

187

la, tercera columna), 15 (tercera la, quinta columna), 17 (cuarta la, segunda columna) y 24 (quinta la, cuarta columna). Para utilizar los procedimientos de decisin obtenidos al instanciar el marco o genrico con el STP basado en secuentes, actuamos de manera similar: e ACL2 !>(include-book "SAT-secuentes") Al igual que ocurre con los procedimientos de decisin desarrollados en el o cap tulo 5, tenemos que proporcionar una denicin concreta de la funcin que o o selecciona una frmula de una secuente. o ACL2 !>(set-ld-redefinition-action (:warn . :overwrite) state) ACL2 !>(defun seleccion (lista) (cond ((endp lista) nil) ((es-atomica (car lista)) (seleccion (cdr lista))) (t (car lista)))) En la tabla 7.3 se muestran los tiempos de evaluacin de la funcin o o DAT-secuentes para las 15 primeras frmulas de Urquhart. En la tabla 7.4 o se muestra la misma informacin para las frmulas correspondientes al problema o o de las N reinas, para algunos valores de N . Frmula tiempo o U1 0.000 U2 0.000 U3 0.000 U4 0.000 U5 0.010 Frmula tiempo o U6 0.010 U7 0.040 U8 0.100 U9 0.310 U10 0.630 Frmula tiempo o U11 1.530 U12 3.570 U13 8.230 U14 18.540 U15 43.290

Tabla 7.3: Tiempos de evaluacin de las frmulas de Urquhart (secuentes) o o

Tamao del tablero n Tiempo

2 3 4 5 6 0.000 0.040 0.430 1.900 189.990

Tabla 7.4: Tiempos de evaluacin para el problema de las N reinas (secuentes) o

188

Cap tulo 7. Sistemas de transformacin proposicionales o

Sumario
En este cap tulo: e e Se ha denido un marco genrico del que diversos mtodos para decidir la satisfacibilidad de una frmula son casos particulares. Se ha formalizado o esta abstraccin, demostrando sus propiedades, y se ha denido una teor o a genrica para facilitar su reutilizacin. e o Se ha presentado el mtodo de los tableros semnticos como un caso pare a ticular del marco genrico. Se han formalizado las funciones y propiedades e necesarias para obtener algoritmos vericados de decisin de satisfacibilidad o y validez, como una instancia de la teor asociada al marco genrico. a e e Se ha realizado el mismo desarrollo para el mtodo de los secuentes. Tambin se han obtenido algoritmos vericados de decisin de satisfacibilidad y e o validez, como instancia de la teor asociada al marco genrico. a e

Cap tulo 8 Procedimiento de Davis y Putnam


El procedimiento de Davis y Putnam fue introducido en 1960 [19] como una tcnica de decisin de validez adecuada para la automatizacin. Este procedie o o miento es un sistema de refutacin: para probar la validez de una frmula F se o o busca un modelo de su negacin F . Si no se encuentra dicho modelo entonces o la frmula original es vlida. Desde un punto de vista constructivo, se trata de o a un procedimiento para buscar un modelo de una frmula; es decir, determinar su o satisfacibilidad. Este mtodo es la base de algunos de los algoritmos ms eciene a tes para determinar la satisfacibilidad de una frmula como Cha [61], Relsat [5], o SATO [88], SATZ [57], CSAT [22] o POSIT [27]. Este procedimiento no trabaja directamente con una frmula, sino con una o forma clausal (una lista de listas de literales) que guarda una relacin de equio valencia lgica con la frmula de partida. Por ello, en la primera seccin de este o o o cap tulo, se denen los conceptos de clusula y forma clausal y se demuestra que a cualquier frmula se puede transformar en una forma clausal lgicamente equivao o lente a ella. Para ello se proporciona un algoritmo de transformacin basado en o la notacin uniforme. Se discute la prueba de terminacin de este algoritmo y que o o efectivamente construye formas clausales lgicamente equivalentes a la frmula de o o partida. Otra propiedad importante de este algoritmo es que sirve para decidir la validez de una frmula. Tanto los conceptos de clusula y forma clausal como el o a algoritmo de transformacin y sus propiedades son establecidos en la semntica o a clsica y en la semntica de Kleene. a a En la segunda seccin se presenta el procedimiento de Davis y Putnam como o un mtodo para decidir la satisfacibilidad de una forma clausal. Este procedie miento se basa en una serie de reglas de transformacin que son analizadas en o esta seccin. Utilizando estas reglas de transformacin se denen dos algoritmos o o para determinar la satisfacibilidad de una forma clausal. Se demuestran las propiedades de correccin y completitud de estos algoritmos tanto en la semntica o a clsica como en la de Kleene. a 189

190

Cap tulo 8. Procedimiento de Davis y Putnam

En la ultima seccin se analiza el procedimiento de Davis y Putnam como un o caso particular del marco genrico presentado en el capitulo 7. En esta seccin e o se presentan lo eventos necesarios para instanciar con xito la teor asociada al e a marco genrico. e

8.1

Clusulas y formas clausales a

En esta seccin se presenta la formalizacin de los conceptos de clusula y foro o a ma clausal. Ambos se representan utilizando listas, una clusula es una lista de a literales y una forma clausal es una lista de clusulas. Las clusulas se interprea a tan como la disyuncin generalizada de los literales que en ella aparecen y las o formas clausales como la conjuncin generalizada de las clusulas que la forman. o a Los eventos correspondientes a esta formalizacin para la semntica clsica se o a a encuentran en el libro clausulas.lisp, los correspondientes para la semntica a de Kleene se encuentran en el libro clausulas-K.lisp. Un resultado importante en la lgica proposicional clsica es que toda frmula o a o puede ser transformada en una forma clausal lgicamente equivalente a ella. En o la segunda parte de esta seccin se presenta un algoritmo que realiza dicha transo formacin, basado en la descripcin dada en [26]. Este algoritmo es ms eciente o o a que el clsico basado en la transformacin a forma normal conjuntiva (v la fora o a ma normal negativa) y, adems, puede ser utilizado como un procedimiento de a decisin de validez de frmulas. La principal dicultad encontrada en la denio o cin de este algoritmo ha sido la prueba de su terminacin, que se ha realizado o o mediante rdenes de multiconjuntos. Finalmente se demuestra que el algoritmo o devuelve una forma clausal lgicamente equivalente a la frmula que recibe como o o argumento y que el valor devuelto es la forma clausal vac si y slo si la frmula a o o original es vlida. Los eventos correspondientes a esta parte para la semntica a a clsica se encuentran en el libro forma-clausal.lisp y los correspondientes a la a semntica de Kleene en el libro forma-clausal-K.lisp. a

8.1.1

Sintaxis y semntica a

Denicin 8.1 Una clusula es una lista de literales, L1 , . . . , Ln . o a Denimos el predicado es-clausula para comprobar si un objeto C es una clusula. a (defun es-clausula (C) (or (endp C) (and (es-literal (car C)) (es-clausula (cdr C)))))
179

Las clusulas se interpretan como la disyuncin de los literales que las forman. a o La semntica de las clusulas se establece en las siguientes deniciones: a a

8.1. Clusulas y formas clausales a

191

a o Denicin 8.2 El valor de una clusula L1 , . . . , Ln en una asignacin es: o ( L1 , . . . , Ln ) = F ( (L1 ), F (. . . F ( (Ln1 ), (Ln )) . . . )). La funcin que implementa este concepto es valor-clausula: o (defun valor-clausula (C sigma) (cond ((endp C) *F*) (t (funcion-de-verdad-de-disyuncion (valor (car C) sigma) (valor-clausula (cdr C) sigma)))))
180

Denicin 8.3 Una asignacin es modelo de una clusula C, y lo notaremos o o a |= C, si y slo si es modelo de algn literal de C. o u Con la representacin que hemos escogido, las clusulas no son frmulas reo a o conocidas por el predicado es-proposicional. Por ello, no podemos utilizar la funcin modelo para comprobar si una asignacin es modelo de una clusula. La o o a versin de esta funcin para clusulas es modelo-clausula. o o a (defun modelo-clausula (sigma C) (if (consp C) (or (modelo sigma (car c)) (modelo-clausula sigma (cdr C))) nil))
181

Denicin 8.4 Una clusula C es vlida, si para toda asignacin , el valor de o a o a C en es . El concepto de clusula vlida no se puede formalizar en ACL2 pues supondr a a a trabajar con todas las asignaciones y ste es un conjunto innito. Este concepto e se incorpora a los teoremas de igual forma a como se hace para las frmulas (ver o detalles en la seccin 3.2.4). o Se verica que una asignacin es modelo de una clusula segn la denicin o a u o anterior si y slo si el valor de la clusula en dicha asignacin es : o a o (defthm modelo-clausula-valor-clausula (iff (modelo-clausula sigma C) (equal (valor-clausula C sigma) *V*)))
182

Obsrvese que la clusula vac no tiene modelos, puesto que no tiene ningn e a a u literal que pueda ser cierto en una asignacin dada. o El siguiente teorema permite comprobar la validez de una clusula sin ms a a que analizar sus elementos:

192

Cap tulo 8. Procedimiento de Davis y Putnam

a a o Teorema 8.5 Una clusula es vlida si y slo si contiene literales complementarios. Para demostrar una de las implicaciones de este teorema necesitamos construir una asignacin en la que una clusula que no contenga literales complementarios o a sea falsa. Esta asignacin se construye teniendo en cuenta que los complementao rios de los literales que aparecen en la clusula han de ser ciertos. Denimos a a o continuacin la asignacin [L/ ] como una extensin de en la que el literal L o o es cierto, y por tanto L falso. Denicin 8.6 Sea una asignacin y L o o denida por: [L/ ](y) = (x) un literal, [L/ ] es la asignacin o si L = y si L = y en otro caso

Este concepto se formaliza mediante la funcin asume-literal: o (defun asume-literal (L sigma) (cond ((es-simbolo-proposicional L) (asume-valor L *V* sigma)) (t (asume-valor (arg1 L) *F* sigma))))
183

Teorema 8.7 Dada una asignacin y un literal L, [L/ ] |= L, [L/ ] |= L o y para todo literal L distinto de L y L se tiene [L/ ] |= L si y slo si |= L . o La formalizacin de este resultado es la siguiente: o (defthm asume-literal-es-modelo (implies (es-literal L) (modelo (asume-literal L sigma) L))) (defthm asume-literal-no-es-modelo-c (implies (es-literal L) (not (modelo (asume-literal L sigma) (complementario L))))) (defthm literal-mantiene-valor (implies (and (es-literal L-1) (es-literal L-2) (not (equal L-1 L-2)) (not (equal (complementario L-1) L-2))) (iff (modelo (asume-literal L-1 sigma) L-2) (modelo sigma L-2))))
184

8.1. Clusulas y formas clausales a

193

Para establecer el teorema 8.5 en la formalizacin, hemos denido la funcin o o tiene-literales-complementarios, que comprueba si una clusula tiene litea rales complementarios, y la funcin contramodelo-clausula, que construye una o asignacin en la que una clusula sin literales complementarios es falsa. o a (defthm tiene-literales-complementarios-es-clausula-valida (implies (and (tiene-literales-complementarios C) (es-clausula C)) (modelo-clausula sigma C)))
185

(defthm clausula-valida-tiene-literales-complementarios (implies (and (not (tiene-literales-complementarios C)) (es-clausula C)) (not (modelo-clausula (contramodelo-clausula C) C)))) (defun tiene-literales-complementarios (C) (cond ((endp C) nil) ((member-equal (complementario (car C)) (cdr C)) t) (t (tiene-literales-complementarios (cdr C))))) (defun contramodelo-clausula (C) (cond ((endp C) nil) (t (asume-literal (complementario (car C)) (contramodelo-clausula (cdr C)))))) Denicin 8.8 Una forma clausal es una lista de clusulas, C1 , . . . , Cn . o a Denimos el predicado es-forma-clausal para comprobar si un objeto Fc es una forma clausal. (defun es-forma-clausal (Fc) (or (endp Fc) (and (es-clausula (car Fc)) (es-forma-clausal (cdr Fc)))))
186

Denicin 8.9 El valor de una forma clausal C1 , . . . , Cn en una asignacin o o es: ( C1 , . . . , Cn ) = F ( (C1 ), F (. . . F ( (Cn1 ), (Cn )) . . . )). La funcin que implementa este concepto es valor-forma-clausal: o (defun valor-forma-clausal (Fc sigma) (cond ((endp Fc) *V*) (t (funcion-de-verdad-de-conjuncion (valor-clausula (car Fc) sigma) (valor-forma-clausal (cdr Fc) sigma)))))
187

194

Cap tulo 8. Procedimiento de Davis y Putnam

o Denicin 8.10 Una asignacin es modelo de una forma clausal S, y lo noo taremos |= S, si y slo si es modelo de todas las clusulas de S. Una forma o a clausal S es satisfacible, si existe una asignacin tal que |= S. o Al igual que ocurre con la representacin de las clusulas, las formas clausales o a tal y como estn representadas no son frmulas reconocidas por el predicado a o es-proposicional. Por ello, tampoco podemos utilizar la funcin modelo para o comprobar si una asignacin es modelo de una forma clausal. La versin de esta o o funcin para formas clausales es modelo-forma-clausal. o (defun modelo-forma-clausal (sigma Fc) (if (consp Fc) (and (modelo-clausula sigma (car Fc)) (modelo-forma-clausal sigma (cdr Fc))) t))
188

Denicin 8.11 Una forma clausal S es vlida, si para toda asignacin , el o a o o valor de S en es . Una forma clausal S es satisfacible si existe una asignacin o modelo de S. Una forma clausal S es insatisfacible si ninguna asignacin es modelo de S. Al igual que ocurre con el concepto de clusula vlida, los conceptos de forma a a clausal satisfacible y forma clausal vlida no se pueden denir en la formalizacin. a o Estos conceptos se incorporan a los teoremas de igual forma a como se hace para las frmulas (ver detalles en la seccin 3.2.4). o o Se verica que una asignacin es modelo de una forma clausal segn la deo u nicin anterior si y slo si el valor de la forma clausal en dicha asignacin es o o o : (defthm modelo-forma-clausal-valor-forma-clausal (iff (modelo-forma-clausal sigma C) (equal (valor-forma-clausal C sigma) *V*)))
189

Obsrvese que, por la denicin de modelo de una forma clausal, una forma e o clausal es vlida si y slo si lo son todas las clusulas que en ella aparecen. Por a o a tanto, la forma clausal vac es vlida. a a Teorema 8.12 Si una forma clausal contiene la clusula vac entonces es insaa a, tisfacible. La prueba de este resultado es inmediata, dado que para que una forma clausal sea satisfacible, tiene que existir una asignacin modelo de todas las clusulas que o a la forman y, la clusula vac no tiene modelos. Para formalizarlo utilizamos la a a funcin contiene-clausula-vacia, que comprueba si la clusula vac pertenece o a a a una forma clausal:

8.1. Clusulas y formas clausales a (defthm contiene-clausula-vacia-es-insatisfacible (implies (contiene-clausula-vacia Fc) (not (modelo-forma-clausal sigma Fc)))) (defun contiene-clausula-vacia (Fc) (cond ((endp Fc) nil) ((consp (car Fc)) (contiene-clausula-vacia (cdr Fc))) (t t)))

195
190

8.1.2

Transformacin a forma clausal: FC o

Teorema 8.13 Existen algoritmos para transformar cualquier frmula proposio cional en una forma clausal lgicamente equivalente. o Para demostrar este teorema implementaremos un algoritmo que realiza dicha transformacin, basado en la notacin uniforme. El algoritmo comienza con la o o lista cuyo unico elemento es la lista unitaria formada por F , F . En cada o o paso aplica una regla que elimina una -frmula, -frmula o doble negacin, o reemplazndola por sus componentes. Cuando las reglas no se puedan aplicar a obtenemos una lista de listas de literales, es decir, una forma clausal. Algoritmo 8.14 (FC) El dato de entrada de este algoritmo es una frmula F y o acta como se describe a continuacin: u o 1. Inicialmente se considera: F

2. Dada una lista de listas de frmulas: 1 , . . . , n , se aplican repetidamente, o hasta que no se pueda ms, las siguientes reglas: a RFC 1 1 , . . . , n = 1 , . . . , i1 , i+1 , . . . , n , si i contiene frmulas o complementarias. RFC 2 1 , . . . , i1 , F1 , . . . , Fj1 , G, Fj+1 , ..., Fm , i+1 , . . . , n = = 1 , . . . , i1 , F1 , . . . , Fj1 , G, Fj+1 , ..., Fm , i+1 , . . . , n RFC 3 1 , . . . , i1 , F1 , . . . , Fj1 , , Fj+1 , ..., Fm , i+1 , . . . , n = = 1 , . . . , i1 , F1 , . . . , Fj1 , 1 , 2 , Fj+1 , ..., Fm , i+1 , . . . , n RFC 4 1 , . . . , i1 , F1 , . . . , Fj1 , , Fj+1 , ..., Fm , i+1 , . . . , n = = 1 , . . . , i1 , F1 , . . . , Fj1 , 1 , Fj+1 , ..., Fm , F1 , . . . , Fj1 , 2 , Fj+1 , ..., Fm , i+1 , . . . , n 3. Si a la lista 1 , . . . , n no se le puede aplicar ninguna de las reglas anteriores, el algoritmo termina y devuelve 1 , . . . , n .

196

Cap tulo 8. Procedimiento de Davis y Putnam

Este algoritmo se puede mejorar de dos formas. Puesto que la lista inicial no contiene listas con literales complementarios, la aplicacin de la regla RF C 1 o se puede componer con las restantes, comprobando que el complementario del elemento o elementos que se aaden no aparezcan ya en la lista de frmulas. n o Otra forma de mejorar las reglas es evitando que aparezcan elementos repetidos. Ambas mejoras se incorporan en el proceso de aadir una frmula a una lista de n o frmulas. o Son varias las funciones que intervienen en la implementacin de este algoo ritmo. La funcin principal es forma-clausal, que recibe como argumento una o frmula F y realiza una llamada a forma-clausal-aux con la lista F . o (defun forma-clausal (F) (forma-clausal-aux (list (list F))))
191

La funcin forma-clausal-aux se encarga de aplicar recursivamente las reglas o en las que se basa el algoritmo. Esta funcin recibe como argumento una lista de o listas de frmulas 1 , . . . , n . Si la lista est vac el proceso termina. Si 1 no o a a tiene frmulas no literales, entonces se trata de una clusula y pasar a formar o a a parte de la forma clausal que estamos construyendo. En este caso el proceso o contina con 2 , . . . , n . Si 1 tiene frmulas no literales, entonces se aplica u una de las reglas RFC 2 , RFC 3 o RFC 4 (teniendo en cuenta la regla RF C 1 a la hora de aadir las componentes) y se contina el proceso. n u (defun forma-clausal-aux (S) (declare (xargs :measure (medida-uniforme-S S) :well-founded-relation mul-mul-e0-ord-<)) (if (endp S) nil (let ((F (selecciona-no-literal (car S)))) (if F (forma-clausal-aux (append (forma-clausal-procesa-una F (car S)) (cdr S))) (cons (car S) (forma-clausal-aux (cdr S)))))))
192

Obsrvese que el argumento de la funcin forma-clausal-aux no siempre e o disminuye en las llamadas recursivas, de hecho, en algunas ocasiones aumenta de o tamao (RFC 3 ). Para demostrar la terminacin del algoritmo ha sido necesario n proporcionar una medida del argumento de forma-clausal-aux que disminuya en las llamadas recursivas, con respecto a una relacin bien fundamentada. Los o detalles sobre la prueba de terminacin se encuentran en la pgina 198. o a La funcin selecciona-no-literal recibe como argumento una lista de o frmulas y devuelve el primer elemento de la misma que no sea un literal. En o caso de no existir ninguna frmula no literal, devuelve nil. o

8.1. Clusulas y formas clausales a (defun selecciona-no-literal (Gamma) (cond ((endp Gamma) nil) ((es-literal (car Gamma)) (selecciona-no-literal (cdr Gamma))) (t (car Gamma))))

197
193

La funcin forma-clausal-procesa-una procesa una lista de frmulas con o o un elemento no literal, aplicndole una de las reglas en las que se basa el ala e o goritmo FC. Obsrvese que los casos de esta funcin se corresponden con las reglas RF C 2 , RFC 3 y RFC 4 respectivamente. La regla RFC 1 es considerada en el n proceso de aadir las frmulas componentes, implementado por a~ade-formula n o y a~ade-formulas. El ultimo caso de esta funcin sirve para eliminar aquellas n o situaciones en las que los datos de entrada no son correctos. (defun forma-clausal-procesa-una (F Gamma) (let ((Gamma-F (elimina-una F Gamma))) (cond ((doble-negacion F) (a~ade-formula (componente-neg-neg F) Gamma-F)) n ((beta-formula F) (a~ade-formulas (list (componente-1 F) n (componente-2 F)) Gamma-F)) ((alfa-formula F) (append (a~ade-formula (componente-1 F) Gamma-F) n (a~ade-formula (componente-2 F) Gamma-F))) n (t (nil)))))
194

La funcin a~ade-formula se encarga de aplicar la regla RFC 1 y de evitar o n que aparezcan frmulas repetidas al aadir las componentes. Esta funcin recibe o n o o como argumentos una frmula F y una lista de frmulas . Si F aparece en , o devuelve una lista unitaria con la lista sin modicar, . Si el complementario de F aparece en , devuelve nil como resultado de aplicar la regla RF C 1 . En cualquier otro caso devuelve la lista unitaria con el resultado de aadir F a . n De esta forma el valor devuelto por la funcin a~ade-formula es una lista cuyos o n elementos son listas de frmulas. Si dicho valor es nil entonces la lista de frmulas o o se tiene que eliminar como consecuencia de aplicar RF C 1 . (defun a~ade-formula (F Gamma) n (cond ((member-equal F Gamma) (list Gamma)) ((member-equal (complementario F) Gamma) nil) (t (list (cons F Gamma)))))
195

198

Cap tulo 8. Procedimiento de Davis y Putnam

Para aadir ms de una frmula a una lista siguiendo el criterio anterior denin a o mos la funcin a~ade-formulas. Esta funcin acta recursivamente sobre la lista o n o u de frmulas que hay que aadir. Obsrvese que, despus de realizar la llamada o n e e recursiva, se comprueba si el resultado es la lista vac Esta situacin indicar a. o a que en el proceso de la llamada recursiva se ha utilizado en algn momento la u a. regla RFC 1 , por tanto el resultado nal ha de ser la lista vac (defun a~ade-formulas (Fs Gamma) n (cond ((endp Fs) (list Gamma)) (t (let ((a~ade-resto (a~ade-formulas (cdr Fs) Gamma))) n n (if a~ade-resto n (a~ade-formula (car Fs) (car a~ade-resto)) n n nil)))))
196

En el siguiente ejemplo, hemos utilizado la funcin forma-clausal para obo tener las formas clausales asociadas a las frmulas (p q) (q p) y o (p q) (r s). Obsrvese que el primer ejemplo es una frmula vlida y e o a que la forma clausal devuelta es la vac a. ACL2 !>(forma-clausal (<-> (<-> p q) (<-> q p))) NIL ACL2 !>(forma-clausal (-> (\/ p q) (& r s))) ((R (- P)) (S (- P)) (R (- Q)) (S (- Q))) 8.1.2.1 Prueba de terminacin de FC o
197

La prueba de terminacin de la funcin que implementa el algoritmo FC cono o siste en demostrar que la funcin forma-clausal-aux termina para cualquier o argumento. Para ello, se ha proporcionado una medida de los argumentos que disminuye en las llamadas recursivas, con respecto a una relacin bien fundameno tada. El argumento de forma-clausal-aux es una lista de listas de frmulas, de o ah que se haya considerado una medida que genera multiconjuntos de multicon juntos de ordinales. o Denicin 8.15 La medida uniforme de una lista de frmulas F1 , . . . , Fn es o {u(F1 ), . . . , u(Fn )} el multiconjunto u ( F1 , . . . , Fn ) = { }. La formalizacin de este concepto viene dada por la siguiente funcin: o o (defun medida-uniforme-lista (Gamma) (cond ((endp Gamma) nil) (t (cons (medida-uniforme (car Gamma)) (medida-uniforme-lista (cdr Gamma))))))
198

8.1. Clusulas y formas clausales a

199

Estas medidas se comparan con respecto a la extensin a multiconjuntos deo nida en 6.3 de la relacin de orden entre los ordinales. Notaremos <M a esta o extensin. La funcin que la formaliza, mul-e0-ord-<, y sus propiedades se o o obtienen al evaluar el siguiente evento: (defmul (E0-ORD-< NIL E0-ORDINALP E0-ORD-<-FN NIL NIL)) o Teorema 8.16 Sea F1 , . . . , Fn una lista de frmulas y Fi una frmula no literal. o Entonces: Si Fi = G se verica: u ( F1 , . . . , Fj1 , G, Fj+1 , ..., Fm ) <M u ( F1 , . . . , Fm ) Si F es una -frmula se verica: o u ( F1 , . . . , Fj1 , i , Fj+1 , ..., Fm ) <M u ( F1 , . . . , Fm ) para i = 1, 2 Si F es una -frmula se verica: o u ( F1 , . . . , Fj1 , 1 , 2 , Fj+1 , ..., Fm ) <M u ( F1 , . . . , Fm ) Para formalizar este resultado se usa la funcin forma-clausal-procesa-una, o , que se encarga de procesar una lista de frmulas con un elemento no literal, o aplicndole una de las reglas RF C 2 , RF C 3 y RF C 4 . a
194

(defthm medida-uniforme-Gamma-forma-clausal-procesa-una (implies (and (selecciona-no-literal Gamma) (member-equal N-Gamma (forma-clausal-procesa-una (selecciona-no-literal Gamma) Gamma))) (mul-e0-ord-< (medida-uniforme-Gamma N-Gamma) (medida-uniforme-Gamma Gamma))))

199

La funcin forma-clausal-procesa-una tambin utiliza de forma impl o e cita la regla RFC 1 al aadir las frmulas componentes. Puesto que entre las hiptesis n o o del teorema se arma la existencia de N-Gamma en el resultado devuelto por forma-clausal-procesa-una, podemos estar seguros de que a dicha lista de frmulas no se le ha aplicado, ni se puede, la regla RF C 1 . La prueba de este o teorema se obtiene fcilmente a partir de 53 . a Denicin 8.17 La medida uniforme de una lista de listas de frmulas o o 1 , . . . , n es el multiconjunto u ( 1 , . . . , n ) = { (1 ), . . . , u (n )} {u } La formalizacin de este concepto viene dada por la siguiente funcin: o o

200

Cap tulo 8. Procedimiento de Davis y Putnam


200

(defun medida-uniforme-S (S) (cond ((endp S) nil) (t (cons (medida-uniforme-Gamma (car S)) (medida-uniforme-S (cdr S))))))

Estas medidas se comparan con respecto a la extensin a multiconjuntos deo nida en 6.3 de la relacin de orden <M denida para multiconjuntos de ordinales. o Notaremos < M a esta extensin.La funcin que la formaliza, mul-mul-e0-ord-<, o o < y sus propiedades se obtienen al evaluar el siguiente evento: (defmul (MUL-E0-ORD-< MULTISET-EXTENSION-OF-E0-ORD-<-WELL-FOUNDED E0-ORDINALP-TRUE-LISTP MAP-E0-ORD-<-FN-E0-ORD X Y)) Teorema 8.18 Si 1 , . . . , n es una lista de listas de frmulas a la que se o puede aplicar alguna de las reglas RFC 1 , RFC 2 , RFC 3 o RFC 4 , y 1 , . . . , m es el resultado de aplicar dicha regla, entonces < u ( 1 , . . . , m ) < M u ( 1 , . . . , n ) y, por tanto, el algoritmo FC termina. Este teorema es automticamente generado al evaluar el evento 192 . Su a demostracin se obtiene gracias al teorema 199 . o A continuacin se muestra un ejemplo de cmo la medida uniforme de una o o lista de listas de frmulas disminuye al aplicar las reglas RFC 1 , RFC 2 , RFC 3 o o RFC 4 , para obtener una forma clausal para la frmula (p q). En la primera o columna se muestra la lista de listas de frmulas en cada paso, en la segunda o columna su medida uniforme y en la tercera, la regla aplicada de dicho paso. Lista de listas de frmulas o p q p q, p q p, p q , q, p q p, p , p, q , q, p q p, q , q, p q p, q , q, p q p, q , q, p , q, q p, q , q, p u 6 3, 5 0, 5 , 1, 5 0, 1 , 0, 2 , 1, 5 0, 2 , 1, 5 0, 0 , 1, 5 0, 0 , 1, 1 , 1, 2 0, 0 , 1, 1 Regla RF C 3 RF C 4 RF C 4 RF C 1 RF C 2 RF C 4 RF C 1

8.1. Clusulas y formas clausales a

201

Como se puede observar, en cada paso la medida de la lista de listas de frmulas se reduce, ya sea porque se elimina una de sus sublistas, o porque se o reemplaza una de ellas por una o varias sublistas menores que la original con respecto a <M , es decir en las que algn valor numrico de la eliminada se ha u e reemplazado por valores numricos menores. As en el primer paso la lista 6 se e reemplaza por 3, 5 en la que todos los valores numricos son menores que 6. En e el segundo caso se reemplaza la lista 3, 5 por las listas 0, 5 y 1, 5 , en las que el valor 3 se ha substituido respectivamente por 0 y 1, ambos menores, etc. 8.1.2.2 Propiedades de FC

Teorema 8.19 Si F P() entonces FC(F ) es una forma clausal (defthm forma-clausal-es-forma-clausal (implies (es-proposicional F) (es-forma-clausal (forma-clausal F))))
201

La prueba de este evento es inmediata puesto que cuando forma-clausal-aux termina, no quedan ms frmulas no literales por procesar y, por tanto, el resula o tado es una forma clausal. o Teorema 8.20 Si F P() entonces, para toda asignacin , el valor de FC(F ) en es igual al valor de F en . (defthm valor-forma-clausal-forma-clausal (implies (es-proposicional F) (equal (valor F sigma) (valor-forma-clausal (forma-clausal F) sigma))))
202

La prueba de este teorema requiere demostrar previamente resultados similares sobre las funciones forma-clausal-aux, forma-clausal-procesa-una, n a~ade-formula, a~ade-formulas y elimina-una. n Una consecuencia de este teorema es que, si disponemos de un procedimiento para decidir la satisfacibilidad de una forma clausal, podemos combinarlo con el algoritmo FC para obtener un procedimiento para decidir la satisfacibilidad de una frmula. En la seccin 8.2 se estudian dos procedimientos de decisin de o o o satisfacibilidad para formas clausales, para cada uno de ellos se demuestran los resultados de correccin y completitud con respecto al concepto de modelo de o una forma clausal. El teorema anterior nos asegura que la combinacin de estos o procedimientos con el algoritmo FC, proporciona un proceso correcto y completo de decisin de satisfacibilidad para frmulas. o o

202

Cap tulo 8. Procedimiento de Davis y Putnam

a Teorema 8.21 Si F P() entonces FC(F ) no contiene clusulas con literales complementarios. La prueba de este resultado es simple: en el valor devuelto por FC no puede haber clusulas con literales complementarios pues la regla RF C 1 las elimina. Paa ra formalizarlo utilizamos la funcin tiene-clausulas-con-complementarios, o que comprueba si en una forma clausal aparecen clusulas con literales complea mentarios. (defthm forma-clausal-no-tiene-clausulas-con-complementarios (implies (es-proposicional F) (not (tiene-clausulas-con-complementarios (forma-clausal F))))) (defun tiene-clausulas-con-complementarios (Fc) (cond ((endp Fc) nil) ((tiene-literales-complementarios (car Fc)) t) (t (tiene-clausulas-con-complementarios (cdr Fc)))))
203

Como consecuencia de este teorema se obtiene un procedimiento para decidir la validez de una frmula. Basta con aplicar a una frmula el algoritmo FC para o o obtener una forma clausal, si se obtiene la forma clausal vac entonces la frmula a o original es vlida. a Teorema 8.22 Sea F P() entonces F es vlida si y slo si FC(F ) es la forma a o clausal vac a. Demostracin: o Si F es una frmula vlida entonces, por el teorema 8.20, FC(F ) es una o a forma clausal vlida y, por la denicin de modelo de una forma clausal, todas a o las clusulas de FC(F ) son vlidas. Por el teorema 8.5 sabemos que una clusula a a a es vlida si y slo si tiene literales complementarios y, por el teorema 8.21, FC(F ) a o no tiene clusulas con literales complementarios. Por tanto FC(F ) es la forma a clausal vac a. Supongamos que FC(F ) es la forma clausal vac Por la denicin de modelo a. o de una forma clausal sabemos que la forma clausal vac es vlida y por el teorema a a 8.20 que FC(F ) y F tienen el mismo valor en cualquier asignacin. Por tanto, F o es vlida. a

La formalizacin de este teorema es la siguiente: o

8.1. Clusulas y formas clausales a (defthm correccion-validez-forma-clausal (implies (and (es-proposicional F) (equal (forma-clausal F) nil)) (modelo sigma F))) (defthm completitud-validez-forma-clausal (implies (and (es-proposicional F) (forma-clausal F)) (not (modelo (contramodelo-clausula (car (forma-clausal F))) F))))

203
204

Obsrvese que en el resultado de completitud hemos utilizado la funcin e o contramodelo-clausula para obtener un contramodelo de una frmula cuano do al aplicar sobre ella el algoritmo FC no obtenemos la forma clausal vac a.

8.1.3

Clusulas y formas clausales en K a

Los conceptos de clusula y forma clausal se denen de la misma forma en la a semntica de Kleene que en la semntica clsica. Las clusulas se interpretan a a a a como la disyuncin en K de los literales que las forman y las formas clausales o como la conjuncin en K de las clusulas que las forman. o a Denicin 8.23 El valor de una clusula L1 , . . . , Ln en una K-asignacin es: o a o a K ( L1 , . . . , Ln ) = K (K (L1 ), K (. . . K (K (Ln1 ), K (Ln )) . . . )). Una clusula C es vlida en K o K-vlida, si para toda K-asignacin , el valor de C en es o a a o . o a Una K-asignacin es modelo de una clusula C, y lo notaremos |=K C, si y slo si es modelo de algn literal de C. o u El valor de una clusula en una K-asignacin se determina en la formalizacin a o o a con la funcin valor-clausula-K. El concepto de modelo en K de una clusula se o formaliza con la funcin modelo-clausula-K. Ambas funciones se denen como o en el caso clsico pero utilizando las funciones valor-K y modelo-K en lugar de a valor y modelo. Tambin se verica que una K-asignacin es modelo de una e o clusula si y slo si el valor de la clusula en dicha K-asignacin es . a o a o Teorema 8.24 Una clusula es vlida en K si y slo si contiene literales coma a o plementarios. Este teorema hace referencia al concepto de validez en K que, como en el caso clsico, no podemos denir. Para formalizarlo, tenemos en cuenta las oba servaciones hechas en la seccin 3.3.4, acerca del concepto de K-validez de una o frmula. o

204

Cap tulo 8. Procedimiento de Davis y Putnam


205

(defthm tiene-literales-complementarios-es-clausula-valida (implies (and (tiene-literales-complementarios C) (valor-clausula-K C sigma) (es-clausula C)) (modelo-clausula-K sigma C))) (defthm clausula-valida-tiene-literales-complementarios (implies (and (not (tiene-literales-complementarios C)) (es-clausula C)) (not (modelo-clausula-K (contramodelo-clausula C) C))))

Denicin 8.25 El valor de una forma clausal C1 , . . . , Cn en una K-asignacin o o es: K ( C1 , . . . , Cn ) = K (K (C1 ), K (. . . K (K (Cn1 ), K (Cn )) . . . )). Una a forma clausal S es vlida en K o K-vlida, si para toda K-asignacin , el valor a o de S en es o . Una K-asignacin es modelo en K de una forma clausal S, y lo notaremos o |=K S, si y slo si es modelo en K de todas las clusulas de S. Una forma o a clausal S es satisfacible en K o K-satisfacible, si existe una K-asignacin tal o que |=K S. El valor de una forma clausal en una K-asignacin se determina mediante o la funcin valor-forma-clausal-K, que se dene de igual forma que en el cao so clsico pero utilizando valor-clausula-K en lugar de valor-clausula. La a funcin modelo-forma-clausal-K formaliza el concepto de modelo en K de una o forma clusula, su denicin es igual a la correspondiente en la lgica clsica a o o a pero utilizando modelo-clausula-K en lugar de modelo-clausula. Tambin se e o o verica que una K-asignacin es modelo de una forma clausal si y slo si el valor de la forma clausal en dicha K-asignacin es . o El algoritmo de transformacin a forma clausal es aplicable en el caso de la o semntica de Kleene y mantiene sus propiedades, entre las que destacamos dos: a o 1. El algoritmo FC construye formas clausales lgicamente equivalentes a la frmula original: Si F P() entonces, para toda K-asignacin , el valor o o de FC(F ) en es igual al valor de F en . (defthm valor-forma-clausal-K-forma-clausal (implies (es-proposicional F) (equal (valor-K F sigma) (valor-forma-clausal-K (forma-clausal F) sigma))))
206

8.2. Davis y Putnam

205

2. El algoritmo FC proporciona un procedimiento para decidir la validez en K de una frmula: Sea F P() entonces F es K-vlida si y slo si FC(F ) o a o es la forma clausal vac a. (defthm correccion-validez-forma-clausal (implies (and (es-proposicional F) (equal (forma-clausal F) nil) (valor-K F sigma)) (modelo-K sigma F))) (defthm completitud-validez-forma-clausal (implies (and (es-proposicional F) (forma-clausal F)) (not (modelo-K (contramodelo-clausula (car (forma-clausal F))) F)))) De nuevo hemos utilizado la funcin contramodelo-clausula para obtener o un contramodelo en K de la frmula F. o
207

8.2

Davis y Putnam

En esta seccin presentamos el procedimiento de Davis y Putnam como un mtodo o e para decidir la satisfacibilidad de formas clausales. Para determinar la satisfacibilidad de una frmula F , aplicaremos este procedimiento a la forma clausal o obtenida al evaluar el algoritmo FC sobre F . El procedimiento consiste en aplicar repetidamente reglas de transformacin a una forma clausal. Dichas reglas o preservan la satisfacibilidad. Si como consecuencia de aplicarlas se obtiene la forma clausal vac entonces la forma clausal original es satisfacible. Si, a lo lara, go del proceso, todas las formas clausales obtenidas contienen la clusula vac a a, entonces la forma clausal original es insatisfacible. En esta seccin no presentamos ningn procedimiento para decidir la validez o u de una frmula basado en el de Davis y Putnam, esto se debe a que utilizamos el o algoritmo FC para obtener una forma clausal asociada a una frmula y, como se o ha visto en la seccin anterior, este algoritmo sirve para caracterizar las frmulas o o vlidas. a En la primera parte de esta seccin se analizan las reglas de transformacin o o en las que se basa el procedimiento de Davis y Putnam y se demuestran sus propiedades. Estas transformaciones son: eliminacin de clusulas con literales o a complementarios, bifurcacin, eliminacin de clusulas unitarias y eliminacin de o o a o literales puros. Utilizando estas reglas de transformacin presentamos dos algoo ritmos que permiten decidir la satisfacibilidad de una forma clausal. El primero de ellos se basa unicamente en la regla de bifurcacin. El segundo utiliza las o

206

Cap tulo 8. Procedimiento de Davis y Putnam

reglas de bifurcacin, eliminacin de clusulas unitarias y eliminacin de literales o o a o puros y se desarrolla como un renamiento del primero. La regla de eliminacin o de clusulas con literales complementarios no es utilizada para formalizar estos a algoritmos, ya que, si se utiliza el procedimiento FC para calcular la forma clausal asociada a una frmula, entonces dicha forma clausal no tiene clusulas con liteo a rales complementarios. Finalmente, se comenta cmo estos algoritmos se pueden o utilizar en la semntica de Kleene y se indican las principales diferencias con los a de la semntica clsica. Los eventos relativos a las semntica clsica se encuena a a a a tran en el libro davis-putnam.lisp y los relativos a la semntica de Kleene en el libro davis-putnam-K.lisp.

8.2.1

Transformaciones de formas clausales

Como se ha comentado antes, el procedimiento de Davis y Putnam consiste en aplicar reglas de transformacin a formas clausales. Veamos a continuacin cules o o a son estas reglas y qu propiedades tienen. e

8.2.1.1

Eliminacin de clusulas con literales complementarios o a

La primera transformacin consiste en eliminar las clusulas con literales como a plementarios. Estas clusulas son vlidas, por tanto, son prescindibles a la hora a a de comprobar si una asignacin es modelo de una forma clausal. Esta idea est o a reejada en el siguiente teorema:

Teorema 8.26 Dada una forma clausal S, si S es el resultado de eliminar de S todas las clusulas con literales complementarios, entonces dada una asignacin a o , |= S si y slo si |= S . o

Hemos denido la funcin elimina-clausulas-con-complementarios para o implementar el proceso de eliminacin de las clusulas con literales complemeno a tarios. Una vez hecho esto podemos formalizar este teorema.

8.2. Davis y Putnam (defthm elimina-clausulas-con-complementarios-preserva-modelos (implies (es-forma-clausal Fc) (iff (modelo-forma-clausal sigma (elimina-clausulas-con-complementarios Fc)) (modelo-forma-clausal sigma Fc))))

207
208

(defun elimina-clausulas-con-complementarios (Fc) (cond ((endp Fc) nil) ((tiene-literales-complementarios (car Fc)) (elimina-clausulas-con-complementarios (cdr Fc))) (t (cons (car Fc) (elimina-clausulas-con-complementarios (cdr Fc))))))

El proceso de eliminacin de clusulas con literales complementarios es un pao a so preliminar al resto de las reglas del procedimiento de Davis y Putnam, ya que, cuando estas reglas son aplicadas a una forma clausal en la que no hay clusulas a con literales complementarios, no se generan nuevas clusulas con literales coma plementarios. Como veremos ms adelante, esta transformacin no es necesaria a o para implementar un procedimiento de decisin de satisfacibilidad para formas o clausales. Una propiedad importante de esta transformacin es que sirve para caracteo rizar las formas clausales vlidas. a

Teorema 8.27 Sea S una forma clausal entonces, S es vlida si y slo si al a o eliminar de S todas las clusulas con literales complementarios se obtiene la a forma clausal vac a.

La demostracin de este teorema se debe a que una forma clausal es vlida o a si y slo si todas las clusulas que la forman tambin lo son y, por el teorema o a e 8.5, esto ocurre si y slo si contienen literales complementarios. Por tanto, si o eliminamos todas las clusulas con literales complementarios, quedar la forma a a clausal vac a. Este teorema se formaliza con los siguientes eventos:

208

Cap tulo 8. Procedimiento de Davis y Putnam


209

(defthm elimina-clausulas-con-complementarios-nil-fc-valida (implies (and (es-forma-clausal Fc) (equal (elimina-clausulas-con-complementarios Fc) nil)) (modelo-forma-clausal sigma Fc))) (defthm fc-valida-elimina-clausulas-con-complementarios-nil (implies (and (es-forma-clausal Fc) (not (equal (elimina-clausulas-con-complementarios Fc) nil))) (not (modelo-forma-clausal (contramodelo-clausula (car (elimina-clausulas-con-complementarios Fc))) Fc))))

La prueba de estos resultados se obtiene a partir de las propiedades que caracterizan las clusulas vlidas, mostradas en 185 . a a

8.2.1.2

Reduccin de una forma clausal por un literal o

El resto de las reglas de transformacin del procedimiento de Davis y Putnam se o basan en el proceso de reduccin de una forma clausal por un literal. De forma o intuitiva, este proceso reduce todo lo posible una forma clausal, asumiendo que un determinado literal es cierto:

a Denicin 8.28 Sean S un conjunto de clusulas y L un literal. La reduccin o o a / de S por L es el conjunto SL = {C {L} : C S y L C}. Anlogamente, la reduccin de S por L es el conjunto SL = {C {L} : C S y L C}. o /

Por comodidad a la hora de expresar determinados eventos, hemos utilizado dos funciones para implementar el proceso de reduccin de una forma clausal por o un literal. La primera, reduce-forma-clausal-literal, sirve para obtener SL , la otra, reduce-forma-clausal-literal-C, para obtener SL .

8.2. Davis y Putnam (defun reduce-forma-clausal-literal (L Fc) (cond ((endp Fc) nil) ((member-equal L (car Fc)) (reduce-forma-clausal-literal L (cdr Fc))) (t (cons (elimina-literal (complementario L) (car Fc)) (reduce-forma-clausal-literal L (cdr Fc))))))

209
210

(defun reduce-forma-clausal-literal-C (L Fc) (cond ((endp Fc) nil) ((member-equal (complementario L) (car Fc)) (reduce-forma-clausal-literal-C L (cdr Fc))) (t (cons (elimina-literal L (car Fc)) (reduce-forma-clausal-literal-C L (cdr Fc)))))) (defun elimina-literal (L C) (cond ((endp C) C) ((equal L (car C)) (elimina-literal L (cdr C))) (t (cons (car C) (elimina-literal L (cdr C))))))

Existe una relacin entre estas funciones que resulta de utilidad a la hora de o establecer algunos eventos: el resultado de evaluar la primera de ellas sobre el complementario de un literal L es igual al resultado devuelto por la segunda. El evento que formaliza esta propiedad es el siguiente:

(defthm reduce-forma-clausal-literal-C-equivalente (implies (es-literal L) (equal (reduce-forma-clausal-literal-C L Fc) (reduce-forma-clausal-literal (complementario L) Fc))))

211

Como se ha comentado antes, si el proceso de reduccin de una forma clausal o por un literal es aplicado a una forma clausal en la que no haya clusulas con a literales complementarios, el resultado tampoco las tiene. La formalizacin de o este hecho utiliza la funcin tiene-clausulas-con-complementarios que como prueba si una forma clausal tiene clusulas con literales complementarios: a

210

Cap tulo 8. Procedimiento de Davis y Putnam


212

(defthm reduce-fc-literal-sin-clausulas-con-complementarios (implies (not (tiene-clausulas-con-complementarios Fc)) (not (tiene-clausulas-con-complementarios (reduce-forma-clausal-literal L Fc))))) (defthm reduce-fc-literal-C-sin-clausulas-con-complementarios (implies (not (tiene-clausulas-con-complementarios Fc)) (not (tiene-clausulas-con-complementarios (reduce-forma-clausal-literal-C L Fc))))) (defun tiene-clausulas-con-complementarios (Fc) (cond ((endp Fc) nil) ((tiene-literales-complementarios (car Fc)) t) (t (tiene-clausulas-con-complementarios (cdr Fc)))))

El siguiente teorema establece la idea intuitiva de que SL es el resultado de reducir todo lo posible una forma clausal S asumiendo que un literal L es cierto: Teorema 8.29 Sea S una forma clausal y L un literal. 1. Si |= S y |= L entonces |= SL . 2. Si |= SL entonces [L/ ] |= S. Demostracin: o Sean S una forma clausal y L un literal, 1. Supongamos que |= S y |= L, para demostrar que |= SL basta con probar que es modelo de cualquier elemento de SL . Dada C SL , existe C S tal que C = C {L}. Como |= L entonces |= L, por tanto es modelo de un literal de C distinto de L, luego |= C {L} = C . 2. Supongamos que |= SL , para demostrar que [L/ ] |= S basta con probar que [L/ ] es modelo de cualquier elemento de S. Dada C S: Si L C entonces [L/ ] |= C, puesto que, por el teorema 8.7, [L/ ] es modelo de L. / Si L C entonces C {L} SL y por tanto |= C {L}. Como L, L C {L}, entonces existe un literal L C tal que L = L, / L = L y |= L , luego, por el teorema 8.7, [L/ ] |= L , y de aqu que [L/ ] |= C.

La formalizacin de este resultado para reduce-forma-clausal-literal es o la siguiente:

8.2. Davis y Putnam (defthm completitud-reduce-forma-clausal-literal (implies (and (modelo-forma-clausal sigma Fc) (modelo sigma L) (es-literal L)) (modelo-forma-clausal sigma (reduce-forma-clausal-literal L Fc)))) (defthm correccion-reduce-forma-clausal-literal (implies (and (es-literal L) (es-forma-clausal Fc) (modelo-forma-clausal sigma (reduce-forma-clausal-literal L Fc))) (modelo-forma-clausal (asume-literal L sigma) Fc))) Obsrvese que el teorema es igualmente cierto para el literal L, es decir: e 1. Si |= S y |= L entonces |= SL . 2. Si |= SL entonces [L/ ] |= S. En este caso la formalizacin es la siguiente: o (defthm completitud-reduce-forma-clausal-literal-C (implies (and (modelo-forma-clausal sigma Fc) (not (modelo sigma L)) (es-literal L)) (modelo-forma-clausal sigma (reduce-forma-clausal-literal-C L Fc)))) (defthm correccion-reduce-forma-clausal-literal-C (implies (and (es-literal L) (es-forma-clausal Fc) (modelo-forma-clausal sigma (reduce-forma-clausal-literal-C L Fc))) (modelo-forma-clausal (asume-literal (complementario L) sigma) Fc))) 8.2.1.3 Regla de bifurcacin o

211
213

214

La regla de bifurcacin consiste en dividir una forma clausal S en dos, en funcin o o de si un literal L es cierto o falso. Para cada una de estas dos posibilidades se consideran, respectivamente, los conjuntos SL y SL . En este caso diremos que se ha aplicado la regla de bifurcacin en el literal L. La satisfacibilidad de S o quedar garantizada si al menos uno de los dos conjuntos es satisfacible. a

212

Cap tulo 8. Procedimiento de Davis y Putnam

Teorema 8.30 Sea S una forma clausal y L un literal, entonces S es satisfacible si y slo si SL o SL tambin lo es. o e Demostracin: o Supongamos que S es satisfacible. Sea una asignacin modelo de S. Si o |= L entonces, por el teorema 8.29-1, [L/ ] es modelo de SL . Si |= L entonces |= L y, de nuevo por el teorema 8.29-1, [L/ ] es modelo de SL . Luego SL o SL es satisfacible. Supongamos ahora que SL es satisfacible. Sea una asignacin modelo de o SL . Por el teorema 8.29-2, [L/ ] |= S, luego S es satisfacible. Supongamos nalmente que SL es satisfacible. Sea una asignacin modelo o de SL . Por el teorema 8.29-2, [L/ ] |= S, luego S es satisfacible. La formalizacin de este teorema consiste en los eventos mostrados en 213 y o 214 . Como se ver en la seccin 8.2.2, la regla de bifurcacin por s sola es suciente a o o para decidir la satisfacibilidad de una forma clausal. La forma de actuar de esta regla es similar a la de las tablas de verdad: se analizan las dos situaciones que surgen al asignarle un valor de verdad a cada variable. Sin embargo, en determinadas ocasiones no es necesario analizar las dos posibilidades a las que da lugar la regla de bifurcacin, ya que una de las dos, o es insatisfacible, o su o satisfacibilidad es consecuencia de la satisfacibilidad de la otra posibilidad. 8.2.1.4 Eliminacin de clusulas unitarias o a

La regla de eliminacin de clusulas unitarias es un caso particular de la regla de o a bifurcacin, en el que una de las dos formas clausales obtenidas es insatisfacible o y, por tanto, se puede prescindir de su anlisis. a a Denicin 8.31 Una clusula C es unitaria si contiene un unico elemento. o (defun clausula-unitaria (C) (and (consp C) (not (consp (elimina-literal (car C) C)))))
215

Si la clusula unitaria C = {L} est en una forma clausal S, entonces el a a a a conjunto SL contiene la clusula vac y, por el teorema 8.12 es insatisfacible. Luego, al aplicar la regla de bifurcacin en L, se puede prescindir del anlisis de o a una de las dos formas clausales obtenidas. En esta situacin la satisfacibilidad o de S quedar garantizada si SL es satisfacible. a Teorema 8.32 Sea S una forma clausal y C = {L} una clusula de S, entonces a S es satisfacible si y slo si SL tambin lo es. o e

8.2. Davis y Putnam

213

Demostracin: o Por el teorema 8.30 S es satisfacible si y slo si SL o SL tambin lo es. Como o e C = {L} es una clusula unitaria de S, entonces C {L} = SL y, por el a o e teorema 8.12, SL es insatisfacible. Luego S es satisfacible si y slo si SL tambin lo es.

En la formalizacin, slo hemos necesitado aadir un evento armando que o o n la reduccin de una forma clausal por el complementario de un literal de una o clusula unitaria, contiene la clusula vac a a a: (defthm reduce-fc-literal-C-clausula-unitaria-contiene-nula (implies (and (member-equal C Fc) (clausula-unitaria C) (member-equal L C)) (contiene-clausula-vacia (reduce-forma-clausal-literal-C L Fc)))) 8.2.1.5 Eliminacin de literales puros o
216

La regla de eliminacin de literales puros es otro caso particular de la regla de o bifurcacin, en el que se puede prescindir del anlisis de una de las dos formas o a clausales obtenidas. En este caso la satisfacibilidad de una de ellas conlleva la satisfacibilidad de la otra y, por tanto, slo ser necesaria analizar la segunda. o a Denicin 8.33 Dada una forma clausal S, un literal puro en S es un literal o cuyo complementario no aparece en ninguna clusula de S. a La funcin es-literal-puro formaliza este concepto. Para ello hemos utilio zado la funcin literal-en-forma-clausal que comprueba si un literal aparece o en alguna clusula de una forma clausal. a (defun es-literal-puro (L Fc) (not (literal-en-forma-clausal (complementario L) Fc))) (defun literal-en-forma-clausal (L Fc) (cond ((endp Fc) nil) (t (or (member-equal L (car Fc)) (literal-en-forma-clausal L (cdr Fc)))))) Teorema 8.34 Si L es un literal puro en S, entonces SL SL .
217

214

Cap tulo 8. Procedimiento de Davis y Putnam

Demostracin: o Dado C SL , existe C S tal que L C y C = C {L}. Como L es / un literal puro en S, L no puede aparecer en C , luego C = C y L, L C. Por / tanto C {L} = C SL .

La formalizacin de este resultado es la siguiente: o (defthm reduce-forma-clausal-literal-C-literal-puro (implies (es-literal-puro L Fc) (subsetp-equal (reduce-forma-clausal-literal L Fc) (reduce-forma-clausal-literal-C L Fc))))
218

Teorema 8.35 Sean S y S dos formas clausales tales que S S . Para toda asignacin , si |= S entonces |= S. o Este resultado es trivial a partir del concepto de modelo de una forma clausal. Su formalizacin es la siguiente: o (defthm modelo-forma-clausal-subsetp-equal (implies (and (subsetp-equal Fc-1 Fc-2) (modelo-forma-clausal sigma Fc-2)) (modelo-forma-clausal sigma Fc-1)))
219

Los dos resultados anteriores permiten prescindir del anlisis de SL al aplicar a la regla de bifurcacin a un literal L puro en la forma clausal S. o Teorema 8.36 Sea S una forma clausal y L un literal puro en S, entonces S es e satisfacible si y slo si SL tambin lo es. o Demostracin: o Supongamos que S es satisfacible, entonces, por el teorema 8.30, SL o SL es satisfacible. Si SL es satisfacible entonces, por el teorema 8.35, SL tambin lo es e pues SL SL (teorema 8.34). Por tanto, en cualquier caso SL es satisfacible. Si SL es satisfacible entonces, por el teorema 8.30, se tiene que S tambin lo e es.

No ha sido necesario aadir ningn evento formalizando este resultado, es n u suciente con los mostrados en 218 y 219 .

8.2. Davis y Putnam

215

8.2.2

Decisin de satisfacibilidad por bifurcacin: SATB o o

A continuacin desarrollamos un algoritmo para decidir la satisfacibilidad de una o forma clausal basado unicamente en la regla de bifurcacin. En cada paso se toma o un literal que aparezca en alguna clusula de una forma clausal y se consideran a las dos situaciones que se pueden dar, en funcin de si ese literal es cierto o falso. o Si se realiza este proceso para todos los literales que aparezcan en alguna clusula a de una forma clausal, estaremos analizando todas las asignaciones denidas en el conjunto de variables que aparecen en dicha forma clausal; es decir, estaremos desarrollando un proceso similar al basado en tablas de verdad. De aqu que el resultado sea un procedimiento de decisin de satisfacibilidad. o Puesto que las reglas de eliminacin de clusulas unitarias y de literales puros o a son casos particulares de la regla de bifurcacin, los resultados de correccin o o y completitud para el procedimiento de Davis y Putnam se obtendrn como a instancias de los mismos resultados para el procedimiento basado en bifurcacin. o Algoritmo 8.37 (SATB ) El dato de entrada de este algoritmo es una forma clausal S, y acta como se describe a continuacin: u o 1. Si S contiene la clusula vac el algoritmo termina y devuelve f . a a, a 2. Se selecciona un literal L que aparezca en alguna clusula de S. A contiu nuacin se evala el algoritmo sobre SL y, si devuelve f , entonces se evala o u sobre SL . 3. Si no se puede escoger un literal L que aparezca en alguna clusula de S, a a a, es decir, S est vac entonces el algoritmo termina y devuelve t. Este algoritmo no est completamente determinado puesto que no se indica a cmo se escoge el literal L. Para resolver esta indeterminacin hemos considerado o o una funcin seleccion que escoge un literal de una de las clusulas de S. Si S o a est vac devuelve nil. Se ha asumido la existencia de esta funcin en un a a o encapsulado ACL2, caracterizndola por las propiedades: a o Si la funcin seleccion devuelve un valor, entonces dicho valor es un literal. Si (seleccion Fc) devuelve un valor, entonces dicho valor aparece en alguna clusula de Fc. a Si la forma clausal Fc tiene alguna clusula no vac a a, entonces u (seleccion Fc) devuelve algn valor. La formalizacin de estas propiedades es la siguiente: o

216

Cap tulo 8. Procedimiento de Davis y Putnam


220

(defthm seleccion-esta-en-conjunto (implies (seleccion Fc) (literal-en-forma-clausal (seleccion Fc) Fc))) (defthm seleccion-es-literal (implies (and (es-forma-clausal Fc) (seleccion Fc)) (es-literal (seleccion Fc)))) (defthm seleccion-existe (implies (and (es-forma-clausal Fc) (consp Fc) (consp (car Fc))) (seleccion Fc))) La funcin que implementa el algoritmo SATB es la siguiente: o (defun SAT-bifurcacion (Fc) (declare (xargs :measure (medida-forma-clausal Fc))) (if (contiene-clausula-vacia Fc) nil (let ((L (seleccion Fc))) (if L (or (SAT-bifurcacion (reduce-forma-clausal-literal L Fc)) (SAT-bifurcacion (reduce-forma-clausal-literal-C L Fc))) t))))

221

Para una funcin de seleccin concreta, por ejemplo la que devuelve el primer o o literal de la primera clusula no vac de una forma clausal, podemos utilizar la a a funcin anterior para determinar la satisfacibilidad de un conjunto de clusulas. o a Si la forma clausal es satisfacible, la funcin devuelve T, en caso contrario devuelve o nil. ACL2 !>(SAT-bifurcacion ( (p q) ((- p) (- q)) )) T ACL2 !>(SAT-bifurcacion ( (q) ((- p) (- q)) (p (- q)) )) NIL
222

En el primer caso la forma clausal p, q , p, q es satisfacible (un modelo es cualquier asignacin en la que p sea cierta y q falsa). En el segundo caso, la o forma clausal q , p, q , p, q es insatisfacible.

8.2. Davis y Putnam

217

Para que la funcin SAT-bifurcacion sea admitida por ACL2, se ha de deo mostrar que termina para cualquier dato de entrada. Para ello hemos proporcionado una medida de su argumento, medida-forma-clausal que decrece en las llamadas recursivas. u Denicin 8.38 La longitud de una forma clausal, l(S), es la suma del nmero o de literales que aparecen en las clusulas que la forman. a La funcin medida-forma-clausal formaliza este concepto. Para ello se utio u liza la funcin len que devuelve el nmero de elementos de una lista: o (defun medida-forma-clausal (Fc) (cond ((endp Fc) 0) (t (+ (len (car Fc)) (medida-forma-clausal (cdr Fc))))))
223

Teorema 8.39 Sean S una forma clausal y L un literal que aparece en alguna clusula de S entonces l(SL ), l(SL ) < l(S). a Los eventos que formalizan este teorema son los siguientes: (defthm reduce-forma-clausal-literal-disminuye-medida (implies (literal-en-forma-clausal L Fc) (< (medida-forma-clausal (reduce-forma-clausal-literal L Fc)) (medida-forma-clausal Fc)))) (defthm reduce-forma-clausal-literal-C-disminuye-medida (implies (literal-en-forma-clausal L Fc) (< (medida-forma-clausal (reduce-forma-clausal-literal-C L Fc)) (medida-forma-clausal Fc)))) Teorema 8.40 (Completitud de SATB ) Dada una forma clausal S, si S es satisfacible entonces SATB (S) = t. Demostracin: o La prueba se desarrolla por induccin en el nmero total de literales que o u aparecen en las clusulas de S. a a Si l(S) = 0 y S es satisfacible entonces S no puede contener la clusula vac y no se puede seleccionar ningn literal de una clusula de S, por a u a tanto SATB (S) = t.
224

218

Cap tulo 8. Procedimiento de Davis y Putnam

Supongamos que para toda forma clausal S satisfacible tal que l(S ) < l(S), a se tiene SATB (S ) = t. Si S es satisfacible entonces no contiene la clusula vac Consideremos L un literal cualquiera que aparezca en una clusula a. a de S. e Como S es satisfacible, por el teorema 8.30 se tiene que SL o SL tambin lo es. Por el teorema 8.39 se tiene que l(SL ), l(SL ) < l(S). Luego, por la hiptesis de induccin, SATB (SL ) = t o SATB (SL ) = t, es decir alguno de o o e los dos casos del punto 2 de la descripcin del algoritmo SATB tiene xito, o por tanto, SATB (S) = t. La formalizacin de este teorema es la siguiente: o (defthm completitud-SAT-bifurcacion (implies (and (modelo-forma-clausal sigma Fc) (es-forma-clausal Fc)) (SAT-bifurcacion Fc)))
225

La demostracin de este resultado en ACL2 se obtiene fcilmente o a a partir de los eventos completitud-reduce-forma-clausal-literal y completitud-reduce-forma-clausal-literal-C, mostrados respectivamente en 213 y 214 . Teorema 8.41 (Correccin de SATB ) Dada o SATB (S) = t entonces S es satisfacible. una forma clausal S, si

Demostracin: o La prueba se desarrolla por induccin en el nmero total de literales que o u aparecen en las clusulas de S. a Si l(S) = 0 y SATB (S) = t, entonces S es la forma clausal vac que es a, cierta en cualquier asignacin. Luego S es satisfacible. o Supongamos que toda forma clausal S tal que l(S ) < l(S) y SATB = t, es satisfacible. Puesto que SATB (S) = t, entonces S no contiene la clusula a a vac Como l(S) > 0, existe un literal L en una clusula de S. Como a. SATB (S) = t, entonces SATB (SL ) = t o SATB (SL ) = t. Si SATB (SL ) = t entonces, por hiptesis de induccin se tiene que SL es o o satisfacible, ya que l(SL ) < l(S) por el teorema 8.39. Por tanto, el teorema 8.30 asegura que S es satisfacible. o o Si SATB (SL ) = t entonces, por hiptesis de induccin se tiene que SL es satisfacible, ya que l(SL ) < l(S) por el teorema 8.39. Por tanto, el teorema 8.30 asegura que S es satisfacible.

8.2. Davis y Putnam

219

Al igual que ocurre con los resultados de correccin de los procedimientos o de decisin de satisfacibilidad de una frmula (seccin 3.2.4), para formalizar o o o este teorema se necesita proporcionar expl citamente una asignacin modelo de o la forma clausal. La funcin que construye dicho modelo es MOD-bifurcacion. o Esta funcin acta exactamente igual que SAT-bifurcacion, pero tiene un aro u gumento adicional donde se va construyendo una asignacin, en la que todos los o literales por los que se ha hecho alguna reduccin son ciertos. Cuando la funcin o o o MOD-bifurcacion termina devuelve dicha asignacin.
226

(defun MOD-bifurcacion (Fc sigma) (declare (xargs :measure (medida-forma-clausal Fc))) (if (contiene-clausula-vacia Fc) nil (let ((L (seleccion Fc))) (if L (or (MOD-bifurcacion (reduce-forma-clausal-literal L Fc) (asume-literal L sigma)) (MOD-bifurcacion (reduce-forma-clausal-literal-C L Fc) (asume-literal (complementario L) sigma))) sigma))))

Al igual que SAT-bifurcacion, esta funcin puede ser evaluada una vez se o proporciona una funcin de seleccin concreta. En los siguientes ejemplos se ha o o usado la funcin de seleccin que devuelve el primer literal de la primera clusula o o a no vac de una forma clausal. a
227

ACL2 !>(MOD-bifurcacion ( (p q) ((- p) (- q)) ) nil) ((Q 0) (P 1)) ACL2 !>(MOD-bifurcacion ( (q) ((- p) (- q)) (p (- q)) ) nil) NIL

En el primer caso la forma clausal p, q , p, q es satisfacible y un modelo es cualquier asignacin en la que p sea cierto y q falso. En el segundo caso, la forma o clausal q , p, q , p, q es insatisfacible y, por tanto, no tiene modelos. Esta funcin guarda una relacin obvia con la funcin SAT-bifurcacion: o o o MOD-bifurcacion devuelve un valor distinto de nil si y slo si SAT-bifurcacion o tambin lo hace. e

220

Cap tulo 8. Procedimiento de Davis y Putnam


228

(defthm SAT-bifurcacion-MOD-bifurcacion (implies (consp sigma) (iff (MOD-bifurcacion Fc sigma) (SAT-bifurcacion Fc))))

Gracias a esta relacin y a otras propiedades que relacionan las funciones o asume-literal y MOD-bifurcacion, se demuestra el siguiente evento que formaliza el teorema de correccin de SATB : o (defthm correccion-SAT-bifurcacion (implies (and (es-forma-clausal Fc) (SAT-bifurcacion Fc)) (modelo-forma-clausal (MOD-bifurcacion Fc sigma) Fc)))
229

8.2.3 Decisin de satisfacibilidad por Davis-Putnam: SATD o


El procedimiento de Davis y Putnam combina las reglas de transformacin moso tradas en la seccin 8.2.1, para decidir la satisfacibilidad de una forma clausal. La o regla de eliminacin de clusulas con literales complementarios es utilizada una o a unica vez, al comienzo del proceso, ya que el resto de las reglas de transformacin o no genera nuevas clusulas con literales complementarios. Como se ha visto en la a seccin anterior, esta regla no es necesaria para decidir la satisfacibilidad de una o forma clausal. El algoritmo que presentamos basado en el procedimiento de Davis y Putnam utiliza unicamente las reglas de eliminacin de clusulas unitarias, eliminacin o a o de literales puros y bifurcacin, dando prioridad a las dos primeras frente a la o ultima, para as disminuir el nmero de ramicaciones. u Algoritmo 8.42 (SATD ) El dato de entrada de este algoritmo es una forma clausal S, y acta como se describe a continuacin: u o 1. Si S contiene la clusula vac el algoritmo termina y devuelve f . a a, 2. Si S contiene clusulas unitarias, se selecciona una de ellas C = {L} y se a evala el algoritmo sobre SL . u 3. Si S tiene literales puros, se selecciona uno de ellos L y se evala el algoritmo u sobre SL . a 4. En otro caso, se selecciona un literal L que aparezca en alguna clusula de o u S. A continuacin se evala el algoritmo sobre SL y, si devuelve f , entonces se evala sobre SL . u

8.2. Davis y Putnam

221

5. Si no se puede escoger un literal L que aparezca en alguna clusula de S, a es decir, S est vac entonces el algoritmo termina y devuelve t. a a, Teorema 8.43 Dada una forma clausal S, SATD (S) = t si y slo si S es satiso facible. Demostracin: o o o Este algoritmo es equivalente a SATB para una funcin de seleccin que, en primer lugar busca literales en clusulas unitarias, si no los encuentra busca a literales puros y en otro caso devuelve un literal cualquiera: a Si el literal escogido pertenece a una clusula unitaria, por el teorema 8.32 sabemos que S es satisfacible si y slo si lo es SL y, por tanto, no hay que o evaluar el algoritmo sobre SL . Si el literal escogido es puro, por el teorema 8.36 sabemos que S es satisfacible si y slo si lo es SL y, por tanto, tampoco hay que evaluar el algoritmo o sobre SL . En otro caso el algoritmo SATD funciona igual que SATB . De esta forma, por los teoremas de correccin y completitud de SATB , se tiene o o que SATD (S) = t si y slo si S es satisfacible.

La funcin de seleccin mencionada en la demostracin del teorema es la o o o siguiente:


230

(defun seleccion-instancia (Fc) (let ((C (busca-clausula-unitaria Fc))) (if C (car C) (let ((L (busca-literal-puro Fc))) (or L (if (endp Fc) nil (seleccion Fc)))))))

a Donde busca-clausula-unitaria devuelve la primera clusula unitaria de la forma clausal Fc y busca-literal-puro el primer literal puro en Fc.

222

Cap tulo 8. Procedimiento de Davis y Putnam

Esta funcin tiene las propiedades formalizadas en 220 y por tanto el algoo ritmo SATB construido a partir de ella conserva las propiedades de correccin y o completitud. La versin de la funcin que implementa SATB para la funcin de o o o seleccin seleccion-instancia es: o (defun SAT-bifurcacion-instancia (Fc) (declare (xargs :measure (medida-forma-clausal Fc))) (if (contiene-clausula-vacia Fc) nil (let ((L (seleccion-instancia Fc))) (if L (or (SAT-bifurcacion-instancia (reduce-forma-clausal-literal L Fc)) (SAT-bifurcacion-instancia (reduce-forma-clausal-literal-C L Fc))) t))))
231

De manera anloga, construimos la funcin MOD-bifurcacion-instancia coa o mo un caso particular de la funcin MOD-bifurcacion cuando la funcin de seo o leccin utilizada es seleccion-instancia: o (defun MOD-bifurcacion-instancia (Fc sigma) (declare (xargs :measure (medida-forma-clausal Fc))) (if (contiene-clausula-vacia Fc) nil (let ((L (seleccion-instancia Fc))) (if L (or (MOD-bifurcacion-instancia (reduce-forma-clausal-literal L Fc) (asume-literal L sigma)) (MOD-bifurcacion-instancia (reduce-forma-clausal-literal-C L Fc) (asume-literal (complementario L) sigma))) sigma))))
232

Los eventos que establecen las propiedades de correccin y completitud de o la funcin SAT-bifurcacion-instancia se obtienen como instancias funcionales o (ver seccin 2.2.6) de los correspondientes para la funcin SAT-bifurcacion, o o sustituyendo las funciones SAT-bifurcacion, MOD-bifurcacion y seleccion por las funciones SAT-bifurcacion-instancia, MOD-bifurcacion-instancia y seleccion-instancia:

8.2. Davis y Putnam (defthm completitud-SAT-bifurcacion-instancia (implies (and (es-forma-clausal Fc) (modelo-forma-clausal sigma Fc)) (SAT-bifurcacion-instancia Fc))) (defthm correccion-SAT-bifurcacion-instancia (implies (and (es-forma-clausal Fc) (SAT-bifurcacion-instancia Fc)) (modelo-forma-clausal (MOD-bifurcacion-instancia Fc sigma) Fc)))

223
233

La funcin que implementa SATD no es SAT-bifurcacion-instancia, ya o que esta funcin evala las formas clausales SL para los literales L en clusulas o u a unitarias y puros. La funcin que implementa el algoritmo SATD es la siguiente: o
234

(defun SAT-davis-putnam (Fc) (declare (xargs :measure (medida-forma-clausal Fc))) (cond ((contiene-clausula-vacia Fc) nil) (t (let ((C (busca-clausula-unitaria Fc))) (if C (SAT-davis-putnam (reduce-forma-clausal-literal (car C) Fc)) (let ((L (busca-literal-puro Fc))) (if L (SAT-davis-putnam (reduce-forma-clausal-literal L Fc)) (let ((L (seleccion Fc))) (if L (or (SAT-davis-putnam (reduce-forma-clausal-literal L Fc)) (SAT-davis-putnam (reduce-forma-clausal-literal-C L Fc))) t)))))))))

Las funciones SAT-bifurcacion-instancia y SAT-davis-putnam son equivalentes. Esto se debe a que, para los literales en clusulas unitarias y los literales a puros, no es necesario evaluar SAT-bifurcacion-instancia sobre la forma clauo sal SL . La formalizacin de estas armaciones es la siguiente:

224

Cap tulo 8. Procedimiento de Davis y Putnam


235

(defthm SAT-bifurcacion-instancia-clausula-unitaria (implies (and (es-forma-clausal Fc) (member-equal C Fc) (clausula-unitaria C)) (not (SAT-bifurcacion-instancia (reduce-forma-clausal-literal-C (car C) Fc))))) (defthm SAT-bifurcacion-instancia-literal-puro (implies (and (es-forma-clausal Fc) (es-literal-puro L Fc) (SAT-bifurcacion-instancia (reduce-forma-clausal-literal-C L Fc))) (SAT-bifurcacion-instancia (reduce-forma-clausal-literal L Fc)))

La prueba de estos resultados se obtiene a partir de las propiedades de las reducciones por literales en clusulas unitarias y literales puros, mostradas en a 216 , 218 y 219 . Utilizando los eventos anteriores se demuestra que SAT-davis-putnam y SAT-bifurcacion-instancia son equivalentes y, por tanto, SAT-davis-putnam es un proceso correcto y completo de decisin de satisfacibilidad. o

(defthm SAT-davis-putnam-y-SAT-bifurcacion-equivalentes (implies (es-forma-clausal Fc) (iff (SAT-davis-putnam Fc) (SAT-bifurcacion-instancia Fc)))) (defthm completitud-SAT-davis-putnam (implies (and (es-forma-clausal Fc) (modelo-forma-clausal sigma Fc)) (SAT-davis-putnam Fc))) (defthm correccion-SAT-davis-putnam (implies (and (es-forma-clausal Fc) (SAT-davis-putnam Fc)) (modelo-forma-clausal (MOD-bifurcacion-instancia Fc sigma) Fc)))

236

8.2. Davis y Putnam

225

8.2.4

Procedimiento de Davis y Putnam en K

Los procedimientos desarrollados en la seccin previa pueden ser utilizados pao ra decidir la satisfacibilidad de una forma clausal en K. Los algoritmos son los mismos, puesto que no se basan en aspectos semnticos, pero no ocurre lo mismo a con los conceptos y propiedades que aseguran su correccin y completitud. Estas o propiedades se basan principalmente en que la eliminacin de clusulas con liteo a rales complementarios preserva el conjunto de modelos y que la reduccin de un o conjunto de clusulas por un literal mantiene la satisfacibilidad: a

Teorema 8.44 Dada una forma clausal S, si S es el resultado de eliminar de S o todas las clusulas con literales complementarios, entonces dada una K-asignacin a , |=K S si y slo si |=K S . o La formalizacin de este teorema se basa, al igual que para la semntica o a clsica, en la funcin elimina-clausulas-con-complementarios, presentada en a o 208 . Se ha a adido una condicin adicional que asegura que el valor de la forma n o clausal S no queda indeterminado.

(defthm elimina-clausulas-con-complementarios-preserva-modelos (implies (and (valor-forma-clausal-K Fc sigma) (es-forma-clausal Fc)) (iff (modelo-forma-clausal-K sigma (elimina-clausulas-con-complementarios Fc)) (modelo-forma-clausal-K sigma Fc)))

237

Al igual que en el caso clsico, esta regla de transformacin sirve para caraca o terizar las formas clausales vlidas. a

Teorema 8.45 Sea S una forma clausal entonces, S es K-vlida si y slo si al a o a eliminar de S todas las clusulas con literales complementarios se obtiene la forma clausal vac a. La formalizacin es similar a la del caso clsico salvo que en uno de los eventos o a hay que incluir una condicin adicional que asegura que el valor de la forma clausal o original no queda indeterminado.

226

Cap tulo 8. Procedimiento de Davis y Putnam


238

(defthm elimina-clausulas-con-complementarios-nil-fc-valida (implies (and (es-forma-clausal Fc) (equal (elimina-clausulas-con-complementarios Fc) nil) (valor-forma-clausal-K Fc sigma)) (modelo-forma-clausal-K sigma Fc)))

(defthm fc-valida-elimina-clausulas-con-complementarios-nil (implies (and (es-forma-clausal Fc) (not (equal (elimina-clausulas-con-complementarios Fc) nil))) (not (modelo-forma-clausal-K (contramodelo-clausula (car (elimina-clausulas-con-complementarios Fc))) Fc))))

Las operaciones de reduccin de una forma clausal por un literal tambin o e mantienen la satisfacibilidad en la semntica de Kleene: a Teorema 8.46 Sea S una forma clausal y L un literal, entonces: 1. Si |=K S y |=K L entonces |=K SL . 2. Si |=K SL entonces [L/ ] |=K S. La formalizacin de estos resultados es similar a la presentada en 213 y o para la semntica clsica, salvo que se utilizan las funciones modelo-K y a a modelo-forma-clausal-K. a Los algoritmos SATB y SATD se denen en la semntica de Kleene de igual forma a como se ha hecho en la semntica clsica. Las propiedades de correccin a a o y completitud de SATB se basan en las propiedades de la regla de bifurcacin, o que se siguen vericando en K.
214

o Teorema 8.47 Dada una forma clausal S, S es K-satisfacible si y slo si SATB (S) = t. La formalizacin es similar, utilizando la funcin modelo-forma-clausal-K o o para comprobar que una K-asignacin es modelo de una forma clausal: o

8.3. Un STP exitoso basado en Davis-Putnam (defthm completitud-SAT-bifurcacion (implies (and (modelo-forma-clausal-K sigma Fc) (es-forma-clausal Fc)) (SAT-bifurcacion Fc))) (defthm correccion-SAT-bifurcacion (implies (and (es-forma-clausal Fc) (SAT-bifurcacion Fc)) (modelo-forma-clausal-K (MOD-bifurcacion Fc sigma) Fc))

227
239

Donde el valor devuelto por la funcin MOD-bifurcacion es utilizado como o K-asignacin en la que la forma clausal es cierta. o o El desarrollo del algoritmo SATD y la demostracin de sus propiedades se ha realizado siguiendo la misma tcnica utilizada en el caso clsico. e a

8.3

Un STP exitoso basado en Davis-Putnam

El procedimiento de Davis y Putnam se puede interpretar como un caso particular tulo 7. La idea del procedimiento es del algoritmo SATG desarrollado en el cap aplicar reglas de transformacin a las formas clausales hasta obtener una forma o clausal vac En este caso se puede armar que la forma clausal de partida es a. satisfacible. Como funcin de representacin utilizamos la que proporciona el o o algoritmo de transformacin a forma clausal FC, con la ventaja adicional de que o en la forma clausal obtenida no hay clusulas con literales complementarios y se a puede prescindir de la regla de eliminacin de este tipo de clusulas. Los objetos o a proposicionales son las formas clausales sobre las que se aplican las reglas, junto con una lista de los literales a los que ya se ha aplicado alguna regla. Las reglas de expansin son las derivadas de la regla de bifurcacin junto con reglas que o o eliminan los objetos asociados a formas clausales en las que aparezca la clusula a vac y una regla que termina el proceso de expansin para la forma clausal a o vac Las asignaciones distinguidas sern aquellas que hagan cierta una forma a. a clausal y todos los literales cuya certeza se ha asumido al aplicar las reglas de transformacin. o En esta seccin desarrollamos un sistema de transformacin proposicional o o basado en el procedimiento de Davis y Putnam. Primero describimos formalmente este sistema junto con una regla de computacin, una funcin de representacin, o o o una funcin de medida y una funcin modelo adecuadas para demostrar que o o es exitoso. A continuacin presentamos su formalizacin, relacionndola con la o o a desarrollada en la seccin anterior. Los eventos desarrollados en esta seccin se o o encuentran en el libro SAT-davisputnam.lisp.

228

Cap tulo 8. Procedimiento de Davis y Putnam

8.3.1

Descripcin del STP exitoso D o

Una caracter stica fundamental del algoritmo SATG es que proporciona informacin suciente para construir un modelo de una frmula satisfacible. En el o o procedimiento de Davis y Putnam se ha denido una funcin que construye un o modelo para formas clausales satisfacibles, a partir de los literales cuya certeza se ha asumido al aplicar las reglas de transformacin. Esta informacin tiene que o o ser almacenada junto con el objeto proposicional, para poder construir un modelo de la frmula inicial a partir del resultado devuelto por la instancia del algoritmo o SATG . De esta forma, los objetos proposicionales que consideramos son pares formados por la forma clausal que queda por transformar y la lista de literales cuya certeza se ha asumido al aplicar las reglas de transformacin. o Denicin 8.48 D = OD , RD , VD es el STP basado en el procedimiento o de Davis y Putnam en el que OD es el conjunto de pares S, M donde S es una forma clausal y M es una lista de literales en la que no aparecen literales complementarios y tal que ningn elemento de M ni su complementario aparecen u en S, VD es el conjunto de pares ( S, M , ) tales que es modelo de la forma clausal S y de todos los elementos de M , y RD es el conjunto de reglas de expansin representado por el siguiente conjunto de esquemas de regla: o RD 1 : RD 2 : RD 3 : RD 4 si S S, M YD S, L1 , . . . , Ln YD SL , L, L1 , . . . , Ln si L S S, L1 , . . . , Ln YD SL , L, L1 , . . . , Ln , SL , L, L1 , . . . , Ln donde L es un literal que aparece en algn elemento de S u : , M YD t son elementos de OD .

donde S es una forma clausal, S, M y S, L1 , . . . , LN

Las reglas del tipo RD 1 se encargan de eliminar los objetos asociados a formas clausales en las que aparece la clusula vac Las reglas del tipo RD 2 se a a. corresponden con la regla de eliminacin de clusulas unitarias y las reglas del o a tipo RD 3 , con la regla de bifurcacin. Las reglas del tipo RD 4 detectan el nal o del proceso. La regla de eliminacin de literales puros no ha sido aadida pues lleva a una o n regla de computacin que no conserva las asignaciones distinguidas tal y como se o exige en la propiedad P3 : S, M O rD ( S, M ) = t = = ( |=D S, M Si , Mi rD ( S, M ), |=D Si , Mi ) Si consideramos la regla de eliminacin de literales puros, entonces a partir o del objeto proposicional p, q , q, r , , se obtendr el objeto q, r , p . a o En esta situacin, la asignacin que hace p falsa y, q y r ciertos, es una asignacin o o distinguida del primer objeto proposicional, pero no del segundo.

8.3. Un STP exitoso basado en Davis-Putnam

229

Utilizando el STP anterior, junto con una funcin de representacin iD y una o o regla de computacin rD adecuadas, obtenemos un procedimiento de decisin de o o satisfacibilidad basado en bifurcacin y eliminacin de clusulas unitarias, como o o a a un caso particular del algoritmo SATG . Adems, para garantizar las propiedades de terminacin, correccin y completitud, tenemos que proporcionar una funcin o o o de medida D y una funcin modelo D , de forma que D sea exitoso con respecto o a rD , iD , D y D . Denicin 8.49 Para el STP D denimos: o 1. La funcin de representacin iD tal que para toda F P(), iD (F ) = o o FC(F ), . 2. La regla de computacin rD que acta de la siguiente forma. Dado un o u objeto proposicional S, M , si S contiene la clusula vac se le aplica una a a, regla del tipo RD 1 . En otro caso se selecciona un literal de una clusula a unitaria en S, si es que existe. En este caso se le aplica una regla del tipo a RD 2 . Si en S no hay clusulas unitarias, se selecciona un literal cualquiera que aparezca en algn elemento de S, si es que existe, y se le aplica una u regla del tipo RD 3 . Si S es la forma clausal vac se aplica una regla del a, tipo RD 4 . 3. La funcin de medida D tal que, para todo S, M OD , D ( S, M ) es o la longitud de la forma clausal S, l(S). 4. La funcin modelo D tal que, para todo S, M OD , D ( S, M ) |= p si o y slo si p es un literal positivo que aparece en M . o o Teorema 8.50 El STP D es exitoso con respecto a la regla de computacin rD , o o la funcin de representacin iD , la funcin de medida D y la funcin modelo o o D . Demostracin: o Para demostrar el teorema tendremos que probar las propiedades P1 , P2 , P3 y P4 para las funciones rD , iD , D y D . P1 : Dado Si , Mi rD ( S, M ), entonces existe un literal L tal que Si = SL o Si = SL , luego por el teorema 8.39 se verica que D ( Si , Mi ) = l(Si ) < l(S) = D ( S, M ). P2 : Dada la frmula F , |=D FC(F ), o 8.20, esto ocurre si y slo si |= F . o si y slo si |= FC(F ) y, por el teorema o

P3 : Dado S, M OD tal que rD ( S, M ) = t, entonces se tienen tres situaciones distintas:

230

Cap tulo 8. Procedimiento de Davis y Putnam a a a 1. rD ( S, M ) = . En este caso la clusula vac est en S y, por el teou rema 8.12, S no tiene modelos. Por otro lado, no existe ningn elemento en rD ( S, M ). Por tanto se tiene la equivalencia |=D S, M Si , Mi rD ( S, M ), |=D Si , Mi 2. rD ( S, L1 , . . . , Ln ) = que L S: SL , L, L1 , . . . , Ln para algn literal L tal u

(a) Sea una asignacin distinguida de S, L1 , . . . , Ln , es decir, |= S o y |= Li para todo i. Como L S y |= S entonces |= L y, por el teorema 8.29-1, |= SL . Luego es una asignacin distinguida de o SL , L, L1 , . . . , Ln . (b) Sea una asignacin distinguida de SL , L, L1 , . . . , Ln , es decir, o |= SL , |= L y |= Li para todo i. Por el teorema 8.29-2, [L/ ] |= S. Como |= L se tiene = [L/ ] y por tanto |= S. o Luego es una asignacin distinguida de S, L1 , . . . , Ln . 3. rD ( S, L1 , . . . , Ln ) = SL , L, L1 , . . . , Ln , SL , L, L1 , . . . , Ln ra algn literal L que aparece en un elemento de S. u pa-

(a) Sea una asignacin distinguida de S, L1 , . . . , Ln , es decir, |= S o y |= Li para todo i. Se tiene que |= L o |= L. Si |= L la situacin es igual que para el caso 2 y por tanto es una asigo nacin distinguida de SL , L, L1 , . . . , Ln . Si |= L, por el teoo o rema 8.29-1, |= SL . Luego es una asignacin distinguida de SL , L, L1 , . . . , Ln . (b) Si es una asignacin distinguida de SL , L, L1 , . . . , Ln , entonces o al igual que en el caso 2, se puede concluir que es una asignacin o distinguida de S, L1 , . . . , Ln . Si una asignacin distinguida de SL , L, L1 , . . . , Ln , es decir, o |= SL , |= L y |= Li para todo i. Por el teorema 8.29-2, [L/ ] |= S. Como |= L se tiene = [L/ ] y por tanto |= S. o Luego es una asignacin distinguida de S, L1 , . . . , Ln . P4 : Sea S, M OD tal que rD ( S, M ) = t, entonces S es la forma clausal vac a, que es cierta en cualquier asignacin. Por tanto D ( S, M ) |= S. Por otro o lado, la construccin de D ( S, M ) y el hecho de que M no contiene literales o complementarios nos asegura que para cualquier literal L en M , D ( S, M ) |= o L. Por tanto, D ( S, M ) es una asignacin distinguida de S, M .

8.3.2

Formalizacin de D o

Para formalizar el conjunto de objetos proposicionales en los que se basa D , tenemos que denir una funcin que caracterice dichos objetos. El conjunto OD o

8.3. Un STP exitoso basado en Davis-Putnam

231

est compuesto por pares de la forma S, M , tales que S es una forma clausal y a M es una lista de literales en la que no aparecen literales complementarios y tal que para todo L en M , ni L ni L aparecen en ningn elemento de S. u o La funcin que caracteriza el conjunto OD es d&p-objeto. En su denicin heo mos utilizado la funcin es-forma-clausal para comprobar que S es una forma o clausal, la funcin tiene-literales-complementarios para comprobar que M o no tiene literales complementarios y, para comprobar que dado un elemento L de M , ni L ni L estn en S, denimos la funcin lista-literales-no-esta-en-fc: o a (defun d&p-objeto (S-M) (and (es-forma-clausal (car S-M)) (es-clausula (cdr S-M)) (not (tiene-literales-complementarios (cdr S-M))) (lista-literales-no-esta-en-fc (cdr S-M) (car S-M))))
240

(defun lista-literales-no-esta-en-fc (lista-L Fc) (cond ((endp lista-L) t) (t (and (not (literal-en-forma-clausal (car lista-L) Fc)) (not (literal-en-forma-clausal (complementario (car lista-L)) Fc)) (lista-literales-no-esta-en-fc (cdr lista-L) Fc))))) Las asignaciones distinguidas de un par S, M OD son aquellas que son modelo de S y hacen cierto todo literal L en M . La funcin modelo-forma-clausal o sirve para comprobar lo primero y para lo segundo denimos la funcin o o modelo-lista-literales. La funcin d&p-asignacion-distinguida comprueba que una asignacin es distinguida para un objeto proposicional: o (defun d&p-asignacion-distinguida (sigma S-M) (and (modelo-forma-clausal sigma (car S-M)) (modelo-lista-literales sigma (cdr S-M)))) (defun modelo-lista-literales (sigma lista-L) (cond ((endp lista-L) t) ((modelo sigma (car lista-L)) (modelo-lista-literales sigma (cdr lista-L))) (t nil))) La regla de computacin rD no est completamente determinada puesto que, o a si tenemos que aplicar reglas del tipo RD 2 o RD 3 , no se indica un criterio para la eleccin del literal L. En el primer caso escogeremos el literal de la primera o
241

232

Cap tulo 8. Procedimiento de Davis y Putnam

clusula unitaria de S, en el segundo caso se considera una funcin seleccion a o que escoge un literal de alguna de las clusulas de S, si es que existe. La existena cia de esta funcin se asume en un encapsulado ACL2, caracterizndola por las o a propiedades formalizadas en 220 . La funcin que implementa la regla de computacin es la siguiente: o o (defun d&p-regla-computacion (S-M) (let ((Fc (car S-M)) (lista-L (cdr S-M))) (if (contiene-clausula-vacia Fc) nil (let ((C (busca-clausula-unitaria Fc))) (if C (list (cons (reduce-forma-clausal-literal (car C) Fc) (cons (car C) lista-L))) (let ((L (seleccion Fc))) (if L (list (cons (reduce-forma-clausal-literal L Fc) (cons L lista-L)) (cons (reduce-forma-clausal-literal-c L Fc) (cons (complementario L) lista-L))) t)))))))
242

En esta denicin hemos utilizado la funcin contiene-clausula-vacia, deo o nida en 190 , que comprueba si una forma clausal contiene la clusula vac as a a, como reduce-forma-clausal-literal y reduce-forma-clausal-literal-C, denidas en 210 , que, respectivamente, reducen una forma clausal por un literal L y por su complementario. La funcin busca-clausula-unitaria devuelve la o primera clusula unitaria de una forma clausal. a Obsrvese que el resultado devuelto por esta funcin es t o una lista de objetos e o proposicionales. La formalizacin de esta propiedad es la siguiente: o (defthm d&p-objeto-d&p-regla-computacion (implies (and (d&p-objeto S-M-1) (member-equal S-M-2 (d&p-regla-computacion S-M-1))) (d&p-objeto S-M-2)))
243

La funcin de representacin iD es bastante simple, consiste en construir un o o par cuyo primer elemento sea el resultado de evaluar el algoritmo FC sobre una a. o frmula F y cuyo segundo elemento es la lista vac Esta construccin la realiza o la funcin d&p-representacion. El valor que devuelve es un elemento de OD . o

8.3. Un STP exitoso basado en Davis-Putnam (defun d&p-representacion (F) (list (forma-clausal F))) (defthm d&p-representacion-es-d&p-objeto (implies (es-proposicional F) (d&p-objeto (d&p-representacion F))))

233
244

La funcin de medida D de un objeto S, M , es la longitud de la forma o clausal S. La funcin medida-forma-clausal, denida en 223 , calcula dicho o valor. La funcin que implementa la medida D es d&p-medida. El resultado o que devuelve es un ordinal. (defun d&p-medida (S-M) (medida-forma-clausal (car S-M))) (defthm e0-ordinalp-d&p-media (e0-ordinalp (d&p-medida secuente))) o La funcin modelo D aplicada a un objeto S, M , construye una asignacin o en la que un s mbolo p es cierto si y slo si es un literal positivo que aparece o en M . De esta forma, todos los literales positivos de M son ciertos y, como M no contiene literales complementarios, todos los literales negativos tambin e lo son. Esta asignacin se construye extendiendo la asignacin parcial vac de o o a, forma que todos los elementos de M sean ciertos. Para extender una asignacin o haciendo un literal cierto utilizamos la funcin asume-literal, presentada en o 183 . (defun d&p-modelo (S-M) (modelo-literales (cdr S-M))) (defun modelo-literales (lista-L) (cond ((endp lista-L) nil) (t (asume-literal (car lista-L) (modelo-literales (cdr lista-L)))))) Veamos a continuacin la formalizacin de las propiedades que garantizan que o o D es un STP exitoso. La propiedad P1 est formalizada por el evento P1-d&p y a se demuestra fcilmente a partir de los eventos presentados en 224 . a (defthm P1-d&p (implies (member-equal S-M-2 (d&p-regla-computacion S-M-1)) (e0-ord-< (d&p-medida S-M-2) (d&p-medida S-M-1))))
247 246 245

234

Cap tulo 8. Procedimiento de Davis y Putnam

La prueba de la propiedad P2 es inmediata a partir de las deniciones de asignacin distinguida y la equivalencia entre el valor de una frmula y el de la forma o o clausal obtenida con el algoritmo FC, formalizada en 202 . Su formalizacin es o la siguiente: (defthm P2-d&p (implies (es-proposicional F) (iff (d&p-asignacion-distinguida sigma (d&p-representacion F)) (modelo sigma F))))
248

Para formalizar la propiedad P3 necesitamos denir una funcin que comprueo be si una asignacin es distinguida para algn objeto de una lista. Esta funcin o u o es d&p-asignacion-distinguida-lista. La formalizacin de esta funcin y de o o la propiedad P3 es la siguiente: (defthm P3-d&p (implies (and (d&p-objeto S-M) (not (equal (d&p-regla-computacion S-M) t))) (iff (d&p-asignacion-distinguida-lista sigma (d&p-regla-computacion S-M)) (d&p-asignacion-distinguida sigma S-M)))) (defun d&p-asignacion-distinguida-lista (sigma d&p-obj-lst) (cond ((endp d&p-obj-lst) nil) (t (or (d&p-asignacion-distinguida sigma (car d&p-obj-lst)) (d&p-asignacion-distinguida-lista sigma (cdr d&p-obj-lst)))))) La prueba del evento P3-d&p se obtiene a partir de propiedades de las funciones de reduccin similares a las mostradas en 213 y 214 . o Finalmente, la propiedad P4 se demuestra fcilmente a partir de la denicin a o de d&p-modelo y el hecho de que, para todo objeto S, M , M no contiene literales complementarios. (defthm P4-d&p (implies (and (d&p-objeto S-M) (equal (d&p-regla-computacion S-M) t)) (d&p-asignacion-distinguida (d&p-modelo S-M) S-M)))
250 249

8.3. Un STP exitoso basado en Davis-Putnam

235

El siguiente evento realiza una instancia de la teor genrica *sat-generico* a e utilizando las funciones que describen el STP exitoso D . Para seleccionar el objeto a procesar en cada paso hemos utilizado la funcin car, que devuelve el o primer elemento de una lista. (definstancia-*sat-generico* ((gen-objeto d&p-objeto) (gen-representacion d&p-representacion) (gen-asignacion-distinguida d&p-asignacion-distinguida) (gen-asignacion-distinguida-lista d&p-asignacion-distinguida-lista) (gen-regla-computacion d&p-regla-computacion) (gen-seleccion car) (gen-medida d&p-medida) (gen-modelo d&p-modelo)) "-secuentes")
251

Una vez evaluado este evento, se obtiene automticamente la funcin que ima o e plementa el algoritmo SATD , como una instancia de SATG . Tambin se obtienen versiones basadas en el procedimiento de transformacin de formas clausales, del o o algoritmo de decisin de validez DATG y del procedimiento de construccin de o modelos M ODG . Estas funciones son las siguientes: (DEFUN SAT-GENERICO-D&P (F) (OBJ-SAT-GENERICO-D&P (LIST (D&P-REPRESENTACION F)))) (DEFUN MOD-GENERICO-D&P (F) (D&P-MODELO (FIRST (SAT-GENERICO-D&P F)))) (DEFUN DAT-GENERICO-D&P (F) (NOT (SAT-GENERICO-D&P (NEGACION F)))) (DEFUN OBJ-SAT-GENERICO-D&P (LISTA-O) (IF (ENDP LISTA-O) NIL (LET* ((O (CAR LISTA-O)) (RESTO (ELIMINA-UNA (CAR LISTA-O) LISTA-O)) (EXPANSION (D&P-REGLA-COMPUTACION O))) (COND ((EQUAL EXPANSION T) (LIST O)) (T (OBJ-SAT-GENERICO-D&P (APPEND EXPANSION RESTO)))))))

236

Cap tulo 8. Procedimiento de Davis y Putnam

Adems de generar automticamente estas funciones, al instanciar la teor a a a genrica *sat-generico*, tambin se obtienen de forma automtica los eventos e e a que establecen sus propiedades correccin y completitud. o (DEFTHM CORRECCION-SAT-GENERICO-D&P (IMPLIES (AND (ES-PROPOSICIONAL F) (SAT-GENERICO-D&P F)) (MODELO (MOD-GENERICO-D&P F) F))) (DEFTHM COMPLETITUD-SAT-GENERICO-D&P (IMPLIES (AND (ES-PROPOSICIONAL F) (MODELO SIGMA F)) (SAT-GENERICO-D&P F))) (DEFTHM CORRECCION-DAT-GENERICO-D&P (IMPLIES (AND (ES-PROPOSICIONAL F) (DAT-GENERICO-D&P F)) (MODELO SIGMA F))) (DEFTHM COMPLETITUD-DAT-GENERICO-D&P (IMPLIES (AND (ES-PROPOSICIONAL F) (NOT (DAT-GENERICO-D&P F))) (NOT (MODELO (MOD-GENERICO-D&P (NEGACION F)) F))))

8.4

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin deo o o sarrollados en este cap tulo, presentando datos sobre su evaluacin en algunas o frmulas representando el problema de las N reinas [62] y algunos de los probleo mas de la coleccin DIMACS [82]. o Una vez certicados los libros, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 8-davisputnam: ../calculos-proposicionales/8-davisputnam> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/8-davisputnam". ACL2 !>

8.4. Ejemplos

237

A continacin incluimos el libro que contiene la teor desarrollada en este o a cap tulo. Los libros de los que ste depende son incluidos automticamente por e a el sistema: ACL2 !>(include-book "davis-putnam") Para poder utilizar los procedimientos de decisin desarrollados en este cap o tulo, tenemos que proporcionar una denicin concreta de la funcin que seleco o ciona un literal de una forma clausal. El s mbolo asociado a esta funcin ya existe o en el sistema por lo que tendremos que redenirla. Las propiedades de los procedimientos de decisin se mantienen siempre que la nueva denicin de la funcin o o o seleccion tenga las propiedades presentadas en 220 . ACL2 !>(set-ld-redefinition-action (:warn . :overwrite) state) ACL2 !>(defun seleccion (Fc) (cond ((endp Fc) nil) ((endp (car Fc)) (seleccion (cdr Fc))) (t (car (car Fc))))) En la tabla 8.1 se muestra informacin sobre el tiempo de comprobacin de o o la satisfacibilidad de las frmulas correspondientes al problema de las N reinas, o para algunos valores de N . Estos tiempos incluyen la transformacin a forma o clausal y la evaluacin del procedimiento de decisin SAT-davis-putnam. En la o o seccin 4.3 se indica como se carga en ACL2 el chero en el que se dene esta o familia. Tamao del tablero n Tiempo 2 3 4 5 6 7 8 0.010 0.020 0.090 0.290 0.690 2.140 3.220

Tabla 8.1: Tiempos de evaluacin para el problema de las N reinas o La familia de ejemplos para la que presentamos los datos a continuacin o est tomada de la coleccin DIMACS, que se encuentra disponible en a o http://www.intellektik.informatik.tu-darmstadt.de/SATLIB/. Esta coleccin consiste en distintas familias de problemas expresados en forma clausal, o en las que los literales positivos se representan con nmeros enteros positivos y los u negativos con nmeros enteros negativos. Para poder evaluar los procedimientos u de decisin de satisfacibilidad para conjuntos de clusulas sobre estos ejemplos, o a hemos modicado la formalizacin de la sintaxis de la lgica proposicional. o o

238

Cap tulo 8. Procedimiento de Davis y Putnam Problema Satisfacible Variables Clausulas Tiempo aim-50-1_6-no-1 No 50 80 6.530 aim-50-1_6-no-2 No 50 80 2.140 aim-50-1_6-no-3 No 50 80 3.730 aim-50-1_6-no-4 No 50 80 1.230 aim-50-1_6-yes1-1 S 50 80 0.550 aim-50-1_6-yes1-2 S 50 80 0.280 aim-50-1_6-yes1-3 S 50 80 0.180 aim-50-1_6-yes1-4 S 50 80 0.120 aim-50-2_0-no-1 No 50 100 13.260 aim-50-2_0-no-2 No 50 100 3.030 aim-50-2_0-no-3 No 50 100 2.650 aim-50-2_0-no-4 No 50 100 1.730 aim-50-2_0-yes1-1 S 50 100 0.710 aim-50-2_0-yes1-2 S 50 100 0.460 aim-50-2_0-yes1-3 S 50 100 0.140 aim-50-2_0-yes1-4 S 50 100 0.360 aim-50-3_4-yes1-1 S 50 170 1.280 aim-50-3_4-yes1-2 S 50 170 7.800 aim-50-3_4-yes1-3 S 50 170 3.210 aim-50-3_4-yes1-4 S 50 170 1.900 aim-50-6_0-yes1-1 S 50 300 1.650 aim-50-6_0-yes1-2 S 50 300 0.630 aim-50-6_0-yes1-3 S 50 300 1.190 aim-50-6_0-yes1-4 S 50 300 1.170 Tabla 8.2: Datos sobre la evaluacin de la familia AIM-50 o

Destacamos el hecho de que slo ha sido necesario modicar ligeramente el aro chivo sintaxis.lisp. La teor desarrollada en el resto de los archivos se mantiea ne exactamente igual. En el directorio calculos-proposicionales/0-ejemplos a se encuentra el subdirectorio dimacs, donde estn los libros necesarios para evaluar estos ejemplos. Para certicar estos libros y evaluar los ejemplos, basta con ejecutar la orden make en dicho directorio: ../calculos-proposicionales/0-ejemplos/dimacs> make En la tabla 8.2 se muestran los tiempos de evaluacin obtenidos para la familia o AIM-50. En esta tabla tambin indicamos el nmero de variables y el nmero de e u u clusulas de cada problema y si se trata de un conjunto de clusulas satisfacible a a o no. En el directorio dimacs/0-ejemplos hay otras familias tomadas de la coleccin DIMACS. o

8.4. Ejemplos

239

Sumario
En este cap tulo: a Se han presentado los conceptos de clusula y forma clausal, demostrando resultados que caracterizan las clusulas vlidas y las formas clausales ina a satisfacibles. La formalizacin correspondiente se ha realizado tanto en la o semntica clsica como en la de Kleene. a a Se ha desarrollado un algoritmo para transformar una frmula proposicional o en una forma clausal lgicamente equivalente a ella. Se ha demostrado que o este algoritmo termina y que calcula una forma clausal lgicamente equivao lente a la frmula inicial. Se ha probado que la validez de una forma clausal o queda asegurada cuando este algoritmo devuelve la forma clausal vac Se a. ha formalizado el algoritmo y sus propiedades tanto en la semntica clsica a a como en la de Kleene. Se ha analizado el conjunto de reglas de transformacin en las que se basa o el procedimiento de Davis y Putnam y se ha demostrado que estas reglas preservan la satisfacibilidad de las formas clausales. Se han construido dos procedimientos de decisin de satisfacibilidad para formas clausales basados o en estas reglas, presentando el segundo de ellos como un renamiento del primero. Se han probado las propiedades de correccin y completitud de o estos algoritmos. El desarrollo se ha realizado tanto para la semntica a clsica como para la de Kleene. a Se ha denido un sistema de transformacin proposicional basado en el o procedimiento de Davis y Putnam. Se han demostrado las propiedades que garantizan que dicho sistema es exitoso. Una vez formalizados los elementos y propiedades que describen este STP, se ha mostrado como se obtienen automticamente algoritmos vericados de decisin de satisfacibilidad y a o validez, como una instancia de la teor asociada al marco genrico. a e

240

Cap tulo 8. Procedimiento de Davis y Putnam

Cap tulo 9 Resolucin o


El clculo de resolucin fu inventado por Robinson en 1965 [65]. Desde entonces a o e el procedimiento bsico de resolucin ha sido renado dando lugar a distintas a o variantes. Quiz la ms conocida sea la SLD-resolucin [46], en la que se basa la a a o programacin lgica. Estas variantes tambin se han utilizado en el desarrollo de o o e sistemas de deduccin, entre los que destaca OTTER [56] y su variante EQP, utio lizado con xito en la obtencin de una demostracin de la conjetura de Robbins e o o [55]. En este cap tulo presentamos el clculo de resolucin desde un punto de vista a o genrico: el proceso bsico de resolucin, el clculo de una resolvente, se hace e a o a depender de una condicin predeterminada. La consideracin de distintas condio o ciones da lugar a distintas variantes de resolucin: positiva, negativa, semntica, o a con conjunto soporte, ... Un desarrollo ms amplio acerca de los procedimientos a de decisin basados en resolucin y sus variantes puede encontrarse en [4]. o o El cap tulo est formado por tres secciones. En la primera se presenta el cona cepto clsico de resolvente binaria y el de resolvente condicionada. En este ultimo a el clculo de las resolventes se hace depender de una condicin predeterminada a o o a la que llamaremos condicin de resolucin. Varios renamientos de resolucin o o se pueden obtener considerando distintas condiciones de resolucin. Se presentan o algoritmos de saturacin y de decisin de insatisfacibilidad basados en resolucin o o o condicionada y se demuestran sus propiedades de terminacin y correccin. En o o esta seccin se establecen los eventos relacionados con la formalizacin de estos o o algoritmos y la demostracin de sus propiedades. o La segunda seccin est dedicada a la prueba de Bezem de la completitud de o a la resolucin condicionada presentada en [8]. Esta prueba ha sido formalizada o en ACL2 y se utiliza para demostrar la completitud del algoritmo de decisin de o insatisfacibilidad cuando la condicin de resolucin verica cierta propiedad con o o respecto a una asignacin predeterminada. Tambin se presentan y formalizan o e conceptos y propiedades relativas a conjuntos de representantes de colecciones de conjuntos, necesarios en el desarrollo de la prueba. En la tercera seccin se dene una teor genrica que facilita la reutilizacin o a e o 241

242

Cap tulo 9. Resolucin o

de los algoritmos desarrollados en la primera seccin, preservando sus propiedades o de correccin y completitud. Se presentan ejemplos de instancias de esta teor o a genrica para la resolucin binaria, positiva, negativa, semntica y con conjunto e o a soporte.

9.1

Resolucin condicionada o

Los procedimientos basados en el principio de resolucin consisten en, a partir o de un conjunto de clusulas, generar todas las posibles clusulas que se pueden a a obtener aplicando una regla de inferencia bsica. Esta regla consiste en, bajo a ciertas condiciones, obtener una nueva clusula, llamada resolvente, a partir de a de otras dos, llamadas clusulas padre, de forma que la satisfacibilidad de las a clusulas padre asegura la satisfacibilidad de la resolvente. As el conjunto de a , clusulas inicial se va incrementando con las nuevas clusulas generadas hasta a a que llega a ser saturado por resolucin, es decir, no se puede obtener ninguna o resolvente nueva. Si, a lo largo del proceso, se obtiene la clusula vac entonces a a, se puede armar que el conjunto original es insatisfacible. Si, por el contrario, se llega a obtener un conjunto saturado por resolucin en el que no est la clusula o a a vac entonces se puede armar que el conjunto original es satisfacible. De a, forma intuitiva, el procedimiento de resolucin genera todas las clusulas que o a son consecuencia lgica de un conjunto de clusulas de partida. Si se obtiene la o a clusula vac que es insatisfacible, entonces el conjunto de clusulas inicial no a a, a puede ser satisfacible. A lo largo de este cap tulo, las clusulas se consideran conjuntos en lugar de a listas. Esto se hace para evitar la generacin de clusulas con los mismos literales, o a lo que har innecesariamente largo el proceso de saturacin. De la misma forma, a o hablamos de conjuntos de clusulas en lugar de formas clausales, es decir, listas a de clusulas. Esto no supone ningn cambio en la representacin de las clusulas, a u o a que siguen siendo listas de literales, ni en la de las formas clausales, que siguen siendo listas de clusulas. El cambio aparece cuando se realizan operaciones sobre a clusulas, como comparacin o unin, en estos casos tenemos que tener en cuenta a o o que los elementos pueden aparecer en cualquier orden. Las funciones que actan u sobre conjuntos sern comentadas conforme vayan apareciendo en el texto. a

9.1.1

Conjuntos saturados por resolucin condicionada o

La operacin bsica en la que se basan los procedimientos de resolucin, es la que o a o calcula una nueva clusula, llamada resolvente, a partir de otras dos, llamadas a clusulas padres, de forma que la satisfacibilidad de las clusulas padre asegura a a la satisfacibilidad de la resolvente. Las diferencias entre estos procedimientos consisten en exigir distintas propiedades a las clusulas padre para poder obtener a la resolvente. Por tanto, la situacin ms general es aquella en la que no se o a

9.1. Resolucin condicionada o

243

exige ninguna propiedad a las clusulas padre. En este caso el procedimiento de a resolucin se denomina resolucin binaria. o o a Denicin 9.1 Sean C1 y C2 dos clusulas y L un literal tal que L C1 y o L C2 . La resolvente binaria, o simplemente resolvente, de C1 y C2 con respecto al literal L es la clusula (C1 {L}) (C2 {L}). a En la formalizacin del concepto de resolvente hemos prescindido de las como probaciones L C1 y L C2 . Esto es debido a que est funcin unicamente ser a o a evaluada para determinados literales tomados de C1 cuyo complementario aparece en C2 . De esta forma, se evita una sobrecarga de comprobaciones que hace que el cdigo nal sea un poco ms eciente. Por otro lado, an prescindiendo o a u de las comprobaciones L C1 y L C2 , la satisfacibilidad del resultado queda garantizada si las clusulas padre son satisfacibles. a (defun resolvente (L C-1 C-2) (union-equal (elimina-elemento L C-1) (elimina-elemento (complementario L) C-2)))
252

Donde la funcin elimina-elemento elimina todas las ocurrencias de un eleo mento de una clusula y la funcin union-equal agrupa todos los elementos de a o dos listas eliminando los repetidos. Una caracter stica de la funcin anterior es que, si los argumentos son clusuo a las, entonces el resultado sigue siendo una clusula. Esto se debe a que las a funciones union-equal y elimina-elemento tienen la misma propiedad: (defthm resolvente-es-clausula (implies (and (es-clausula C-1) (es-clausula C-2)) (es-clausula (resolvente L C-1 C-2))))
253

Teorema 9.2 Si C es la resolvente de las clusulas C1 y C2 en el literal L y a una asignacin tal que |= C1 y |= C2 , entonces |= C. o Demostracin: o En la situacin descrita en el enunciado del teorema, se tienen dos posibilidao des, |= L o |= L o, de otra forma, |= L o |= L. Si |= L entonces, como |= C2 , se tiene |= (C2 {L}) y por tanto |= C. Si |= L entonces, como |= C1 , se tiene |= (C1 {L}) y por tanto |= C. Obsrvese que en la demostracin del resultado no se ha utilizado en ningn e o u momento el hecho de que el literal L pertenezca a C1 y el L a C2 . La formalizacin o

244

Cap tulo 9. Resolucin o

del teorema reeja esta situacin puesto que en las hiptesis no se exige que o o el literal o su complementerio pertenezcan a las clusulas padre ni la funcin a o resolvente lo comprueba: (defthm correccion-resolvente (implies (and (es-clausula C-1) (es-clausula C-2) (es-literal L) (modelo-clausula sigma C-1) (modelo-clausula sigma C-2)) (modelo-clausula sigma (resolvente L C-1 C-2)))))
254

Como se ha comentado antes, la funcin resolvente slo se evaluar pao o a ra literales tomados de la primera clusula padre cuyo complementario aparea ce en la segunda. Para obtener uno de estos literales consideramos la funcin o literal-resolucion-clausulas: (defun literal-resolucion-clausulas (C-1 C-2) (cond ((endp C-1) nil) ((member-equal (complementario (car C-1)) C-2) (car C-1)) (t (literal-resolucion-clausulas (cdr C-1) C-2))))
255

Nuestra intencin es denir un procedimiento de resolucin lo ms general poo o a sible, dentro de las limitaciones del sistema. Para ello tenemos en cuenta que la mayor de las estrategias de resolucin se basan en comprobar cierta propiedad a o sobre las clusulas padre. Por ejemplo, en la resolucin positiva (negativa) una a o de las clusulas padre ha de tener todos sus literales positivos (negativos), en la a resolucin unidad una de las clusulas padre ha de ser unitaria, en la resolucin o a o semntica una de las clusulas padre ha de ser cierta en una asignacin predea a o terminada y la otra falsa, etc. La propia resolucin binaria tiene asociada una o propiedad cuyo valor es siempre cierto. Denicin 9.3 Sean C1 y C2 dos clusulas, L un literal y P un predicado binario o a conmutativo tales que L C1 , L C2 y P (C1 , C2 ). La resolvente condicionada de C1 y C2 con respecto al literal L es la clusula (C1 {L}) (C2 {L}). a o o Llamaremos a P la condicin de resolucin. A lo largo de este cap tulo consideraremos un predicado binario conmutativo predeterminado al que llamaremos condicion, y siempre que usemos el trmino e resolvente, estaremos haciendo referencia al concepto de resolvente condicionada. Este predicado se ha incorporado a la formalizacin utilizando un encapo sulado de ACL2. De esta forma se ha asumido la existencia de la funcin de dos o argumentos condicion con las siguientes propiedades:

9.1. Resolucin condicionada o

245

o El valor devuelto por la funcin condicion es un booleano en el sistema. La funcin condicion es conmutativa. o La funcin condicion es congruente (ver seccin 2.2.7) con respecto a la o o igualdad de clusulas como conjuntos. a La formalizacin de estas propiedades es la siguiente: o (defthm condicion-boolean-p (booleanp (condicion C-1 C-2))) (defthm condicion-conmutativa (iff (condicion C-1 C-2) (condicion C-2 C-1))) (defcong igual-conjunto iff (condicion C-1 C-2) 1) (defcong igual-conjunto iff (condicion C-1 C-2) 2) Donde la funcin igual-conjunto comprueba que dos listas contiene los miso mos elementos, es decir, son iguales como conjuntos. Un aspecto importante de los procedimientos basados en resolucin es que o las clusulas vlidas son prescindibles, ya que la satisfacibilidad o insatisfacia a bilidad de un conjunto de clusulas no depende de ellas. Esta armacin es a o consecuencia de los resultados de correccin y completitud que se demuestran en o este cap tulo acerca de un procedimiento basado en resolucin que no considera o clusulas vlidas. a a Otra apreciacin importante es que, si hay dos literales distintos con respecto o a los cuales se pueda obtener una resolvente entre dos clusulas, entonces las a resolventes obtenidas son vlidas y, segn lo anterior, se puede prescindir de ellas a u en el procedimiento de resolucin. o Teorema 9.4 Dadas dos clusulas C1 y C2 , tales que P (C1 , C2 ) y dos literales a distintos L1 y L2 tales que L1 , L2 C1 y L1 , L2 C2 , entonces la resolvente de C1 y C2 con respecto a L1 es vlida. Por tanto, la resolvente con respecto a L2 a tambin es vlida. e a Demostracin: o Puesto que L2 es distinto de L1 , entonces se tiene que L2 C1 {L1 }. De la misma forma, como L2 es distinto de L1 se tiene que L2 C2 {L1 }. Luego la resolvente de C1 y C2 con respecto a L1 contiene literales complementarios y, por el teorema 8.5, es vlida. a
256

246

Cap tulo 9. Resolucin o

Esto quiere decir que la resolvente entre dos clusulas es unica salvo que se a obtengan clusulas vlidas, de las que se prescinde. Por tanto, para obtener una a a resolvente sin literales complementarios basta con, comprobar si las clusulas a padre cumplen la propiedad P y buscar el primer literal L, de la primera clusula a padre C1 , cuyo complementario aparezca en la segunda clusula padre C2 . Si a la resolvente de C1 y C2 con respecto a L contiene literales complementarios, entonces cualquier resolvente entre dichas clusulas los tendr y se prescinde de a a todas. Si, por el contrario, la resolvente de C1 y C2 con respecto a L no contiene literales complementarios, entonces L es el unico literal con respecto al que se puede calcular una resolvente entre C1 y C2 . De aqu en adelante llamaremos resolvente de dos clusulas a la unica resolvente sin literales complementarios a entre dichas clusulas, si es que existe. a La funcin resolucion-cond-clausulas calcula una resolvente entre dos o clusulas, si es que existe, teniendo en cuenta lo anterior. Esta funcin utilia o za nil para indicar que no ha sido posible obtener una resolvente sin literales a complementarios entre las clusulas padre. Sin embargo nil es la lista vac y a podr ser obtenida como resolvente entre dichas clusulas. Por eso esta funcin a a o devuelve una lista unitaria formada por la resolvente obtenida. De esta forma, el resultado nil indica que no hay resolventes sin literales complementarios y el resultado (nil), que la resolvente obtenida es la clusula vac Para coma a. probar si la resolvente tiene literales complementarios hemos utilizado la funcin o tiene-literales-complementarios, presentada en 185 (defun resolucion-cond-clausulas (C-1 C-2) (if (condicion C-1 C-2) (let ((L (literal-resolucion-clausulas C-1 C-2))) (if L (let ((res (resolvente L C-1 C-2))) (if (tiene-literales-complementarios res) nil (list res))) nil)) nil))
257

Como se ha comentado al comienzo de esta seccin, el objetivo de los procedio mientos basados en resolucin es generar todas las clusulas que sean consecuencia o a lgica de un conjunto de clusulas de partida. Cuando se llega a esta situacin, o a o diremos que hemos obtenido un conjunto de clusulas saturado por resolucin. a o Denicin 9.5 Diremos que un conjunto de clusulas S est saturado por resoluo a a cin (condicionada) si para cualesquiera C1 , C2 S tales que P (C1 , C2 ), entonces o la resolvente de C1 y C2 , si es que existe, aparece en S.

9.1. Resolucin condicionada o

247

La formalizacin de este concepto en ACL2 es compleja puesto que el sistema o no dispone de un cuanticador. Sin embargo, la cuanticacin a la que hace o referencia la denicin se realiza sobre los elementos del conjunto de clusulas o a inicial y este tipo de cuanticacin se puede formalizar analizando recursivamente o la lista que representa dicho conjunto. De esta forma, para cada elemento C de S, comprobaremos que las resolventes entre C y algn otro elemento de S aparecen u en S. Para hacer esto tendemos que volver a analizar recursivamente la lista que representa el conjunto S.
258

(defun saturado-cond-conjunto (S) (saturado-cond-conjunto-aux S S))

(defun saturado-cond-conjunto-aux (S-1 S-2) (cond ((endp S-1) t) (t (and (saturado-cond-clausula-conjunto (car S-1) S-1 S-2) (saturado-cond-conjunto-aux (cdr S-1) S-2))))) (defun saturado-cond-clausula-conjunto (C S-1 S-2) (cond ((endp S-1) t) (t (let ((res (resolucion-cond-clausulas C (car S-1)))) (if (consp res) (and (conjunto-miembro (car res) S-2) (saturado-cond-clausula-conjunto C (cdr S-1) S-2)) (saturado-cond-clausula-conjunto C (cdr S-1) S-2))))))

La funcin saturado-cond-clausula-conjunto comprueba que las resolveno u tes entre una clusula C y algn elemento del conjunto S-1 aparecen en S-2. a Para ello utiliza la funcin conjunto-miembro que comprueba si en una coleco cin de conjuntos existe alguno igual a uno dado. Para comprobar que las reo solventes entre dos elementos cualesquiera de S-1 aparecen en S-2 denimos la funcin saturado-cond-conjunto-aux. Obsrvese que, como la resolvente entre o e dos clusulas C1 y C2 , si es que existe, es la misma, es decir el mismo conjunto, a que la resolvente entre C2 y C1 , esta funcin evita realizar la doble comprobao cin calculando slo las resolventes entre un elemento de S-1 y los que le siguen. o o Finalmente, la funcin saturado-cond-conjunto comprueba si el conjunto S es o saturado por resolucin. o Se verica que, si un conjunto de clusulas es saturado por resolucin segn a o u la funcin anterior entonces, la resolvente, si es que existe, de dos clusulas cuao a lesquiera que aparezcan en dicho conjunto tambin aparece en l: e e

248

Cap tulo 9. Resolucin o


259

(defthm saturado-cond-conjunto-contiene-resolventes (implies (and (saturado-cond-conjunto S) (conjunto-miembro C1 S) (conjunto-miembro C2 S) (consp (resolucion-cond-clausulas C1 C2)) (es-forma-clausal S)) (conjunto-miembro (car (resolucion-cond-clausulas C1 C2)) S)))

Para comprobar que un conjunto de clusulas es saturado por resolucin, es a o ms comodo utilizar la denicin 9.5 como un teorema ACL2 de caracterizacin: a o o Si suponemos la existencia de ciertas hiptesis (saturado-cond-H) y un conjunto o de clausulas (saturado-cond-S) de forma que se pueda demostrar el siguiente evento: (defthm resolvente-cond-miembro-saturado (implies (and (saturado-cond-H) (conjunto-miembro C1 (saturado-cond-S)) (conjunto-miembro C2 (saturado-cond-S)) (consp (resolucion-cond-clausulas C1 C2))) (conjunto-miembro (car (resolucion-cond-clausulas C1 C2)) (saturado-cond-S)))) Entonces se puede demostrar este otro: (defthm saturado-cond-conjunto-extension (implies (saturado-cond-H) (saturado-cond-conjunto (saturado-cond-S))))
261 260

De esta forma, la prueba de que un conjunto de clusulas S es saturado por a resolucin, consiste en hacer una instancia funcional (ver seccin 2.2.6) de este o o ultimo evento en la que la funcin saturado-cond-S sea la funcin constante o o igual a S y la funcin saturado-cond-H un conjunto de hiptesis, demostrando o o o previamente un resultado similar al mostrado en 260 sobre S y dichas hiptesis. En la seccin 9.1.4 hay un ejemplo de uso de esta tcnica. o e

9.1.2

Decisin de insatisfacibilidad por saturacin: o o IN SATR

Como se ha comentado en la seccin anterior, los procedimientos basados en o resolucin se basan en, a partir de un conjunto de clusulas, obtener otro saturado o a

9.1. Resolucin condicionada o

249

por resolucin. El conjunto original ser satisfacible si y slo si en el proceso de o a o saturacin no se obtiene la clusula vac Por tanto, es importante asegurarse de o a a. que se generan todas las resolventes posibles, mediante un proceso que, en el caso de la lgica proposicional, termina para cualquier conjunto de clusulas inicial. o a Para conseguir esto es habitual considerar dos conjuntos, en el primero, S1 , se encuentran las clusulas para las que todav se pueden generar resolventes a a nuevas, mientras que en el segundo, S2 , se encuentran aquellas para las que ya se han generado todas las resolventes posibles. El proceso de saturacin consiste en o tomar una clusula C del primer conjunto y obtener todas las resolventes entre C a n y algn elemento de S2 . Estas resolventes son aadidas a S1 , de donde se elimina u n u o. C, que es aadido a S2 . El proceso contina hasta que S1 se queda vac Si el proceso comienza con S2 igual al conjunto vac entonces al terminar se obtiene o, o o en S2 la saturacin por resolucin de S1 . Si a lo largo del proceso se obtiene la clusula vac entonces el conjunto de clusulas original es insatisfacible. a a a Algoritmo 9.6 (SR) El dato de entrada de este algoritmo es un conjunto de clusulas S. Inicialmente se consideran los conjuntos S1 = S y S2 = y se acta a u como sigue: a o, 1. Si S1 est vac el algoritmo termina y devuelve S2 . 2. Se selecciona la primera clusula C de S1 y se obtienen todas las resolventes a entre C y los elementos de S2 que no aparezcan en S1 ni en S2 . Llamaremos a este conjunto Sn . 3. Si Sn contiene la clusula vac el algoritmo termina y devuelve t. a a, 4. Si Sn no contiene la clusula vac se vuelve al paso 1 con los conjuntos a a, (S1 {C}) Sn y S2 {C}. En la siguiente tabla se muestra un ejemplo de aplicacin de este proceso de o saturacin. Comenzando con S1 = p, q , p, q , q, p y S2 = . La primera o clusula que se toma de S1 es p, q , entre esta clusula y S2 no se obtiene ninguna a a n resolvente, as que eliminamos dicha clusula de S1 y la aadimos a S2 . En el a segundo paso se escoge la clusula p, q . Ahora hay una resolvente entre esta a clusula y las del conjunto S2 = p, q , la clusula p , que es aadida a S1 . En a a n este punto S1 = p , q, p y S2 = p, q , p, q . La siguiente clusula que a se toma de S1 es p . Entre esta clusula y las de S2 no se generan resolventes, a por tanto aadimos p a S2 y lo eliminamos de S1 . La siguiente clusula de S1 n a n es p, q . Entre sta y las de S2 se obtienen q , que se aade a S1 , y p , de e la que se prescinde pues no es nueva. Finalmente se toma q de S1 . Entre esta clusula y las de S2 no aparecen nuevas resolventes (de nuevo se obtiene p que a ya hab aparecido), con lo que S1 queda vac y el proceso termina. a o

250 S1 p, q , p, q , q, p p, q , q, p p , q, p q, p q S2

Cap tulo 9. Resolucin o C p, q p, q p q, p q Resolventes p p, q p

p, q p, q , p, q p , p, q , p, q q, p , p , p, q , p, q q , q, p , p , p, q , p, q

El algoritmo SR se puede utilizar para decidir la insatisfacibilidad de un conjunto de clusulas S, basta con comprobar que el resultado de aplicar dicho a algoritmo a S es t. a Algoritmo 9.7 (IN SATR ) Dado un conjunto de clusulas S, IN SATR (S) = t si y slo si SR(S) = t. o La funcin INSAT-resolucion implementa el algoritmo IN SATR . Esta funo cin se dene comprobando que el resultado de evaluar saturacion-resolucion o sobre el conjunto de clusulas inicial es t. a (defun INSAT-resolucion (S) (equal (resolucion-saturacion S) t))
262

La funcin saturacion-resolucion implementa el algoritmo SR. Esta funo cin hace una llamada a la funcin resolucion-cond-saturacion con el primer o o argumento igual al conjunto de clusulas inicial y el segundo igual al conjunto a vac o. (defun saturacion-resolucion (S) (resolucion-cond-saturacion S nil))
263

La funcin resolucion-cond-saturacion implementa los puntos 2, 3 y 4 del o algoritmo de saturacin SR. Sus argumentos son los conjuntos de clusulas S1 y o a S2 . (defun resolucion-cond-saturacion (S-1 S-2) (declare (xargs :measure (medida-saturacion S-1 S-2))) (if (endp S-1) S-2 (let ((resolventes (resolucion-cond-clausula-conjunto (car S-1) S-2 nil (append S-1 S-2)))) (if (contiene-clausula-vacia resolventes) t (resolucion-cond-saturacion (append resolventes (cdr S-1)) (cons (car S-1) S-2))))))
264

9.1. Resolucin condicionada o

251

La funcin resolucion-cond-clausula-conjunto implementa el punto 2. o Esta funcin recibe cuatro argumentos, el primero es la clusula que se toma del o a conjunto S1 , el segundo es el conjunto S2 , el tercero es un acumulador donde se irn almacenando las resolventes nuevas y el cuarto es la concatenacin de S1 y a o S2 y se utiliza para comprobar si una resolvente ya ha aparecido. (defun resolucion-cond-clausula-conjunto (C S-2 S-N S-1-2) (if (endp S-2) S-N (let ((res (resolucion-cond-clausulas C (car S-2)))) (if (or (not (consp res)) (conjunto-miembro (car res) S-1-2) (conjunto-miembro (car res) S-N)) (resolucion-cond-clausula-conjunto C (cdr S-2) S-N S-1-2) (resolucion-cond-clausula-conjunto C (cdr S-2) (cons (car res) S-N) S-1-2)))))
265

Utilizando un predicado condicion concreto, por ejemplo uno que siempre sea cierto (que se corresponde con la resolucin binaria), podemos utilizar las funcioo nes anteriores para comprobar la insatisfacibilidad de un conjunto de clusulas a y para obtener un conjunto saturado por resolucin, si es que el conjunto de o clusulas inicial es satisfacible. a ACL2 NIL ACL2 ((Q) ACL2 !>(INSAT-resolucion ( (p q) (p (- q)) ((- p) q) )) !>(saturacion-resolucion ( (p q) (p (- q)) ((- p) q) )) ((- P) Q) (P) (P (- Q)) (P Q)) !>(INSAT-resolucion ( (p q) (p (- q)) ((- p) q) ((- p) (- q)) ))
266

T ACL2 !>(saturacion-resolucion ( (p q) (p (- q)) ((- p) q) ((- p) (- q)) )) T Obsrvese que la funcin saturacion-resolucion devuelve t en el caso de e o que en el proceso se haya obtenido la clusula vac y en otro caso devuela a ve el conjunto de clusulas saturado por resolucin. Por otro lado la funcin a o o INSAT-resolucion devuelve t si en el proceso de saturacin se obtiene la clusula o a vac y nil en otro caso. a

252

Cap tulo 9. Resolucin o

9.1.3

Terminacin de IN SATR o

La terminacin del algoritmo IN SATR estar garantizada si se demuestra que la o a funcin resolucion-cond-saturacion termina para cualquier dato de entrada. o Para ello se proporciona una medida de los argumentos, medida-saturacion, que decrece en las llamadas recursivas. Veamos cmo se obtiene dicha medida. o La funcin resolucion-cond-saturacion tiene una unica llamada recursiva o en la que el primer argumento es (append resolventes (cdr S-1)) y el segundo es (cons (car S-1) S-2). De esta forma, el segundo argumento de la llamada recursiva siempre tiene un elemento ms que al principio, (car S-1), a mientras que el primer argumento siempre tiene un elemento menos, (car S-1), y, eventualmente, se le aaden los elementos de resolventes. n Se tienen dos situaciones distintas en funcin del valor de resolventes. Si o este valor es nil, es decir no hay resolventes nuevas, entonces el primer argumento de la llamada recursiva tiene menos elementos que al principio y su longitud puede usarse como medida para garantizar la terminacin. Si el valor de la vao riable resolventes es distinto de nil entonces los dos argumentos de la llamada recursiva tienen ms elementos que al principio. a Los elementos de la lista almacenada en la variable resolventes son los obtenidos al evaluar la funcin resolucion-cond-clausula-conjunto, y, en el valor o devuelto por esta funcin, no se incluye ninguna clusula que se encuentre ya o a en (append S-1 S-2). Luego los elementos de resolventes no aparecen en los valores iniciales de los argumentos y el nmero total de clusulas distintas en los u a argumentos de la llamada recursiva aumenta. Este nmero est acotado y por u a tanto, la diferencia entre una cota y dicho nmero es un valor que disminuye en u las llamadas recursivas en las que resolventes es distinto de nil. La medida que se considera para demostrar la terminacin de la funcin o o resolucion-cond-saturacion es un par en el que el primer elemento es la diferencia entre una cota del nmero total de clusulas distintas que se pueden u a obtener y el nmero de clusulas distintas que aparecen en los argumentos de la u a llamada, y el segundo elemento es la longitud del primer argumento. Estos valores se comparan de forma lexicogrca: primero se comparan los primeros elementos a de los pares y, si son iguales, se comparan los segundos elementos. En la siguiente tabla mostramos cmo cambian estos valores en las llamadas recursivas del o ejemplo de la pgina 250. a S1 p, q , p, q , q, p p, q , q, p p , q, p q, p q S2 p, q p, q , p, q p , p, q , p, q q, p , p , p, q , p, q q , q, p , p , p, q , p, q Medida 93 , 3 93 , 2 94 , 2 94 , 1 95 , 1 95 , 0

9.1. Resolucin condicionada o

253

En este caso, una cota del nmero total de clusulas distintas que pueden u a aparecer es 9. Al iniciar el proceso la medida es 9 3 , 3 . En el primer paso no se generan resolventes nuevas y la longitud del primer argumento de la llamada recursiva disminuye en uno; la medida es 9 3 , 2 . En el segundo paso, se genera una resolvente nueva con lo que la medida pasa a ser 9 4 , 2 . En el tercer paso, tampoco se generan resolventes nuevas y la longitud del primer argumento de la siguiente llamada disminuye; la medida que resulta es 94 , 1 . En el cuarto paso, se obtiene una resolvente nueva con lo que la medida pasa a ser 9 5 , 1 . Finalmente, en el ultimo paso no se generan resolventes nuevas, por lo que el primer argumento de la siguiente llamada se queda vac la medida o; a es 9 5 , 0 . En todo paso el par obtenido es menor, en el sentido lexicogrco, que el par del paso anterior. Teorema 9.8 El nmero total de clusulas distintas que se pueden obtener con u a n n variables es 4 . Demostracin: o La prueba es por induccin en n. o o a 1. Si n = 0, entonces slo hay una clusula que se pueda obtener con 0 variables, la clusula vac a a. a 2. Supongamos que el resultado es cierto para n 1. Las clusulas que se pueden obtener con n variables se pueden clasicar en cuatro grupos segn u lo que ocurra con una de esas variables v: Las clusulas que contienen el literal v y no contienen el literal v. a Las clusulas que contienen los literales v y v. a Las clusulas que no contienen el literal v y contienen el literal v. a Las clusulas que no contienen los literales v ni v. a En cualquiera de los cuatro casos, el nmero de clusulas que se pueden u a obtener es igual al que se obtiene si la variable v no aparece, es decir, para n 1 variables. As en los cuatro casos, el nmero de clusulas distintas , u a n1 que se pueden obtener es 4 . Por tanto, el nmero de clusulas distintas u a que se pueden obtener con n variables es 4n .

La funcin medida-resolucion-cota calcula el valor de la cota a partir de o los argumentos de la funcin resolucion-cond-saturacion. Para ello se utilio za la funcin variables-forma-clausal, que devuelve el conjunto de variables o que aparecen en un conjunto de clusulas (o una forma clausal), y la funcin a o n numero-clausulas-cota, que calcula el valor 4 , donde n es el nmero de eleu mentos del conjunto obtenido con variables-forma-clausal.

254

Cap tulo 9. Resolucin o


267

(defun medida-resolucion-cota (S) (numero-clausulas-cota (variables-forma-clausal S)))

En la formalizacin ha sido necesario demostrar que el valor de la cota no o cambia, al considerar los conjuntos de clusulas de la llamada recursiva de la a funcin resolucion-cond-saturacion: o (defthm medida-resolucion-cota-invariante (equal (medida-resolucion-cota (append (append (resolucion-cond-clausula-conjunto (car S-1) S-2 nil (append S-1 S-2)) (cdr S-1)) (cons (car S-1) S-2)) (medida-resolucion-cota (append S-1 S-2)))))
268

Para contar el nmero de clusulas distintas que aparecen en un conjunto, u a hemos utilizado una tcnica similar a la usada en la demostracin del teorema e o 9.8. Para cada variable v que aparece en el conjunto de clusulas sumamos el a nmero de clusulas en las que aparecen los literales v y v, el nmero de clusulas u a u a en las que aparece v pero no aparece v, el nmero de clusulas en las que no u a aparece v pero aparece v y el nmero de clusulas en las que no aparecen ni v u a ni v. La funcin que realiza este clculo para un conjunto de variables dado es o a numero-clausulas-variables. El nmero de clusulas distintas que aparecen en u a o un conjunto S es el resultado de evaluar la funcin numero-clausulas-variables sobre el conjunto de variables que aparecen en S. (defun medida-resolucion (S) (numero-clausulas-variables (variables-forma-clausal S) S))
269

Esta forma de calcular la cota y de contabilizar el nmero de clusulas distintas u a que aparecen en un conjunto facilita la demostracin en el sistema del siguiente o teorema: a Teorema 9.9 Sea S un conjunto de clusulas en el que aparecen n variables distintas, entonces el nmero de elementos de S es menor o igual que 4n . u Este resultado es una consecuencia directa del teorema 9.8. Su formalizacin o es la siguiente: (defthm medida-resolucion-cota-es-maximo (<= (medida-resolucion S) (medida-resolucion-cota S)))
270

9.1. Resolucin condicionada o

255

Por otro lado, el valor obtenido con la funcin medida-resolucion aumenta o en las llamadas recursivas de la funcin resolucion-cond-saturacion, siempre o que se generen nuevas resolventes y no haya aparecido la clusula vac a a: (defthm medida-resolucion-aumenta (implies (and (not (contiene-clausula-vacia (resolucion-cond-clausula-conjunto (car S-1) S-2 nil (append S-1 S-2)))) (consp (resolucion-cond-clausula-conjunto (car S-1) S-2 nil (append S-1 S-2)))) (< (medida-resolucion (cons c (append S-1 S-2))) (medida-resolucion (append (append (resolucion-cond-clausula-conjunto (car S-1) S-2 nil (append S-1 S-2)) (cdr S-1)) (cons (car S-1) S-2))))))
271

La prueba de este resultado requiere gran cantidad de lemas previos que relacionan la funcin medida-resolucion con las funciones append, cons, y o resolucion-cond-clausula-conjunto. Finalmente denimos la funcin medida-saturacion que devuelve el par o cuyo primer elemento es uno ms la diferencia entre el valor de la funcin a o o medida-resolucion-cota y el de la funcin medida-resolucion, evaluadas sobre el total de clusulas que aparecen en los conjuntos S-1 y S-2. El segundo a elemento del par es la longitud de S-1, obtenida con la funcin len: o (defun medida-saturacion (S-1 S-2) (cons (- (+ (medida-resolucion-cota (append S-1 S-2)) 1) (medida-resolucion (append S-1 S-2))) (len S-1)))
272

Se ha incrementado en una unidad el primer valor del par para que el resultado sea un ordinal en ACL2 (vease la seccin 2.2.1 para obtener ms detalles sobre o a la representacin de los ordinales en ACL2) y se puedan comparar directamente o con la funcin e0-ord-<. o Con los eventos mostrados en 268 , 270 y 271 , el sistema demuestra automticamente el resultado de terminacin de resolucion-cond-saturacin con a o o respecto a la medida de los argumentos dada por la funcin medida-saturacion. o

9.1.4

Correccin de IN SATR y otras propiedades o

A continuacin presentamos el teorema de correccin del algoritmo IN SATR , as o o como otras propiedades de SR. Los eventos correspondientes a estos teoremas se encuentran en el libro resolucion-aux.lisp.

256

Cap tulo 9. Resolucin o

Teorema 9.10 (Correccin de IN SATR ) Dada un conjunto de clusulas S, o a si IN SATR (S) = t entonces S es insatisfacible. Demostracin: o La demostracin es por reduccin al absurdo. Supongamos que S tiene un o o modelo entonces, en cada paso del algoritmo SR, es modelo de S1 , S2 y Sn : Al principio del algoritmo SR, es modelo de S1 = S y S2 = . Si es modelo de S1 y S2 entonces es modelo de la clusula C tomada de a S1 y, por el teorema 9.2, es modelo de todos los elementos de Sn . Por tanto es modelo de los conjuntos (S1 {C}) Sn y S2 {C}, utilizados en la siguiente llamada de SR. Puesto que IN SATR (S) = t, en algn momento la clusula vac aparece en Sn y u a a esto contradice el hecho de que es modelo de Sn . Por tanto S es insatisfacible. El evento que formaliza este teorema se muestra en 273 . Para probarlo se han establecido eventos que arman que las funciones resolucion-cond-clausulas y resolucion-cond-clausulas-conjunto preservan la satisfacibilidad y se ha demostrado que si una asignacin es modelo de los conjuntos S1 y S2 usados en o el algoritmo SR entonces este algoritmo no devuelve t, es decir, no se genera la clusula vac lo que contradice la hiptesis (INSAT-resolucion S). a a, o (defthm correccion-INSAT-resolucion (implies (and (es-forma-clausal S) (INSAT-resolucion S)) (not (modelo-forma-clausal sigma S))))
273

a Los siguiente teoremas son propiedades sobre el algoritmo SR, que sern necesarias para demostrar la completitud de IN SATR . Teorema 9.11 Dado un conjunto de clusulas S, si IN SATR (S) = t entonces a SR(S) es una forma clausal. Este resultado es trivial puesto que, por el resultado establecido en 253 , la resolvente de dos clusulas es una clusula y, por tanto, el proceso de saturaa a cin por resolucin condicionada genera formas clausales. Su formalizacin es la o o o siguiente: (defthm INSAT-resolucion-es-forma-clausal (implies (and (es-forma-clausal S) (not (INSAT-resolucion S))) (es-forma-clausal (saturacion-resolucion S))))
274

9.1. Resolucin condicionada o

257

a Teorema 9.12 Dado un conjunto de clusulas S, si IN SATR (S) = t entonces SR(S) no contiene la clusula vac a a. Este resultado tambin es obvio pues, si en el proceso de saturacin por resoe o o lucin aparece la clusula vac entonces IN SATR (S) = t. Su formalizacin es o a a, la siguiente: (defthm INSAT-resolucion-no-contiene-clausula-vacia (implies (and (not (contiene-clausula-vacia S)) (not (INSAT-resolucion S))) (not (contiene-clausula-vacia (saturacion-resolucion S)))))
275

Teorema 9.13 Dado un conjunto de clusulas S, si IN SATR (S) = t entonces a S SR(S). De nuevo se trata de una propiedad fcil de demostrar puesto que, en cada a iteracin del algoritmo SR se elimina un elemento del conjunto S1 que pasa a o o formar parte de S2 en la siguiente iteracin. Si IN SATR (S) = t, entonces el algoritmo SR devuelve el ultimo valor de S2 obtenido cuando S1 es vac Como o. o al principio S1 = S, entonces cada elemento de S pasa, en alguna iteracin, a formar parte del conjunto S2 y, nalmente, del valor devuelto por SR. Su formalizacin es la siguiente: o (defthm INSAT-resolucion-contiene-original (implies (not (INSAT-resolucion S)) (subsetp-equal S (saturacion-resolucion S))))
276

Teorema 9.14 Dado un conjunto de clusulas S, si IN SATR (S) = t entonces a SR(S) es un conjunto saturado por resolucin condicionada. o Demostracin: o Supongamos que IN SATR (S) = t, es decir, SR(S) devuelve el ultimo valor a o. del conjunto S2 , cuando S1 es vac Sean C1 y C2 dos clusulas de SR(S). En alguna iteracin del proceso de saturacin estas clusulas se aaden al conjunto o o a n n a S2 , supongamos que C1 es la primera en ser aadida y, unas iteraciones ms o tarde, es aadida C2 . En la iteracin en la que C2 es aadida a S2 , se calcula la n n resolvente condicionada entre C1 y C2 y, si existe, es aadida al conjunto S1 de la n siguiente iteracin. Puesto que el proceso termina cuando el valor del conjunto o S1 es vac cada uno de sus elementos se pasa en alguna iteracin al conjunto o, o S2 , por tanto, la resolvente condicionada entre C1 y C2 , si es que existe, se aade n en alguna iteracin a S2 y, nalmente, aparece en el conjunto devuelto por SR. o

258

Cap tulo 9. Resolucin o

Para demostrar este teorema en la formalizacin hemos utilizado la caracteo rizacin dada en 260-261 . Hemos demostrado que, dadas dos clusulas del cono a junto (saturacion-resolvente S), su resolvente condicionada, si es que existe, tambin est en dicho conjunto (saturacion-resolucion-funciona). El evento e a que arma que el conjunto (saturacion-resolucion S) verica el predicado saturado-cond-conjunto se obtiene como una instancia funcional (ver seccin o o 2.2.6) del evento mostrado en 261 sustituyendo la funcin saturado-cond-S por la funcin constante igual al conjunto (saturacion-resolucion S) y la funcin o o saturado-cond-H por la funcin constante igual a la conjuncin de las hiptesis o o o (es-forma-clausal S) y (not (INSAT-resolucion S)). Su formalizacin es la o siguiente:
277

(defthm INSAT-resolucion-saturado-cond-conjunto (implies (and (es-forma-clausal S) (not (INSAT-resolucion S))) (saturado-cond-conjunto (saturacion-resolucion S)))) (defthm saturacion-resolucion-funciona (implies (and (es-clausula C1) (es-clausula C2) (conjunto-miembro C1 (saturacion-resolucion S)) (conjunto-miembro C2 (saturacion-resolucion S)) (consp (resolucion-cond-clausulas C1 C2))) (conjunto-miembro (car (resolucion-cond-clausulas C1 C2)) (saturacion-resolucion S))))

9.2

Teorema de completitud de Bezem

Esta seccin est dedicada a la formalizacin en ACL2 de la demostracin de o a o o Bezem del teorema de completitud de la resolucin condicionada [8]. Este teorema o arma que todo conjunto de clusulas saturado por resolucin condicionada que a o no contenga la clusula vac es satisfacible. La prueba es la misma para distintas a a estrategias de resolucin para las que existe una relacin entre la condicin que o o o las dene y una asignacin predeterminada. o El desarrollo de la prueba se hace de una manera similar a como se presenta en [21]. En la primera parte de esta seccin se desarrollan resultados relativos o a conjuntos que tienen interseccin no vac con todos los elementos de una o a coleccin de conjuntos. Estos conjuntos se denominan conjuntos representantes o y son utilizados en la prueba de completitud. Los eventos desarrollados en esta parte se encuentran en el libro representantes.lisp.

9.2. Teorema de completitud de Bezem

259

En la segunda parte se presenta la prueba del teorema de completitud y su formalizacin, los eventos correspondientes se encuentran en el libro o resolucion-thm.lisp. En la ultima parte se demuestra la completitud del algoritmo IN SATR , su formalizacin aparece en el libro resolucion-aux.lisp. o

9.2.1

Conjuntos representantes

Denicin 9.15 Dada una coleccin de conjuntos S. Un conjunto R es un o o 1. conjunto representante de S si C S se tiene R C = , es decir, R intersecta todo elemento de S. 2. conjunto representante minimal de S, si R es un conjunto representante de S, y no tiene ningn subconjunto propio que sea a su vez conjunto u representante de S. El concepto de conjunto representante lo hemos formalizado con la siguiente funcin, donde conjunto-vacio comprueba si su argumento es una lista sin o elementos. (defun conjunto-representante (R S) (cond ((endp S) t) ((not (conjunto-vacio (interseccion R (car S)))) (conjunto-representante R (cdr S))) (t nil)))
278

El concepto de conjunto representante minimal se puede establecer calculando todos los subconjuntos propios de un conjunto dado y, para cada uno de ellos, comprobando que no son conjuntos representantes. Sin embargo, es ms intea resante, y fcil de expresar, una denicin basada en el siguiente teorema de a o caracterizacin: o Teorema 9.16 Sea R un conjunto representante de la coleccin de conjuntos S. o Las siguientes condiciones son equivalentes: 1. R es un conjunto representante minimal de S. 2. L R C S tal que R C = {L}. Donde C es el conjunto testigo asociado a L con respecto a R. Demostracin: o Supongamos que R es un conjunto representante minimal de S entonces, dado L R, R {L} no es un conjunto representante de S. Luego existe C S tal que C (R {L}) = , como R C = , se tiene R C = {L}. Supongamos que para todo L R existe C S tal que R C = {L}. Entonces, para todo L R, R {L} no es un conjunto representante pues

260

Cap tulo 9. Resolucin o

su interseccin con C es vac Por tanto, ningn subconjunto propio de R es o a. u conjunto representante.

De esta forma, para denir el concepto de conjunto representante minimal, basta con comprobar que, para todo elemento L del candidato a conjunto representante minimal R, hay un elemento C en la coleccin S tal que, la interseccin o o o entre R y C es el conjunto unitario formado por L. La siguiente funcin recorre o la coleccin S buscando un conjunto C que cumpla dicha condicin con respecto o a R y L: (defun conjunto-testigo (R S L) (cond ((endp S) nil) ((and (member-equal L (car S)) (conjunto-unitario (interseccion R (car S)))) (car S)) (t (conjunto-testigo R (cdr S) L))))
279

Donde la funcin interseccion devuelve la lista de los elementos que hay en o comn entre las listas que recibe como argumento y conjunto-unitario comu prueba que no hay dos elementos distintos en la lista que recibe como argumento. Para comprobar que un conjunto R es un conjunto representante minimal basta con comprobar que se puede determinar un conjunto testigo para todos los elementos de R. Esto se hace recursivamente sobre la lista de elementos de R. Este proceso est formalizado con la funcin conjunto-representante-minimal-aux. a o Esta funcin se utiliza en la denicin de conjunto-representante-minimal o o para comprobar si un conjunto R es un conjunto representante minimal de una coleccin de conjuntos S. o (defun conjunto-representante-minimal (R S) (and (conjunto-representante minimal S) (conjunto-representante-minimal-aux R R S))) (defun conjunto-representante-minimal-aux (R-aux R S) (cond ((endp R-aux) t) ((conjunto-testigo R S (car R-aux)) (conjunto-representante-minimal-aux (cdr R-aux) R S)) (t nil))) Veamos a continuacin cmo se formaliza el teorema 9.16. Por un lado, se o o verica que, si R es un conjunto representante minimal de la coleccin S segn la o u funcin anterior, entonces ningn subconjunto propio de R es conjunto represeno u tante de S:
280

9.2. Teorema de completitud de Bezem (defthm conjunto-representante-minimal-equivalencia-2->1 (implies (and (conjunto-representante-minimal R S) (subsetp-equal R-aux R) (not (subsetp-equal R R-aux))) (not (conjunto-representante R-aux S))))

261
281

Para formalizar la otra implicacin hay que asumir la existencia de cierto o conjunto (hip-R) y una coleccin de conjuntos (hip-S) tales que (hip-R) es un o conjunto representante de (hip-S) y ningn subconjunto propio de (hip-R) es u conjunto representante de (hip-S): (defthm hip-minimal-es-conjunto-representante (conjunto-representante (hip-R) (hip-S)))
282

(defthm hip-minimal-no-tiene-subconjuntos-propios-representantes (implies (and (subsetp-equal R-aux (hip-R)) (not (subsetp-equal (hip-R) R-aux))) (not (conjunto-representante R-aux (hip-S))))) En esta situacin se puede demostrar: o (defthm conjunto-representante-minimal-equivalencia-1->2 (conjunto-representante-minimal (hip-R) (hip-S)))
283

El siguiente teorema arma que toda coleccin de conjuntos nitos y no o vac tiene un conjunto representante minimal, y su demostracin proporcioos o na un mtodo para construirlo: e o os Teorema 9.17 Toda coleccin nita de conjuntos nitos y no vac tiene un conjunto representante minimal. Demostracin: o o Sea S una coleccin nita de conjuntos nitos y no vac o os. Sea R0 la unin os, de todos los elementos de S. Como S no tiene conjuntos no vac R0 tiene interseccin no vac con todos los elementos de S y, por tanto, R0 es un conjunto o a representante de S. Si R0 no es un conjunto representante minimal entonces, por el teorema de caracterizacin 9.16, existe L en R0 de forma que para todo C S o tal que L C, R0 C tiene al menos un elemento distinto de L. Por tanto R0 {L} sigue siendo un conjunto representante de S, llamemos R1 a este conjunto. Este proceso de eliminacin de elementos innecesarios contina hasta obtener un Rn o u tal que para todo elemento L en Rn , existe C S tal que Rn C = {L} y, por tanto, Rn es un conjunto representante minimal.

262

Cap tulo 9. Resolucin o

La prueba del teorema proporciona un mtodo para obtener un conjunto ree presentante de una coleccin S, la unin de todos los elementos de dicha coleccin, o o o y un procedimiento para reducirlo hasta obtener uno minimal. Para obtener el primer conjunto representante utilizamos la funcin o union-coleccion, que realiza la unin de todos los conjuntos de una coleco cin. Para demostrar que es un conjunto representante tendremos que como probar que la coleccin no contiene conjuntos vac o os, esto lo hace la funcin o coleccion-de-conjuntos-no-vacios: (defun union-coleccion (S) (cond ((endp S) nil) (t (union-equal (car S) (union-coleccion (cdr S)))))) (defun coleccion-de-conjuntos-no-vacios (S) (cond ((endp S) t) (t (and (not (conjunto-vacio (car S))) (coleccion-de-conjuntos-no-vacios (cdr S)))))) (defthm union-coleccion-es-conjunto-representante (implies (coleccion-de-conjuntos-no-vacios S) (conjunto-representante (union-coleccion S) S))) El proceso de reduccin consiste en eliminar de un conjunto representante o los elementos para los que no existe un conjunto testigo. Esto lo hace la funcin o o reduccion-conjunto-representante. Para ello, esta funcin busca un elemento sin conjunto testigo en el conjunto representante R y lo elimina. Este proceso contina hasta que no quedan elementos sin conjunto testigo. En este caso la u funcin devuelve el conjunto reducido. Para buscar un elemento sin conjunto o testigo se utiliza la funcin elemento-sin-conjunto-testigo. o (defun reduccion-conjunto-representante (R S) (if (elemento-sin-conjunto-testigo R R S) (reduccion-conjunto-representante (elimina-elemento (car (elemento-sin-conjunto-testigo R R S)) R) S) R)) (defun elemento-sin-conjunto-testigo (R-aux R S) (cond ((endp R-aux) nil) ((conjunto-testigo R S (car R-aux)) (elemento-sin-conjunto-testigo (cdr R-aux) R S)) (t (list (car R-aux)))))
285 284

9.2. Teorema de completitud de Bezem

263

Se verica que la reduccin utilizando este proceso, de un conjunto represeno tante es un conjunto representante minimal: (defthm reduccion-conjunto-representante-es-minimal (implies (conjunto-representante R S) (conjunto-representante-minimal (reduccion-conjunto-representante R S) S))
286

Finalmente, la funcin construye-conjunto-representante-minimal conso truye un conjunto representante minimal para una coleccin de conjuntos no o vac os. Gracias a los resultados mostrados en 284 y 286 , se puede demostrar que esta funcin devuelve un conjunto representante minimal: o (defun construye-conjunto-representante-minimal (S) (reduccion-conjunto-representante (union-coleccion S) S)) (defthm construye-conjunto-representante-minimal-es-minimal (implies (coleccion-de-conjuntos-no-vacios S) (conjunto-representante-minimal (construye-conjunto-representante-minimal S) S)))
287

9.2.2

Modelo de un conjunto saturado por resolucin o

La demostracin de Bezem del teorema de completitud de la resolucin condicioo o nada considera una asignacin P tal que para todo par de clusulas C, D con o a o o P |= C y P |= D se tiene que C y D cumplen la condicin de resolucin P . En estas condiciones se verica el siguiente teorema: a o Teorema 9.18 Sea S un conjunto de clusulas saturado por resolucin condicionada que no contiene la clusula vac entonces S es satisfacible. a a, Demostracin: o A partir del conjunto de clusulas S y la asignacin P consideramos el conjuna o a to S (P ) = {C S tales que P |= C}. Este conjunto no contiene la clusula vac pues dicha clusula no est en S, por tanto, por el teorema 9.17, existe un a, a a conjunto representante minimal de S (P ). Sea R uno de estos representantes minimales. Si para algn literal L se tiene L, L R, entonces existen CL y CL en S (P ) u tales que L CL y L CL . Se tiene que P |= L o P |= L por tanto P |= CL o P |= CL y esto contradice el hecho de que CL , CL S (P ). Por tanto R no contiene literales complementarios. A partir de R y P denimos la siguiente asignacin: o

264 (x) =

Cap tulo 9. Resolucin o

si x R si x R y P (x) = en otro caso

(a) (b) (c)

Dado C S, demostraremos que |= C por induccin en el nmero de o u literales de C que son ciertos en P : 1. Si el nmero de literales de C que son ciertos en P es 0, entonces P |= C u y C S (P ). Como R es un conjunto representante minimal de S (P ), existe L C R: (a) Si L es un literal positivo, L = x, entonces, por la denicin (a) de , o se tiene que (x) = y, por tanto, |= L y |= C. (b) Si L es un literal negativo, L = x, entonces x R y, como R no contiene literales complementarios, x R. Luego, por la denicin (c) o de se tiene que (x) = y, por tanto, |= L y |= C. 2. Supongamos que el nmero de literales de C que son ciertos en P es n > 0 u a u y que es modelo de cualquier clusula en la que el nmero de literales que son ciertos en P es menor que n. Sea L C tal que P |= L, este literal existe pues n > 0. (a) Si L R: i. Si L es un literal positivo, L = x, entonces, por la denicin (b) o de , se tiene que (x) = y, por tanto, |= L y |= C. ii. Si L es un literal negativo, L = x, entonces x = L R y P (x) = pues P |= L = x. Luego, por la denicin (c) de , o se tiene (x) = y, por tanto, |= x = L y |= C. (b) Si L R entonces, como R es un conjunto representante minimal de S (P ), existe D S (P ) tal que D R = {L}. Se tienen C, D S tales que P |= C, pues P |= L y L C, y o o P |= D. De esta forma, C y D cumplen la condicin de resolucin y, como S es saturado por resolucin condicionada, L C y L o D, se tiene que la resolvente de C y D con respecto a L est en S: a (C {L}) (D {L}) S. Como D S (P ) entonces ningn elemento de D {L} es cierto en u u P . Por tanto, el nmero de literales de (C {L}) (D {L}) S que son ciertos en P es menor que n, pues L es cierto en P . Por hiptesis de induccin se tiene que |= (C {L}) (D {L}). o o Supongamos que |= (D {L}). Sea L (D {L}) tal que |= L :

9.2. Teorema de completitud de Bezem

265

i. Si L es un literal positivo, L = x, entonces, como D R = {L}, se tiene que x R. Adems (x) = , pues x = L D a S (P ). De esta forma, por la denicin (c) de , se tiene que o (L ) = (x) = , lo que supone una contradiccin. o ii. Si L es un literal negativo, L = x, entonces, como D R = {L}, se tiene que x R. Adems (x) = , pues x = L D a o S (P ), por tanto (x) = . De esta forma, por la denicin (b) de , se tiene que (x) = y (L ) = (x) = , lo que supone una contradiccin. o Luego |= (D {L}) y, como |= (C {L}) (D {L}), se verica que |= (C {L}). Luego |= C. De esta forma, para todo C S, |= C. Por tanto es un modelo de S y S es satisfacible.

La demostracin se basa en la existencia de una asignacin P que guarda o o cierta relacin con la condicin de resolucin P . En la formalizacin hemos asuo o o o mido la existencia de una funcin constante que proporciona tal asignacin. Dicha o o funcin es asignacion y su existencia se ha asumido en el mismo encapsulado o en el que se asumi la existencia de la funcin condicion. La propiedad de o o asignacion con respecto a la condicin de resolucin es la siguiente: o o (defthm propiedad-fundamental-condicion (implies (and (es-clausula D) (es-clausula C) (not (modelo-clausula (asignacion) D)) (modelo-clausula (asignacion) C)) (condicion C D)))
288

Aunque esta propiedad de la funcin asignacion es necesaria para demostrar o el teorema de completitud, la mayor parte de la formalizacin se ha realizado pao ra una asignacin cualquiera, particularizando para la asignacin proporcionada o o por la funcin asignacion slo en aquellos eventos en donde es absolutamente o o necesario. De esta forma el conjunto S se ha denido para cualquier asignacin o : (defun coleccion-clausulas-falsas-asignacion (sigma S) (cond ((endp S) S) ((not (modelo-clausula sigma (car S))) (cons (car S) (coleccion-clausulas-falsas-asignacion sigma (cdr S)))) (t (coleccion-clausulas-falsas-asignacion sigma (cdr S)))))
289

266

Cap tulo 9. Resolucin o

La construccin de la asignacin se formaliza a partir de cualquier asigo o nacin y cualquier conjunto de literales R. El hecho de que sea un cono junto representante minimal de S () no afecta a la construccin. La funcin o o o nueva-asignacion proporciona la asignacin . Para ello obtiene los literales o positivos del conjunto R (usando la funcin literales-positivos) y los literales positivos ciertos en la asignacin sigma cuyo complementario no aparece o o en R (usando la funcin literales-representante-asignacion), y construye una asignacin en la que todos estos literales son ciertos (usando la funcin o o genera-asignacion-positiva presentada en 89 ) (defun nueva-asignacion (R sigma) (genera-asignacion-positiva (append (literales-positivos R) (literales-representante-asignacion R sigma sigma)))) (defun literales-positivos (R) (cond ((endp R) nil) ((es-simbolo-proposicional (car R)) (cons (car R) (literales-positivos (cdr R)))) (t (literales-positivos (cdr R))))) (defun literales-representante-asignacion (R alist sigma) (cond ((endp alist) nil) ((and (es-simbolo-proposicional (car (car alist))) (modelo sigma (car (car alist))) (not (member-equal (complementario (car (car alist))) R))) (cons (car (car alist)) (literales-representante-asignacion R (cdr alist) sigma))) (t (literales-representante-asignacion R (cdr alist) sigma)))) Para desarrollar la prueba tenemos que denir una funcin cuyo esquema de o induccin asociado se corresponda con el utilizado en la demostracin. Al igual o o que en los casos anteriores esta funcin se puede denir para una asignacin o o cualquiera . El caso base de la induccin se tiene para aquellas clusulas que o a son falsas en , es decir, en las que no hay ningn literal cierto. En el caso u inductivo, dada una clusula C con un literal L cierto en , basta con suponer a la propiedad para todas aquellas clusulas de S que no contengan a L. As la a , demostracin se desarrolla como sigue: o 1. Primero se demuestra la propiedad para todas las clusulas de S (). a
290

9.2. Teorema de completitud de Bezem

267

2. La propiedad para todas las clusulas en las que el unico literal cierto en a sea L1 se demuestra a partir del caso anterior. 3. La propiedad para todas las clusulas en las que los unicos literales ciertos a en sean L1 y L2 se demuestra a partir de los casos anteriores. 4. La propiedad para todas las clusulas en las que los unicos literales ciertos a en sean L1 , L2 y L3 se demuestra a partir de los casos anteriores, etc. La induccin se realiza en funcin del nmero de literales de una o o u clusula que son ciertos en una asignacin. Para ello denimos la funcin a o o induccion-literal-cierto: (defun induccion-literal-cierto (sigma S) (if (clausula-con-literal-cierto sigma S) (induccion-literal-cierto sigma (reduce-coleccion-literal S (literal-cierto-clausula sigma (clausula-con-literal-cierto sigma S)))) t))
291

En la llamada recursiva de esta funcin, se eliminan de un conjunto de clusuo a las S todos los elementos en los que aparece un determinado literal cierto en la asignacin sigma. La funcin clausula-con-literal-cierto busca en S una o o clusula vlida en la asignacin sigma, la funcin literal-cierto-clausula dea a o o vuelve un literal vlido de esa clusula y la funcin reduce-coleccion-literal a a o elimina de S todos los elementos en los que aparece dicho literal. (defun reduce-coleccion-literal (S L) (cond ((endp S) S) ((member-equal L (car S)) (reduce-coleccion-literal (cdr S) L)) (t (cons (car S) (reduce-coleccion-literal (cdr S) L))))) (defun clausula-con-literal-cierto (sigma S) (cond ((endp S) nil) ((literal-cierto-clausula sigma (car S)) (car S)) (t (clausula-con-literal-cierto sigma (cdr S))))) (defun literal-cierto-clausula (sigma C) (cond ((endp C) nil) ((modelo sigma (car C)) (car C)) (t (literal-cierto-clausula sigma (cdr C)))))
292

268

Cap tulo 9. Resolucin o

El esquema de induccin asociado a la funcin induccion-literal-cierto o o es el siguiente: (IMPLIES (NOT (CLAUSULA-CON-LITERAL-CIERTO SIGMA S)) (:P SIGMA S)) (IMPLIES (AND (CLAUSULA-CON-LITERAL-CIERTO SIGMA S) (:P SIGMA (REDUCE-COLECCION-LITERAL S L))) (:P SIGMA S)) Donde :P es la propiedad que se quiere demostrar y L es el literal cierto en sigma obtenido con las funciones literal-cierto-clausula y clausula-con-literal-cierto. El primer caso del esquema de induccin o se corresponde con el caso base: en S no hay clusulas con literales a ciertos en sigma. El segundo caso asume la propiedad :P para el conjunto (REDUCE-COLECCION-LITERAL S L), para demostrar la propiedad :P para el conjunto S. Una vez denida la funcin que justica el esquema de induccin, tenemos o o que establecer los dos casos de la demostracin del teorema 9.18. o El caso base de la prueba se formaliza de la siguiente forma: (defthm nueva-asignacion-clausula (implies (and (es-forma-clausal S) (conjunto-representante-minimal R S) (not (clausula-con-literal-cierto sigma S)) (not (contiene-clausula-vacia S)) (member-equal C S)) (modelo-clausula (nueva-asignacion R sigma) C)))
293

La prueba de este evento se realiza siguiendo las l neas de la demostracin del o teorema 9.18: se obtiene un literal en la interseccin de C y R, y se demuestra o que, tanto si es un literal positivo como negativo, la asignacin sigma es modelo o de dicho literal. Obsrvese que este evento se establece para cualquier asignacin e o sigma, por tanto, tambin es cierto para la asignacin asociada a la condicin de e o o resolucin. o El caso inductivo es ms complicado, veamos los principales eventos relacioa nados con su automatizacin. El caso 2-(a) se formaliza con el siguiente evento: o (defthm modelo-nueva-asignacion-clausula-literal-C-not-member (implies (and (member-equal L C) (es-clausula C) (modelo sigma L) (not (member-equal (complementario L) R))) (modelo-clausula (nueva-asignacion R sigma) C)))
294

9.2. Teorema de completitud de Bezem

269

La prueba se basa en el hecho de que, en la situacin descrita por las hiptesis o o del evento anterior, la asignacin (nueva-asignacion R sigma) es modelo del o literal L y, por tanto, modelo de la clusula C. Al igual que en el caso base de a la demostracin, este evento se establece para cualquier asignacin sigma, por o o tanto, tambin es cierto para la asignacin asociada a la condicin de resolucin. e o o o La parte nal del caso 2-(b), es decir, la prueba de que no es modelo de (D {L}) y, si es modelo de la resolvente entre C y D, tiene que ser modelo de C, se formaliza con los siguientes eventos. El primero arma que (nueva-asignacion R sigma) no es modelo de (elimina-elemento L D) y el segundo que, si (nueva-asignacion R sigma) es modelo de la resolvente entre C y D entonces es modelo de C: (defthm modelo-clausula-nueva-asignacion-elimina-elemento (implies (and (es-literal L) (member-equal L D) (member-equal L R) (es-clausula D) (conjunto-unitario (interseccion R D)) (not (modelo-clausula sigma D))) (not (modelo-clausula (nueva-asignacion R sigma) (elimina-elemento L D))))) (defthm modelo-clausula-nueva-asignacion-caso-inductivo-aux (implies (and (conjunto-unitario (interseccion R D)) (member-equal (complementario L) D) (member-equal (complementario L) R) (not (modelo-clausula sigma D)) (es-clausula C) (es-clausula D) (member-equal L C) (condicion C D) (modelo-forma-clausal (nueva-asignacion R sigma) (resolucion-cond-clausulas C D))) (modelo-clausula (nueva-asignacion R sigma) C))) Obsrvese que en el segundo evento se incluye la hiptesis (condicion C D), e o para asegurar que se puede utilizar la resolucin condicionada entre C y D. De esta o forma el resultado es cierto para cualquier asignacin sigma. La particularizacin o o para la asignacin asociada a la condicin de resolucin permite eliminar dicha hio o o ptesis. Ntese tambin que el valor devuelto por resolucion-cond-clausulas o o e es la lista formada por la resolvente y por eso se utiliza modelo-forma-clausal para expresar la hiptesis acerca de su valor de verdad en la asignacin o o
295

270

Cap tulo 9. Resolucin o

o e (nueva-asignacion R sigma). Finalmente, ntese tambin que no se incluye a ninguna hiptesis que arme que la resolvente entre C y D existe, podr ser una o clusula con literales complementarios e incluso en ese caso el resultado es cierto. a Una vez demostrados estos resultados, el caso inductivo se formaliza de la siguiente forma: (defthm nueva-asignacion-clausula-inductivo (implies (and (clausula-con-literal-cierto (asignacion) S) (modelo-forma-clausal (nueva-asignacion R (asignacion)) (reduce-coleccion-literal S (literal-cierto-clausula (asignacion) (clausula-con-literal-cierto (asignacion) S)))) (es-forma-clausal S) (saturado-cond-conjunto S) (not (contiene-clausula-vacia S)) (conjunto-representante-minimal R (coleccion-clausulas-falsas-asignacion (asignacion) S)) (member-equal C S)) (modelo-clausula (nueva-asignacion R (asignacion)) C))
296

Obsrvese que para expresar el resultado se utiliza la asignacin asociada e o a la condicin de resolucin, proporcionada por la funcin asignacion, y es o o o necesario incluir una hiptesis, que asegura que R es un conjunto representante o minimal de las clusulas de S falsas en la asignacin proporcionada por la funcin a o o asignacion. Ntese tambin que la hiptesis de induccin es la segunda de las o e o o hiptesis de este evento. o Finalmente, el evento que formaliza el teorema 9.18 es el siguiente: (defthm completitud-resolucion-bezem (implies (and (es-forma-clausal S) (saturado-cond-conjunto S) (not (contiene-clausula-vacia S)) (conjunto-representante-minimal R (coleccion-clausulas-falsas-asignacion (asignacion) S))) (modelo-forma-clausal (nueva-asignacion R (asignacion)) S)))
297

9.2. Teorema de completitud de Bezem

271

Para su prueba en el sistema se ha indicado que se debe usar el esquema de induccin proporcionado por la funcin induccion-literal-cierto (ver seccin o o o 2.2.4).

9.2.3

Completitud de IN SATR

Una vez demostrado el teorema de completitud de la resolucin condicionada, el o resultado de completitud del algoritmo IN SATR se obtiene de forma inmediata: a Teorema 9.19 (Completitud de IN SATR ) Dada un conjunto de clusulas S, si IN SATR (S) = t entonces S es satisfacible. Demostracin: o Si IN SATR (S) = t entonces, por el teorema 9.11, SR(S) es un conjunto de clusulas que, por el teorema 9.12, no contiene la clusula vac y, por el teorema a a a 9.14, est saturado por resolucin condicionada. Por tanto, por el teorema 9.18, a o SR(S) es satisfacible y, puesto que S SR(S) por el teorema 9.13, S tambin e lo es.

La formalizacin de este resultado es la siguiente: o


298

(defthm completitud-INSAT-resolucion (implies (and (es-forma-clausal S) (not (contiene-clausula-vacia S)) (not (INSAT-resolucion S))) (modelo-forma-clausal (nueva-asignacion (construye-conjunto-representante-minimal (coleccion-clausulas-falsas-asignacion (asignacion) (saturacion-resolucion S))) (asignacion)) S))

La demostracin del mismo se obtiene a partir de los eventos presentados o e o en 274 , 275 , 277 , 297 y 276 . Obsrvese que la asignacin que se utiliza para asegurar la satisfacibilidad de S es la que se obtiene aplicando la funcin nueva-asignacion a la asignacin asociada a la condicin de resolucion, o o o asignacion, y un conjunto representante minimal de las clusulas de a (saturacion-resolucion S) falsas en dicha asignacin. o

272

Cap tulo 9. Resolucin o

9.3

Teor genrica e instancias a e

En esta seccin presentamos una teor genrica para facilitar la reutilizacin de o a e o los resultados anteriores. Esta teor se dene para las funciones condicion y a asignacion. A partir de estas funciones se construyen de forma automtica las a implementaciones de los algoritmos SR y IN SATR y se demuestran las propiedades de correccin y completitud de este ultimo. A continuacin se desarrollan o o instancias de esta teor genrica para la resolucin binaria, positiva, negativa, a e o resolucin semntica y con soporte. Los eventos presentados en esta seccin se o a o encuentran en el libro resolucion-gen.lisp.

9.3.1

La teor genrica *resolucion* a e

Utilizando las herramientas de construccin de teor genricas presentadas en o as e la seccin 6.2, se ha denido la teor genrica *resolucion* para facilitar la o a e reutilizacin de los resultados anteriores. Las funciones para las que se dene o esta teor son condicion y asignacion. a Las propiedades asumidas para estas funciones son las presentadas en 256 y . Esta teor proporciona, entre otros eventos, las deniciones de las funciones a que implementan el algoritmo de saturacin por resolucin condicionada SR y o o el algoritmo de decisin de insatisabilidad basado en resolucin IN SATR y los o o resultados de correccin y completitud mostrados en 273 y 298 . o
288

Para utilizar esta teor bastar con proporcionar versiones concretas de las a a funciones para las que est denida y demostrar que cumplen las propiedades a asumidas en la misma. Una vez hecho esto se puede utilizar la herramienta de instanciacin genrica presentada en la seccin 6.2 para obtener las versiones o e o concretas y vericadas de los algoritmos SR y IN SATR .

9.3.2

Instancias

Veamos a continuacin la condicin de resolucin y la asignacin asociada a la o o o o misma, correspondientes a distintas estrategias de resolucin. Para cada una de o ellas se obtiene un procedimiento vericado de decisin de insatisfacibilidad. o 9.3.2.1 Resolucin binaria o

La resolucin binaria se basa en el concepto de resolvente presentado en la deo nicin 9.1. En este caso la condicin de resolucin es siempre cierta y cualquier o o o asignacin sirve para instanciar la teor genrica *resolucion*: o a e

9.3. Teor genrica e instancias a e (defun cond-binaria (C-1 C-2) (declare (ignore C-1 C-2)) t) (defcong igual-conjunto iff (cond-binaria C-1 C-2) 1) (defcong igual-conjunto iff (cond-binaria C-1 C-2) 2) (defthm cond-binaria-conmuta (iff (cond-binaria C-1 C-2) (cond-binaria C-2 C-1))) (defthm cond-binaria-boolean-p (booleanp (cond-binaria C-1 C-2))) (defun asig-binaria () nil) (defthm propiedad-fundamental-cond-binaria (implies (and (es-clausula C-2) (es-clausula C-1) (not (modelo-clausula (asig-binaria) C-2))) (cond-binaria C-1 C-2)))

273
299

El siguiente evento realiza una instancia de la teor genrica *resolucion* a e utilizando las funciones anteriores.

(definstancia-*resolucion* ((condicion cond-binaria) (asignacion asig-binaria)) "-binaria")

300

Una vez evaluado este evento, se obtienen automticamente las funciones que a implementan los algoritmos de saturacin y de decisin de insatisfacibilidad bao o sados en resolucin binaria. Estas funciones son las siguientes: o

274

Cap tulo 9. Resolucin o

(DEFUN SATURACION-RESOLUCION-BINARIA (S) (RESOLUCION-COND-SATURACION-BINARIA S NIL)) (DEFUN INSAT-RESOLUCION-BINARIA (S) (EQUAL (SATURACION-RESOLUCION-BINARIA S) T)) (DEFUN RESOLUCION-COND-SATURACION-BINARIA (S-1 S-2) (IF (ENDP S-1) S-2 (LET ((RESOLVENTES (RESOLUCION-COND-CLAUSULA-CONJUNTO-BINARIA (CAR S-1) S-2 NIL (APPEND S-1 S-2)))) (IF (CONTIENE-CLAUSULA-VACIA RESOLVENTES) T (RESOLUCION-COND-SATURACION-BINARIA (APPEND RESOLVENTES (CDR S-1)) (CONS (CAR S-1) S-2)))))) Adems de generar automticamente estas funciones, al instanciar la teor a a a genrica *resolucion*, tambin se obtienen de forma automtica los eventos que e e a establecen las propiedades de correccin y completitud del algoritmo de decisin o o de insatisfacibilidad: (DEFTHM CORRECCION-INSAT-RESOLUCION-BINARIA (IMPLIES (AND (ES-FORMA-CLAUSAL S) (INSAT-RESOLUCION-BINARIA S)) (NOT (MODELO-FORMA-CLAUSAL SIGMA S)))) (DEFTHM COMPLETITUD-INSAT-RESOLUCION-BINARIA (IMPLIES (AND (ES-FORMA-CLAUSAL S) (NOT (CONTIENE-CLAUSULA-VACIA S)) (NOT (INSAT-RESOLUCION-BINARIA S))) (MODELO-FORMA-CLAUSAL (NUEVA-ASIGNACION (CONSTRUYE-CONJUNTO-REPRESENTANTE-MINIMAL (COLECCION-CLAUSULAS-FALSAS-ASIGNACION (ASIG-BINARIA) (SATURACION-RESOLUCION-BINARIA S))) (ASIG-BINARIA)) S)))

9.3. Teor genrica e instancias a e 9.3.2.2 Resolucin positiva o

275

Denicin 9.20 Una clusula positiva es aquella en la que slo aparecen literales o a o positivos.
301

(defun es-clausula-positiva (C) (if (endp C) t (and (es-literal-positivo (car C)) (es-clausula-positiva (cdr C)))))

Denicin 9.21 Dadas dos clusulas C1 y C2 , diremos que C se obtiene por o a resolucin positiva a partir de C1 y C2 si C es la resolvente entre C1 y C2 con o a respecto a algn literal L y una de las dos clusulas padre es positiva. u De esta forma la condicin de resolucin positiva comprueba que alguna de o o las dos clusulas que recibe como argumento es positiva. Esta funcin verica las a o propiedades presentadas en 256 .
302

(defun cond-positiva (C-1 C-2) (or (es-clausula-positiva C-1) (es-clausula-positiva C-2))) (defcong igual-conjunto iff (cond-positiva C-1 C-2) 1) (defcong igual-conjunto iff (cond-positiva C-1 C-2) 2) (defthm cond-positiva-conmuta (iff (cond-positiva C-1 C-2) (cond-positiva C-2 C-1))) (defthm cond-positiva-boolean-p (booleanp (cond-positiva C-1 C-2)))

Asociada a la resolucin positiva consideramos la asignacin que hace falsos o o todos los s mbolos proposicionales y, por tanto, todas las clusulas positivas. De a esta forma, si una clusula es falsa en esta asignacin, entonces se trata de una a o clusula positiva y, junto con cualquier otra clusula, cumple la condicin de a a o resolucin positiva. o

276 (defun asig-positiva () nil)

Cap tulo 9. Resolucin o


303

(defthm propiedad-fundamental-cond-positiva (implies (and (es-clausula C-1) (es-clausula C-2) (not (modelo-clausula (asig-positiva) C-2))) (cond-positiva C-1 C-2))) El siguiente evento realiza una instancia de la teor genrica *resolucion* a e utilizando las funciones anteriores. (definstancia-*resolucion* ((condicion cond-positiva) (asignacion asig-positiva)) "-positiva")
304

Una vez evaluado este evento, se obtienen automticamente las funciones que a implementan los algoritmos de saturacin y de decisin de insatisfacibilidad bao o sados en resolucin positiva. Tambin se obtienen los eventos que establecen las o e propiedades de correccin y completitud del algoritmo de decisin de insatisfacio o bilidad. 9.3.2.3 Resolucin negativa o

a o Denicin 9.22 Una clusula negativa es aquella en la que slo aparecen liteo rales negativos. (defun es-clausula-negativa (C) (if (endp C) t (and (es-literal-negativo (car C)) (es-clausula-negativa (cdr C)))))
305

Denicin 9.23 Dadas dos clusulas C1 y C2 , diremos que C se obtiene por o a resolucin negativa a partir de C1 y C2 si C es la resolvente entre C1 y C2 con o respecto a algn literal L y una de las dos clusulas padre es negativa. u a De esta forma la condicin de resolucin negativa comprueba que alguna de o o las dos clusulas que recibe como argumento es negativa. Esta funcin verica a o las propiedades presentadas en 256 .

9.3. Teor genrica e instancias a e (defun cond-negativa (C-1 C-2) (or (es-clausula-negativa C-1) (es-clausula-negativa C-2))) (defcong igual-conjunto iff (cond-negativa C-1 C-2) 1) (defcong igual-conjunto iff (cond-negativa C-1 C-2) 2) (defthm cond-negativa-conmuta (iff (cond-negativa C-1 C-2) (cond-negativa C-2 C-1))) (defthm cond-negativa-boolean-p (booleanp (cond-negativa C-1 C-2)))

277
306

Asociada a la resolucin negativa consideramos la asignacin que hace ciertos o o todos los s mbolos proposicionales y, por tanto, hace falsas todas las clusulas a negativas. De esta forma, si una clusula es falsa en esta asignacin, entonces es a o un clusula negativa y, junto con cualquier otra clusula, cumple la condicin de a a o resolucin negativa. o Debido a que las asignaciones se representan con listas de asociacin nitas y a o que el valor por defecto, para aquellos s mbolos que no aparezcan expl citamente en una asignacin, es , no podemos representar la asignacin que hace ciertos o o todos los s mbolos proposicionales. Sin embargo, s podemos asumir la existencia de dicha asignacin, estableciendo esta propiedad como un axioma1 . Una vez o hecho esto se puede demostrar que, si una clusula es falsa en esta asignacin, a o entonces, junto con cualquier otra clusula, cumple la condicin de resolucin a o o negativa.
307

(defstub asig-negativa () => *) (defaxiom asig-negativa-es-positiva (equal (valor F (asig-negativa)) *V*)) (defthm propiedad-fundamental-cond-negativa (implies (and (es-clausula C-1) (es-clausula C-2) (not (modelo-clausula (asig-negativa) C-2))) (cond-negativa C-1 C-2)))
1

No se puede hacer en un encapsulado de ACL2 pues no existe una funcin testigo. o

278

Cap tulo 9. Resolucin o

En la formalizacin anterior, el comando defstub sirve para introducir en o el sistema un nuevo nombre de funcin constante, asig-negativa. Mediante el o comando defaxiom asumimos que la funcin asig-negativa proporciona una o asignacin en la que todas las frmulas son falsas. El uso de axiomas en ACL2 o o es peligroso pues puede hacer que el sistema quede inconsistente. Sin embargo, en este caso es la unica posibilidad para poder utilizar la teor genrica denida a e para las funciones condicion y asignacion. El siguiente evento realiza una instancia de la teor genrica *resolucion* a e utilizando las funciones anteriores. (definstancia-*resolucion* ((condicion cond-negativa) (asignacion asig-negativa)) "-negativa")
308

Una vez evaluado este evento, se obtienen automticamente las funciones que a implementan los algoritmos de saturacin y de decisin de insatisfacibilidad bao o sados en resolucin negativa. Tambin se obtienen los eventos que establecen las o e propiedades de correccin y completitud del algoritmo de decisin de insatisfacio o bilidad. Ntese que la funcin asig-negativa slo interviene en la prueba de la o o o completitud y no es necesaria para utilizar los algoritmos. 9.3.2.4 Resolucin semntica o a

a Denicin 9.24 Dada una asignacin y dos clusulas C1 y C2 , diremos que o o C se obtiene por resolucin semntica a partir de C1 y C2 si C es la resolvente o a entre C1 y C2 con respecto a algn literal L, una de las dos clusulas padre es u a cierta en y la otra es falsa. En esta estrategia de resolucin se parte de una asignacin ja, con respecto o o a la que se establece la condicin de resolucin. Consideramos en un encapsulao o do de ACL2, una asignacin cualquiera proporcionada por la funcin constante o o asig-semantica. La unica propiedad que hay que exigir a esta funcin es que el o valor que devuelve es una lista de asociacin. o (defthm alistp-asig-semantica (alistp (asig-semantica)))
309

Con respecto a la asignacin proporcionada por la funcin asig-semantica o o denimos la siguiente condicin de resolucin: o o

9.3. Teor genrica e instancias a e (defun cond-semantica (C-1 C-2) (or (and (modelo-clausula (asig-semantica) C-1) (not (modelo-clausula (asig-semantica) C-2))) (and (modelo-clausula (asig-semantica) C-2) (not (modelo-clausula (asig-semantica) C-1)))))

279
310

Esta condicin verica las propiedades mostradas en 256 y, por su denicin, o o se verica que si una clusula es falsa en la asignacin proporcionada por la a o funcin asig-semantica y otra es cierta, entonces ambas clusulas verican la o a condicin de resolucin semntica. o o a
311

(defcong igual-conjunto iff (cond-semantica C-1 C-2) 1) (defcong igual-conjunto iff (cond-semantica C-1 C-2) 2) (defthm cond-semantica-conmuta (iff (cond-semantica C-1 C-2) (cond-semantica C-2 C-1))) (defthm cond-semantica-boolean-p (booleanp (cond-semantica C-1 C-2))) (defthm propiedad-fundamental-cond-semantica (implies (and (es-clausula C-1) (es-clausula C-2) (modelo-clausula (asig-semantica) C-1) (not (modelo-clausula (asig-semantica) C-2))) (cond-semantica C-1 C-2)))

El siguiente evento realiza una instancia de la teor genrica *resolucion* a e utilizando las funciones anteriores.
312

(definstancia-*resolucion* ((condicion cond-semantica) (asignacion asig-semantica)) "-semantica")

280

Cap tulo 9. Resolucin o

Una vez evaluado este evento, se obtienen automticamente las funciones que a implementan los algoritmos de saturacin y de decisin de insatisfacibilidad bao o sados en resolucin semntica. Tambin se obtienen los eventos que establecen o a e las propiedades de correccin y completitud del algoritmo de decisin de insao o tisfacibilidad. Ntese que es necesario proporcionar un valor concreto para la o funcin asig-semantica para poder utilizar los algoritmos, pues la asignacin o o que proporciona es necesaria para comprobar la condicin de resolucin. o o

9.3.2.5

Resolucin con conjunto soporte o

Denicin 9.25 Un subconjunto T de un conjunto de clusulas S es un conjunto o a soporte de S si S T es satisfacible. Dadas dos clusulas C1 y C2 , diremos que C a se obtiene por resolucin con soporte T a partir de C1 y C2 si C es la resolvente o entre C1 y C2 con respecto a algn literal L y las dos clusulas padre no pertenecen a u simultneamente a S. a En esta estrategia de resolucin se parte de un conjunto de clusulas satiso a facible (S T ) y la condicin de resolucin se establece con respecto a dicho o o conjunto. Consideramos en un encapsulado de ACL2, un conjunto satisfacible de clusulas proporcionado por la funcin constante S-soporte. Las propiedades a o que debe cumplir esta funcin son que el valor que devuelve es un conjunto de o clusulas y que dicho conjunto es satisfacible. Para esto ultimo consideramos en a el mismo encapsulado, una funcin constante asig-soporte que proporciona una o asignacin modelo de dicho conjunto. El valor devuelto por esta funcin ha de o o ser una lista de asociacin. o
313

(defthm alistp-asig-soporte (alistp (asig-soporte))) (defthm soporte-es-forma-clausal (es-forma-clausal (S-soporte))) (defthm soporte-es-satisfacible (modelo-forma-clausal (asig-soporte) (S-soporte)))

De esta forma la condicin de resolucin con soporte comprueba que una de las o o dos clusulas que recibe como argumento no pertenece al conjunto proporcionado a por la funcin S-soporte. Esta funcin verica las propiedades presentadas en o o 256 .

9.3. Teor genrica e instancias a e (defun cond-soporte (C-1 C-2) (or (not (conjunto-miembro C-1 (S-soporte))) (not (conjunto-miembro C-2 (S-soporte))))) (defcong igual-conjunto iff (cond-soporte C-1 C-2) 1) (defcong igual-conjunto iff (cond-soporte C-1 C-2) 2) (defthm cond-soporte-conmuta (iff (cond-soporte C-1 C-2) (cond-soporte C-2 C-1))) (defthm cond-soporte-boolean-p (booleanp (cond-soporte C-1 C-2)))

281
314

Asociada a esta condicin de resolucin consideramos la asignacin proporcioo o o nada por la funcin asig-soporte. De esta forma, si una clusula es falsa en esta o a asignacin, dicha clusula no pertenece al conjunto proporcionado por S-soporte o a y, junto con cualquier otra clusula, cumple la condicin de resolucin. a o o (defthm propiedad-fundamental-cond-soporte (implies (and (es-clausula C-1) (es-clausula C-2) (not (modelo-clausula (asig-soporte) C-2))) (cond-soporte C-1 C-2)))
315

El siguiente evento realiza una instancia de la teor genrica *resolucion* a e utilizando las funciones anteriores. (definstancia-*resolucion* ((condicion cond-soporte) (asignacion asig-soporte)) "-soporte")
316

Una vez evaluado este evento, se obtienen automticamente las funciones que a implementan los algoritmos de saturacin y de decisin de insatisfacibilidad bao o sados en resolucin con conjunto soporte. Tambin se obtienen los eventos que o e establecen las propiedades de correccin y completitud del algoritmo de decisin o o de insatisfacibilidad. Ntese que es necesario proporcionar un valor concreto para o la funcin S-soporte para poder utilizar los algoritmos. o

282

Cap tulo 9. Resolucin o

9.4

Ejemplos

En esta seccin explicamos cmo se utilizan los procedimientos de decisin deo o o sarrollados en este cap tulo, presentando datos sobre su evaluacin en algunos o de los problemas propuestos por Plaisted en [64]. Para distintos valores de N se considera el conjunto de clusulas asociado al siguiente conjunto de frmulas: a o P1 Q1 P2 P2 Q2 P3 ... PN 1 QN 1 PN P1 Q1 PN 1 QN 1 QN PN QN P1 Q1 Q2 P2 Q2 Q3

Esta familia est denida en el libro plaisted.lisp del directorio 0-ejemplos a para los valores de N = 5, 6, 7, 8, 9, 10. Una vez certicados los libros, ponemos en funcionamiento el sistema, evaluando la orden acl2 en el directorio 9-resolucion: ../calculos-proposicionales/9-resolucion> acl2 ... ACL2 Version 2.6. Level 1. Cbd "../calculos-proposicionales/9-resolucion". ACL2 !>

A continacin incluimos el libro que contiene la teor desarrollada en este o a cap tulo. Los libros de los que ste depende son incluidos automticamente por e a el sistema: ACL2 !>(include-book "resolucion-gen")

En la tabla 9.1 se muestra informacin sobre el tiempo de comprobacin de la o o insatisfacibilidad de los conjuntos de clusulas asociados al problema de Plaisted a [64], para N = 5, 6, 7, 8, 9, 10. Estos tiempos incluyen la evaluacin del procedio miento de decisin INSAT-resolucion-<condicion>, para la resolucin binaria, o o positiva y negativa.

9.4. Ejemplos Tamao del problema n Resolucin binaria o Resolucin positiva o Resolucin negativa o 5 6 7 8 9 10 8.720 250.380 0.000 0.000 0.010 0.000 0.010 0.000 0.040 0.220 0.420 0.810 2.770 3.810

283

Tabla 9.1: Tiempos de evaluacin para las frmulas de Plaisted o o

Sumario
En este cap tulo: a Se ha presentado el concepto clsico de resolvente binaria y el de resolvente condicionada. Este ultimo depende de una condicin que da lugar a dis o tintas estrategias de resolucin. Se ha denido el concepto de conjunto de o clusulas saturado por resolucin condicionada. Se han formalizado estos a o conceptos y se han demostrado algunas de sus propiedades ms importantes. a Se ha denido un algoritmo que realiza un proceso de saturacin por resoo lucin condicionada, es decir, a partir de un conjunto de clusulas obtiene o a otro que contiene al original y es saturado por resolucin condicionada. o Se ha demostrado que este algoritmo termina para cualquier conjunto de clusulas de partida. a La aparicin de la clusula vac en el proceso de saturacin indica la ino a a o satisfacibilidad del conjunto de clusulas inicial. Utilizando esta idea se a ha desarrollado un procedimiento de decisin de insatisfacibilidad basado o en resolucin condicionada. Se ha demostrado que este procedimiento es o correcto. Se han desarrollado conceptos relativos a conjuntos representantes de colecciones de conjuntos. Se han formalizado estos conceptos y se han demostrado algunas de sus propiedades. Se ha presentado la prueba de Bezem del teorema de completitud de la resolucin condicionada. Este teorema se ha utilizado para demostrar la o completitud del procedimiento de decisin de insatisfacibilidad basado en o resolucin condicionada. La prueba ha sido formalizada en ACL2. o Se ha denido una teor genrica que facilita la reutilizacin de los resultaa e o dos presentados. Utilizando la herramienta de instanciacin genrica se han o e obtenido automticamente procedimientos vericados de decisin de insaa o tisfacibilidad basados en resolucin binaria, positiva, negativa, semntica y o a con conjunto soporte.

284

Cap tulo 9. Resolucin o

Cap tulo 10 Conclusiones


En los cap tulos precedentes se ha presentado una teor computacional, desarroa llada en ACL2, sobre clculos proposicionales. Desde nuestro punto de vista, los a principales objetivos conseguidos en esta memoria son los siguientes: o Se ha realizado un modelo formal de la lgica proposicional implementado en Common Lisp. Este modelo sirve de base para la implementacin y verio cacin formal de algoritmos espec o cos para esta lgica. La formalizacin o o realizada es robusta en el sentido de que puede ser modicada para adaptarse a distintas sintaxis, sin afectar al desarrollo de los algoritmos o a la prueba de sus propiedades. Se ha formalizado la semntica clsica y la semntica trivalorada fuerte de a a a Kleene para la lgica clsica, comprobando a lo largo de la formalizacin de o a o los distintos clculos lgicos, que stos se pueden utilizar indistintamente a o e en ambas semnticas sin que esto afecte a sus propiedades de correccin y a o completitud. Se han formalizado clculos lgicos basados en tableros semnticos y secuena o a tes. Esta formalizacin es genrica en el sentido de que, en los procedimieno e tos de decisin de satisfacibilidad basados en estos clculos, se ha asumido o a la existencia de cierta funcin de seleccin con determinadas propiedades, o o cuya denicin no se proporciona expresamente. Esta funcin de seleccin o o o proporciona una forma de incorporar heur sticas a estos procedimientos. e o Se ha desarrollado un marco genrico para la denicin de procedimientos de decisin de satisfacibilidad, en el que tanto el clculo basado en tableros o a semnticos como el basado en secuentes se pueden expresar como casos para ticulares. Este marco genrico es interesante por dos razones. Por un lado, e el formalismo terico abstrae propiedades de los distintos mtodos, a partir o e de las cuales su funcionamiento es similar. Estas propiedades son la base para demostrar la correccin y completitud del procedimiento de decisin o o de satisfacibilidad en el marco genrico. Por otro lado, la formalizacin del e o 285

286

Cap tulo 10. Conclusiones marco genrico y el uso de unas herramientas de instanciacin desarrolladas e o para tal n, nos permiten obtener de forma automtica funciones vericaa das que implementan procedimientos de decisin de satisfacibilidad para o distintos clculos lgicos. a o

Se han formalizado procedimientos de decisin de satisfacibilidad para cono juntos de clusulas basados en el procedimiento de Davis y Putnam. Pria mero se ha demostrado que la regla de bifurcacin es, por si sla, un proceo o dimento correcto y completo de decisin de satisfacibilidad para clusulas o a y como un renamiento de dicho procedimiento, se incorporan las reglas de eliminacin de clusulas unitarias y literales puros. Al igual que en los o a clculos desarrollados previamente, se asume una funcin de seleccin que a o o proporciona un literal para aplicar la regla de bifurcacin en cada paso. o La denicin de esta funcin no se proporciona expl o o citamente. Para una funcin de seleccin espcica, se demuestra que el procedimiento basado o o e en bifurcacin es equivalente al que incorpora las reglas de eliminacin de o o clusulas unitarias y literales puros y por tanto, este ultimo tambin es a e correcto y completo. Se ha desarrollado un procedimiento de saturacin por resolucin condicioo o nada, basado en una propiedad que condiciona la obtencin de resolveno tes. De esta forma, varios renamientos del procedimiento de resolucin o se pueden expresar como casos particulares de este procedimiento. Se ha demostrado que, si en el proceso de saturacin por resolucin condicionao o da de un conjunto de clusulas, no aparece la clusula vac entonces el a a a, conjunto de clusulas original es satisfacible. Para ello se ha formalizado la a prueba de Bezem del teorema de completitud condicionada que, a partir de una asignacin asociada a la condicin de resolucin, construye un modelo o o o del conjunto de clusulas saturado. Esta formalizacin es la unica autoa o matizacin que conocemos de dicha prueba. Basado en este procedimiento o se ha desarrollado un procedimiento de decisin de insatisfacibilidad para o conjuntos de clusulas, mediante la saturacin del mismo por resolucin a o o condicinada. Se han demostrado las propiedades de correccin y completio tud de este procedimiento. A lo largo del desarrollo realizado, se han construido herramientas que extienden el sistema ACL2 para facilitar la tarea del usuario. Por un lado se ha a desarrollado una herramienta, defmul, que, de forma automtica, extiende una relacin bien fundamentada denida sobre un conjunto A, a multiconjuntos de o elementos de A. La extensin obtenida tambin es una relacin bien fundameno e o tada. Este herramienta es de gran utilidad para demostrar la terminacin de o funciones entre cuyos argumentos aparece una lista de elementos del conjunto A de los que algunos, en las llamadas recursivas, son reemplazados por otros ms a pequeos con respecto a la relacin bien fundamentada en A. En este sentido, ha n o

287 sido utilizada en la prueba de terminacin del procedimiento de transformacin o o a forma clausal presentado en la seccin 8.1.2 y en la prueba de terminacin del o o procedimiento genrico de decisin de satisfacibilidad presentado en 7. e o Por otro lado, el intensivo uso de la regla de instanciacin funcional hace neo cesario disponer de una herramienta que automatice el proceso de construccin o de un conjunto de eventos, cuya admisin por el sistema depende de un pequeo o n conjunto de funciones y propiedades de las mismas. El desarrollo de esta herramienta pone de maniesto las posibilidades que tiene el sistema de representar y utilizar resultados de orden superior. Esta herramienta ha sido utilizada para obtener instancias concretas del marco genrico para el desarrollo de procedie mientos de decisin de satisfacibilidad (cap o tulo 7 y seccin 8.3), e instancias del o procedimiento de decisin de insatisfacibilidad basado en resolucin condicionada o o (seccin 9.3). o Algunos datos de inters e En la tabla de la gura 10.1, se presentan algunos datos cuantitativos sobre la teor desarrollada. La primera columna contiene el nombre de cada uno de a los libros ACL2. Las siguientes tres columnas contienen, respectivamente, el nmero de l u neas (excluyendo comentarios y l neas en blanco), de deniciones y de teoremas en cada uno de los libros. Estos datos dan una idea del tamao n de la teor desarrollada en cada uno de los libros. La ultima columna indica el a nmero de teoremas que necesitan alguna sugerencia para completar con xito u e su demostracin. La mayor de estas indicaciones son para usar instancias de o a teoremas previos o para habilitar o deshabilitar algunas reglas asociadas a eventos. El esfuerzo humano invertido en este trabajo es dif de estimar, tanto ms cil a cuando se combina, en sus fases iniciales, con el aprendizaje del sistema. El desarrollo de un trabajo similar en el momento actual supondr menos horas de a dedicacin. Los resultados en los que se ha invertido ms tiempo son la prueba o a de terminacin del procedimiento de saturacin por resolucin condicionada y o o o la automatizacin de la prueba de Bezem de la completitud de la resolucin o o condicionada. Trabajo futuro La investigacin presentada en esta memoria se puede continuar en varias direco ciones: Existen gran variedad de clculos y procedimientos para decidir la satisa facibilidad de una frmula proposicional. El modelo formal de la lgica o o proposicional que hemos desarrollado parece un entorno adecuado para la formalizacin de estos clculos y procedimientos, y la vericacin auo a o tomtica de sus propiedades. Igualmente, es interesante estudiar hasta qu a e

288

Cap tulo 10. Conclusiones

Libro L neas Deniciones Teoremas Consejos sintaxis.lisp 323 22 45 12 semantica.lisp 113 11 9 1 semantica-K.lisp 122 12 8 1 tablas-de-verdad.lisp 171 13 16 7 tablas-de-verdad-K.lisp 257 15 25 11 uniforme.lisp 206 10 18 5 uniforme-K.lisp 198 10 18 5 tableros.lisp 349 13 34 12 tableros-K.lisp 355 13 34 12 secuentes.lisp 507 21 48 20 secuentes-K.lisp 520 22 48 20 multiconjuntos.lisp 944 28 149 39 defmul.lisp 886 31 29 16 teorias-genericas.lisp 115 15 2 2 listas.lisp 146 15 10 1 SAT-generico.lisp 335 16 37 13 SAT-generico-K.lisp 336 16 37 13 SAT-tableros.lisp 603 16 67 34 SAT-tableros-K.lisp 611 16 67 34 SAT-secuentes.lisp 427 20 36 9 SAT-secuentes-K.lisp 418 20 33 10 clausulas.lisp 277 16 39 11 clausulas-K.lisp 286 16 40 13 forma-clausal.lisp 371 12 47 17 forma-clausal-K.lisp 391 12 49 18 davis-putnam.lisp 621 24 82 21 davis-putnam-K.lisp 631 23 83 22 SAT-davisputnam.lisp 485 23 47 9 conjuntos.lisp 284 19 41 10 resolucion-sat.lisp 1069 27 124 46 representantes.lisp 229 11 25 11 resolucion-thm.lisp 861 13 92 50 resolucion-aux.lisp 333 0 36 13 resolucion-gen.lisp 489 20 50 11 Figura 10.1: Datos cuantitativos

289 punto el marco genrico proporcionado por los sistemas de transformacin e o proposicionales es aplicable a otros clculos y procedimientos de decisin. a o En el cap tulo 8 se presentan formalizaciones de procedimientos de decisin o basados en el mtodo de Davis y Putnam. Este mtodo es la base de gran e e cantidad de algoritmos de probada eciencia para decidir la satisfacibilidad de un conjunto de clusulas. Una diferencia fundamental entre esos a algoritmos y los presentados en el cap tulo 8 es que evitan la duplicidad de informacin que genera la regla de bifurcacin. Esto se puede conseo o guir en ACL2 utilizando objetos de hebra simple1 . Una interesante l nea de investigacin consistir en utilizar estos objetos para desarrollar algoo a ritmos vericados ecientes para resolver el problema SAT. De hecho ya hemos construido un algoritmo basado en estos objetos que mejora notablemente a los presentados en el cap tulo 8, pero an no hemos realizado u su vericacin. o En los ultimos aos se estn desarrollando nuevos modelos de computa n a cin: molecular, membranas, cuntica. Y uno de los primeros problemas o a que se suele abordar en estos modelos, quiz por ser NPcompleto, es el a problema de la satisfacibilidad de una frmula proposicional. El modelo o formal que hemos construido tambin es adecuado para vericar este tipo e de experimentos realizados en modelos de computacin no convencionales. o En este sentido, hemos formalizado y vericado una versin recursiva del o experimento de R.J. Lipton, [48], para resolver el problema de la satisfacibilidad de una frmula proposicional, basado en el modelo de computacin o o molecular restringido de Adleman [50]. Este trabajo ha sido presentado al tercer congreso internacional de usuarios de ACL2 [53]. nea interesante de investigacin consiste en construir teor compuo as Otra l tacionales sobre otras lgicas distintas a la proposicional clsica (modales, o a temporales, ...) y formalizar procedimientos de decisin para estas lgicas. o o Se estudiar las caracter an sticas comunes a los procedimientos de decisin o para estas lgicas y se intentar extraer un marco genrico en el que exo a e presarlos como instancias. De igual forma estamos en disposicin de construir un modelo formal de la o lgica de primer orden. En esta memoria hemos realizado una formalizao cin de la lgica proposicional y en [66] se ha formalizado un algoritmo de o o unicacin. Con estos resultados creemos que se puede afrontar con xito o e el problema de formalizar en ACL2 la lgica de primer orden. o o En los libros ACL2 desarrollados en esta investigacin se hace un uso intesivo de las caracter sticas de orden superior del sistema. En el cap tulo 6
1

Del ingls single-threaded objects. e

290

Cap tulo 10. Conclusiones presentamos una herramienta de instanciacin genrica que facilita la utilio e zacin de resultados de orden superior. Esta herramienta se puede mejorar o en varios aspectos para facilitar la reutilizacin de libros ACL2. Quiz la o a ms importante de todas estas mejoras ser la integracin de la herramiena a o ta con el propio sistema, tarea para la que ya se han realizado algunos contactos con los desarrolladores del sistema.

Bibliograf a
[1] Ahrendt, W., Beckert, B., Hahnle, R., Menzel, W., Reif, W., Schellhorn, G. y Schmitt, P.H. Integration of automated and interactive theorem proving. En Automated Deduction: A Basis for Applications, W. Bibel y P. Schmitt, Eds., vol. II, cap. 4, pp. 97116. Kluwer, 1998. [2] Avron, A. Gentzentype systems, resolution and tableaux. Journal of Automated Reasoning, vol. 10, no. 2, pp. 265281, 1993. [3] Avron, A. Classical Gentzen-type Methods in Propositional Many-Valued Logics. Tutorial en el 31st IEEE International Symposium on MultipleValued Logic, 2001. [4] Bachmair, L. y Ganzinger, H. Resolution Theorem Proving. En Handbook of Automated Reasoning, A. Robinson y A. Voronkov, Eds., cap. 1, pp. 182. Elsevier Science Publishers, 2001. [5] Bayardo, R.J. y Schrag, R. Using CSP Look-Back Techniques to Solve Real-World SAT Instances. En Proceedings of the 14th National Conference on Articial Intelligence, pp. 203208. 1997. [6] Beckert, B. y Posegga, J. leanTAP: Lean tableau-based deduction. Journal of Automated Reasoning, vol. 15, pp. 339358, 1995. [7] Ben-Ari, M. Mathematical Logic for Computer Science. Prentice Hall International, 1993. [8] Bezem, M. Completeness of resolution revisited. Theoretical Computer Science, vol. 74, no. 2, pp. 227237, 1990. [9] Bolc, L. y Borowik, P. ManyValued Logics 1. Theoretical Foundations. Springer-Verlag, 1992. [10] Boyer, R.S., Goldschlag, D.M., Kaufmann, M. y Moore, J S. Functional Instantiation in First-Order logic. En Articial Intelligence and Mathematical Theory of Computation. Papers in honour of John McCarthy, V. Lifschitz, Ed. Academic Press, New York, 1991. 291

292

Bibliograf a

[11] Boyer, R.S. y Moore, J S. A computational logic. ACM monograph series. Academic Press, 1979. [12] Boyer, R. y Moore, J S. A Mechanical Proof of the Unsolvability of the Halting Problem. Journal of the ACM, vol. 31, no. 3, pp. 441458, 1984. [13] Boyer, R.S. y Moore, J S. Nqthm,theBoyerMoore theorem prover,1997. http://www.cs.utexas.edu/users/boyer/ftp/nqthm/index.html. [14] Brock, B., Kaufmann, M. y Moore, J S. ACL2 Theorems about Commercial Microprocessors. En Proceedings of Formal Methods in ComputerAided Design (FMCAD96), M. Srivas y C. A., Eds., pp. 275293. Springer Verlag, 1998. [15] Caldwell, J.L. Decidability extracted: Synthesizing Correctbyconstruction Decision Procedures from Constructive Proofs. Tesis doctoral, Faculty of the Graduate School of Cornell University, 1998. [16] Constable, R., Allen, S., Bromely, H., Cleveland, W. y otros. Implementing Mathematics with the Nuprl Development System. PrenticeHall, Inc., 1986. [17] Cook, S.A. The complexity of theorem proving procedures. En Proceedings of the 3rd Annual ACM Symposium on the Theory of Computation, pp. 151 158. 1971. [18] DAgostino, M., Gabbay, D., Hahnle, R. y Posegga, J. Handbook of Tableau Methods. Kluwer, 1999. [19] Davis, M. y Putnam, H. A computing procedure for quantication theory. Journal of the ACM, vol. 7, pp. 201215, 1960. [20] Dershowitz, N. y Manna, Z. Proving Termination with Multiset Orderings. En Annual International Colloquium on Automata, Languages and Programming, H. Maurer, Ed., LNCS 71, pp. 188202. SpringerVerlag, 1979. [21] Doets, K. From Logic to Logic Programming. MIT Press, Massachusetts, 1994. [22] Dubois, O., Andre, P., Boufkhad, Y. y Carlier, J. SAT versus UNSAT. En Cliques, Coloring, and Satisability: Second DIMACS Implementation Challenge. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, D. Johnson y T. M.A., Eds., vol. 26, pp. 415436. AMS Press, 1993.

Bibliograf a

293

[23] Fernandez-Ferreira, M. Termination of term rewriting. Tesis doctoral, Universiteit Utrecht, 1995. [24] Fitting, M. Proof Methods for Modal and Intuitionistic Logics. D. Reidel Publishing Co., 1983. [25] Fitting, M. Firstorder modal tableaux. Journal of Automated Reasoning, vol. 4, pp. 191213, 1988. [26] Fitting, M.C. FirstOrder Logic and Automated Theorem Proving. SpringerVerlag, New York, 1990. [27] Freeman, J.W. Improvements to Propositional Satisability Search Algorithms. Tesis doctoral, University of Pennsylvania, Philadelphia, 1995. [28] Gamboa, R. Mechanically verifying real-valued algorithms in ACL2. Tesis doctoral, University of Texas at Austin, 1999. [29] Gentzen, G. Investigations into logical deduction. En The collected papers of Gerhard Gentzen, M. Szabo, Ed., pp. 68131. NorthHolland, 1969. Originalmente pubicado en 1935. [30] Goodstein, R.L. Recursive Number Theory. North Holland, 1964. [31] Gordon, M., Milner, R. y Wadsworth, C. Edinburgh LCF: A Mechanized Logic of Computation, vol. 78 of Lecture Notes in Computer Science. SpringerVerlag, 1979. [32] Gu, J., Purdom, P.W., Franco, J. y Wah, B.W. Algorithms for the Satisability (SAT) Problem: A survey. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 1997. [33] Harrison, J. St almarcks algorithm as a HOL derived rule. En Theorem Proving in Higher Order Logics: 9th International Conference, TPHOLs96, J. v. Wright, J. Grundy, y J. Harrison, Eds., vol. 1125 of Lecture Notes in Computer Science, pp. 221234. Springer Verlag, 1996. [34] Hahnle, H. Tableaux for multiplevalued logics. En Handbook of Tableau Methods, M. DAgostino, D. Gabbay, R. Hhnle, y J. Posegga, Eds., pp. 529 a 580. Kluwer Publishing Company, 1999. [35] Hahnle, R. Tableaux and Related Methods. En Handbook of Automated Reasoning, A. Robinson y A. Voronkov, Eds., cap. 3, pp. 101178. Elsevier Science Publishers, 2001. [36] Hrbacek, J. y Jech, T. Introduction to set theory. Marcel Dekker, Inc., 1978.

294

Bibliograf a

[37] Kaufmann, M. Modular Proof: The Fundamental Theorem of Calculus. En ComputerAided Reasoning: ACL2 Case Studies, M. Kaufmann, P. Manolios, y J. S. Moore, Eds., cap. 6. Kluwer Academic Publishers, 2000. [38] Kaufmann, M., Manolios, P. y Moore, J S. ComputerAided Reasoning: ACL2 case studies. Kluwer Academic Publishers, 2000. [39] Kaufmann, M., Manolios, P. y Moore, J S. ComputerAided Reasoning: An Approach. Kluwer Academic Publishers, 2000. [40] Kaufmann, M. y Moore, J S. A precise description of the ACL2 logic. Tech. rep., Department of Computer Sciencies, University of Texas at Austin, 1998. Vase http://www.cs.utexas.edu/users/moore/publications/e acl2-papers.html#Foundations. [41] Kaufmann, M. y Moore, J S. Structured theory development for a mechanized logic. Journal of Automated Reasoning, vol. 26, no. 2, pp. 161 203, 2000. [42] Kaufmann, M. y Moore, J S. ACL2 Version 2.6, 2001. http://www.cs.utexas.edu/users/moore/acl2/. [43] Kaufmann, M. y R.S., Boyer. The BoyerMoore Theorem Prover and Its Interactive Enhancement. Computers and Mathematics with Applications, vol. 29, no. 2, pp. 2762, 1995. [44] Kaufmann, M. y S., Moore J. An Industrial Strength Theorem Prover for a Logic Based on Common Lisp. IEEE Transactions on Software Engineering, vol. 23, no. 4, pp. 203213, 1997. [45] Kleene, S.C. Introduction to Metamathematics. pp. 332340. van Nostrand, Princeton, 1952. [46] Kowalski, R.A. Predicate logic as a programming language, en J. Rosenfeld, ed., Information processing 74. pp. 569574. NorthHolland, Amsterdam, 1974. [47] Kunen, K. A Ramsey Theorem in Boyer-Moore Logic. Journal of Automated Reasoning, vol. 15, no. 2, pp. 217235, 1995. [48] Lipton, R.J. DNA Solution of Hard Computational Problems. Science, vol. 268, no. 28, pp. 542545, 1995. [49] Lis, Z. Wynikanie semantyczne a wynikanie formalne (logical consequence, semantic and formal). Studia Logica, vol. 10, pp. 3960, 1960. En polaco, con abstract en Ingls y Ruso. e

Bibliograf a

295

[50] L.M., Adleman. On Constructing a Molecular Computer. En DNA Based Computers, R. Lipton y E. Baum, Eds. American Mathematical Society, 1996. n-Mateos, F.J., Alonso, J.A., Hidalgo, M.J. y Ruiz-Reina, [51] Mart J.L. Verifying an applicative ATP using multiset relations. En Computer Aided Systems Theory - EUROCAST 2001, LNCS 2178, pp. 612626. SpringerVerlag, 2001. n-Mateos, F.J., Alonso, J.A., Hidalgo, M.J. y Ruiz-Reina, [52] Mart J.L. A Generic Instantiation Tool and a Case Study: A Generic Multiset Theory. Third ACL2 Workshop, 2002. [53] Mart n-Mateos, F.J., Alonso, J.A., Perez, M.J. y Sancho, F. Molecular Computation Models in ACL2: a Simulation of Liptons Experiment Solving SAT. Third International ACL2 Workshop, 2002. [54] McCarthy, J. A Basis for a Mathematical Theory of Computation. En Computer Programming and Formal Systems, P. Braort y D. Hirschberg, Eds., pp. 3370. North-Holland, Amsterdam, 1963. [55] McCune, W. Solution of the Robbins Problem. Journal of Automated Reasoning, vol. 19, no. 3, pp. 263276, 1997. [56] McCune, W. Otter: An Automated Deduction System, 2001. http://www-unix.mcs.anl.gov/AR/otter/. [57] Min Li, C. y Anbulagan. Heuristics based on unit propagation for satisability problem. En Proceedings of the 15th International Joint Conference on Articial Intelligence, pp. 366371. 1997. [58] Moore, J S. Piton : a mechanically veried assembly-level language. Kluwer Academic Publisher, 1996. [59] Moore, J S., Lynch, T. y Kaufmann, M. A Mechanically Checked Proof of the Correctness of the Kernel of the AM D5K 86 Floating-Point Division Algorithm. IEEE Transactions on Computers, vol. 47, no. 9, pp. 913 926, 1998. [60] Moser, M., Ibens, O., Letz, R., Steinbach, J., Goller, C., Schumann, J. y Mayr, K. SETHEO and E-SETHEOthe CADE-13 systems. Journal of Automated Reasoning, vol. 18, no. 2, pp. 237246, 1997. [61] Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L. y Malik, S. Cha: Engineering an Ecient SAT Solver. En Design Automation Conference, pp. 530535. 2001.

296

Bibliograf a

[62] Nilsson, N.J. Artical Inteligence: A New Synthesis. cap. 13. Morgan Kaufmann, 1998. [63] Pelletier, F.J. Seventy-ve problems for testing automatic theorem provers. Journal of Automated Reasoning, vol. 2, no. 2, pp. 191216, 1986. [64] Plaisted, D.A. A simplied problem reduction format. Articial Intelligence, vol. 18, pp. 227261, 1982. [65] Robinson, J.A. A Machine-Oriented Logic Based on Resolution Principle. Journal of the ACM, vol. 12, no. 1, pp. 2349, 1965. o [66] Ruiz-Reina, J.L. Una teora computacional acerca de la lgica ecuacional. Tesis doctoral, Universidad de Sevilla, 2001. n-Mateos, [67] Ruiz-Reina, J.L., Alonso, J.A., Hidalgo, M.J. y Mart F.J. Multiset relations: a tool for proving termination. Second International ACL2 Workshop, 2000. [68] Russinoff, D. A Mechanical Prof of Quadratic Reciprocity. Journal of Automated Reasoning, vol. 8, no. 1, pp. 321, 1992. [69] Russinoff, D. A Mechanically Checked Proof of IEEE Compliance of a Register-Transfer-Level Specication of the AMD-K7 Floating-Point Multiplication, Division, and Square Root Instructions. London Mathematical Society Journal of Computation and Mathematics, vol. 1, pp. 148200, 1998. [70] Russinoff, D. A Mechanically Checked Proof of IEEE Compliance of the AMD K5 Floating-Point Square Root Microcode. Formal Methods in System Design, vol. 14, no. 1, 1999. [71] Shankar, N. A mechanical proof of the Church-Rosser theorem. Journal of the ACM, vol. 35, no. 3, pp. 475522, 1988. [72] Shankar, N. Metamathematics, Machines, and Godels Proof. Cambridge University Press, 1994. [73] Shankar, N. Step towards mechanizing program transformations using PVS. En MCP95 (Mathematics of Program Construction, Third International Conference), LNCS 947, pp. 5066. SpringerVerlag, 1995. [74] Shankar, N. Little Engines of Proof. En Proceedings of FME02, Lecture Notes in Computer Science. Springer Verlag, 2002. [75] Shoenfield, J.R. Mathematical Logic. AddisonWesley, 1967.

Bibliograf a

297

[76] Slind, K. Wellfounded schematic denitions. En CADE17, 17th International Conference on Automated Deduction, LNCS 1831, pp. 4563. SpringerVerlag, 2000. [77] Smullyan, R.M. Trees and ball games. Annals of the New York Academy of Sciences, no. 321, pp. 8690, 1979. [78] Smullyan, R. M. A unifying principle in quantication theory. Proceedings of the National Academy of Sciences of U.S.A., vol. 49, no. 6, pp. 828832, 1963. [79] Steele, G.L. Common Lisp. The Language. 2nd. Edition. Digital Press, 1990. [80] Sutcliffe, G. y Suttner, C. The CADE-15 ATP system competition. Journal of Automated Reasoning, vol. 23, no. 1, pp. 123, 1999. [81] Talcott, C. y Kohlhase, M. Database of Existing Mechanized Reasoning Systems, 1999. http://www-formal.stanford.edu/clt/ARS/systems.html. [82] Trick, M.A. Second dimacs challenge test problems. En Cliques, Coloring, and Satisability: Second DIMACS Implementation Challenge. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, D. Johnson y T. M.A., Eds., vol. 26, pp. 653657. AMS Press, 1993. [83] Urquhart, A. Hard examples for resolution. Journal of the ACM, vol. 34, no. 1, pp. 209219, 1987. [84] Wand, M. Continuationbased program transformation strategies. Journal of the ACM, vol. 27, no. 1, pp. 164180, 1980. [85] Wos, L. What is Automated Reasoning? Journal of Automated Reasoning, vol. 1, pp. 69, 1985. [86] Yu, Y. Automated Proofs of Object Code for a Widely Used Microprocessor. Tesis doctoral, University of Texas at Austin, 1992. [87] Zhang, H. Solving Open Quasigroup Problems by Propositional Reasoning. En Proceedings of International Computer Symposium. 1994. [88] Zhang, H. SATO: An Ecient Propositional Prover. En CADE-14, 14th International Conference on Automated Deduction, pp. 272275. 1997.

Glosario
A alfa-formula, 75 arg1, 38 arg2, 38 asig-binaria, 273 asig-negativa, 277 asig-positiva, 276 asignacion-inducida, 62 asignacion-inducida-K, 67 asignaciones, 61 asignaciones-formula, 61 asume-literal, 192 asume-valor, 48 asume-valor-lista, 61 a~ade-elemento, 85 n a~ade-formula, 197 n a~ade-formulas, 198 n B base, 140 beta-formula, 75 busca-clausula-unitaria, 221 busca-literal-puro, 221 cond-binaria, 273 cond-negativa, 277 cond-positiva, 275 cond-semantica, 279 cond-soporte, 281 conjuncion, 38 conjunto-miembro, 247 conjunto-representante-minimal, 260 conjunto-representante-minimal-aux, 260 conjunto-representate, 259 conjunto-testigo, 260 conjunto-unitario, 260 construye-conjunto-representante-minimal, 263 contiene-clausula-vacia, 195 CONTRAMOD-secuentes, 113 contramodelo-clausula, 193

D d, 141 d&p-asignacion-distinguida, 231 d&p-asignacion-distinguida-lista, 234 C d&p-medida, 233 clausula-con-literal-cierto, 267 d&p-modelo, 233 clausula-unitaria, 212 d&p-objeto, 231 coleccion-clausulas-falsas-asignacion, d&p-regla-computacion, 232 265 d&p-representacion, 233 coleccion-de-conjuntos-no-vacios, 262 DAT-generico, 165 combina, 141 DAT-secuentes, 116 complementario, 50 DAT-tableros-semanticos, 92 componente-1, 75 DEDUC-secuentes, 119 componente-2, 75 DEDUC-tableros-semanticos, 94 componente-neg-neg, 76 disyuncion, 38 298

Glosario doble-negacion, 76 dominio, 151

299

forma-clausal, 196 forma-clausal-aux, 196 forma-clausal-procesa-una, 197 E funcion-de-verdad-deelemento-sin-conjunto-testigo, 262 conjuncion, 48 elimina-clausulas-con-complementarios, conjuncion-K, 56 207 disyuncion, 48 elimina-elemento, 243 disyuncion-K, 56 elimina-literal, 209 equivalencia, 48 elimina-una, 85 equivalencia-K, 57 equivalencia, 38 implicacion, 48 es-atomica, 40 implicacion-K, 57 es-binaria, 38 negacion, 48 es-clausula, 190 negacion-K, 56 es-clausula-negativa, 276 G es-clausula-positiva, 275 gen-asignacion-distinguida, 158 es-conectiva-binaria, 37 gen-asignacion-distinguida-lista, es-conectiva-monaria, 37 160 es-conjuncion, 42 gen-medida, 158 es-diyuncion, 42 gen-medida-lista, 162 es-equivalencia, 42 gen-modelo, 158 es-forma-clausal, 193 gen-objeto, 158 es-implicacion, 42 gen-objeto-lista, 164 es-literal, 76 gen-regla-computacion, 158 es-literal-negativo, 76 gen-representacion, 158 es-literal-positivo, 76 gen-seleccion, 161 es-literal-puro, 213 genera-asignacion-negativa-K, 123 es-monaria, 38 genera-asignacion-positiva, 115 es-negacion, 42 genera-asignacion-positiva-K, 123 es-proposicional, 40 genera-contramodelo-secuente, 115 es-rama-tablero, 82 genera-modelo-literales, 90 es-secuente, 104 genera-modelo-literales-K, 97 es-simbolo-proposicional, 36 genera-no-modelo-secuente-K, 123 es-valor-de-verdad, 46 existe-rel-mayor, 133 I i, 141 F igual-conjunto, 245 f-base, 141 implicacion, 38 f-iterativa, 142 induccion-literal-cierto, 267 f-iterativa-aux, 142 induccion-mul-rel, 139 f-recursiva, 141 fn-bin, 141 INSAT-resolucion, 250 fn1, 136 insercion-ordenada, 136 fn1-maximo, 137 inserta-en-orden, 152

300 interseccion, 260 modelo-literales, 233 modelo-rama, 82 modelo-rama-K, 95 modelo-secuente, 105 mp-bin, 141 mul-diferencia, 132 mul-fn, 136 mul-mp, 131 mul-rel, 133

Glosario

L lista-en-dominio, 152 lista-formulas, 104 lista-literales-no-esta-en-fc, 231 lista-ordenada, 152 literal-cierto-clausula, 267 literal-en-forma-clausal, 213 literal-resolucion-clausulas, 244 N literales-positivos, 266 literales-representante-asignacion, negacion, 38 neutro, 142 266 NO-MOD-tablas-de-verdad, 64 M NO-MOD-tablas-de-verdad-K, 68 medida, 141 no-modelo-conjuncion, 179 medida-forma-clausal, 217 no-modelo-conjuncion-K, 121 medida-lista, 143 no-modelo-K, 58 medida-lista-formulas, 114 no-modelo-secuente-K, 121 medida-resolucion, 254 nueva-asignacion, 266 medida-resolucion-cota, 254 numero-clausulas-cota, 254 medida-saturacion, 255 numero-clausulas-variables, 254 medida-secuente, 114 numero-conectivas, 41 medida-uniforme, 78 O medida-uniforme-lista, 198 OBJ-SAT-generico, 161 medida-uniforme-rama, 89 op, 38 medida-uniforme-S, 200 orden-enteros, 154 menor, 151 ordena-insercion, 152 MOD-bifurcacion, 219 MOD-bifurcacion-instancia, 222 P MOD-generico, 162 paratodo-existe-rel-mayor, 133 MOD-rama, 88 primer-contramodelo, 64 MOD-tablas-de-verdad, 66 primer-modelo, 66 MOD-tablas-de-verdad-K, 69 modelo, 50 R modelo-clausula, 191 rama-cerrada, 83 reduccion-conjunto-representante, modelo-clausula-K, 203 262 modelo-conjuncion, 105 modelo-conjuncion-K, 121 reduce-coleccion-literal, 267 reduce-forma-clausal-literal, 209 modelo-disyuncion, 105 modelo-forma-clausal, 194 reduce-forma-clausal-literal-C, 209 modelo-forma-clausal-K, 204 rel-bin, 141 resolucion-cond-clausula-conjunto, modelo-K, 58 modelo-lista-literales, 231 251

Glosario resolucion-cond-clausulas, 246 resolucion-cond-saturacion, 250 resolvente, 243 S SAT-bifurcacion, 216 SAT-bifurcacion-instancia, 222 SAT-davis-putnam, 223 SAT-generico, 161 SAT-secuentes, 117 SAT-tablas-de-verdad, 65 SAT-tablas-de-verdad-K, 69 SAT-tableros-semanticos, 91 satisfacible-en-asignaciones, 65 satisfacible-en-asignaciones-K, 69 saturacion-resolucion, 250 saturado-cond-clausula-conjunto, 247 saturado-cond-conjunto, 247 saturado-cond-conjunto-aux, 247 sec-asignacion-distinguida, 179 sec-asignacion-distinguida-lista, 182 sec-medida, 181 sec-modelo, 181 sec-objeto, 179 sec-regla-computacion, 180 sec-representacion, 180 secuente-axioma, 106 secuentes-expansion-der, 109 secuentes-expansion-izq, 108 seleccion-instancia, 221 selecciona-no-literal, 197 simbolos-proposicionales, 45 suma-1-si-es-entero, 136 T tab-asignacion-distinguida, 171 tab-asignacion-distinguida-lista, 173 tab-medida, 172 tab-modelo, 172 tab-objeto, 170 tab-regla-computacion, 171

301 tab-representacion, 172 TAUT-tablas-de-verdad, 63 TAUT-tablas-de-verdad-K, 68 tiene-clausulas-con-complementarios, 210 tiene-literales-complementarios, 193 U union-coleccion, 262 V valida-en-asignaciones, 63 valida-en-asignaciones-K, 68 valor, 49 valor-clausula, 191 valor-clausula-K, 203 valor-de-simbolo, 47 valor-de-simbolo-K, 55 valor-forma-clausal, 193 valor-forma-clausal-K, 204 valor-K, 57 variables-forma-clausal, 254

Das könnte Ihnen auch gefallen