Sie sind auf Seite 1von 492

(Comentario Cuadro de texto http://www.ia.uned.es/asignaturas/logica4/libro-logi ca-07.

pdf) Lgica Computacional Jos Luis FernndezVindel ngeles Manjarrs Riesco FranciscoJavier DezVegas Dpto. Inteligencia Artificial E.T.S.I. Informtica UNED 2007

Presentacin Estos apuntessefacilitan como materialde estudiodela asignatura Lgica Computacion al, impartida por los autores en cuarto curso de Ingeniera Informtica en la UNED. Los alumnos de este curso encontrarn, en su grupo de tutorizacin en la Red, otros documentos con ejemplos, actividades, ampliaciones o exmenes previos resueltos. Los captulos 1-2y5-6 han sido desarrollados por Jos Luis FernndezVindel, el captulo3 por ngeles Manjarrs Riescoyel captulo4por FranciscoJavier DezVegas, todos ellos profesor es del Departamento de Inteligencia Artificial de la UNED. Agradeceramos sinceramente cualquier comunicacin sobre erratas as como sugerencias sobre los contenidosysuexposicin.En particularnos preocupacmo manteneruntonoexpositivoam igablesin renunciaral rigor: hastaqu puntofacilitar demostraciones formales(y dnde situarlas ), cmo reubicar ejemplosyejercicios para no entorpecerlaexposicin, etc. Estas aportaciones se estn canalizado a travs del grupo de tutorizacin en la Red. L a pgina www.ia.uned.asignaturas/logica4 resume los detallesde planificacinde este cursoyfacilitala direccin electrnica del grupo. Los autores UNED, Madrid,1de octubrede 2007 Sobre esta edicin 2007 Esta edicin, de Octubre de 2007, difiere de la utilizada el pasado curso 06-07 en dos puntos: 1. algunas actualizaciones menores en los apartados sobre el uso de los apuntes (presentacin, localizacin de ejercicios, direcciones de la asignatura, etc.) 2. una variacin sustancial en el captulo 6: se ha sustituido ntegramente su conteni do. El nuevo captulo6corresponde al contenido del artculo sobre lgica temporal CTL que sefacilit separadamente el pasado curso. Siel estudiante disponedelaversin impresapreviade estos apuntesydel citado artculo ,noes necesarioqueimprimaestanuevaversin. Cualquierdudapuede consultarseenlosForos habi litados en el grupo de tutorizacin telemtica.

II

ndice general Introduccin 1 Objetivosycontenidos .................................... 1 Motivacin para los alumnos de Ingeniera Informtica . . . . . . . . . . . . . . . . . . . 2 Bibliografa recomendada ................................... 3 Parte I. LGICA DE PREDICADOS 5 1 LGICA DE PROPOSICIONES 7 Resumen ............................................ 7 Objetivos ........................................... 7 Metodologa .......................................... 8 1.1 Sintaxis ......................................... 8 1.1.1 El lenguajedelaLgicade Proposiciones ................... 9 1.1.2 Sobrela estructura inductivadel lenguaje . . . . . . . . . . . . . . . . . . . 12 1.1.3 Derivacinde conceptos sintcticos ...................... 15 1.1.4 Eliminacinde parntesis ........................... 19 1.2 Semntica........................................ 20 1.2.1 Introduccin .................................. 20 1.2.2Valoresdeverdadde frmulas atmicas .................... 22 1.2.3 Semnticadelas conectivas .......................... 22 1.2.4 Valoresdeverdadde frmulas complejas . . . . . . . . . . . . . . . . . . . 2 4 1.2.5Tablasdeverdad ................................ 25 1.2.6Tautologasycontradicciones ......................... 26 1.3 Conceptos semnticos bsicos ............................. 26 1.3.1 Satisfacibilidad ................................. 26 1.3.2Validez ..................................... 29

1.3.3 Consecuencia.................................. 30 1.3.4 Equivalencia .................................. 36 1.4 Sistemas deductivos................................... 42 1.4.1 Deduccin natural ............................... 43 1.4.2 Resolucin ................................... 51 1.4.3Tablas semnticas................................ 57 Bibliografa complementaria ................................. 61 Actividadesyevaluacin ................................... 61

2 LGICA DE PREDICADOS DE PRIMER ORDEN 63 Resumen ............................................ 63 Objetivos ........................................... 63 Metodologa .......................................... 64 2.1 Sintaxis ......................................... 64 2.1.1 Lenguajesdeprimerorden ........................... 64 2.1.2 Induccinyrecursin .............................. 67 2.1.3 Subfrmulas .................................. 68 2.1.4 Eliminacinde parntesis ........................... 69 2.1.5Variableslibres ................................. 70 2.1.6 Sustituciones .................................. 72 2.2 Semntica........................................ 77 2.2.1 Introduccin .................................. 77 2.2.2 Interpretaciones................................. 79 2.2.3 Asignaciones.................................. 80 2.2.4 Satisfaccin ................................... 80 2.2.5 Ejemplosde interpretacin ........................... 81 2.2.6 Conceptos semnticos bsicos ......................... 87 2.3 Deduccin Natural ................................... 88 2.3.1 Consideracionesprevias ............................ 88 2.3.2 Cuantificadoresuniversales ........................... 90 2.3.3 Cuantificadoresexistenciales .......................... 92

2.4Tablas semnticas .................................... 93 2.4.1 Frmulas proposicionales ........................... 93 2.4.2 Notacin uniforme ............................... 94 2.4.3 Reglas de expansin . yd ........................... 96 2.4.4 Ejemplos .................................... 97 2.5 Resolucin ....................................... 100 2.5.1Formaprenexa ................................. 100 2.5.2 FuncionesdeSkolem .............................. 103 2.5.3Forma clausulada ................................ 104 2.5.4 Unificacin................................... 106 2.5.5 Resolucin ................................... 110 Bibliografa complementaria ................................. 112 Actividadesyevaluacin ................................... 112 Parte II. FORMALISMOSPARAPROGRAMACIN 113 3 PROGRAMACIN LGICA 115 Resumen ............................................ 115 Objetivos ........................................... 115 Metodologa .......................................... 115 3.1 Cmo interpretar una frmula lgica como un programa . . . . . . . . . . . . . . . 116 3.1.1 Declaracin de programa versus algoritmo de solucin . . . . . . . . . . . . 1 16 3.1.2 La resolucin como algoritmo para la solucin de problemas . . . . . . . . . 1 19 3.1.3 Programacin lgica versus programacin algortmica . . . . . . . . . . . . 121 3.2 Formalismo lgico para la representacin de problemas . . . . . . . . . . . . . . . . 123 IV

3.3 ResolucinSLD..................................... 125 3.4 El lenguajePROLOG .................................. 128 3.4.1 Definicinde predicados recursivos.Reglasde computacinybsqueda. . . 128 3.4.2 Usos procedimentalesdelPROLOG ...................... 133 3.4.3 Ventajas de la programacin en PROLOG. Principales aplicaciones. . . . . . 1 40 Bibliografa complementaria ................................. 142 Actividadesyevaluacin ................................... 143 4 VERIFICACIN DE PROGRAMAS SECUENCIALES 145 Resumen ............................................ 145 Objetivos ........................................... 145 Metodologa .......................................... 145 4.1 Introduccin....................................... 145 4.2 Sintaxis ......................................... 146 4.2.1 Un micro-lenguajede programacin ...................... 146 4.2.2 Especificacinde estados ............................ 147 4.2.3TernasdeHoare ................................ 147 4.2.4 Variablesde programayvariables lgicas . . . . . . . . . . . . . . . . . . . 148 4.3 Semnticadelos programas .............................. 149 4.3.1 Correccintotal................................. 149 4.3.2 Correccinparcial ............................... 150 4.4 El sistema deductivodeHoare ............................. 151 4.4.1 Reglade asignacin .............................. 151 4.4.2 Regladel condicional .............................. 152 4.4.3 Regladel condicional modificada ....................... 153

4.4.4 Regladelbucle ................................. 154 4.4.5 Reglade composicin ............................. 155 4.4.6 Reglade encadenamiento ........................... 156 4.5Verificacinparcialde programas ........................... 156 4.5.1 Composicinyencadenamiento ........................ 156 4.5.2Tratamientodelas asignaciones ........................ 157 4.5.3 Tratamiento de las instrucciones condicionales . . . . . . . . . . . . . . . . 158 4.5.4Tratamientodelosbucles............................ 160 4.6Verificacintotalde programas ............................. 162 4.7 Comentarios adicionales ................................ 163 4.7.1 Consistenciaycompletitud ........................... 163 4.7.2 Otras cuestiones ................................ 164 Bibliografa complementaria ................................. 164 Actividadesyevaluacin ................................... 164 Parte III. LGICA MODAL 165 5 FUNDAMENTOS DE LGICA MODAL 167 Resumen ............................................ 167 Objetivos ........................................... 167 Metodologa .......................................... 168 5.1 Perspectiva ....................................... 168 V

5.1.1 Estructuras ................................... 168 5.1.2 Frmulas .................................... 169 5.1.3 Modelos adecuados ............................... 170 5.2 Estructuras relacionales ................................. 171 5.2.1 Sistemasde transiciones etiquetadas ...................... 171 5.2.2 Propiedadesdeuna relacin binaria ...................... 172 5.2.3 Cierres ..................................... 174 5.3 Lgica monomodal ................................... 175 5.3.1 Lgicamodalbsica .............................. 175 5.3.2Teoradela correspondencia .......................... 191 5.3.3 Lgicas normales ................................ 193 5.4 Lgicas polimodales .................................. 195 5.4.1 Sintaxis..................................... 195 5.4.2 Semantica.................................... 196 5.4.3 Lgica temporal bsica ............................. 197 5.4.4 Lgica epistmica ............................... 199 Bibliografa complementaria ................................. 200 Actividadesyevaluacin ................................... 200 6 Lgica ModalTemporal 201 6.1 Introduccin....................................... 201 6.1.1 Diseode sistemas ............................... 201 6.1.2 Propiedadesdeun diseo ............................ 202

6.1.3 Verificacinde las propiedadesde un diseo . . . . . . . . . . . . . . . . . 2 02 6.2 CTL: Sintaxis ...................................... 203 6.3 CTL: semntica ..................................... 204 6.3.1 Introduccin informal ............................. 204 6.3.2 Definicindela semnticadeCTL....................... 206 6.3.3 Expresinde propiedadesenCTL ....................... 207 6.3.4 Equivalencias bsicas .............................. 208 6.4VerificacinCTL:unprimer algoritmo ......................... 209 6.4.1 Frmulassin operadores temporales ...................... 209 6.4.2 Frmulascon operadores temporales...................... 210 6.4.3 Pseudocdigo.................................. 212 6.5 Consideraciones finales ................................. 212 Bibliografa 215 VI

ndice de figuras 1 Dependencia conceptual entrelos temas. ........................ 1 1.1 rboles sintcticos: presentacin ............................ 10 1.2 rbol sintctico: ((p. q) . (p)) .......................... 12 1.3 Los coloresdelas frmulas ............................... 15 1.4 Definicin recursivaderbol sintctico ......................... 16 1.5 Sustitucin uniforme [p/j,q/y] sobreunrbol sintctico ............... 17 1.6 rbolesyparntesis ................................... 19 1.7 Interpretacin inducidaporuna asignacin ....................... 24 1.8 Deduccin natural. p. (q. r) . p. r ......................... 44 1.9 rbol de la deduccin natural. p. (q. r) . p. r ................... 44 1.10 Deduccin natural. p. (q. r) . (p. q) . (p. r) ................... 46

1.11 rbol de la deduccin natural. p. (q. r) . (p. q) . (p. r) ............. 47 1.12 Deduccin natural. (p. q) . (p. r) . p. (q. r) ................... 47 1.13 Deduccin natural. p. q,q. r . p. r ....................... 48 1.14 Deduccin natural. (p. q) . r . p. (q. r) .................... 49 1.15 Deduccin natural. p. (q. r) . (p. q) . r .................... 49 1.16 Deduccin natural. . p. (p. q) ........................... 49 1.17 Deduccin natural. p.

q,q`p .......................... 50 1.18 rbol de la resolucin {pq, qr, .......................... 55 pr, r} 1.19 Unaderivacindela clusulavaca ........................... 55 1.20 Unaderivacindela clusulavaca ........................... 57 1.21 Notacin uniforme ................................... 58 1.22 Tableau de(p. (q. r)) ............................... 59 1.23 Tableau de{p. (q. r),r. p} ........................... 60 2.1 Frmulade Primer Orden: rbol sintctico ....................... 66 2.2 Dos frmulasde Primer Orden: subfrmulas ...................... 69 2.3 mbitosyvariables libres ............................... 71 2.4 Tres estructurassobreelmismouniverso ........................ 81 2.5 Estructurascondos predicados mondicos ....................... 84

2.6 Inferencia sobre instancias de frmulas proposicionales . . . . . . . . . . . . . . . . 90 2.7 Tableau que confirma que p. (q. r) `r !p .................. 95 2.8 (p. p0) . ((q. q0) . (r . r0)) `(r . r0) !(p. p0) ............... 95 2.9 8xPx . (9yQy ^8zRz) . 8zRz . 8xPx ...................... 98 2.10 Tableau que confirma que8xPx_9yQy `9y8x(Px. Qy) ............... 99 2.11 Tableau que confirma que8x9y(Rxy . Qy),8x8yRxy `9zQz ............ 100 3.1 rbol SLD del objetivo q(y,b) ............................. 128 3.2 rbol SLD del objetivo conectado(Y,b),conectado(b,Z) ............... 130 3.3 Reevaluacin del objetivo conectado(Y,b),conectado(b,Z) . . . . . . . . . . . . . . 131

3.4 Exploracin del rbol SLD del objetivo conectado(Y,b),conectado(b,Z) por un intrpretePROLOG .................................... 132 3.5 Rama infinita del rbol SLD del objetivo conectado(X,Y) . . . . . . . . . . . . . . 132 3.6 Funcionamientodel operadorde corte ......................... 138 5.1 Estructura relacional .................................. 168 VII

5.2 Un modelo: marcoyasignacin ............................ 169 5.3 Relaciones binarias ................................... 172 5.4 rbol sintctico de 2((p. q) . (3r)) ........................ 177 5.5 dos marcos sobre un mismo conjunto W ........................ 180 5.6 una relacinsobreunconjuntode4elementos ..................... 180 5.7 Un modelo: marcoyasignacin ............................ 181 5.8 satisfaccindeuna frmula ............................... 184 5.9 Marcoparaun lenguaje bimodal ............................ 196 6.1 Diagramade transiciones ................................ 201 6.2Transicionesdesdeelnodo1delafigura6.1...................... 202 6.3 E[ AF(p. q) UEX(p)] ................................ 209 6.4 Propagacin de la marca AF .............................. 210 VIII

ndice de tablas 1.1 Alfabetogriego ..................................... 12 1.2 23 asignaciones distintas sobre3letras proposicionales . . . . . . . . . . . . . . . . 22 1.3 Semnticadelas conectivas binarias .......................... 23 1.4 Tabla de verdad de((p. q) . (?)) .......................... 25 1.5 Tabla de verdad de((p. q) . (p)) .......................... 26 1.6 Tabla de verdad, compacta, de((p. q) . (p)) .................... 26 1.7 Una frmula insatisfacibleydos satisfacibles . . . . . . . . . . . . . . . . . . . . . 27 1.8 El conjunto G = {p. (q. r), (p. q) . r, q. (r. p)} es satisfacible ........ 28 1.9 El conjunto O = {(p. (q. r), (p. q), (r.

p)} es insatisfacible .......... 28 1.10 Consecuencia. {(p. q), (p. r)}|=(q. r) ...................... 31 1.11 Consecuencia. {p. r, (p. q)}|=(p. q) ..................... 31 1.12 Si {j1,...,jn}|= . entonces j1. ... . jn . . es tautologa ............. 33 1.13 Si {j1,...,jn}|= . entonces j1. ... . jn ^. es insatisfacible ........... 35 1.14 Si j1. ... . jn insatisfacible entonces {j1,...,jj-1,jj+1,...,jn}|= jj ...... 35 1.15 Algunas frmulas de dos variables, agrupadas por clases de equivalencia . . . . . . . 37 1.16 Todas las clases de equivalencia sobre frmulas con dos variables . . . . . . . . . . 37 1.17 Equivalencias bsicas .................................. 38 1.18Forma normal disyuntivadeuna frmula ........................ 40 1.19Formas normales conjuntivasydisyuntivas ...................... 41

1.20Reglasdeexpansindeun tableau ........................... 61 2.1 Relacionesyfunciones ................................. 79 2.2 Dos relacionessobreelmismouniverso ........................ 86 2.3 Notacin uniforme, conectivas binarias ......................... 98 2.4 Notacin uniforme, frmulas cuantificadas ....................... 98 2.5 Reglasdeexpansindeun tableau ........................... 99 2.6 Equivalencias de inters para alcanzar la forma prenexa . . . . . . . . . . . . . . . . 101 2.7 Otras equivalencias de inters para alcanzar la forma prenexa . . . . . . . . . . . . . 102 4.1 Tabla para probarelbucledela funcinfact1...................... 161 5.1 Propiedades de una relacin binaria, expresadas en lgica de primer orden . . . . . . 172 5.2 definicin recursiva de satisfaccin M,w . f ...................... 183 5.3 Frmulas modales que caracterizan relaciones binarias . . . . . . . . . . . . . . . . 192 IX

Introduccin Objetivosycontenidos El objetivo fundamentalde este libroesexponer los mtodos de la lgica (concretament e de la lgica de predicadosyde la lgica modal) que ms se utilizan hoy en da en ciencias de la com putacin, inteligencia artificial e ingeniera del software. Por ello, algunos de los temas son de ndole puramente terica, mientras que otros t ratan de establecer el puente con las aplicaciones concretas. As, la primera parte, que es de natural eza terica, estudiados aspectosdelalgicade predicados:lalgicade proposiciones(tema1)ylade pred icados de primer orden (tema 2), mientras que la segunda parte se centra en dos formali smos lgicos aplicablesa problemasde computacin:el tema3estudiael fundamentodela programacin lgicayel tema4la lgicade Hoare como formalismo paralaverificacinde programas secuenciales. Anlogamente, dentrodela tercera parte, dedicada ala lgica modal,el tema5 (fundamen tos de lgica modal) es puramente terico, mientras que el tema ?? estudia la lgica modal temporal, que sirve, entre otras aplicaciones, para la verificacin de sistemas concurrentes y de tiempo real (software)yde componentes fsicos (hardware). La figura1muestrala dependencia conceptual entre los temas tratados enel libro. 1. Lgica de proposiciones 2. Lgica de predicados 3. Programacin 4.Verificacin de progr. secuenciales lgica 5. Lgica modal . 6. Lgica modal temporal Figura 1: Dependencia conceptual entre los temas. Conviene sealar, sin embargo, que el objeto de este libro no es ninguno de los ca mpos de aplicacin anteriores, sino los formalismos lgicos. Por eso no vamos a estudiar aqu los detal les de cada una de estas tcnicas aplicadas, sino que insistiremos ante todo en el fundamento lgico comn en

Introduccin que se apoyan. En la bibliografa complementaria de cada uno de los temas encontra r el lector las referencias necesarias para conocer a fondo las tcnicas que ms le interesen. Motivacin para los alumnos de Ingeniera Informtica La lgica constituye la herramienta formal de razonamiento de la mayor parte de la s asignaturas de la carrera de informtica, sobre todo de las que estn ms relacionadas con las matemti casyla programacin, tales como lgebra, Anlisis Matemtico, Matemtica Discreta, Electrnica Digi tal, TeoradeAutmatasyLenguajesFormales, Programacin (incluida la Programacin Concurrente y la Programacin Declarativa), Bases de Datos, etc. En cuanto a la inteligencia artificial, la lgica es el fundamento de todos los mto dos de representacin del conocimientoy del razonamiento, especialmente en sistemas expertos, razonami ento con incertidumbre (encadenamiento de reglas, lgica difusa, etc.), procesado del l enguaje natural, razonamiento espacialytemporal, visin artificial, robtica, lgica epistmica,1 etc. En tercer lugar, los mtodosformales tienen una aplicacin inmediata en la ingeniera del software. El uso de lenguajes de especificacin formal es beneficioso en todos los desarroll os, ya que promueve la definicin de modelos estructurados, concisosyprecisos en diferentes n iveles de abstraccin, yfacilitael razonamiento sobreellos inclusoaunnivel informal. Cuandoalas notacio nes formales se les asigna una semntica operacional, es posible disear herramientas au tomticas que detecten ambigedades en los requisitos iniciales, verifiqueny validen modelosalo largo del ciclo de desarrollo, ayuden enlaevolucinyel mantenimientode los productosygeneren automt ica o semi-automticamente prototipos o incluso partes del cdigo final. Finalmente, los mt odos formales sirven tambin para propsitosde documentacin, ingenierainversayreutilizacinde componen tes. No obstante, aun siendo reconocidas las importantes contribuciones de los mtodos formales a la ingeniera del software, su uso no se ha extendido tanto como caba prever hace un p ar de dcadas. Lo cierto es que los proyectos de desarrollo formal han fracasado con frecuencia , si bien por razones ms ergonmicas que tcnicas. La experiencia ha mostrado que introducir mtodos formales en un proceso de desarrollo puede provocar dificultades no relacionadas con la potenci a de los mtodos. En primer lugar, pueden resultar excesivamente restrictivos, tanto porque obliga n a sobreespecificar ciertos aspectos como porque constrienel procesode desarrollo,que tienen tendenci aamonopolizar.

En segundo lugar, su introduccin puede ser problemtica desde un punto de vista prct ico, debido a su dificultadrealypercibida,deformaqueelcoste inicialde entrenamientoenestas tcni caspuedeser significativo,yen ocasioneslos mtodos son infrautilizadas inclusopor partede inge nieros instruidos en su uso. El incrementoen costesde desarrolloquelos mtodos formales suponenenlas primerasfa sesdel ciclo software se puede ver no obstante compensado por el decremento de los cost es de las ltimas fases, particularmentedelafasedevalidacin,as comodelas subsecuentesfasesde manteni mientoy evolucin. El problema fundamental de los mtodos formales ha sido siempre que la co munidad cientfica dedicada al desarrollo mtodos formales ha invertido un escaso esfuerzo en transfe rir la tecnologa a los entornos de ingeniera. Las dificultades antes referidas podran solventarse s i se difundiesen pautas para seleccionar notaciones adecuadas para cada problema,evitarla sobre-f ormalizacin, identificar dominios adecuados, integrar las tcnicas formales con tcnicas semi-formales de uso extendi 1La lgica epistmica es una rama de la lgica modalque sirve para razonar sobre el co nocimiento (propioyajeno),y se utiliza sobre todo para modelar el conocimiento de varios agentes. Hay que te ner en cuenta que el enfoque ms actual dela inteligencia artificial, tanto enel estudio terico como enel desarrollode ap licaciones, consiste en analizaryconstruir los sistemas inteligentes como agentes que interactan entre s (por ejemplo, cooper ando o compitiendo, segn el dominio de que se trate).

Introduccin do, comercializar herramientas de desarrollo amigables, desarrollar tcnicas especf icas de estimacin de costes de desarrollo, etc. Unabuena estrategia para promover la integracin de tcnicas formales en un proceso de desarrollo es construir una base formal detrs de un lenguaje sem i-formal bien conocidoydifundido. Tal fuela estrategia seguida enel caso delexitoso lenguaje SDL enel campode las telecomunicaciones,y es asimismo la estrategia seguida actualmente por algunos i nvestigadores del lenguaje UML, con el propsito de introducir estas tcnicas en losprocesos de desarr ollo orientados a objeto, actualmente tan en boga. De los mtodos formales se ha afirmado, irnicamente, que siempre han tenido un gran futuro ysiempre lo tendrn . No obstante, recientemente hay motivos razonables para confiar al fin en un lanzamiento definitivo de estas tcnicas, particularmente en los cada vez ms numero sos complejos dominios que exigen un alto grado de calidad del software, tales como: telecomun icaciones, transacciones bancarias, comercio electrnico, votaciones electrnicas, tarjetas inteligentes, dis positivos inalmbricos, etc. En resumen, los avances realizados en la ltima dcada en este campo han hecho de lo s mtodos formalesdeverificacin una herramienta cadavezms utilizada,yesdepreverquesu usoseex tienda significativamente en los prximos aos. Poreso,el alumnodebe tener presenteque, ademsdelvalor educativodelalgicaenla forma cin de una mente ordenada , las tcnicas estudiadas en este libro han llegado a ser una h erramienta cada vez ms utilizada en aplicaciones industriales en la ltima dcada; las empresas ms imp ortantes del mundodela informticaylas telecomunicaciones, comoAT&T,BT, IBM, Intel, Motorola, S iemens, SRI, etc., cuentan con equipos especializados en este tema y los profesionales q ue conocen estas tcnicas estn cada vez ms solicitados. En este sentido, puede ser til la lectura del artculo disponible en Internet en que Clarkey Wing [1996] enumeran algunas de las herramientas de verificacin formal que se estn utilizando en la actualidad. Como ancdota curiosa, este artculo menciona que el error que el pri mer procesador Pentium presentaba al efectuar ciertas divisiones,yque provoc unas prdidas econmica s considerables para Intel, se podra haber evitado con las tcnicas disponibles en la actualidad; l as referencias bibliogrficas se encuentran en dicho artculo. Entre las aplicaciones desarrolladas recientemente utilizando un proceso de desa rrollo enteramente

formal cabe destacar la automatizacin de la nueva lnea de metro de Pars, METEOR, qu e ha obtenido una enorme publicidad. Esta lnea funciona sin conductoresydejando un peq ueo margen temporal entre trenes, de modo que los requisitos de seguridad requieren una alt a confianza en el software. En la misma lnea, recomendamos tambin los sitios de Internet www.afm.sbu.ac.uk/ y www.cs.indiana.edu/formal-methods-education/,donde el alumno podr encontrar numer osos recursos sobre mtodos formales aplicadosala especificaciny verificacinde sistemas ( hardwarey software), tales como herramientas gratuitas, abundante bibliografa e incluso ofe rtas de empleo. Finalmente, aunque el alumno no llegue a ser un experto en verificacin, el estudi o de la lgica computacional puede aportar al alumno dos beneficios importantes: por un lado, l e ayudar a formar una mente lgica, lo cual le servir tanto para estudiar las asignaturas de esta car rera como para en su prctica profesional, especialmente en las laboresde diseoyprogramacin. Bibliografa recomendada Adems de la bibliografa complementaria que hemos incluido en cada captulo de este l ibro, queremos ofrecer una seleccin general de bibliografa que puede ser til para el alumno que qu iera ampliar los temas tratados en esta asignatura.

Introduccin Logic in Computer Science [HuthyRyan, 2000] Es un libro excelente, que explica la aplicacin de las tcnicas de la lgica computac ional a problemas del mundo real. Lo recomendamos encarecidamentealos alumnos que quieran profundi zar en los temasque tratamosen estetextoyconocer otras tcnicas nuevas. Aunqueelnivelde c omplejidad es mayor que el de nuestro texto, se encuentra al alcance cualquier estudiante d e pregrado que decida estudiarlo detenidamente. Recomendamos a quienes estn interesados que visiten la pgina web del libro, http://www.cs.bham.ac.uk/research/lics/, creada por sus autores; en ella podrn encontrar una fe de erratas, ejercicios de autoevaluacin en forma de test (con soluciones e xplicadas), enlaces de inters, etc. Mathematical Logic for Computer Science [Ben-Ari, 2001] Desde su aparicin, en 1993, este libro se ha convertido en uno de los textos ms co nocidos de lgica matemtica.Lasegundaedicin, publicadaenjuniode2001,amplayactualiza sensiblement e los contenidos de la primera. Se trata de un texto para pregraduados, que intent a ser bastante didctico, yen general lo consigue, aunque a nosotros nos gustara que fuera ms intuitivo en l as explicaciones; por ejemplo, dando la traduccin a lenguaje natural de las expresiones matemticas, es pecialmente de los teoremas (lo hace en algunas ocasiones, pero en otras muchas no). Los eje mplosyejercicios del libro estn bien escogidosyconstituyen un apoyo importante parael estudio. La pgina web http://stwww.weizmann.ac.il/g-cs/benari/books.htm#ml2, creada por el autor, contiene unafede erratas, enlacesmuy interesantes sobre lgica matemticayel cdigo fuente en PROLOG de algunos algoritmos para los formalismos lgicos (demostradores de teo remas, etc.), descritos en el libro, cuyo estudio puede resultar muy interesante para asentar los conceptosy los mtodos expuestos en nuestro texto. Handbook of Logic in Artificial Intelligence and Logic Programming [Gabbay et al ., 1993, 1994b, 1994c, 1995, 1998] Es una coleccin de cinco volmenes, en que cada captulo est escrito por un autor dife rente. El primervolumen se ocupade los fundamentos lgicos (incluidala lgica modal bsicaylas c lusulas de Horn), el segundo de las metodologas de deduccin, el tercero del razonamiento n o-montono, el cuartode las lgicas epistmicasytemporalesyel quintodela programacin lgica. Constituy e una excelente obra de consulta, pero puede resultar demasiado compleja para alumnos

pregraduados. (No se debe confundir esta obra con el Handbook of Logic in Computer Science [Ab ramsky et al., 1992-2001]. Ambasconstande cincovolmenesyestn editadas por Oxford University Press, pero esta ltima es de una complejidad an mayor, por lo que no la incluimos como bi bliografa complementaria para nuestros alumnos.) Introduction to Mathematical Logic [Mendelson, 1997] Unode los mejores libros sobre lgica porla claridadde lasexplicacionesyla amplitu dde los temas que cubre. Muchos de estos temas superan ampliamente el nivel de una asign atura de pregrado. Para mayor informacin, enhttp://aracne.usal.es/results/biblioes.html hay una lista de msde40 librosde lgica en inglsy en espaol.Atravsde esa pgina puede acceder tambina recursos muy interesantes desarrollados dentro del Proyecto Aracne.

ParteI LGICA DE PREDICADOS

Captulo1 LGICA DE PROPOSICIONES Resumen Se presenta el primero de los sistemas lgicos de este texto. Como en todos los re stantes, se cubren tres etapas: primero se facilita un lenguaje formal, despus se define con precisin cmo evaluar el valor de verdad de una expresin del len guaje ypor ltimo se facilitan sistemas deductivos paradecidir,mediante clculos, sobrepro piedades orelaciones entre unasexpresionesyotras (msprecisamente, entre sus valoresde verd ad). Este captulo tiene, por un lado, un inters intrnseco por sus aplicaciones en Matemti cas, Computaciny enla formalizacin incipientederazonamientos cotidianos, en lenguaje natural. Adicionalmente ofrece un marco formal sencillo donde plantearse propiedades e in terrelaciones sobre los valores de las expresiones (satisfacibilidad, validez, consecuencia, e quivalencia), sobre sus mtodos de decisiny sobre los sistemas deductivos creados para abordar estas cu estiones. Y lo que es ms importante: tales conceptos son todos exportables a otros sistemas lg icos, con las restricciones propias de cada sistema. Objetivos 1. Respectoala comprensiny uso del lenguaje formal: es primordial ser capazdegenerar,a mano,expresiones correctas(con todoslos parnte sis que conllevan)ysus rboles sintcticos. Asimismo se debe poder analizar cualquier expresin correcta facilitada. adicionalmente, se requiere la comprensin de la estructura inductiva del lenguaje con dos fines: primeroporque facilitala automatizacindel lenguajeysegundoporque facil ita el seguimiento de demostraciones sobre el propio lenguaje. 2. Respecto a la semntica, a la evaluacin de los valores de verdad de una expresin es bsico ser capaz de evaluar, a mano, el valor de verdad de una expresin frente a una determinada interpretacin;y ser capaz de listar todas las interpretaciones posibl esy evaluar la expresin sobre cada una de ellas (es decir, de construir la tabla de v erdad de la expresin).

8 Captulo 1. LGICA DE PROPOSICIONES tan bsico como lo anterior resulta comprender, trabajando sobre tablas de verdad, los conceptos semnticos que manejaremos permanentemente: satisfaccin, satisfacibilidad , validez (tautologas), equivalencia. Es crtico tanto entender estos conceptos por s eparado como empaparse de sus interrelaciones. adicionalmente se puede considerar una primera automatizacin de los procesos de d ecisin de estas cuestiones, basada en el recorrido extensivo de la tabla de verdad hast a donde se requiera. 3. Sobre los sistemas deductivos: es importante darse cuenta de que tanto la Resolucin como las Tablas Analticas se utilizan para confirmar que el conjunto de frmulas de partida es insatisfacible. Y de cmo se utiliza esta confirmacin para detectar relaciones de consecuencia. sera deseable que el lector trabajara sobre al menos uno de los sistemas deductiv os hasta sentirse cmodo desarrollando demostraciones en ese marco. No obstante, para problemas complejos se requiere en seguida la asistencia de un sistema automatiz ado de apoyo. como objetivo ms avanzado se propone la reflexin sobre la automatizacin de estos sistemas, principalmentede los basados en Resolucino enTablas Analticas otro objetivo avanzado, ste muy formal, conlleva la comprensin de los teoremas de correccinycompletud (que an no facilita el texto) para entender cmo se engarzany convergen los conceptos semnticos con esos clculos sintcticos de los sistemas deduct ivos . En particular,cmo confluyenel conceptode consecuencialgicayelde derivacin, prueba o demostracin sintctica. Metodologa De un texto lineal conviene saber qu debe leerse primero, qu se debe posponerycmo c ontrastar el nivel de conocimiento en cada instante. Utilice el apartado Objetivos como referencia: trate de abordar, por ese orden, los objetivos bsicos de cada uno de los tres puntos analizados. En el estado actual de estas no tas no es difcil: no hay muchos contenidos sobre automatizacin ni demostraciones formales. Le recomendamos que aborde mnimamente el captulo de sintaxis, hasta donde formalme nte le resulte cmodo. Y que, con ese conocimiento intuitivo sobrelageneracin correctadeex presiones

dedique tanto tiempo como requiera a la comprensin en profundidad de los concepto s semnticos bsicos. Slo entonces puede comenzar a trabajar sobre los sistemas deductivos. Lamentamos que, salvo los ejemplosyfiguras, no se incluyan todava ejercicios sufi cientes. 1.1 Sintaxis Definicin 1.1 (Alfabeto) Un alfabeto es un conjunto de smbolos. Ejemplo 1.2 Los dos siguientes conjuntos pueden considerarse alfabetos: A1 = {$,s,5} A2 = {p1, p2, p3, p4,...} A1 es un alfabeto finito, que consta de3smbolos. Por contra, A2 puede aceptarse c omo un alfabeto infinito (si se considera cada pjcomo un nico carcter, distinto del resto).

1.1. Sintaxis 9 Definicin 1.3 (Expresin) Una expresin es una secuencia finita de smbolos. Por expresin sobre el alfabeto A se entender una expresin compuesta exclusivamente de

smbolos del alfabeto A. A los smbolos tambin se les denomina caracteres y a las exp resiones, cadenas. Ejemplo 1.4 Cada una de las cinco secuencias siguientes es una expresin sobre el alfabeto A1: 5 ss $$s55s ss5 5555ss$$ Observe que en una expresin se pueden repetir smbolos, pero no incluir smbolos ajen os: la cadena 55ss4s , que incluye el carcter 4 , no contenido en A1, no es una expresin sobre A1. Sobre un alfabeto finito, como A1, cuntas expresiones distintas pueden formarse?, a lguna de estas expresiones puede ser infinita?. Observe que la definicin de expresin exige que cada secuencia sea finita: no es un a expresin 05555 ... 0, donde se espera que detrs de cada5siempre aparezca otro. Sin embargo, no se fi ja una longitud mxima: por muy grande que sea una expresin siempre puede construirse otra mayor adjuntando un nuevo carcter. As, puede generarse un nmero infinito de cadenas incluso con un alfabeto finito, c omo p. ej. A3 = {a} con un solo smbolo: a,aa,aaa,aaaa,aaaaa,... Al conjunto (siempre infinito) de todas las expresiones que pueden construirse sobre un alfabeto Ase le suele notar como A* . Definicin 1.5 (Lenguaje) Un lenguaje es un conjunto de expresiones. Ms concretamen te, un lenguaje sobre el alfabeto Aes cualquier subconjunto de A* . Dado un alfabeto A, el conjunto total de cadenas A* es un lenguaje sobre A, pero tambin lo es cualquier subconjunto suyo L. A* (vaco, finito o infinito). Ejemplo 1.6 Sobre A= {$,s,5} se pueden definir, entre otros, los lenguajes L1 = {5,$$,ss,55} L2 =

{s,ss,sss,...} L2 es un lenguaje con un nmero infinito de cadenas. Para definir este tipo de len guajes se requiere precisar las propiedades que distinguen sus expresiones. Por ejemplo, para los l enguajes L3 = {s,s$,s5,$s,5s,ss,...} L4 = {s5,5s,s$5,$s5,5$s,...} L3: todas las cadenas formadas al menos por una s ; o L4: uyen igual nmero de smbolos s que de 5 . todas las cadenas que incl

1.1.1 El lenguaje de la Lgica de Proposiciones El alfabeto de la Lgica de Proposiciones debe proporcionar los smbolos necesarios para representar proposiciones sobre el mundo. Como el nmero de proposiciones que pueden manejarse en un mismo razonamiento no est limitado, debe proveer un nmero infinito de letras proposicion ales. Definicin 1.7 (Alfabeto de la Lgica de Proposiciones) El alfabeto Ade la Lgica de P roposiciones consta de los siguientes elementos:

Captulo 1. LGICA DE PROPOSICIONES 1. infinitas letras proposicionales: p0, p1, p2, p3... 2. smbolos lgicos: constantes (?,>), conectiva monaria () yconectivas binarias(^,_,!,$) 3. dos smbolos auxiliaresde puntuacin: parntesis izquierdo ( yderecho ) As, A= {p0, p1,...,?,>,,^,_,!,$,(,)} En las exposiciones tericas, el nmero de letras proposicionales que se consideran simultneamente es pequeo (por ejemplo, de p0a p8). En estos caso se suelen notar informalmente con las ltimas letras del alfabeto latino: {p,q, r,s,t,...}. Seguiremos esta notacin informal a partir de este punto. no negacin ppp ?????. Lecturayrepresentaciones alternativas En la siguiente tabla se adjunta el nombre usual de ca da conectivaysu lectura.Tambinse aaden algunas formas alternativasde representacine n otros textos. Ciertos lenguajes de programacin pueden reservar smbolos distintos para es tas mismas conectivas. ?,. falso ,

verdadero

false,true

p. q pyq conjuncin p&q p. q po q . ?????. p. q q, q p. q q, q disyuncin

si pentonces q p. psiyslosi q p.

condicional p.

bicondicional p=

Ejemplo 1.8 Las siguientes secuencias son expresiones sobre el alfabeto fijado:

((pq (!p)(p_^p)(r !. p. q) p (p)(p. q) ((p. p) ^?) ((r $>) . (r . (q))) Para nuestros fines, algunas de estas cadenas no son tiles. En este ejemplo, slo a ceptaramos las de la segunda fila. A las expresiones aceptables se las denominar frmulas o ex presiones bien formadas. El conjunto (infinito) que incluye todas estas frmulas (y nada ms) es el Lenguaje de la Lgica de Proposiciones, que notaremos como Form. Como introduccin intuitiva le proponemosque estudie el proceso de generacin de la frmula (correcta, aceptable) ((p^>) . (p)). Se representa grficamente en la siguiente figura, que debe recorrerse de abajo arriba. ((p^>) . (p)) . ??_. __ (p^>) . ??. __ (p) . p pp p Figura 1.1: rboles sintcticos: presentacin Observe que, partiendo de bloques mnimos, se van construyendo expresiones ms compl ejas. stas, a su vez, siempre pueden ser reutilizadas como nuevos bloques componentes:

1.1. Sintaxis p ^>_p Los bloques mnimos aceptables, las frmulas atmicas, estn compuestas por un nico carac ter del alfabeto. Pero no cualquiera: slo letra proposicional o constante. Definicin 1.9 (Frmula atmica) Una frmula atmica es una expresin compuesta exclusivamen te por una letra proposicional, la constante . o la constante >. El conjuntode todaslas frmulas,el lenguajebuscado, podra definirse(en primera apro ximacin) como el conjunto X que verificase: 1. todas las frmulas atmicas pertenecen a X 2. si la expresin . . X entonces (j) . X 3. si las expresiones j,. . X entonces (. . y),(. . y),(. . y),(. . y) . X Un conjunto asgarantiza que todas las frmulas pertenecen al mismo. Pero puede adems constar de otros elementos. En particular, el conjunto A* formado por todas las cadenas generables a partir delalfabeto,verifica esas tres propiedades. Pero tambinlasverificael conjunto A* menos la cadena (!^) . Intuitivamente, si slo se partiera de las frmulas atmicasy se produjeran todas las negaciones yconexiones binarias posibles, debiera obtenerse un conjunto que contiene frmulas yslo frmulas. Yestara incluido en cada unode los dos conjuntos antes citados(y, por tanto, en s u interseccin). Definicin 1.10 (Lenguaje de la Lgica de Proposiciones) El conjunto Form, que conti ene todas las expresiones aceptables en nuestro lenguaje (y slo stas), es el menor de los co njuntos X que verifica: 1. todas las frmulas atmicas pertenecen a X 2. si la expresin . . X entonces (j)

. X 3. si las expresiones j,. . X entonces (. . y),(. . y),(. . y),(. . y) . X Estafamiliade conjuntos X no es vaca: pertenece a la misma al menos el conjunto A. La interseccin de todos ellos produce un conjunto que verifica tambin las tres propiedades requerid as. Y es el menor de todos, est incluido en cada uno. En particular, es el conjunto que incluye todas las exp resiones que pueden generarse con estas tres reglasyexclusivamente talesexpresiones. Ejemplo 1.11 Las siguientes cuatro lneas muestran tanto frmulas atmicas como compue stas con 1,2y3conectivas, respectivamente: p, q, r, ?, . (p), (?), (>), (p. q), (p!?) ((p)), ((>)), ((p. q) . r), (p. (?)) (((p. q)) . p), ((p. r) . (?)) Tratedeexplicitarlos pasos(lasreglas utilizadas), desdelas frmulas atmicas, hastal a generaracin de una frmula del ejemplo. Puede resultarle til considerar una representacin como l a de figura 1.2.Aeste tipode grficos se les denomina rboles sintcticos. Posponemos su definicin formal.

Captulo 1. LGICA DE PROPOSICIONES ((p. q) . (p)) . (p. q) . ??????. .... ?>=<89:; ??????. (p) . p qpp qp Figura 1.2: rbol sintctico: ((p. q) . (p)) Metalenguaje Alolargodeestas notas encontrarexpresiones como (. . y) . sta es una abreviatura de frmula: la que se compone uniendo por un bicondicional dos frmulas cualesquiera, denotada s como . yy. Puesto que . y. no forman partedel alfabeto, estaexpresin no es una frmula del lenguaje sino una frase para hablar acerca del lenguaje.Aeste lenguaje superior, utilizado par a analizar otro, sele denomina metalenguaje. En concreto, en estos apuntes se utilizar el castellano ms algunos smbolos adicionales como metalenguaje. Algunas de las expresiones del metalenguaje sern meras abreviaturas de frmulas, o esquemas de frmulas: por (. * y) se entenderla frmula construidapor cualesquierados otrasyunadelas

conectivas binarias. Observe que, como . y. pueden ser cualesquiera frmulas, no se descarta que puedan particularizarse en la misma frmula. Otras expresiones del metalenguaje ab reviarn frases ms complejas, ya no frmulas, expresando propiedades o relaciones entre frmulas; por ejemplo, f = y se leer como las frmulas f y. son equivalentes . En este texto se utilizarn letras griegas minsculas para denotar frmulasyletras gri egas maysculaspara denotar conjuntosde frmulas.La siguiente tablafacilitasu lectura: A a alfa I . iota P . ro B beta K . kappa Ss, . sigma G. gamma L. lambda T t tau Dd delta M mu . psilon E e psilon N . nu Ff, . fi Z . dseta X. xi X . ji H . eta Oo omicron Y. psi Qq, . zeta Pp, . pi W. omega Tabla 1.1: Alfabeto griego 1.1.2 Sobre la estructura inductiva del lenguaje En la definicin 1.10 de lenguaje, con tres reglas de composicin se ha definido un conjunto de frmulas, infinito pero muy estructurado. Este conjunto, por definicin, tiene una e structura inductiva: nuevas frmulasse construyena partirde otras utilizando algunadelas cinco opciones de generacin, alguna de las cinco conectivas fijadas.

1.1. Sintaxis Sobre un conjunto con esta estructura, las demostracionesydefiniciones se produc en por mtodos inductivos y recursivos respectivamente. As, en muy pocas lneas, se puede fijar un a definicin aplicable sobre cualquier frmula,pormuy complejaque sea. Odemostrarque todasycada unade las infinitas frmulas verifican cierta propiedad. Demostraciones inductivas El lector puede estarfamiliarizado con el Principio de Induccin aritmtico, donde sl o se requiere un paso inductivo: el que lleva de un nmero a su sucesor. As, para demostrar una p ropiedad de los nmeros naturales, basta demostrarqueel primer nmerolaverificayque dadoun nmero cual quiera tambin la verifica su sucesor. Sobre el conjunto de frmulas existen varias opciones de generacin de frmulas ms comp lejas. Es preciso disponer de un retocado Principio de Induccin, que fije tanto el caso base como cada una de las alternativas inductivas. Definicin 1.12 (Principio de induccin estructural) Para demostrar que toda frmula . . Form tiene la propiedad Pbasta demostrar que: 1. Caso base: toda frmula atmica tiene la propiedad P 2. Pasos inductivos: (a) si la expresin . tiene la propiedad P, entonces (j) tiene la propiedad P (b) si las expresiones . y . tienen la propiedad P, entonces (. . y), (. . y), (. . y), (. . y) tienen la propiedad P Sea P el conjunto de expresiones de A* que tienen la propiedad P. Si se verifican los puntos 1 y 2, P contiene todas las frmulas atmicas, la negacin de cualquier expresin que est en P y la composicin binaria de cualesquiera dos expresiones pertenecientes a P. As, el conjunto P es uno de aquellos conjuntos X queverificabanlaspropiedadesexigidasenla definicin

1.10 del Lenguaje de la Lgica de Proposiciones. Es decir, Form. P: todaslas frmulasverificanla propiedad P(adems de, quiz, otras expresiones). Ejercicio 1.13 Demuestre, mediante induccin, que toda frmula tiene un nmero par de parntesis. Entre otras propiedades demostrables, resaltaremos una en este punto: si sefacil ita unaexpresin, supuesto que sea una frmula, slo existe un medio de descomponerla sintcticamente. Teorema 1.14 (Anlisis sintctico nico) Cada frmula proposicional . pertenecea unayslo una de las siguientes categorias: 1. . es atmica 2. . es de la forma (y), para . frmula nica 3. . es de la forma (. * c), para una determinada conectivaypara . y. frmulas nicas La descomposicin de una frmula no atmica . en una o dos componentes produce sus subfrmulas inmediatas. La conectiva que se aplicaba sobre ella o ellas es la conectiva prin cipal de j.

Captulo 1. LGICA DE PROPOSICIONES Ejemplo 1.15 La frmula ((p. (q)) . (p. r)) es una conjuncin. Es decir, es de la forma (. . c) con . =(p. (q)), . =(p. r) Su conectiva principal es . ysus subfrmulas inmediatas son esas . yc. Ejercicio 1.16 Trate de encontrar un algoritmo que determine la conectiva princi pal de cualquier frmula, contabilizando los parntesis abiertosycerrados. Observe que, de acuerdo al teorema 1.14 previo, cualquier frmula (por muy extensa que sea) presenta la siguiente estructura: ... ? * ... ? ... ? p Definiciones recursivas En el ejercicio 1.13 se utilizaba el concepto intuitivo de nmero de parntesis. Hay que suponer que estamos refirindonos a una funcin del conjunto de frmulas en el conjunto de nmeros n aturales

numpar(j)= n. Cmo puede definirse rigurosamente esta funcin? Observe que un proceso como cuente usted ... no nos sirve como definicin. Si las frmulas hablasen, una frmula conjuntiva como (. . y) dira: yo slo s que tengo2 parntesis ms que mis componentes inmediatas . De esta forma, el nmero que se quiere c alcular supone una operacin sobre el nmero que aportan las componentes. Y sobre el que aport an las componentesdelas componentesde stas, recursivamente hastallegaral caso base.Paral as frmulas atmicas su aportacin debe estar fijada. Ms precisamente, la funcin numpar :Form7 . Nbuscada se define como: numpar(j)= 8. . 2+ numpar(y) + numpar(c) ,. = (. * c) 2+ numpar(y) ,. = (y) 0 ,. atmica Ejemplo 1.17 La funcin num. :Form7 . N hace corresponder a cada frmula el nmero total de sus conectivas bicondicionales. Se define como: num$(j)= . . >>. . >>.

1+ num$(y)+ num$(c) ,. =(. * c,) con * =. 0+ num$(y)+ num$(c) ,. =(. * c), con * =6 . 0+ num$(y) ,. =(y) 0 ,. atmica Observe que, aunque de forma compacta, se fijala imagen tanto para las frmulas atm icas como paracadaunadelas5conectivas.Enalgunoscasos,laimagenparaalgunadeestas alternativa spuede coincidir. En el ejemplo 1.17, el nmero de bicondicionales es una funcin num. : Form7 . N, del conjunto de frmulas en el conjunto de nmeros naturales. En general, las definiciones sobre frmulas resultarn ser una funcin de Formen algn conjunto, aunque no necesariamente sobre N.

1.1. Sintaxis Ejemplo 1.18 Definiremos una funcin color,deFormen el conjunto Semforo={verde,mbar, rojo}, que abreviaremos como conjunto S= {v,a,r}. El primer objetivo es fijar el color de cualquier frmula atmica. Definamos una fun cin colorat slo desde el conjunto de frmulas atmicas sobre el conjunto Semforo: colorat(p0)= v colorat(p1)= a colorat(p2)= r colorat(p3)= v colorat(p4)= a colorat(p5)= r ... colorat(p0+3j)= v colorat(p1+3j)= a colorat(p2+3j)= r con colorat(>)= v, colorat(?)= r. En este punto, pueden empezarse a valorar los nodos terminales (inferiores)de una figura comola 1.3.Ycontinuarlavaloracin haciael nodo raz. a color_(r,a) . 77 r oooooooo. . gg a OOOOOOOO. color^(v,r). ?? v . . __ r ?????. color(a). OO a colorat(p0) colorat(?) colorat(p4)

Figura 1.3: Los colores de las frmulas Para ello es preciso definir qu color sale de un nodo (negacin), segn el color que entre . Yqu color sale de cada conjuntiva binaria, segn qu par de colores entren. Para el ejem plo de la figura: color(a)= a, color^(v,r)= r, color_(r,a)= a. As, color( ((p0^?) . p4))= a Observe que, para definir la funcin color :Form7 . Sse requiere definir las funciones auxiliares: colorat :Form_Atom7 . S color :S7 . S color* :S2 7 . Spara cada conectiva binaria Teorema 1.19 (Principio de Recursin Estructural) Dadas las funciones fat :Form_Atom7 . Xf :X 7 . Xf* :X2 7 . X para cada conectiva binaria existe una nica funcin F:Form7 . X tal que: . . f( F(y),F(c)) . = . * . F(j)= f(

F(y)) . = . . fat(j) . . Form_Atom El Principiode Recursin estructuralgarantiza que, para una determinada eleccinde l as funciones previas,la funcin resultante es nicayest bien definida. 1.1.3 Derivacin de conceptos sintcticos Con ayuda del Principio de Recursin Estructural se pueden definir otros conceptos sintcticos. En este apartado abordaremos la definicin de rango, nmero de smbolos, apariciones de u n determinado smbolo,la definicinde rbol sintcticoylade conjuntode subfrmulasde una frmula dada.

Captulo 1. LGICA DE PROPOSICIONES Rango La funcin rango : Form7 . N, intuitivamente, proporciona la longitud de la mayor rama del rbol sintctico de la frmula. Se define: . . 1+ max(rango(y),rango(c)) ,. =(. * c) rango(j)= 1+ rango(y) ,. =(y) . 0 ,. atmica Dejamos al lector la definicin de otros conceptos similares, como nmero de smbolos o nmero de apariciones de conectivas (o de algunas, en particular). Ejercicio 1.20 Construya,exclusivamente con7conectivas binarias, una frmula conel mayor rango posibleyotra conel menor. Dada una frmula, reflexione sobre cmo su rango, nmero de smbolos o apariciones de co nectivas se acotan entre s. El lector puede encontrar en la literatura demostraciones inductivas sobre el le nguaje que no utilizan el Principio de Induccin Estructural. Son demostraciones que emplean el conocido Principio de Induccin Completa sobre nmeros naturales. En este caso, el nmero natural asignad o a cada frmula es su rango o su nmero de smbolos: Teorema 1.21 (Principio de Induccin Completa) Si para cualquier frmula . se demuestra que: todaslas frmulasconrango(onmerode smbolos) menorque . tienen la propiedadP entonces todas las frmulas tienen la propiedad P. La demostracin de que ambos principios de induccin son equivalentes no se aborda e n este texto.

rboles sintcticos Se ha estado utilizando el concepto de rbol sintctico sin una definicin. En la figu ra 1.4 se representan, respectivamente, las definiciones de arbol(. * y), arbol(y) yarbol(j) para . atmica. Puede precisar y formalizar ms esta definicin si utiliza como conjunto imagen el d e las representaciones matemticas del concepto de rbol, o el de alguna estructura computacional que lo represente. [arbol(j),. = . * c][ [ arbol(j),. = y] arbol(j),. atomica] (. * c)(y) . arbol(y) arbol(c) arbol(y) Figura 1.4: Definicin recursiva de rbol sintctico

1.1. Sintaxis Subfrmulas Definicin 1.22 (Subfrmulas) Dada una frmula j, el conjunto de todas sus subfrmulas s e define recursivamente como: . . {j}. subform(y) . subform(c) ,. =(. * c) subform(j)= {j}. subform(y) ,. =(y) . {j} ,. atmica Observe que subform:Form7 . P(Form) es una funcin del conjunto de frmulas en el conjunto de subconjuntos de frmulas. Ejemplo 1.23 El conjunto de subfrmulas de . = ((p. r) . (q. (t)) es subform(f)= {((p. r) . (q. (t)),(p. r),(q. (t)),

p,r,q,(t),t} Sustitucin uniforme La sustitucin uniforme permite escribir una frmulaa partirde otra. Ser una operacin sintcticade extraordinaria utilidad en las secciones siguientes. Intuitivamente, se puede vi sualizar contemplando los rboles de la figura 1.5. . ??????. ((p. q) . (p)) (p. q)(p) ((. . y) . (j)) (. . y) (j) p q p arbol(j) arbol(y) arbol(j) Figura 1.5: Sustitucin uniforme [p/j,q/y] sobre un rbol sintctico Ejemplo 1.24 Considere la frmula . := ((p. q) . p)

ysustituya todas la apariciones de: p, por la frmula . :=(r. s) q, por la frmula . :=(t . u) el resultado es la frmula ((r. s) . (t . u)) . (r. s)) |{z. . {. . |{z. . y. donde las marcasde subrayado se han aadido ocasionalmente parafacilitarla corresp ondencia.

Captulo 1. LGICA DE PROPOSICIONES Cuidado Observe que la sustitucin se produce uniformemente, por igual, en todasyc ada una de las apariciones de la letra proposicional sustituida. Sobre la misma frmula . de partida, se podan haber sustituido todas las instancias de: p, por la frmula . := qq, por la frmula . :=(q!p) el resultado sera entonces la frmula ( q. (q!p)) . q) |{z. . {. . |{z. . y. Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamen te aparecidas de la letra proposicional. En [p/q,q/(q. (p))] se produce las sustituciones atmicas simultneamente: no se convierten primero las p en q y, luego, todas las q (las primitivasylas recin aparecidas) en (q. (p)). Algo ms formalmente, dada una frmula . su sustitucin (j)s es una frmula. Yesta funcin ()s :Form7 . Formse puede definir recursivamente. Definicin 1.25 (Instancia, por sustitucin, de una frmula) Considere una frmula . yuna funcin sat om :Form_Atom 7 . Formque define la sustitucin para cada frmula atmica . Entonces, la sustitucin uniforme (j)s se define como: .

. ((y)s * (c)s ) ,. = . * . (j)s =( (y)s ) ,. = . . sat ,. atmica om(j) De la sustitucin atmica sat om se requiere que sat om(?)= . yquesat om(>)= >. Cada sat om fija una nica sustitucin uniforme ()s. La frmula (j)s es la instancia de . por la sustitucin s. As, si una sustitucin se aplica sobre una frmula, por ejemplo, conjuntiva, el resul tado ser la conjuncin de las transformadas. Si se aplica sobre una negacin, el resultado es la negacin de la transformada. Cuando se llega a una letra proposicional, se cambia sta por su frmu la sustituyente. Ejemplo 1.26 Sea sat om :Form_Atom 7 . Formtal que: sat sat om(>)= > om(?)= .

om(p0)=(p1. p0) sat sat om(p1)= p3 om(pk)= pk para toda letra proposicional pk con k= 0,1 sat 6 Entonces est definida la transformada (j)s de cualquier frmula j,por ejemplo. :=(p0!p1) (j)s = (p0 !p1)s = ((p0)s . (p1)s) = = ((p0)s . ((p1)s)) = om(p0) . (sat om(p1))) = ((p1. p0) . (p3)) (sat Ejercicio 1.27 Con la sustitucin definida en el ejemplo previo, calcule: ((p0. p1) . (?. p3))s Cuando en una sustitucin atmica, como sat om =[p/(q^r),q/(t_q)],nosefacilitela sustitucin para todas (las infinitas) letras proposicionales, se entender que sat om(pk)= pk para esas letras. Aunque no fuera as, suelen precisarse slo las sustituciones atmicas de las letras i ncluidas en las frmulas analizadas en ese momento. Si dos sustituciones coinciden sobre esas

letras (aunque difieran en alguna de las infinitas restantes), producen las mismas transformaciones sobr e esas frmulas consideradas.

1.1. Sintaxis 19 1.1.4 Eliminacin de parntesis Considere el rbol sintctico de la figura (fig. 1.6). Cada nodo es una de las subfrm ulas utilizadas en su generacin.Yuna frmulanoesmsquelaexpresin linealdeesta estructura. Con todos sus parntesis(y correctamente situados)a cada frmulale corresponde un nic o rbol sintctico.Ya cada rbol una nicafrmula. Si se omiten los parntesis,a una frmulale puede n corresponder varios rboles: resulta ambigua. Por ejemplo, puede tener por conectiva principal una conjuncin o una negacin. Trate de dibujar sus posibles ((p. q) . (p)) . (p. q) rbolessintcticos. . . ??????. ^_pqp ???????. (p) . p qpp qp Figura 1.6: rbolesyparntesis Adems de los parntesis (cuya anidacin replica la del arbol) existen otras dos maner as de linealizar un rbol sintctico: utilizando notacin prefija o conviniendo un orden de precedencia entre conectivas. Notacin prefija

Una operacin aritmtica binaria como (3+ 5) puede representarse as (en notacin infija) o (+ 35) (en notacin prefija).Tambin se puede considerarla notacin posfija. As, una frmula como ((p. q) . (p)) se puede representar en notacin prefija como z}|{z}|. _. pq p Donde las llaves y lneas se han aadido para facilitar la lectura. Observe que corr esponde a un recorridodel rbolen profundidad.Yquela frmula,yasin parntesis,no resulta ambigua. Ala notacin prefija tambin se la conoce comonotacin polaca. Precedencia Para interpretar unaexpresin aritmtica como3 5+ 7 4, ambigua, se suele suponer que existe un convenio entreel escritoryel lectorque deshace esta ambiguedad.El convenioms gene ralizadopermite interpretar esa expresin como ((3 5)+(7 4)). Se suele explicar informalmente este convenio fijando que, en caso de ambiguedad, las multiplicaciones se consideran antes que las sumas .

20 Captulo 1. LGICA DE PROPOSICIONES Entre los operadores lgicos, en este mismo tono informal, se suelen considerar pr imero las negaciones, luego conjuncionesydisyunciones,ydespus condicionalesybicondicionales. Como quier a que es un convenio, trate de determinar con exactitud qu precedencia utiliza el a utor del texto que est leyendo. 1.2 Semntica 1.2.1 Introduccin Los sistemas lgicos no son meros ejercicios formales. Se utilizan para representa r declaraciones sobreel mundoy operar sobre estas representaciones. Representacin de declaraciones Cada declaracin, cada expresin declarativa, enuncia un estado de cosas. LLueve es una expresin declarativa. Una orden o una pregunta no lo son. D e una expresin declarativa se puede juzgar cunto de verdadera es. La sintaxis del lenguaje natural, con el que nos comunicamos diariamente, permit e construir expresiones declarativasa partirde otras. As, en una frase como lluevey esde da se distinguen3 expresiones: llueve , esde da y llueve-y-esde da . llueve y es de da Los sistemas lgicos proporcionan un lenguaje formal.Ysobre este lenguaje se inten ta representar las declaraciones del lenguaje natural. Como el lenguaje natural es mucho ms rico en matices, excepciones, ambigedades y contextos, este proceso de representacin no es fcil. Cie rtamente, algunos lenguajes formales son ms expresivos que otros, permiten captar ms detalle s del lenguaje natural. Si estos detalles son significativos para describir un nuevo tipo de ra zonamiento, bienvenidos. Si no, podamos habernos quedado con el lenguaje formal previo, ms rgido. La lgica de proposicionesfacilita un lenguaje muy pobre. Sin embargo, hay proceso s de razonamiento utilizados diariamente que pueden ser formalizados, captados convenientemente, s obre este lenguaje.Para formalizar otros procesos habr que definir nuevos sistemas lgicos. Enel lenguaje proposicional,el ejemploprevio sobrela lluviayel estado diurno,se representara como: p ^q Observe que,de nuevo, se pueden considerar3frmulas: p, qyp. q. Valores de verdad de una declaracin Volvamosal lenguaje natural,alas3declaracione s detectadas en lluevey esde da . Sobre cada unade ellas se puede considerar su gradodeverdad, pe ro no

de forma totalmente independiente. Una vez que se ha fijado el valor de verdad d e las componentes, eldelaexpresin compuestaest determinado:es funcindelos anteriores.Paraeste ejemplo, sislo una componentefueseverdadera,eluso habitualdela conjuncin y nosobligaaaceptarquelafra se compuesta no lo es. Otra cosa sera si estuvieran unidas por una disyuncin o . La lgica de proposiciones trata de captar estas dependencias entre valores de ver dad: una dependencia distintaparacada conectiva,quedebeprecisarquvalordeverdadtienelaexpresin compuesta para cada combinacin de valores de las componentes. Los posibles valores de las componentes hay que fijarlos. Si se admite que una d eclaracin puede ser msbienverdadera ,o un80%falsa ,la funcin asociadaacada conectiva debiera definirsepara todos estos casos. Se estara entonces en el marco de lgicas polivaluadas o lgicas b orrosas.

1.2. Semntica En todos los sistemas lgicos abordados este curso se considerarn slo dos valores de verdad. As, una expresin es verdadera o falsa, necesariamente slo una de las dos opciones: si se afirma que no es una de ellas, entonces tiene el otro valor de v erdad. Sobre la utilidad del formalismo A un lector tcnico puede (slo puede) que no le mo tive un ejemplo sobre lluvia, luzyolora campo. Considere este otro: Si (<encendido>y<configurado>y<conectado>) entonces <accedo servidor> Si <luce piloto> entonces <encendido> Si <icono parpadea> entonces <conectado> <luce piloto>e <icono parpadea>y no <accedo servidor> Consta de cuatro expresiones declarativas compuestas, con componentes comunes. Q ue se hayan enunciado no supone que se acepten como verdaderas, todas o algunas. En algunos textos se podra encontrar, previo a su enunciado, la frase suponga que son ciertas todas las sigu ientes expresiones . En otras situaciones, s que al enunciarlas se acepta implcitamente que se suponen todas ellas verdaderas. No ser nuestro caso. Considere el valor de cada componente. Si se opta por pensar que <luce piloto> e s verdad, lo aceptaremos en las cuatro expresiones. Igualmente se puede tomar partido ante el r esto de las componentes bsicas. Se tendr entonces una interpretacin comn del estado de las cosas. Para esa interpretacin, resultar que cada una de las cuatro declaraciones compuestas tendrn definido su valordeverdad, (funcindeldelas componentesydelas conectivas usadas).En este puntoes posible plantearse algunas cuestiones: Satisfacibilidad: efectivamente, de todas las interpretaciones posibles, alguna hay que consigue que esas cuatro declaraciones compuestas resulten simultneamente verdaderas. No o bstante, si se aade como quinta declaracin <configurado>, no se encontrar interpretacin algun a que hagaverdaderasaestas cinco declaraciones: resultarun conjunto insatisfacibledeexp resiones. Consecuencia: en todaslas interpretacionesenquelas cuatro declaraciones seanverd aderas(en todas, todas), resultar que la expresin no <configurado> se evaluara como verdadera. Esta expresines consecuencia lgicadelas cuatro anteriores.Vuelvaa leerlas cuatro declar aciones del ejemplo, suponiendo que efectivamente sonverdaderas,ytratede llegara esta co nclusin.

Equivalencia: si se compara la declaracin Si <luce piloto> entonces <encendido> con esta otra Si no <encendido> entonces no <luce piloto> , resultar que presentan una relacin curiosa: toda interpretacin que hacea unade ellasverdadera tambinlo haceala otra,ylo mismo ocurre con las interpretaciones que las hacenfalsas. Son dos formas distintasdee xpresarlo mismo. Validez: es posible construir expresiones que sean verdaderas en toda interpreta cin, anlogamente a cmo, en el lenguaje de la aritmtica, x+ 3+(-x)= 3no importa cul sea el valor de x. En nuestro ejemplo, sera posible contruir una nica expresin de este estilo con l as cuatro declaracionesy una quinta: no <configurado> . Como se puede intuir, todas estas cuestiones estn interrelacionadas. Para expresa r formalmente esta interrelacines necesario definircadaunodelos conceptos utilizados.Todoellose producesobre la semntica de la lgica de proposiciones: la manera precisa de evaluar una expresin en funcin de los valores de sus componentes.

22 Captulo 1. LGICA DE PROPOSICIONES 1.2.2 Valores de verdad de frmulas atmicas Slose considerarndos posiblesvaloresdeverdad:verdaderoofalso.Se denotarn preferente mente como1(verdadero)y0(falso). Alternativamente, se utilizarla notacin v (verdadero)y f (falso). Definicin 1.28 (Asignacin) Una asignacin natom :Form_Atom7 . {0,1} es una funcin del conjunto de frmulas atmicas en el conjunto de valores de verdad, con natom(?)= 0ynatom(>)= 1. Ejemplo 1.29 Para fijar ideas,sinuestro alfabeto contuviera slo3letras proposicio nales, una asignacinhara corresponderacadaunadeestasletrassuvalordeverdad:bien0(falso),bien1(verdadero). En cuantoa las constantes, toda asignacin debe hacer corresponder0 a . y1a >. En este caso, la siguiente correspondencia natom es una asignacin: natom(p)= 0, natom(q)= 1, natom(r)= 0; natom(?)= 0, natom(>)= 1 Se pueden definir, en este conjunto de3letras, hasta8asignaciones distintas. En la tabla (tabl. 1.2) se enumeran todas: cada lneaes una asignacin distinta.La inferiorfijaquelas3propos iciones son falsasyla superior que sonverdaderas. Si se consideran las filas como codificacin en binariode un nmero, es fcil generarlas todas. En general, para n variables, hay2n asignaciones distintas. pq r 7 . 111 6 . 110 5 . 101 4 . 100 3 . 011 2 . 010

1 . 001 0 . 000 Tabla 1.2:23 asignaciones distintas sobre3letras proposicionales 1.2.3 Semntica de las conectivas El valor de verdad de una frmula compuesta debe depender slo del valor de sus subfr mulas inmediatasyde la conectiva que las une. En el caso ms simple, (p) ser verdadera si pesfalsayser falsa si pes verdadera. La tabla (tabl.1.3) reunela funcin asociadaa cada conectiva binaria,en definitiva ,la funcinque la caracterizayla distinguede otras. As, (p. q) tendr comovalordeverdad0si pes verdaderay qfalsa. Observe que . =(q. p) tendr comovalor1si pes verdaderay qfalsa. En la tabla, pse refiere a la subfrmula izquierday qala derechayloqueseexpresaes sila subfrmula izquierdaesfa lsa (0)yla derechaverdadera(1), entoncesla frmulaesverdadera(1). Exactamenteloquesefi jpara j. Loque distingue una conectivade otraesexclusivamentesu funcin.Sien otrotextose de fine una conectiva & con,exactamente,lamisma funcinque ^,considere que se trata del mismo conc epto de

1.2. Semntica pq 11 10 01 00 p. qp. qp. qp. q 111 010 011 001 1 0 0 1

Tabla 1.3: Semntica de las conectivas binarias conjuncin, denotado de otra forma. Sobre estas cuatro conectivas binarias convien e resaltar algunos detalles: Conjuncin(^): formalmente, slo es verdadera en un caso, cuando todas las subfrmulas inmediatas lo son. Representa el concepto de conjuncin del lenguaje natural. Disyuncin(_): formalmente, slo es falsa en un caso, cuando todas las subfrmulas inm ediatas lo son. Representa el concepto de disyuncin no exclusiva del lenguaje natural: cu ando se acepta una cosa, la otra o ambas. Una frase como vienes o te quedas utiliza una di syuncin exclusiva que representa ms fielmente otra conectiva. Condicional(!): en expresiones condicionales, a la subfrmula izquierda se le deno mina antecedente ya la derecha, consecuente. Un condicional slo es falso en un caso, c uando el antecedente esverdaderoyel consecuente esfalso. Capta, en parte,el uso que se ha cedela implicacin en lenguaje natural: efectivamente,siel antecedente esverdaderoyel con secuente (lo implicado)noloes,nose admitequeexista,queseaverdadera,esa relacinde implicacin . Sin embargo, la implicacin en lenguaje natural suele llevar asociada una causalid ad fsica: si lo sueltas, se cae . Hay algo en la estructura interna del antecedente o en lo que expresa sobre el mundo que obliga al consecuente a ser verdad, cuando el antecedente lo es. Na da de eso es formalmente expresable sobre un condicional proposicional. No se suelen establecer relaciones de implicacin, en lenguaje natural, usando ant ecedentes que sonfalsos: si8 es un nmero primo entonces ... Nuestro condicional ha resaltado,

muy tilmente,un nico casoenqueesfalsoacostade agruparlos otros tres.Enlaevaluacin forma l deexpresiones, puede ocurrir queel antecedentede un condicional resultefalso, en tonces se admitir, se aceptar como verdadera la relacin condicional expresada, puesto que no se est enel (nico) caso en que esfalsa. Todas estas reflexiones slo tienen que ver con la capacidad de expresar implicaci ones naturales con condicionales en este formalismo. Si uno se mantiene slo dentro del formalism o, el condicional es la funcin que lo define, como en cualquier otra conectiva. Obse rve que, automticamente, siel antecedente esfalsoya se puede afirmar queel condicional esverdadero (sinev aluar el consecuente), y,siel consecuenteesverdadero, tambinloesel condicional(sin necesidaddeevaluarel antecedente). Bicondicional($): si se admite que es verdad que si un nmero es divisible por cuat ro entonces es divisible por dos , se est aceptando una relacin condicional entre antecedentey consecuente(en ese sentido). Esta aceptacin, direccional,no afirma(niniega)quesev erifique

24 Captulo 1. LGICA DE PROPOSICIONES la relacin en el otro sentido. Cuando se enuncia un bicondicional, se enuncia una relacin condicionalenambos sentidos: unnmeroesmltiplode10(siyslosi, bicondicional)termina en 0 . Un bicondicional es falso en dos interpretaciones: las que, respectivamente, hara n falso el condicional en un sentido u otro. 1.2.4 Valores de verdad de frmulas complejas No slo las frmulas atmicas tienen asignado un valor de verdad. Cualquier frmula, por muy compleja que sea, debe poderevaluarse. De hecho,la funcin que define las conectiv asyafacilita evaluar frmulas con, a lo sumo, una conectiva. Siel nmerode frmulas fuera finitoypequeo, se podra establecer a mano una correspondenci a entre frmulasyvaloresdeverdad.No todaslas correspondencias seran aceptables.En con creto, se descartara las correspondencias que evaluaran como verdadera tanto a una frmula como a su negacin. Las correspondencias aceptables se denominan interpretaciones ydeben ver ificar ciertas propiedades. Definicin 1.30 (Interpretacin) Una interpretacin . :Form7 . {0,1} es una funcin que asigna a cada frmulaunvalordeverdadyqueverificalas siguientes restricciones: 1. n(?)= 0, n(>)= 1 2. n(j)= n(j) 3. n(. * y)= n(j) * n(y), para cada uno de los operadores binarios La ltima propiedad requiere que el valor asignado a una frmula compleja coincida c on el que calcula la conectiva cuando se aplica sobre los valores de las dos subfrmulas. La figura (fig. 1.7) representa el rbol sintctico de una frmula. Se ha fijado una a signacin de partida natom(p)= 1, natom(q)= 0, que se propaga hacia arriba hasta producir el valor de la frmula. En todo nodo, cada conectiva calcula exactamente la funcin que la defina. . ??????.

((p. q) . (?)) (p. q)(?) 1 . ??_. __ 01 10 p qp q ?. Figura 1.7: Interpretacin inducida por una asignacin Parece, grficamente, que partiendo de una asignacin sobre las frmulas atmicas queda determinado unvalor para cada frmula: una interpretacin. Efectivamente, este proceso se puede formalizar recursivamente. Y el principio de recursin estructuralgarantiza que la funcin obte nida es nica (para cada asignacinde partida)yest bien definida. . 0

1.2. Semntica 25 Definicin 1.31 (Interpretacin, por extensin de una asignacin) : . . n(j) =(y) * n(c) ,. =(. * c) n(j)= n(j)= n(y) ,. =(y) . natom(j) ,. atmica Resta slo un pequeo detalle formal. Si el alfabeto consta de 100 letras proposicio nales (o de infinitas), una asignacin . debe facilitar el valor de verdad de todas ellas. Suponga que se est trabajando, en ese momento, sobre una frmula . (o frmulas) que no contiene ms que 10 letras proposicionales distintas. Existen, entonces, muchas asignaciones que coinciden en los valores sobre esas 10 letras pero difieren en el resto. Escoja cualquiera de ellas para calcul ar el valor de j, todas producirn el mismo. Depende slo de la asignacin sobre esas 10 letras, no de la asig nacin sobre el resto. Teorema 1.32 Si n1(pk)= n2(pk) para todas las variables pk que aparecen en j, entonces n1(j)= n2(j) Este resultado permite que, cuando se fija una asignacin, slo se haga sobre las le tras que aparecen en las frmulas analizadas, sin precisar el valor de otras letras del alfabeto no utilizadas. 1.2.5 Tablas de verdad Si vuelve a observar la figura (fig. 1.7) apreciar que, lo nico necesario para int erpretar la frmula, es fijar una asignacin. Y tambin que, por contener slo dos letras proposicionales, existen4 asignaciones distintas. As, si el problema es interpretar la frmula, basta una asignacin. Pero si interesa

conocer cmo se comporta globalmente la frmula habr que estudiarla frente a toda asignacin posib le. La tabla (tabl. 1.4) es una enumeracin completa delvalordela frmula para cada asignacin dist inta.Aeste tipo de tablas se le denomina tabla de verdad de la frmula. pq 1 1 0 0 1 0 1 0 1 1 1 1

((p. q) . (?)) Tabla 1.4:Tabladeverdadde((p. q) . (?)) Para este ejemplo, slo cuando se consideran todas las interpretaciones se confirm a una propiedad de esta frmula: esinvariablemente verdaderabajo todainterpretacin. Para confirmar propiedades como sta resultar inevitable calcular ntegramente la tabla (hasta disponer de otros mtodos). Otras cuestiones se resolvern considerando slo algunas interpretaciones determinadas. Considereuna frmulacasi idnticaaladelejemploprevio:((p^q)_(p)).Tiene el mismo rbol que el de la figura (fig. 1.7), sustituyendo . por p. En este nuevo rbol, paparece en dos posiciones iniciales. Sintcticamente se requiere as. Semnticamente, ambas apariciones estn rela cionadas: bajo una misma asignacin no se puede considerar que una aparicin de pes verdadera al tiempo que la otra esfalsa. Latabladeverdaddeestanuevafrmulase presentaen(tabl.1.5). Cuandola frmulaes complej a suele ser til ir calculando la tabla de verdad de algunas subfrmulas como pasos in termedios. En concreto, en esta tabla, la ltima columna se obtiene por disyuncin de las dos auxi liares previas.

Captulo 1. LGICA DE PROPOSICIONES p q (p. q) (p) ((p. q) . (p)) 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1

1 0 1 1

Tabla 1.5:Tabladeverdadde((p. q) . (p)) Esquizmsefectivo rellenarlatabladeverdadconelrbolenmente:deabajoarriba,secalcula el resultadode cada nodo-conectiva que se visitay se escriben losvaloresde salid a enla columna debajo de la conectiva. Un ejemplo de este proceso se muestra en la tabla (tabl. 1.6). Los valores que resultan debajo de la conectiva principal (en negrita) son los ltimos que se calc ulanycorresponden a la frmula total. pq 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1

(p. q) _p Tabla 1.6:Tabladeverdad, compacta,de((p. q) . (p)) 1.2.6 Tautologasycontradicciones Yaseha vistoun ejemplode frmulaqueesverdaderaen toda interpretacin,en toda lneadela tabla deverdad.Tambinpueden definirse frmulasqueseanfalsasentoda interpretacin.Ylatabla(t abl. 1.6)facilita un ejemplode frmula tanto convalores1 como0, segn fuerala interpretac in. Definicin 1.33(Tautologasycontradicciones) Auna frmula verdadera para toda interpre tacin se le denomina tautologa.Auna frmulafalsaparatoda interpretacinsele denomina contra

diccin. Las tautologasycontradicciones son dos presentacionesdela misma realidad. Resulta rnextremadamente importantes en el estudio de la lgica proposicional. A las frmulas que no son ni tautologa ni contradiccin se las suele denominar contingentes. 1.3 Conceptos semnticos bsicos 1.3.1 Satisfacibilidad La satisfacibilidad es la potencialidad de ser satisfecho. En Lgica, una interpre tacin satisface una o varias frmulas cuando stas se evalan como verdaderas en esa interpretacin. Definicin 1.34 (Satisfaccin) Una interpretacin . satisface una frmula . si n(j)= 1. Una interpretacin . satisface un conjunto de frmulas F = {j1,..., jn} si n(jk)= 1para toda frmulajk de F.

1.3. Conceptos semnticos bsicos Grficamente, sobre la tabla de verdad, cualquier lnea (interpretacin) donde una frmula se evala como1 satisface esa frmula. Una interpretacin satisface a un conjunto de frmul as si todas ellas presentan valor1 en esa misma lnea. La satisfaccin de una frmula coincide con la satisfaccin del conjunto de frmulas que slo la contieneaella. Cuandouna interpretacin satisfaceauna frmula(oaun conjunto)sedicequ eesun modelo de esa frmula (o conjunto). El concepto de satisfaccin requiere: (1) disponer de una interpretaciny(2) de un c onjunto de frmulas. Entonces se puede decidir si esa interpretacin satisface o no a ese conju nto. La satisfacibilidad es la posibilidad de ser satisfecho por alguna interpretacin. No sefacilita la in terpretacin, slola frmulao frmulas,y se requiere encontraral menos una interpretacin que las sati sfaga. p q r q) . (q. r) (p. q) . (q. r) (p. q) . (q. r) 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 (p.

0 0 0 0 0 0 0 0

1 0 1 1 1 1 1 1

1 1 1 1 1 1 1 1

Tabla 1.7: Una frmula insatisfacibleydos satisfacibles Definicin 1.35 (Satisfacibilidad) Una frmula . es satisfacible si existe alguna interpretacin . tal que n(j)= 1. Un conjunto de frmulas F = {j1,...,jn} es satisfaciblesiexiste alguna interpretacin . tal que n(jk)= 1, para toda jk en F.

De nuevo coloquialmente, basta que exista una lnea (al menos) donde se satisfaga (simultneamente) ese conjunto de frmulas, para afirmar que es satisfacible. Si un conjunto (o una frmula) no es satisfacible se denominar insatisfacible. Las frmulas insatisfacibles tambin se denominan contradicciones. Ejemplo 1.36 Observe la tabla de verdad (tabl. 1.7). La primera frmula (por la iz quierda) es insatisfacible, una contradiccin. Las dos restantes son satisfacibles. De estas dos frmulas satisf acibles, una resulta serverdadera en toda interpretacinyla otra no. Ejemplo 1.37 Observe la tabla de verdad (tabl. 1.8). Ese conjunto de 3 frmulas es satisfacible. Existe una lnea(al menos) donde todaslas frmulas tienenelvalor1.La tabla (tabl.1.9 ) corresponde a un conjunto de frmulas insatisfacible. Propiedades El conjuntode frmulasdela tabla (tabl.1.8)se satisface simultneamenteen5lneas.Sise eliminase una de las frmulas, el conjunto resultante se satisfara en un nmero igual o mayor d e lneas. Por contra, si se aadiese una frmula cualquiera, el conjunto resultante se satisfara en un nmero igual o menor de lneas. En la generalizacin de este estudio, los siguientes resultados sern especialmente t iles. Se los adjuntamos en un nico teorema, de nuevo sin demostracin:

Captulo 1. LGICA DE PROPOSICIONES p q 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 r 1 0 1 0 1 0 1 0 p. (q. r) 1 1 1 0 1 1 1 1 (p. q) . r 1 1 1 0 1 0 1 0 r . (r. p) 1 1 1 1 1 1 1 1 v v v v v

Tabla 1.8: El conjuntoG = {p. (q. r), (p. q) . r, q. (r. p)} es satisfacible Teorema 1.38 Sea F = {j1,...,jn} un conjunto de frmulas: Si F es satisfacible yse elimina una de sus frmulas, entonces el conjunto resultante es satisfacible yse le aade una tautologa, el conjunto resultante es satisfacible yse le aade una contradiccin, el conjunto resultante es insatisfacible Si F es insatisfacible yse aade una frmula cualquiera, entonces el conjunto resultante es insatisfacible yse elimina de entre sus frmulas una tautologa (si la hubiera), el conjunto result ante es insatisfacible Si a un conjunto satisfacible se le aade una frmula satisfacible no se puede asegu rar que el conjunto resultante sea satisfacible.Tampoco se puede asegurar nadaside un conju nto insatisfacible se elimina una frmula cualquiera (no tautolgica). pq r 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1

0 0 0 0 0

1 0 1 1 0 0 0 1 0

p. (q. r)(p. q) (r. p) Tabla 1.9: El conjuntoO = {(p. (q. r), (p. q), (r. p)} es insatisfacible Procedimiento de decisin El mtodo ms directo (aunque ms costoso) para decidir la satisfacibilidad de una frmu la (o de un conjunto) consiste en recorrer todas las interpretaciones de la tabla de verdad, hasta producir:

1.3. Conceptos semnticos bsicos 29 un resultado afirmativo: es satisfacible; para ello, basta encontrar la primera interpretacin satisfactoria. o un resultado negativo: no es satisfacible; para ello es preciso recorrer todas las interpretaciones posibles. Si en un conjunto de frmulas aparecen n letras proposicionales, el nmero de interp retaciones distintas es 2n . Es decir, si n = 30, sera preciso comprobar una tabla de verdad con ms de mil millones de entradas. Afortunadamente , en lgica proposicional, el nmero de interpretaciones distintas (aun que intratable por exponencial) es finito. En lgica de primer orden se pierde esta cualidad: exi sten infinitas interpretaciones distintas para una frmula. Satisfacibilidadyconjuncin Existe una relacin estrecha entre la satisfacibilidad de un conjunto de frmulasyla satisfacibilidad de una nica frmula: la que se construye por conjuncin de todas las frmulas del conju nto. Teorema 1.39 Sea F = {j1,...,jn} un conjunto de frmulas: F = {j1,...,jn} es satisfaciblesiyslosila frmula j1. ... . jn es satisfacible F = {j1,...,jn} es insatisfaciblesiyslosila frmula j1. ... . jn es una contradiccin Observe que los resultados se aseguran de forma bicondicional: si F es satisfacible entonces la conjuncin lo es;ysi la conjuncin es satisfacible, entonces el conjunto de las frmul as conectadas por esas conjunciones es satisfacible. Cualquier interpretacin que satisfaga al c onjunto satisfar a la conjuncin (y viceversa).

1.3.2 Validez Una frmula vlida es aqulla que es verdadera frente a cualquier interpretacin. Las ta utologas son frmulas vlidas. La satisfacibilidad divide en dos al conjunto de frmulas: en in satisfacibles (contradicciones)ysatisfacibles. Este ltimo conjunto tambinsedivideendos: frmulas t autolgicas yfrmulas contingentes. Observe que: si niega una frmula insatisfacible, la frmula resultante es una tautologa si niega una tautologa, la frmula resultante es insatisfacible si niega una frmula contingente, la frmula resultante es contigente siniegauna frmula satisfacible,la frmula resultantepuedeser satisfacibleonoserlo;t anslo se puede afirmar que no ser tautologa Notacin Para expresar que una frmula. es vlida se utilizar la notacin |= j.

30 Captulo 1. LGICA DE PROPOSICIONES Procedimiento de decisin Para decidir la validez de una frmula, de nuevo, el procedimiento semntico extensi vo requiere recorrer toda la tabla de verdad. Los resultados negativos se pueden obtener ms rpidamente: basta encontrar la primera interpretacin que no satisface la frmula. Pero los resultados positivos requieren una comprobacin completa. De los resultados del apartado anterior volvemos a resaltar que: una frmula . es vlidasiyslosi . es insatisfacible Por lo tanto: cualquier mtodode decisindela (in)satisfacibilidad permite decidirla validez,yvice versa Preservacin por sustitucin La sustitucin uniforme (1.25)es una operacin sintcticaque permite,a partirde una frm ulayde una sustitucin, obtener otra: su instancia por esa sustitucin dada. Es una operacin extremadamente til, ya que preserva la validez. Teorema 1.40 Si . es una frmula vlida entonces su instancia por sustitucin (j)s es una frmula vlida, para cualquier sustitucin s. Ejemplo 1.41 Compruebe que la frmula j: ((p. q) . (q. r)) es una tautologa. Fijemos la sustitucin s(p)= p, s(q)=(p. r), s(r)=(r) entonces (j)s es una tautologa:

((p. (p. r)) . ((p. r) . (r))) 1.3.3 Consecuencia Observe la tabla (tabl. 1.10). La ltima frmula verifica una interesante relacin res pecto al conjunto de las frmulas previas: en todas (todas, todas) las lneas en que esas frmulas coinciden en ser verdaderas, la ltima tambin lo es (y quiz en alguna ms) . Esta es una descripcin informal de la relacin ser consecuencia lgica de . En este ejem plo, (q. r) es consecuencia lgica del conjunto de frmulas {((p) . q),(p. r)}, a las que denominaremos premisas o hiptesis. Muy coloquialmente: en cualquier estadode cosasenquelas hiptesis, todas, seanverdad eras,la consecuencia (para merecer tal nombre) no puede dejar de serlo . Observe que la co nsecuencia puede ser cierta en ms lneas, pero debe ser cierta en las lneas verdaderas comunes de las hiptesis.

1.3. Conceptos semnticos bsicos p q 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 r 1 0 1 0 1 0 1 0 p. q 1 1 1 1 1 1 p. r 1 1 1 1 1 1 . . . . . . . . q. r 1 1 1 1 1 1 v v v v

Tabla 1.10: Consecuencia.{(p. q), (p. r)}|=(q. r) Definicin 1.42 (Consecuencia) Una frmula . es consecuencia de un conjunto F = {j1,...,jn}de frmulas si toda interpretacin que satisface a F tambin satisface a y. Notacin Para representar que. es consecuencialgica de F = {j1,...,jn} se suele emplear la notacin F |= y, {j1,...,jn}|= y. Cuando no se cumple la relacin de consecuencia se denota tachando el smbolo: F 6|= y. Es tambin usual omitir las llaves del conjunto: j1,...,jn |= y. En particular, . |= . denota que la frmula . es consecuencia lgica de la frmula j . pq r 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 . . 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 p. r (p. q) p. q v

Tabla 1.11: Consecuencia.{p. r, (p. q)}|=(p. q) La definicin anterior se puede presentar, semiformalmente, como: F |= . si para toda interpretacin n:[(. satisface F). (. satisface y)] Es decir, es preciso comprobar, una a una, que toda interpretacin . verifica el condicional entre corchetes.Enla tabla (tabl. 1.11),delas8interpretaciones posibles,7verificanel c ondicional porque hacenfalsoel antecedente (ningunade ellas satisfacea toda frmula del conjunto F de premisas). Yla interpretacin restante tambinverificael condicional porque haceverdaderoel ant ecedentey verdadero el consecuente. Observe que para que ese condicional no se satisfaga debe existir (al menos) una interpretacin (una lnea) que satisfaga todas las premisas de F pero no satisfaga a y.

Captulo 1. LGICA DE PROPOSICIONES Procedimiento de decisin En Lgica de Proposiciones, donde el nmero de interpretaciones distintas es finito, la relacin de consecuencia lgica se puede decidir mediante el siguiente procedimiento: 1. construya la tabla de verdad comn de todas las frmulas (considerando todas las variables distintas) 2. sealelas lneasverdaderasdela primera hiptesis(j1), de la segunda(j2), ..., de la ensima jn 3. determine la interseccin de estos conjuntos de lneas 4. valore la consecuencia(y)slo en esas lneas comunes (el valor de la consecuencia en el resto es irrelevante): si es verdadera en todas ellas, entonces . es consecuencia del conjunto {j1,j2,...,jn}. Es decir, {j1,j2,...,jn}|= . Propiedades de inters La relacin de consecuencia, entre una frmulay un conjunto de frmulas, presenta las siguientes propiedades: Reflexividad: . |= j;es decir, toda frmula es consecuencia lgica de s misma Transitividad: si{j1,...,jn}|= . y. |= c, entonces {j1,...,jn}|= . Monotona: sea F = {j1,...,jn}; si F |= . y F . W, entonces O |= y; es decir, si de un conjunto de premisas se sigue una consecuencia y, la incorporacin de nuevas premi sas a este conjunto no altera este hecho: . sigue siendo consecuencia de este conjunto ampliado. Consecuencia de un conjunto insatisfacible El ltimo punto del apartado anterior puede resultar chocante: si se aaden nuevas p remisas a un conjunto, es posible que produzca un conjunto insatisfacible. La definicin de cons ecuencia permite

que una frmula sea consecuencia de un conjunto insatisfacible? En la definicin (def. 1.42) de consecuencia, no existe restriccin alguna sobre el conjunto F de premisas. De hecho, en el anlisis que se hace del ejemplo de la tabla (tabl.1.11) , se acepta que F |= . (para las frmulasde esa tabla) porque7interpretaciones no satisfacen F (hacenfalsoel antecedente dela definicin)yla restante satisface tanto F como y. Conelmismoargumentoempleadoall,sifueran8(todas)las interpretacionesqueno satisfic ieran F, el condicional de la definicin para toda interpretacin n:[(. satisface F). (. satisface y)] no se harafalso en ningn caso.Y, por tanto, se admitira que F |= y. Observe que el condicional requerido es verdadero para toda interpretacin, en tod a lnea, porque ninguna consigue hacerfalsoel condicional, porque ninguna interpretacin satisface F.Ytodo esto, fuera quien fuera la consecuencia propuesta y. Importante: Absolutamente cualquier frmula verifica que es consecuencia lgica de un conjunto de frmulas insatisfacible.

1.3. Conceptos semnticos bsicos Observe que, cuando se dice cualquier frmula , sto incluye a una frmula cualquiera, pe ro tambin a su negacin. Es decir: {p,p}|= p. q , pero tambin, {p,p}|= (p. q) Si el conjunto de hiptesis es satisfacible sto nunca ocurre: si una frmula es conse cuencia lgica de ese conjunto, su negacin no lo es. Importante: F |= . yF |= . siyslosi F es insatisfacible Para desarrollar cualquier teora es importantegarantizar que el conjunto de premi sas inicial es satisfacible. Consecuencia,validezysatisfacibilidad Ya se fij la relacin entre validezy satisfacibilidad: una frmula . es vlida siy slo si . es insatisfacible. Tambinexiste una dependencia formal entre estos dos conceptosyel conceptode consencuencia. Consecuenciay validez Observe la Tabla 1.12. Obviando la ltima columna, correspon de a la comprobacin semntica de que r es consecuencia lgica de las tres frmulas previas: {(p . q),(p. r),(q. r)}|= r. Si esto es as (si se verifica la consecuencia lgica), no puede dejar de ser cierto lo siguiente: la frmula condicional que se construye con la conjuncin de todas las hiptesis como antecedente,yla consecuencia como consecuente resulta siempre ser una tautologa p q r p. q p. r q. r r [(p. q) . (p. r)

. (q. r)] . r 1 1 1 1 1 1 . 1 v 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 . 1 . 1 v v 0 0 1 1 1 1 1 0 0 0 1 1 1 Tabla 1.12: Si{j1,...,jn}|= . entonces j1. ... . jn . . es tautologa Puede comprobarqueel condicional construido nopuededejardeserverdadero enlneaalguna:

1. slo serafalsosi su antecedente fueraverdaderoysu consecuente fuerafalso. 2. su antecedente es verdadero exclusivamente en todas las lneas en que coinciden las hiptesis en ser verdaderas 3. en esas lneas en concreto, el consecuente no puede dejar de ser verdadero (puest o que es consecuencia lgica de las hiptesis con las que se ha construido el antecedente).

Captulo 1. LGICA DE PROPOSICIONES 4. enel restodelas lneas, alguna hiptesisesfalsa;luego,el antecedenteesfalso(yel c ondicional global analizado no correel riesgode serfalso ). Si {j1,...,jn}|= . entonces (j1. ... . jn) . . es tautologa Pero, adems, se puede demostrar el resultado recproco Si (j1. ... . jn) . . es tautologa entonces {j1,...,jn}|= . Por lo tanto, en general {j1,...,jn}|= . siyslosi j1. ... . jn . . es tautologa. Consecuenciaysatisfacibilidad Existe una interdependencia formal entre consecuenciaeinsatisfacibilidadque trat aremosde justificar de la forma ms intuitiva posible: 1. Si {j1,...,jn}|= . entonces el conjunto {j1,...,jn,y} es insatisfacible 2. Si el conjunto {j1,...,jn,y} es insatisfacible entonces {j1,...,jn}|= . Recuerde que un conjunto es insatisfaciblesiyslosila conjuncinde sus frmulas es ins atisfacible. As, el resultado anterior se poda haber escrito: 1. Si {j1,...,jn}|=

. entonces la frmula j1. ... . jn ^. es insatisfacible 2. Si la frmula j1. ... . jn ^. es insatisfacible entonces {j1,...,jn}|= . De consecuencia a insatisfacibilidad ObservelaTabla 1.13.Se supone,de partida,qu eseverifica la relacin de consecuencia: {j1,j2,j3}|= y, donde . = r. Puede comprobarse que efectivamente ocurre. Las frmulas del conjunto {j1,j2,j3} coinciden en serverdad en3 lneasy en todas ellas es verdad r (puesto que es consecuencia). La frmula r garantiza que esfalsa en todas ellas. Luego el conjunto {j1,j2,j3,r} es insatisfacible. El lector puede fcilmente generalizar este ejemplo: si una frmula es consecuencia de un conjunto, la negacin de esa frmulagarantiza que serfalsa en todas las lneas en que se satisfaca el conjunto. Si el conjunto de partida fuera insatisfacible se mantiene igualmente la propied ad: cualquier frmula es consecuencia suya,yla inclusinde su negacin en ese conjunto nolo convierte en s atisfacible. Luego, se obtiene el resutado: si {j1,...,jn}|= . entonces, j1. ... . jn ^. es insatisfacible

1.3. Conceptos semnticos bsicos p q 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 r 1 0 1 0 1 0 1 0 p. q 1 1 1 1 1 1 p. r 1 1 1 1 1 1 q. r 1 1 1 1 1 1 . . . r 1 1 1 1 v v v [(p. q) . (p. r)

. (q. r)] 1 1 1 r 0 0 0 0 Tabla 1.13: Si{j1,...,jn}|= . entonces j1. ... . jn ^. es insatisfacible De insatisfacibilidad a consecuencia En el resultado anterior, la frmula . que hay que negary aadiralas hiptesis est perfectamente definida:laquese afirma como consecuencia lgica de ellas. Suponga que quiere convencerse intuitivamente del resultado recproco: si {j1,...,jn,y} es insatisfacible, entonces {j1,...,jn}|= . En la expresin formal del conjunto se ha sealado una frmula, pero realmente, en cad a caso particular, lo nico que se conoce es estas 10 frmulas son insatisfacibles . La pregun ta ahora es hay alguna de ellas que sea consecuencia lgica del resto? La respuesta sera: cualqu iera de ellas (negada) es consecuencia lgica del resto. SobrelaTabla 1.14, compruebeque {j1,j2,j3} es insatisfacible. Entonces, debe resultar (puede comprobarlo sobre la tabla) que: 1. {j2,j3}|= j1 2. {j1,j3}|= j2 3. {j1,j2}|= j3 Observe que {j2,j3} y{j1,j3} resultan ser satisfacibles, mientras {j1,j2} es insatisfacible. Recapitulando hasta el momento: se parte de que un conjunto es insatisfacible, s e extrae una frmula, se niega, y se pretende demostrar que es consecuencia del resto. Al extra er esa frmula del conjunto insatisfacible, ste (el conjunto resultante) puede seguir siendo ins atisfacible o ya no.

Consideremosla demostracinbuscada para estos dos casos. p q r j1 : p. (q. r) j2 : p. q j3 :p. q. r j1 j2 j3 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Tabla 1.14: Sij1. ...

. jn insatisfacible entonces {j1,...,jj-1,jj+1,...,jn}|= jj Si un conjunto es insatisfacible y suprimo una de las frmulas jj el conjunto rest ante puede resultar satisfacible o no:

Captulo 1. LGICA DE PROPOSICIONES 1. si resulta satisfacible: la frmula jj taponaba (era falsa en) todas las lneas en que ahora resultan coincidir las restantes; luego jj resulta verdadera en todas esas lneas. As que jj es consecuencia del conjunto restante. 2. si resulta insatisfacible: cualquier frmula (incluida jj)es consecuencia de este conjunto resultante. Combinando este resultado con el recproco anterior se obtiene: j1. ... . jn ^. es insatisfacible siyslos {j1,...,jn}|= . Resultados equivalentes Aprovechandola relacinexistente entre satisfacibilidady v alidez, este mismo resultado podra reescribirse como: (j1. ... . jn . y) es vlida si yslo s {j1,...,jn} |= . En la subseccin anterior ya se fij un resultado similar: j1. ... . jn . . es vlida si yslo s {j1,...,jn} |= . Las dos expresiones vlidas de estos resultados son equivalentes: su tabla de verd ad es exactamente la misma (la de una tautologa). Cada una es vlida siyslo si la otra lo es. La equiv alencia entre expresiones es el prximo objeto de estudio. 1.3.4 Equivalencia Definicin 1.43 (Frmulas equivalentes) Dos frmulas, . yy, son equivalentes si . |= . y. |= j. Es decir, se requiere que una frmula sea consecuencia lgicadela otra(y viceversa). Para fijar ideas,si .

se satisfaceen5lneasdela tabladeverdad, cualquier consecuenciasuya . se satisfar en esas5lneasyquiz en alguna ms. Pero se exige adems, que tambin la primera sea consecuencia de la seg unda. Estasdos restricciones slo se cumplensi ambas frmulas sonverdaderasexclusivamentee n las mismas5 lneas. As, se poda haber partido de esta otra definicin. Definicin 1.44 (Frmulas equivalentes) Dos frmulas, . yy,son equivalentes sin(y)= n(j) para toda interpretacin . Notacin Escribiremos . = . cuando ambas frmulas seanequivalentesy . 6 = . cuando no lo sean. Sobrela tabladeverdad, dos frmulas equivalentes tienenexactamentelos mismosvalore sde verdad sobre cada lnea. Muy coloquialmente, son dos formas sintcticamente distinta s de expresar lo mismo (puesto que semnticamente son indistinguibles). Propiedades A cualquier relacin binaria que es reflexiva, simtrica y transitiva se le denomina relacindeequivalencia.Laque nos ocupa,( tenerla misma tabladeverdad que ),que represe ntamos con el smbolo , tiene esas propiedades: Reflexividad: . = . Simetra: si . = . entonces . = . Transitividad: si. = . y. = . entonces . = .

1.3. Conceptos semnticos bsicos Recuerde que una relacin de equivalencia produce una particin en clases de equival encia. La tabla (tabl. 1.15) muestra algunas frmulas con dos letras proposicionales, agrupa ndo las frmulas equivalentes en la misma clase. p q C0 p. p (p. q) C1 p. q (q. p) C8 p. q C11 p. q p. q C15 q. q p. p. q 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1

1 1 1 1 1 1 1 1 1 Tabla 1.15: Algunas frmulas de dos variables, agrupadas por clases de equivalenci a Para frmulas con dos letras proposicionales, slo hay 16 clases de equivalencia dis tintas: C0,...,C15. En nuestra notacin, el subndice k de la clase Ck resulta de leer las c olumnas como si codificaran nmeros binarios (con el dgito ms significativo arriba). Es fcil compr obar que las frmulas con 3 letras proposicionales admiten 8 interpretaciones distintas, y por tanto, existen 28 clases de equivalencia distintas, desde C0aC255. Conjuntos completos de conectivas Cualquier frmula que contenga slo dos letras proposicionales, por muy compleja que sea, pertenece a una (y slo una) de las 16 clases de equivalencia posibles. Es equivalente, ento nces, a cualquier frmula de esa clase. La frmula ms simple de la clase C8 es (p. q). De igual forma, si se hubieran definido 16 conectivas binarias,la frmula ms simplede cada clase seradela forma (p* q), donde * representa cualquiera de estas 16 conectivas. La tabla (tabl. 1.16) muestra las 16 clases d e equivalenciay un posible smbolo para cada hipottica conectiva binaria. Observe las clases C7yC8. Presentan valores de verdad complementarios. De hecho, para toda claseexiste otra complementaria.Se puedenbuscarpor simetra respectoalejeque separ a C8yC7. p. . 6 . pp 6 . pq . . . . pq . pp . . p. p q c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15

1 1 0 0

1 0 1 0

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

Tabla 1.16:Todas las clasesde equivalencia sobre frmulas con dosvariables Puesto que nuestro alfabeto contiene slo4conectivas binarias, es menosexpresivo qu e otro que contuviera las 16 posibles? No. Cualquier expresin de la forma (. . y) puede escribirse equivalentemente como (. . y).Ouna frmula como (jppy) se puede escribir como (. . y) . (. ^y). Sentaremos, sin demostracin, que cualquier frmula que contuviera alguna de las 12 restantes conectivas puedeexpresarse equivalentemente como una frmula slo con las4primitivas del alfabeto (ms la negacin). Evidentemente, a costa de aumentar la longitud de las frmulas.

Captulo 1. LGICA DE PROPOSICIONES Es ms, algunas conectivas binarias primitivas pueden escribirse en trminos de otra (ms la negacin). Aunconjuntodeconectivassobrelasquesepuede representarcualquierotrasele denomina completo. Teorema 1.45 Los conjuntos de conectivas {,^}, {,_}, {,!} son conjuntos completos de conectivas. Los nicos conjuntos completos de conectivas con una sola conectiva son {"} y{#}. Si el lector consulta textos diversos podr observar que en el alfabeto no siempre se utilizan todas las conectivas empleadas en estas notas. Algunos sistemas lgicos slo reconocen com o conectivas a las de uno de estos sistemas completos. Las otras conectivas se definen como abr eviaturas metalingisticas de las primitivas. Este enfoque acorta las demostraciones inductivasylas definic iones por recursin. Clculo de equivalencias Equivalencias bsicas La tabla 1.17 muestra algunas de las equivalencias bsicas de la lgica de proposiciones. Puede utilizar cualquiera de estos pares para comprobar su domini o de las tablas de verdad: salvo erratas, deben producir tablas iguales. p = p doble negacin . . . . p^. = pp_. = p p^. = . p_. = . p. p = p idempotencia p. p = p p. q = q.

p conmutatividad p. q = q. p p. (q. r) = (p. q) . r asociatividad p. (q. r) = (p. q) . r p. (p. q) = p absorcin p. (p. q) = p p. (q. r) = (p. q) . (p. r) distributividad p. (q. r) = (p. q) . (p. r) p. q (p_q) De Morgan (p. q) (p^q) p. q =

(p. q) . (q. p) p. q = (p. q) . (p^q) p. q = (p. q) p. q q!p Tabla 1.17: Equivalencias bsicas Sustitucinyreemplazo El siguiente resultado relaciona la equivalencia entre dos fr mulas con la validez de una nica frmula. Teorema 1.46 Dadas dos frmulas, . y y, son equivalentes siy slo si la frmula . . . es una tautologa. Observe que la implicacin entre resultados se produce en ambos sentidos (siy slo s i): si se conoce que son equivalentes se puede afirmar que esa nica frmula bicondicional es vlida. Y, si sefacilita una frmula bicondicional(y adems se asegura que es vlida) entonces sus s ubfrmulas izquierdayderecha, por separado, resultan ser equivalentes.

1.3. Conceptos semnticos bsicos Teorema 1.47 Dadas dos frmulas equivalentes, . = y, si se produce la misma sustitucin uniforme s en ambas, sus instancias por sustitucin resultan ser equivalentes: js = ys . Puesto que la sustitucin uniforme preserva la validez, si . . . es vlida tambin lo ser su instancia por sustitucin (. . y)s, es decir, js . ys. Luego, de la validez de este bicondicional se sigue js = ys . Importante: En la tabla de equivalencias bsicas, stas estn expresadas en trminos de letras proposicionales. Pero se pueden sustituir uniformemente, preservando l a equivalencia: es decir, que si p. qp. qtambin se verifica que . . . . . y, para todo par de frmulas. Ejemplo 1.48 Partamos de la equivalencia p. qp. q yde la sustitucin s(p)=(t. s) s(q)=(p. v) Se obtiene entoncesunpardeexpresionesequivalentes entres(no necesariamenteconlasd e partida): (t. s) . (p. v)

(t. s) . (p. v) Recuerde que la sustitucin uniforme supone cambiar cada aparicin de una letra prop osicional por su frmula sustituta. Es posible definir otro tipo de sustitucin que no requier a cambiar cada aparicindela cadena sustituida.Para diferenciar esta operacindela sustitucin unifor me,la denominaremos reemplazo. Definicin 1.49 (Reemplazo) Sea . = y,y X una frmula donde . puede aparecer varias veces como subfrmula. Si se reemplaza en X la subformula . por . (sobre una o varias apariciones, no necesariamente en todas) la frmula Y resultante es equivalente a la X de partida. Muy intuitivamente: si en un circuito electrnico aparece un componente envarias p osicionesy se reemplaza en una (o varias) por un componente equivalente (quiz con otro diseo interno, pero con la misma relacin entrada-salida), el circuito global resultante es equivalent e al circuito global de partida. La sustitucin uniforme preserva la equivalencia porque se produce en toda aparicin del elemento sustituido (en ambas frmulas equivalentes). No requiere que el sustituido sea equ ivalente al sustituyente. El reemplazo preserva la equivalencia porque el elemento sustituyente es equival ente al sustituido. Se produce sobre una frmula para generar una equivalente. No requiere que se prod uzca en toda aparicin del sustituido. Ejemplo 1.50 Partamos de la frmula X = ((p. q) . ((p. q) . p) yde la equivalencia (p.

q) = (q!p) entonces, la frmula Y = ((p. q) . ((q!p) . p) verifica que X= Y

Captulo 1. LGICA DE PROPOSICIONES Formas normales Forma normal disyuntiva En una tabla de verdad donde slo se consideren las variab les p, qyr, la frmula . = p. q. r es verdadera en una nica lnea: pq r p. q. r 011 1 Si se considerase otra variable adicional s, la misma frmula sera verdadera en dos lneas: p q r s p. q. r 0 1 1 1 1 0 1 1 0 1 Situmonos en el primer caso: la conjuncin utiliza todas las letras proposicionales consideradas (negadas o no). Una conjuncin similar, como . = p. q^r tambin ser verdadera en otra nica lnea. As, la disyuncin de estas conjunciones ser verdadera exactamente en dos interp retaciones: p q r . . (. . y) 1 1 0 0 1 1 0 1 1 1 0 1 Los resultados anteriores sugieren que cualquier frmula puede escribirse equivale ntemente como una disyuncin de estas conjunciones. Por ejemplo, de la frmula . de la tabla (tabl. 1.18) no se facilita su expresin sintctica: podra ser cualquiera de las expresiones equivalente s que producen esa tabla de verdad. Una de esas expresiones equivalentes ser la disyuncin de las tres conjunciones sealadas en la tabla: la forma normal disyuntiva de g.

W p q 1 1 1 1 q. r) 1 0 1 0 q. r) 0 1 0 1 0 0 q. r) 0 0 r . 1 0 0 1 (p. 1 0 0 1 (p. 1 0 0 0 1 1 (p. 0 0

Tabla 1.18:Forma normal disyuntivade una frmula Para ser ms precisos, a esta forma normal disyuntiva se le denominacompleta: cada letra proposicional aparece unavezyslo una.Toda frmula puede ser reescrita equivalentementea esta form a salvo las contradicciones. Parapoderexpresarcontradiccionesesprecisorelajarla completitud, permitiendoqueal gunasletrasfalteneincluso que algunas se repitan. Observeque una forma disyuntivacon una sola conjuncin como (p^p. q) ya expresa una contradiccin. Definicin 1.51(Forma normal disyuntiva) Una frmula est en forma normal disyuntiva s i es de la forma j1. ... . jn, donde cada jk es una conjuncin de literales. Se denomina literal a una letra proposicional o a su negacin. Una forma normal disyuntiva es una contradiccin si y slo si cada una de sus conjun ciones incluye una letra negadayno negada.

1.3. Conceptos semnticos bsicos Forma normal conjuntiva Observe laTabla (tabl. 1.19). Las frmulas y1yy2 slo son fa lsas en una nica lnea cada una. Luego, su conjuncin slo esfalsa en esas dos lneas. Es una frmu laexpresada en forma normal conjuntiva completa respecto al conjunto de letras proposicional es {p,q,r} Toda frmula es expresable, equivalentemente, en esta forma completa,salvo las tau tologas. De forma dual a la exposicin anterior, fijaremos una definicin de forma normal conjun tiva que incluya alas completasy a otras(en particular,alasque permitenexpresar tautologas). As, to da frmula ser expresable en forma normal conjuntiva. p q r j1 :p. q. r j2 : p. q. r j1. j2 y1 : p. q. r y2 :p. q. r y1. y2 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 Tabla 1.19:Formas normales conjuntivasydisyuntivas Definicin 1.52(Forma normal conjuntiva) Una frmula est en forma normal conjuntiva s i es de la forma j1. ... . jn, donde cada jk es una disyuncin de literales. Una forma normal conjuntiva es una tautologa siyslo si cada una de sus disyuncione s incluye una letra negaday no negada. Forma clausulada Considere una forma normal conjuntiva (j1) . ... . (jn)

A cada una de las disyunciones jk se le denomina clusula. Como la conjuncin es con mutativa, resulta que se obtiene una expresin equivalente si se vara el orden de las clusulas . Puesto que este orden es irrelevante, se puede escribir la expresin como un conjunto de clusulas: {(j1),...,(jn)} Recuerde que el concepto de conjunto no supone un orden entre sus elementos. Obv iamente, para que esta reescritura mantenga las propiedades de la forma original recordaremos que entre los elementos de este conjunto (sus clusulas) se aplicaba una conjuncin. De forma anloga, si nos centramos en una nica clusula jk =(j1 k. ... . jmk ) se puede tambin escribir como un conjunto de literales (recordando que estaban un idos por una disyuncin). As, una frmula cualquiera se puede almacenar en un sistema como un conjun to de clusulas, es decir, como un conjunto de conjuntos de literales: {(j1),...,(jn)} = {{j11,...,j1r},...,{j1 n,..., jt }} n Aesta forma de expresin se le denominaforma clausulada de una frmula. Tambin se uti liza este trmino, en algunos textos, como sinnimo de forma normal conjuntiva.

42 Captulo 1. LGICA DE PROPOSICIONES Ejemplo 1.53 Sea la frmula (p. q. r) . (s_t) Entonces, su forma normal conjuntiva se obtiene: ((p. q) . r) . (s_t) ((p. q) . r) . (s_t) ya que X. Y X_Y = ((p. q) _r) . (s_t) ya que (X^Y) = (X_Y) = ((p_q) _r) . (s_t) ya que (X^Y) = (X_Y) = (p_q_r. s_t) asociatividad de . (abuso de notacin) Para la frmula de partida, su forma normal conjuntiva slo contiene una clusula, con cinco literales. Su forma clausulada se puede escribir como: {{p,q,r,s,t}} Puede comprobar quela forma normal conjuntivade p.

(s. q) es (p. s) . (p. q). Y su forma clausulada {{p,s},{p,q}} En el ejemplo previo, a partir de una frmula, se obtiene finalmente otra equivale nte. Este resultado se calcula, sin necesidad de utilizar tablas de verdad: la primera frmula es equi valente a una segunda(yse justificapor qu), stasegundaa una tercera,yas sigue una cadenadeequival encias hastallegarala forma deseada.La transitividaddelaequivalenciagarantizaquela prim eraesequivalente a la ltima (en realidad, que todas son equivalentes: este clculo no se sale de la cl ase de equivalencia de la frmula inicial). El clculo (manual) de frmulas equivalentes es una habilidad operacional necesaria. Sefacilitarn ejercicios sobre este punto. Estas notas se estn ciendo a resaltar los conceptos bs icos fundamentales, que se resumen en el prximo apartado. Equivalencia, consecuencia,validezysatisfacibilidad El conceptodeequivalencia tiene conexiones formales conlos otros conceptos semnti cosexpuestos: consecuencia, validez e insatisfacibilidad. Todos los resultados que siguen han ido apareciendo en la exposicin: . = . siyslosi . |= . y. |= . siyslosi (. . y) es una tautologay (. . j) es una tautologa siyslosi (. . y) es una tautologa siyslosi ((. .

y)) es insatisfacible. 1.4 Sistemas deductivos Los sistemas deductivos son de naturaleza sintctica, combinatoria. En general, co nstan de un conjuntoquizvacode frmulas especialmente sealadas, denominadas axiomasydeun conjunto determinado de reglas de inferencia. El juego formal consiste en construir una secuencia fin ita de pasos, de aplicacionesde esasreglas,que llamaremos demostracinoprueba.El intersde estas cons trucciones reside en su conexin con el concepto semntico de consecuencia (o su expresin como i nsatisfacibilidad).

1.4. Sistemas deductivos 43 Si un sistema es correcto, consistente o coherente, cada frmula derivada desde un conjunto de premisas es consecuencia de ellas. Ysi un sistema es completo, cualquier relacin de consecuencia existente se puede llegar a explicitar como una derivacin, como una demostracin. En estos apuntes no se ha abordado el anlisis formal de estas propiedades. Estn ms bien enfocadosafacilitarelusodelos sistemas descritos,garantizandosubuen comportamien to.Le recomendamos que sefamiliarice con los sistemas deductivos propuestos porque todos ellos se a mpliarn para el caso de la Lgica de Primer Orden. 1.4.1 Deduccin natural Los sistemas de deduccin natural, sistema de tipo Gentzen, son quiz los que ms dire ctamente reflejan nuestra propia manerade construirargumentos. Constandevariasreglasde in ferenciayde ningn axioma. Ypermiten hacer suposiciones adicionales, de abrir lneas argumentale s adicionales que, cuando se cierran, aportan algo al flujo argumental principal. Puesto que se pueden aplicar varias reglas distintas, su implementacin es ms compl icada que la de los otros dos sistemas abordados. No obstante, cuando se conoce la frmula que se pretende demostrar, su estructurayladelaspremisascasi determinaalgunadelas secuenciasdereglas necesa rias. El resto es creatividad (humana o de silicio). Conjunciones Introduccin de la conjuncin Si se aceptan como verdaderas las dos siguientes frase s:(p) hoy es viernes ,(q) son las cinco , el uso habitual de la conjuncin obliga a aceptar como v erdadera la frase nica( p. q) hoy es viernesy son las cinco . hoyes viernes p son las cinco q hoy es viernesy son las cinco p.

Observe que se genera una sentencia final a partir de dos previas, con una forma determinada. Esta formagarantizaquela frase construidaes consecuenciadelas anteriores. (p. q) . (r_p) . (p. q) .

(r_p) . . . Eliminacin de la conjuncin Veamos otro proceso distinto de generacin, esta vez part iendo de una nica frmula previa: (p. q) . (r. p) (p. q) . . . . Otambin: (p. q) . (r. p) (r. p) . . . . Compruebeenqulneasdelatabladeverdadsonverdaderaslas frmulasprevias:entodasellas (y quiz en alguna ms)ser verdadera la frmula generada. Esta opcin siempre es posible, aunque

Captulo 1. LGICA DE PROPOSICIONES costosa. A partir de este punto se describe una alternativa sintctica, basada en clculo: respete estrictamentela formade generacinde nuevas frmulasyresultarn consecuenciade lasde p artida. Hastael momentosehan propuesto3de estasreglas sintcticas. Nos referiremosa ellas como: introduccin de la conjuncin(^I ), eliminacin derecha(^Ed)yeliminacin izquierda(^Ei)de la conjuncin. j. . . y. . . ^I ^Ed ^Ei . . . j. En la figura (fig. 1.8) se utilizan estas reglas para demostrar que de p. (q. r) se deduce p. r. La expresin de partida (que suponemos verdadera) se denomina premisa. A partir de el la se deducen tanto p(lnea2) como (q^r) (lnea3)por eliminacindela conjuncin.Enla lnea4se deduce r por eliminacin de la conjuncin sobre 3: observe la explicacin ^Ei3. Porltimo,a partirde2 yde4, por introduccin de la conjuncin se obtiene 5. 1 p. (q. r) premisa 2 p ^Ed1 3 (q. r) ^Ei1 4 r ^Ei3

5 p. r ^I 2,4 Figura 1.8: Deduccin natural. p. (q. r) . p. r Los nmeros que etiquetan cada lnea del argumento permiten linealizar la deduccin, q ue realmente tiene estructura de rbol (fig. 1.9). p. (q. r) 1 p. (q. r) ^Ei 1 3 .. ONHI.. MLJK.... GFED@ABC ^Ed ^Ei 24 ^I 5 p. r Figura 1.9: rbol de la deduccin natural. p. (q. r) . p. r En este apartado aparece un nuevo smbolo . distinto de (aunque esperamos que relacionado con) |=. La relacin p.

q|= pes de carcter semntico: compruebe todas las interpretaciones donde ... . Mientras que p. q. pes de carcter sintctico, combinatorio: utilizando adecuadamente las reglas del clculo se ha conseguido llegar a generar la frmula p .

1.4. Sistemas deductivos Cada regla, de las 3 propuestas, es correcta, consistente o coherente puesto que toda frmula deducida(`)es adems consecuencia(|=)de las premisas de la regla. Cuando se afirma que suponemos las premisas verdaderas no significa que sean tau tologas. Significa que nos estamos restringiendo a las lneas de la tabla de verdad en que todas ella s coinciden en ser verdaderas. En todas esas interpretaciones, las frmulas deducidas resultarn ve rdaderas. Disyunciones Introduccin de la disyuncin La introduccindela disyuncin se acepta intuitivamente co nfacilidad: si se admite que es verdad que llueve , tambin debe aceptarse llueve o hace viento . llueve j. (p. q) _Id _Id _Ii _Ii llueve o hace viento . . y. . . (r . s) . (p. q) La frmula nueva (cualquiera) que se introduce disyuntivamente puede hacerlo por l a derecha (_Id)oporla izquierda(_Ii). Eliminacin de la disyuncin Tambin existe otra regla denominada eliminacin de la disyu ncin . El sistema propuesto se recuerda fcilmente: se define una regla de introducciny ot ra de eliminacin para cada conectiva. Sin embargo, en este caso, el nombre eliminacin de la disyuncin NO corresponde a su materializacin ms directa: p. qp. q NO!! pq En su lugar, considere esta introduccin: 1. (p.

q): pago la hipoteca o pago el recibo del coche (o ambos) 2. [p...r]: suponiendo que pago la hipoteca , entonces (bla,bla,bla),y entonces ... , conclusin: no llego a fin de mes . 3. [q...r]: suponiendo que pago el recibo del coche , entonces (quiza otro bla,bla, bla), conclusin: no llego a fin de mes . Partiendo de que es verdadera la premisa disyuntiva (p. q), se supone (adicionaly momentneamente) p. Con esta hiptesis adicional, razonando adecuadamente, se llega a r. Cerremos e ste argumento opcional, es decir, dejemos de dar por supuesto p (y todo a lo que nos llevaba). Ahora supongamos alternativamente q, que vuelve a llevarnos a r. En este caso, de la d isyuncin (p. q) se deduce r, con el auxilio de los dos argumentos opcionales mencionados: . . . . . . . . . . . . . _E .

Captulo 1. LGICA DE PROPOSICIONES Ejemplo 1.54 Observe la figura (fig. 1.10). Es un argumento con una nica premisa (lnea 1) que intenta concluir la frmula de la lnea 7. Escriba slo ambas, dejando un hueco entrem edias. Cuando (1) seaverdaderano podrn dejarde serlo(2)y(3): asquelas escribimos automticamente,p orsi nos son tiles. Ahora bien,(3)es una disyuncin, presenta2caminos . con todoloqueyas, des de 1hasta 3, puedo llegar por ambos caminos a la misma conclusin (7)? Para intentar probarlo, supongo primero que es verdaderaq(que es verdadero el pr imer camino). En este caso, como ya era verdadera p(lnea 2) tambin lo ser su conjuncin con q. En ( 6) se aade disyuntivamentela frmulaquese necesitabaparallegarala(7)buscada. Por el otro camino, supuesto que es r verdadera, se efecta un proceso parecido qu e acaba concluyendo( 6)enesacaja derecha.Yonosqu caminoesverdadero,slosque(3)megarantizaque unode elloslo es.Y esogarantizaque(7)lo es. La frmula(7)estfueradelmbitodeambascajas:esverdaderasilapremisaloes.Sinembargo, p. q(lnea 5, caja izquierda) se supone verdadera si lo es la hiptesis que abre la caj a izquierda. Observeque,dadoel principioyelfin,slolospasosdelaslneas5-6(encadacaja) requierenun esfuerzo creativo para obtener el resultado fijado. 1 p. (q. r) premisa 2 p ^E1 3 (q. r) ^E1 4 q suposic r suposic 5 (p. q) ^I 3,4 (p. r) ^I 3,4 6 (p. q) .

(p. r) _I 5 (p. q) . (p. r) _I 5 7 (p. q) . (p. r) _E3 Figura 1.10: Deduccin natural. p. (q. r) . (p. q) . (p. r) La dependencia entre expresiones del argumento anterior puede verse en el rbol de la figura (fig. 1.11). Ejemplo 1.55 Observe el argumento de la figura (fig. 1.12). Utiliza de nuevo tod as las reglas anteriores. Aqu, de nuevo, slo hay unas pocas lneas (5-6) que requieren un poco de creatividad. Sisefijaenla premisayla conclusinde(fig.1.10)y(fig.1.12)verque estn intercambiadas: cada una se deduce de la otra. Esta puede ser una definicin sintctica de equivalen cia. Puesto que efectivamente las reglas usadas son correctas no hacen ms que reflejar el hec ho de que ambas frmulas son semnticamente equivalentes. Condicionales Eliminacin del condicional La eliminacin del condicional(. E)es una de las reglas de inferencia con ms tradicin. Se conoce alternativamente como ModusPonens yes tambin intuitivame nte inmediata. Si presiono entonces se rompe p. q Presiono p Se rompe q

1.4. Sistemas deductivos premisa premisa 1 1 supos .... GFED@ABCsupos .... GFED@ABC ^E ^E 40 42 premisa 1 .... GFED@ABC.... ?>=<89:;.... ?>=<89:; ^E _I _I 3 2 .... ?>=<89:;.... ?>=<89:; ^I ^I 50 5 6. 6 _E 7

(p. q) . (p. r) Figura 1.11: rbol de la deduccin natural. p. (q. r) . (p. q) . (p. r) 1 (p. q) . (p. r) premisa 2 (p. q) suposic (p. r) suposic 3 p ^E2 p ^E2 4 q ^E2 r ^E2 5 (q. r) _I 4 (q. r) _I 5 6 p. (q. r) ^I 3,5 p. (q. r) ^I

3,5 7 p. (q. r) _E1 Figura 1.12: Deduccin natural. (p. q) . (p. r) . p. (q. r)

Captulo 1. LGICA DE PROPOSICIONES Observe que cuando el condicional p. qse supone verdadero slo se descarta una de las cuatro lneas de su tabla de verdad. No se sigue ni se descarta que psea verdadero o que qlo sea: slo que no puede ocurrir simultneamente que psea verdaderoy qfalso. Si a esta premisa se aade que otra que afirma que pes verdadero, necesariamente qdebe serlo. Introduccin del condicional De nuevo, esta es otra regla que no puede aplicarse t an directamente como su nombre evoca. Corresponde a este esquema formal: . . . . . !I . . . Sienel cursodeunargumentoseaventura una hiptesis adicional(j), lo que se deduce a partir deella,enel mbitodesucaja,segarantizaverdaderoen tantoque . lo sea. Cundo se puede cerrar ese mbito? En cualquier momento, mediante introduccin de la implicacin. Suponga que en el punto en que quiere cerrarse se haba llegado a derivar y. En es e punto se afirma que . es verdadera, siempre dependiendo de que . lo sea. Es decir, en el argumento de esa cajaseha demostrado(quizconayudade frmulaspreviasalacaja),quesi . es verdadera entonces . no puede dejar de serlo. Entonces, el condicional . . . es verdadero. Observe que . . . est ya fuera de la caja: no depende de la verdad de j. Si . esfalso resultar verdadero. Ysi . es verdadero, en la caja se ha demostrado que no puede dejar de ser . verdadero.

Como esta derivacin puede haber utilizado frmulas externas previas, el condicional s depende de que sean verdaderas las premisas de la lnea argumental exterior. En resmen, si se abre una hiptesis adicional luego no puede cerrarse con un condic ional cualquiera: el consecuente del mismo ser la ltima frmula efectivamente derivada en la caja. Los siguientes ejemplos le ayudarn a ver la aplicacin correcta de esta regla de infere ncia. 1 p. q premisa 2 q. r premisa 3 p suposic 4 q !E1,3 5 r !E2,4 6 p. r !I3,5 Figura 1.13: Deduccin natural. p. q,q. r . p. r Ejemplo 1.56 Considere primero el ejemplo de la figura (fig. 1.15). Como se trat a de derivar finalmente el condicional (p^q) . r, conviene abrir una caja con la hiptesis adicional (p^q), el antecedente, y versi se puede llegara derivar internamente r,el consecuente.Y, en efecto, se consigue con ayuda de las premisas. El argumentode (fig. 1.13) es muy parecido.Yelde (fig. 1.14) abre una caja dentr ode otra. Sus cierres sucesivos, mediante introduccin de la implicacin, producen condicionales s ucesivos. Resulta particularmente interesante el ltimo ejemplo (fig. 1.16): no existen prem isas del argumento, tan slo una suposicin que se descarga. La frmula resultante no depende de la verdad de

1.4. Sistemas deductivos 1 (p. q) . r premisa 2 p suposic 3 q suposic 4 (p. q) ^I 2,3 5 r !E1 6 (q. r) !I3,5 7 p. (q. r) !I2,6 Figura 1.14: Deduccin natural. (p. q) . r . p. (q. r) p, ni de la de las premisas (puesto que no hay). El lector puede comprobar que d icha frmula es una tautologa: esverdadera en todo caso. Tratede derivarde forma anloga (con2 cajas an idadas)la tautologa p. (q. (q. r)). 1 p. (q. r) premisa 2 (p. q) suposic 3 p ^E2

4 q ^E2 5 (q. r) !E1,3 6 r !E5,4 7 (p. q) . r !I 2,6 Figura 1.15: Deduccin natural. p. (q. r) . (p. q) . r 1 p suposic 2 p. q _I 1 3 p. (p. q) !I1,2 Figura 1.16: Deduccin natural. . p. (p. q) Negaciones Restan cuatro reglas para completar la descripcin del sistema: introduccin y elimi nacin de la negacin, eliminacindela contradiccinyeliminacindela doble negacin. Introduccin de la negacin Si de una suposicin adicional se deriva una contradiccin, puede cerrarseel mbitode aqullayconcluirla negacindela suposicin.

50 Captulo 1. LGICA DE PROPOSICIONES Eliminacin de la negacin Dadas dos frmulas, donde una es negacin de la otra, se pued e concluir la contradiccin. . . . . . . E . . . I Eliminacin de la contradiccin De una contradiccin se puede concluir cualquier frmula . Eliminacin de la doble negacin De una frmula doblemente negada se puede derivar dic ha frmula. . . ?E E j. En este punto le recomendamos que haga una recopilacin, en una hoja en blanco, de las reglas de inferencia propuestas. Preste atencin a las reglas que requieren abrir una o v arias cajas. Si no se quiere que la derivacin dependa finalmente de estas suposiciones, deber cerrarl as. Cada una de estas reglas permite cerrar ese mbito de una forma determinada. En todo caso, en cualquiera de estos mbitos puede utilizarse una frmula anterior, siempre que pertenezca a ese mbito o a uno que le englobe (es decir, que no haya sido cerrado). Reglas derivadas Cuando se utilizan frecuentemente las reglas propuestas se advierte que hay cier tos patrones que se repiten. Observe el argumento de la figura (fig. 1.17). Esta derivacin se puede p roducir en cualquier punto de un argumento, no se precisa que las dos primeras frmulas sean las premis as. De hecho,si desdeun cierto puntodelargumentose pueden utilizardos frmulas comola1 yla2 (estn donde estn, mientras sean formalmente accesibles), ya se sabe que se puede d erivar la frmula 6, repitiendo exactamente esos pasos.

1 p. q premisa 2 q premisa 3 p suposic 4 q !E3,1 5 . E2,4 6 p I 3,5 Figura 1.17: Deduccin natural. p. q,q`p Con el mismo argumento (fig. 1.17) se puede derivar . . y,. `j, para dos frmulas . y. cualesquiera. Como los pasos que llevande1y2 a6 son conocidosyrepetibles(y,de hecho, muy frecu entes), se suelen obviar los pasos intermedios. Se justifica entonces la derivacin dicien do que se ha utilizado

1.4. Sistemas deductivos una determinada regla derivada, a la que se le asigna un nombre. En concreto, la regla del ejemplo propuesto se suele denominar ModusTollens. 1 (p. r) . (q. s) 2 (q. s) 3 (p. r) MT1,2 Para fijar ideas, puede contemplar las reglas derivadas como lo hace con las sub rutinas en programacin. 1.4.2 Resolucin Introduccin Estrategia deductiva por refutacin Ya se resalt que exista una estrecha relacin entr e consecuenciaysatisfacibilidad. Detal formaque, decidirsi . es consecuencia de un conjunto de frmulas F = {f1,...,fn} se puede reducir a otro problema: decidir si F y. pueden ser simultneamente verdaderos. f1,..., fn |= . siyslosi F . {y} = {f1,...,fn,y} es insatisfacible As, si desea comprobar que una frmula es consecuencia de otras, niguela e incorporla a esas otras. Si resulta insatisfacible este nuevo conjunto, efectivamente exista aquell a relacin de consecuencia. Constatacin sintctica de la insatisfacibilidad En general resulta difcil decidirsiv arias frmulas complejas pueden (simultneamente) satisfacerse por alguna interpretacin. La operac in que se proponefacilita este proceso:siel conjuntode partida F[{y}

era insatisfacible, en algn momento del clculo se evidencia claramente. Para ello, la resolucin ampla este conjunto: vaaadindole sucesivamente nuevas frmulas (menos complejas). Pero todas estas frmulas se construyen a partir de las que hay en ese momento en el conjunto. Y lo que es ms importante: este proceso no altera la satisfacibilida d. Si el conjunto de partida era satisfacible, ninguna ampliacin por este mtodo produce un conjunto ampliado insatisfacible. Y si era insatisfacible, esta propiedad se mantiene en todo conjunto ampliado po r este mtodo. Cmo se detecta la insatisfacibilidad? Si el conjunto inicial lo es, el proceso men cionado acaba aportandounanueva frmulaqueslo apareceeneste caso:la clusulavaca.Dehecho, aparecesiy slo si el conjunto inicial F . {y} es insatisfacible. Requisitosformales del proceso El clculo que se menciona arriba se define sobre fr mulas en forma normal conjuntiva.Enotro caso nosabecmo operar .Tantolas premisas comolanegacind e la supuesta consecuencia deben reescribirse equivalentemente en esta forma. Exis te un procedimiento quegarantizalaexpresin equivalente en esta formade cualquier frmula proposicional. Apartir de la forma normal conjuntiva se puede denotar una frmula de manera ms com pacta, sin conectivas. Esta notacin se conoce como forma clausuladay es realmente la que se maneja en este apartado.

Captulo 1. LGICA DE PROPOSICIONES Forma clausulada Definicin 1.57 (Literal) Un literal es una frmula atmica o la negacin de una frmula a tmica. Es decir, son literales cada una de las siguientes seis expresiones: p, q, r, p, ? , ?.Y no son literales las expresiones: p, r. q, (p. q). A cada literal l le corresponde un literal complementario lc . El complementario de un literal positivo como pes p.Yel de un literal negativo como pes p. Forma normal conjuntiva Una frmula como la siguiente est en forma normal conjuntiv a: (p_q) . (r_q. r. p) . (r. q) Es decir, es una conjuncin de frmulas, cada una de las cuales es una disyuncin de l iterales.A toda frmula proposicional se le puede hacer corresponder una frmula normal conjunt ivaequivalente. Para ello basta: 1. eliminar los bicondicionales, si los hubiera, mediante el reemplazo: X . Y = (X. Y) . (Y . X) 2. eliminar los condicionales, si los hubiera, mediante el reemplazo: X . Y X_Y 3. introducir todas las negaciones hasta que afecten a frmulas atmicas: (X^Y) = (X_Y) (X_Y) = (X^Y) 4. eliminar las dobles negaciones:

X= X 5. reubicar correctamente las conjuncionesydisyunciones: X. (Y. Z) = (X^Y) . (X. Z) X. (Y. Z) = (X_Y) . (X. Z) La demostracin de que es un proceso correcto requiere precisar un poco ms. De mome nto es suficiente si le permite calcular, a mano, la frmula normal conjuntiva equivalent e a una dada. Ejemplo 1.58 Una frmula normal conjuntiva equivalentea q. (s_t) puede calcularse como sigue: q. (s_t) = (q. (s_t)) . ((s_t) . q) X . Y = (X . Y) . (Y . X) = (q. (s_t)) . ((s_t) . q) X . Y X_Y = (q. s_t) .

((s_t) . q) asociatividad _, abuso notacin = (q. s_t) . ((s^t) . q) (X_Y) X^Y = (q. s_t) . ((s. q) . (t. q)) (X^Y) . Z= (X. Z) . (Y. Z) = (q. s_t) . (s. q) . (t. q) asociatividad ^, abuso notacin En el penltimo paso, la aplicacin de la distributividad no corresponde exactamente al esquema fijado en el punto 5. Se ha utilizado implcitamente la permutacin conmutativa X_Y = Y. X.

1.4. Sistemas deductivos Ejemplo 1.59 Puede comprobar que una frmula normal conjuntiva equivalente a (p. (t. p)) . (p. (p. q)) resulta ser (p_t. p) . (p. p. q) que puede simplificarse equivalentemente como: ((p. p) _t) . ((p. p) . q) = (>_t) . (p. q) >. (p. q) = (p. q) Forma clausulada El valor de verdad de una frmula como (p. q. r_p) (dada una interpretacin) no depende de la posicin de los literales, que pueden permutarse. Tampoco del cor recto emplazamiento de parntesis interiores, para determinar exactamente qu dos subfrmula s une cada disyuncin. Es ms, tambin es independiente de la aparicin repetida de algunos literal es en la misma clusula. Todo esto permite que este tipo de frmulas se puedan denotar como conjuntos de li terales. As,

la frmula mencionada puede expresarse como el conjunto {p,q,r}. Recuerde que un co njunto no supone secuencia alguna entre sus elementosyque tampoco es significativala enume racin repetida de un elemento: ese elemento pertenece o no pertenece al conjunto, sin ms. Definicin 1.60(Forma clausulada) Una clusula Ces un conjunto de literales C= {l1,...,ln}. Implcitamente se suponen disyuntivamente unidos. Una frmula en forma clausulada est escrita como un conjunto de clusulas {C1,...,Ck} , implcitamente unidas por conjunciones. Toda frmula en forma normal conjuntiva es fcilmente expresable en forma clausulada . Por ejemplo, (p. q. p) . (r_p_t) se puede escribir como {{p,q},{r,p,t}} Se puede obtener una notacin un poco ms compacta si se denota p como py simplemente se yuxtaponen los literales de cada clusula. As, la frmula anterior se escribira como: {pq,rpt} El camino descrito permite representar una frmula cualquiera en notacin clausulada : como conjunto de clusulas. En trminos de implementacin de estos sistemas deductivos, com o listas de clusulas (es decir, como listas de listas de literales). Definicin 1.61 (Satisfacibilidad de clusulas) La satisfacibilidad de las clusulas s e define como: Una clusula C= {l1,...,ln} es satisfaciblesiyslosila frmula (l1. ... . ln) es satisfacible. La clusula vaca {} es insatisfacible. Un conjunto de clusulas {C1,...,Ck} es satisfaciblesiyslosiexiste una misma interpretacin que satisface a cada clusula del conjunto. Recuerde que una clusula es un disyuncin implcita. Es, por lo tanto satisfacible si existe un literal que se hace verdadero bajo cierta asignacin. En la clusula vaca no existe n ingn literal que pueda hacerlaverdadera, luego es insatisfacible. Denotaremosala clusulavaca como { }

o como 2. Para satisfacer un conjunto de clusulas basta encontrar una interpretacin que sati sface al menos un literal en cada clusula.

54 Captulo 1. LGICA DE PROPOSICIONES Principio de Resolucin Considere dos clusulas cualesquiera, por ejemplo: {p,q,r} {s,t,r} Tratemos de encontrar interpretaciones que satisfagan ambas clusulas. Para ello, recuerde que los literales en cada una estn implcitamente unidos por disyunciones. As, en la primera , basta que p sea verdadera para que lo sea toda la clusula. Entonces, fijar que pys son verd aderas produce la satisfaccin de ambas clusulas (con independencia de los valores del resto de la s variables). El mismo resultado se produce si se fija que qesfalsay s es verdadera. Osimplemente si se asigna el valor verdadero a r, que aparece en ambas clusulas. Considere ahora dos clusulas con una particularidad especial. Por ejemplo, la que presentan {p,q,r} y {q,t} En ambas aparece la misma letra proposicional q,negadaen unaynonegadaenla otra.E s decir, para cierto literal lde una clusula, la otra contiene el literal complementario lc . Tratemos, de nuevo, de encontrar interpretaciones que las satisfagan. En este ca so no basta con asignar un cierto valor a q, aunque la letra aparezca repetida. Si se afirma que esfalsa, se satisface sin ms la primera clusula (pero no la segunda). Si se afirma que es verdadera, slo se asegura la satisfaccin de la segunda. Es decir, para un cierto valor de q se satisface slo un a clusula: debe existir al menos otro literal (distinto de qydeq)que produzca la satisfaccin de la otra clusula. En este ejemplo, pdebe ser verdadera o r,ot debe serfalsa. Esta simple consideracin produce unos excelentes resultados. Observe la clusula {p ,r,t}. Se ha obtenido por unin de las dos anteriores salvo los literales qyq. Cualquier inte rpretacin que satisficiera a las dos clusulas generatrices satisface a la clusula generada. Definicin 1.62 (Principio de Resolucin) Sean X e Y clusulas tales que l. X ylc . Y. Se denomina Resolucin a la regla: XY (X[Y) -{l,lc} Las clusulas X eY se resuelven sobre l.Ala clusula resultante se la denomina resol vente.

Teorema 1.63 El Principio de Resolucin preserva la satisfacibilidad. Esto es, si una asignacin satisface un conjunto de clusulas, tambin satisface cualquier resolvente de dos de ellas. Para fijar ideas, suponga que se parte de un conjunto satisfacible de6 clusulasy se genera (si es posible) la resultante de dos de ellas. Entonces las7 clusulas (la generaday l as6 previas) se siguen satisfaciendo por las mismas interpretaciones que las originales. De nuev o, si de estas7clusulas se vuelvena resolver dos, las8clusulas resultantes siguen siendo satisfechas por las mismas interpretaciones originales. Cuidado En las clusulas {p,q} y {p,q} se puede escoger el par de literales sobre el que efectuar la resolucin. Una resolucin sobre pproducira {q,q} yuna resolucin sobreqproducira {p, p}. Puede comprobarse que una interpretacin como n(p)= 0,n(q)= 0satisface tanto las dos clusulas originales como sus resolventes. Sin embargo, una resolucin simultnea sobre pyqproducirala clusulavaca,quenose satisfa ceparala interpretacinquesatisfacaalas clusulas generatrices.Dehecho,steesunuso incorrecto de la regla de Resolucin, que defina el resolvente sobre un nico literal.

1.4. Sistemas deductivos A partir de un conjunto de clusulas, una derivacin por resolucin es una secuencia f inita de clusulas, donde cada una de ellas es bien una de la clusulas de partida o bien la resolvente de dos previas. p. q p. r q. r r . . . q. r q OOOOOOOOOOO. oooooooooooo. r r OOOOOOOOOOOOO. oooooooooooo. Figura 1.18: rbol de la resolucin {pq, qr, pr, r} 1 {p,q} 2 {p,r} 3 {q,r} 4 {r} 5 {q,r} .

(1,2) 6 {q} (3,4) 7 {r} (6,5) 8 {} (4,7) Figura 1.19: Una derivacin de la clusula vaca Teorema 1.64 (ConsistenciayCompletuddela Resolucin) Un conjunto no vaco de clusulas es insatisfaciblesiyslosiexistea partir del mismo una derivacin por resolucindela clusu lavaca. Comode todos los sistemas deductivos,la consistenciagarantizala correccindelas re glas: que todo lo que se va obteniendo es consecuencia de lo anterior . Algo ms complicado ge neralmente de demostrar es la completud de un sistema: dame cualquier consecuencia de un conjun to de premisas yencontrar una derivacin de la misma en este sistema . Cuando se aborda indirectamente el concepto de consecuencia, via insatisfacibili dad, la consistenciaycompletud toman una forma comoladel teoremaprevio.La mencinala clusulavacaes especficade este sistema. De los dos sentidos del bicondicional siy slo si tratedeve r cul se refiereala consistencia( lo que hago,lo hago correctamente )yculala completud( todolo q ue es necesario ser hecho, se puede hacer ). Ejemplo 1.65 Se quiere comprobar si . := r es consecuencia lgica de F, donde F = {p. q, p. r, q. r}. O, equivalentemente, si F . {y} es insatisfacible. Puesto que el sistema es completo, si efectivamente este conjunto es insatisfacible, existir una derivacin de la clusula vaca a partir del mismo.

Captulo 1. LGICA DE PROPOSICIONES Escribamos en forma clausulada cada premisayla negacindela supuesta conclusin. Cad a una de estas frmulas se expresa como una nica clusula. As, el conjunto inicial de clusula s es {{p,q},{p,r},{q,r},{r}} El rbol de la figura (fig. 1.18) muestra el proceso de resolucin. Observe que una de las clusulas (r)se ha utilizado dos veces. Una linealizacin de este proceso se encuentra en la figura (fig. 1.19). Ejemplo 1.66 Consideremos un conjunto F = {f1,f2,f3} con las siguientes frmulas: 1. f1:= p. (q. r) 2. f2:= (s_t) 3. f3:= q. (s_t) Se quiere comprobar si . := pes consecuencia lgica de F. O, equivalentemente, si F [{y}es insatisfacible. Puesto que el sistema es completo, si efectivamente este c onjunto es insatisfacible, existir una derivacin de la clusula vaca a partir del mismo. Escribamos en forma clausulada cada premisayla negacindela supuesta consecuencia: 1. f1:= {{p,q},{p,r}} 2. f2:= {{s},{t}} 3. f3:= {{q,s,t},{s,q},{t,q}} 4. . := {{p}} Ahora en este conjunto de frmulas algunas producen ms de una clusula. Entre todas l as frmulas se han producido8clusulas. Recuerde que las clusulas estn implcitamente unidas entre s por conjunciones. En definitiva, las cuatro frmulas sern simultneamente satisfacibl es siyslo si lo son las8clusulas (por separado, sin importar qu frmulas las produjo). En la figura (fig. 1.20) se puede encontrar una derivacin que confirma que el con junto inicial era insatisfacible.

Clusulas de Horn Considere la frmula (p. q. r) . s. En ciertas aplicaciones, a este tipo de frmulas se les denomina reglas. Con varias de estas reglas puede tratar de modelizar una mquina expendedo ra o el comportamiento de un programa. Supuestaverdadera una regla como (p^q. r) . s, si se verifican adems las tres frmulas p, qy r, no puede dejar de ser verdadera s. Escribamos ahora esta regla en forma normal conjuntiva o en forma clausulada: (p. q. r) . s (p. q. r) . s = (p_q_r. s) Observe que las frmulas atmicas del antecedente aparecen como literales negativosy las del consecuente como literales positivos. Recorramos el camino inverso desde esta ot ra frmula, con dos literales positivos: (a1_a2_a3. c1. c2) (a1. a2. a3) . (c1. c2) = (a1. a2. a3) . (c1. c2)

1.4. Sistemas deductivos 1 {p,q} 2 {p,r} 3 {s} 4 {t} 5 {q,s,t} 6 {s,q} 7 {t,q} 8 {p} 9 {q} (8,1) 10 {r} (8,2) 11 {s,t} (9,5) 12 {t} (11,3) 13 {} (12,4) Figura 1.20: Una derivacin de la clusula vaca Definicin 1.67 (Clusulas de Horn) Una clusulade Hornes una clusula con,alo sumo,un l iteral positivo. Ejemplo de clusulas de Horn son: 1. {p,q,r,s} 2. {p,q} 3. {s} Alas del primer tipo se le conoce comoreglas ya las del ltimo como hechos. Las de l segundo tipo son equivalentes a un condicional como (p. q) !?. Analizaremos ms en detalle las clusulas de Horn cuando se aborde la resolucin en Lgi ca de Primer Orden. Baste en este momento saber que resultan especialmente tiles no slo porquefacilitan una representacin legible e intuitiva de ciertos sistemas sino porque la resolucin con clusulas de Hornfacilitala labor computacional.

1.4.3 Tablas semnticas Las tablas semnticas tambin se denominan tablas analticasyms comnmente tableaux (tabl eau, en singular). Introduccin Estrategia deductiva por refutacin Las tablas semnticas proporcionan un medio sintc tico de investigarla satisfacibilidad de un conjunto. Todo lo que se mencion en (1.4.2) s obre la relacin entre consecuenciaysatisfacibilidad es aplicable en este punto.

Captulo 1. LGICA DE PROPOSICIONES As, si desea comprobar que una frmula es consecuencia de otras, niguela e incorporla a esas otras. Si resulta insatisfacible este nuevo conjunto, efectivamente exista aquell a relacin de consecuencia. Constatacin sintctica de la insatisfacibilidad De nuevo, si el conjunto de partida F . {y} era insatisfacible, en algn momento del clculo se evidencia claramente. Intuitivamente, las frmulas del conjunto inicial se estructuran como rbol. En part icular como un rbol muy lineal, con una sola rama. Existen dos tiposde reglasde inferenciayambas aaden nodos al rbol: una, linealmente,yotra produciendo una bifurcacin binaria.La satisfacibil idaddeun rbol se puede comprobar en cualquier momento, considerando la satisfacibilidad de cad a rama. Existen indicadores sintcticos que lo explicitan. De nuevo, la clave de estas operaciones ibilidad. Cada aplicacin de una regla ampla el rbol riginal (las frmulas de partida) eran satisfacibles Y si eran insatisfacibles, se llegar a constatar Notacin uniforme Considere la frmula (p^q). Una interpretacinla satisfacesiyslosi satisfacea sus comp onentes conjuntivos. Es decir, (p^q) es satisfaciblesiyslosi {p,q} es satisfacible La frmula propuesta era evidentemente conjuntiva. Otra frmula como (p. q) se puede fcilmente reescribir de forma equivalente como una frmula conjuntiva. En particula r como (p. q).Y se satisfara,de nuevo,siyslosi se satisfacen simultneamente sus componentes. Dualmente, una frmula disyuntiva como (p_q) se satisface siyslo si se satisface alguna de sus dos frmulas inmediatas. Otras frmulas, no explcitamente disyuntivas como (p!q) tambin se puede reescribir equivalentemente como (p_q). Vamos a fijar el desarrollo que se persigue con esta introduccin. Observe la tabl a en (fig. 1.21). Cada frmula a consiste en la preservacin de la satisfac sin modificar la satisfacibilidad. Si el rbol o as resultar el rbol ampliado en todo momento. sintcticamente en algn momento.

de la izquierda es equivalente a la conjuncin de sus componentes a1ya2. Ycada frmula b, a la disyuncin de sus componentes b1, b2. Tanto en un caso como en otro, las componentes son subfrmulas de la frmula princip al. Y a partirslodeellasydesusnegacionesse construyeuna conjuncinouna disyuncinequivalentea la frmula dada. a a1 a2 b1 b2 X^Y X Y (X^Y) X Y (X_Y) X Y X_Y X Y (X . Y) X Y X . Y X Y (X . Y) X Y X . Y X Y (X. Y) X Y X. Y X Y X . Y X Y (X . Y) X Y X6 . Y X Y (X 6 . Y) X Y X6 . Y X Y (X 6 . Y) X Y Figura 1.21: Notacin uniforme

1.4. Sistemas deductivos En las tres primeras lneas se utilizan las conectivas bsicas que se fijaron en el alfabeto. Las cinco lneas restantes utilizan otras conectivas binarias que se podan haber incorp orado igualmente al alfabeto. Si se asume esta notacin, incluso utilizando todas estas conectivas, cada frmulas es simplemente de tipo a o de tipo b.Y, recursivamente, cada una de sus subfrmulas es de uno de estos dos tipos. Ni el bicondicional ni su negacin (la disyuncin exclusiva) se pueden escribir como una conjuncin o disyuncin de sus subfrmulas (negadas o no). Por tanto, no se considerarn conectiv as primarias del lenguaje sino abreviaturas. Tableaux: definicin Ejemplo 1.68 Observe la figura (fig. 1.22) considerando que inicialmente slo cons ta del nodo 1. Esto es as porque el conjunto de frmulas iniciales analizado consta de una nica frmu la: (p. (q. r)). Luego se construye un rbol Aque consta de ese nico nodo. Puede comprobarse que la frmula analizada es de tipo a, en concreto (X . Y). Expandamos el rbol A con dos nodos ms: a1 (nodo2)ya2 (nodo 3). El resultado es otro rbol A0: u na rama compuesta por tres frmulas que son satisfacibles por las mismas interpretaciones. La frmuladelnodo3puedeanexpandirse.Esuna frmuladetipo (disyuntiva),ypor tanto para su satisfacin basta que una de las dos componentes se satisfaga. Representem os ese hecho bifurcando el rbol en ese punto terminal. El resultado es el rbol A0. final que se observa en la figura (fig. 1.22). Conlas consideraciones anteriores,la frmula inicialsesatisfacesiyslosise satisface n todas las de la rama 1-4 o las de la rama 1-5. Cuando se recorren, tanto una como otra , no hay seales evidentes de que tales frmulas no puedan ser satisfechas a la vez. De hecho, para que la rama 1-4 se satisfaga basta considerar qfalsaypverdadero.Yenla rama 1-5, r falsoypverdadero. 1. (p. (q. r)) 2. p 3. (q. r)

4. q 5. r Figura 1.22:Tableaude (p. (q. r)) Ejemplo 1.69 Lafigura(fig.1.23) inicialmente constabaslodelosnodos1y2.Sepretende analizar la satisfacibilidad del conjunto formado por esas dos frmulas. Nos situaremos enel nodo2, por serelextremo actualde ese rbol.Yaplicaremos alllaex pansindeunadeesasdos frmulas.En concreto, escogemosexpandirla frmula2(podahabersidola 1).La frmula2esdetipo a yproduce los nodos3y4. Nos situamosenelnodo4yexpandimosotra frmula.Enestecaso,la1,queesdetipo b. Como la satisfaccin de esta frmula puede venir por un lado o por otro, se produce la bi furcacin de los nodos5y6. En este punto, las frmulas iniciales son (simultneamente) satisfacibles siyslo si lo son todas las frmulas de la rama 1-5 o todas las frmulas de la rama 1-6.

Captulo 1. LGICA DE PROPOSICIONES Recorriendo las frmulas de la rama 1-5 se observa que una de las frmulas es p mien tras otra es p. Luego la satisfacibilidad simultnea de todas las frmulas de esa rama queda de scartada (se marcasuextremo).ParafraseandoaBogart, siemprenosquedarPars ,queeneste casoeslaotra rama:el conjunto iniciales satisfaciblesiyslosiloesesta rama. Como an se puedenexpandir ms frmulas, nos situamos en6ylo hacemos. En concreto se expandelapropia frmula6,queproducelosnodos7y 8porserdetipo conjuntivo. Denuevo, recorriendo esta rama se encuentra uno con r yr yse pierde, por ltimo, la esperanz a, que es lo ltimo que se pierde. El conjunto formado por las dos frmulas iniciales no es satisfacible. 1. (p. (q. r)) 2. r. p 3. r 4. p 5. p v 6. (q. r) 7. q 8. r v Figura 1.23:Tableaude {p. (q. r),r. p} Definicin 1.70(Tableaude un conjuntode frmulas) Sea {f1,..., fn} un conjunto de frmulas. Entonces el rbol formado por la nica rama f1...fn es un tableau Apara este conjunt o. Si Aes un tableau para ese conjuntoyA. resulta de aplicar a Aalguna de las reglas de expansin de tableaux, entonces A. es un tableau para ese conjunto.

Falta precisar culessonlasreglasdeexpansin,dndeycmosepuedeexpandirunrbolysi existe un final determinado para este proceso. Las reglas de expansin son las que se muestran en la tabla (tabl. 2.5). Dado un rb ol, se escoge una rama cualquiera del mismo y una frmula de esa rama que pueda expandirse, que no sea un literal. La expansin se produce en el terminal de esa rama: una bifurcacin si la fr mula escogida era disyuntiva o la secuencia de dos nodos si era conjuntiva. Definicin 1.71(Tableau cerrado) Una rama se dice cerrada si ocurren en ella tanto una frmula X como una frmula X, o si ocurre la frmula ?. Est atmicamente cerrado si la frmula X e s atmica o si ocurre ?. Un rbol se ha cerrado si se han cerrado todas sus ramas. Cuando todos los cierres son atmicos se dice que el rbol se ha cerrado de forma atmica.

1.4. Sistemas deductivos a X . . X ?. a1 b1 | b2 a2 Tabla 1.20: Reglas de expansin de un tableau Observequelasreglasdeexpansinsonno deterministas.Sepuede escogerla ramayla frmula siguientes que se van a expandir. Esta opcin obliga a plantearse si existen estra tegias de eleccin, heursticas,ms eficientesque otras.En efecto,porregla general, tratedeexpandir toda slas frmulas a primero. Previaaesta preocupacinporla complejidad,convienefijarsiel procesoparaenalgn momen to. No hay nada en las definiciones que impida expandir la misma frmula a unay otravez sobre una rama, puesto que no se elimina. Afortunadamente, para la lgica proposicional abor dada, basta utilizar una nicavez cada frmula paragarantizarel cierre del tableau(si es que debe cerrars e). No ocurra as en la Resolucin. El sistema descrito es consistentey completo en los mismo trminos con que se enun ci para Resolucin: un conjunto es insatisfaciblesiyslosiexiste un tableau cerrado del mism o. Bibliografa complementaria Entre la bibliografa inicial en castellano, sin nimo de ser exhaustivos, puede con sultar [Badesa et al. 98], [Garrido 95] o [Deao 93] como primeras lecturas. Son textos enfocados ha cia alumnos de filosofa pero le facilitarn unabuena compresin de la semnticayde la formalizacin d el lenguaje natural. Ms orientados al uso de la lgica en computacin, puede considerar [Cuena 85 ] [Kowalski 86] En [Huth y Ryan 2000], [Ben-Ari 90] [Burris 98] puede encontrar una buena introd uccin a la lgica de proposiciones, desde una perspectiva aplicada. Una presentacin ms for mal puede encontrarse en [Dalen 97] o en [Mendelson 97]. Los sistemas de deduccin natural se encuentran claramente descritos en [Broda et

al., 94] [HuthyRyan 2000].En[Fitting96]se describela implementacinde sistemas basadosenres olucin o en tableaux, con especial nfasis en stos. Actividades y evaluacin El alumno dispone de ejemplosy actividades en el grupo de tutorizacin telemtica de l curso, as como exmenes resueltos de aos pasados.

62

Captulo2 LGICA DE PREDICADOS DE PRIMER ORDEN Resumen Este captuloextiendeel lenguajedelaLgicadeProposiciones mediantelaintroduccindelos cuantificadores( todoslos ... )ylaexplicitacindepropiedadesyderelaciones entre trminos( suje tos relacionados ). La sintaxis es ahora ms compleja pero mucho ms expresiva. Acorde con esta ampliacin sintctica, tanto los objetos matemticos necesarios para i nterpretar una expresin como su proceso de evaluacin son ahora ms complejos. Es preciso ahora estar pendiente de ms detalles, en particular de la posicin relativa de las variables re specto a los cuantificadores (si existen) que las referencian. Comocontrapartida,sedisponedeunlenguajeydeuna semnticasobrelaqueseest edificando (con algunas limitaciones)gran partedela matemticaydelas teoras formalizadas. Desd eel punto de vista computacional,la lgicadepredicados esla basedelosprocesos derepresentacin yde razonamiento. Apartirdeaquhan derivadootros sistemas particulares,generalmentepor razones de eficiencia. Todoslos conceptos semnticos bsicos del captulo anterior se puedenreformular en ste. Desgraciadamente aqu, incluso para la frmula ms sencilla existen infinitas representaciones posibles . Resultan ahora (salvo casos particulares) inabordableslosprocedimientosde decisin querequeran un recorrido exhaustivo por todas las interpretaciones. Los sistemas deductivos se convierten en la nica opcingeneral posible, siempre que se demuestren correctosycompletos. Objetivos El uso correcto de los diversos lenguajes de primer orden es el primer objetivo. No obstante, es difcil manipular con soltura uno de estos lenguajes sin tener clara su semntica. As, esto s dos objetivos bsicos se realimentan en su proceso de consolidacin. El siguiente objetivo debiera serla compresinyusode(al menos)los sistemas basados en Resolucin, ampliamente utilizados en Computacin. Adicionalmente, los sistemas basados enTabl eaux se estn imponiendo como una eficiente alternativa de implementacin. En el estado actual de estos apuntes an no se han abordado las estrategias de imp lementacin.

63

64 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Metodologa Trabaje con lenguajes de primer orden progresivamente ms complejos. Primero, slo c uantificadores ypredicados mondicos (luego didicos, etc.) Introduzca posteriormente el uso de fun ciones para referirsea ciertos sujetos ,es decir, como trminos (apartedelas variablesyconstante s).Por ltimo, introduzca la igualdad en su lenguaje. En cada unade estas etapas,procure cuidarla correctageneracine interpretacinde frmu las (as comode sus rboles sintcticos).Yponga un especial cuidado en encontrar tanto int erpretaciones que satisfagan sus expresiones como interpretaciones que no las satisfagan (si e s posible). Por ltimo, en los sistemas basados en ResolucinyTableauxrecuerde,dela lgicadepropos iciones, que facilitan la identificacin de conjuntos de frmulas insatisfacibles. Ahora, en estos procesos es importante no introducir espreamente la insatisfacibilidad por una in correcta manipulacin de los pasos intermedios. En particular, tenga cuidado con los procesos que requ ieren una particularizacindeun casogeneral:sinosesiguenlasrestriccionessobrela eleccinde eso ssujetos particulares (constantes, trminos unificables ...) puede afirmarse como insatisfa cible un conjunto de frmulas que no lo era. O perderse indefinidamente en intentos vanos de confirm acin, incluso aunque s pueda llegarse sintcticamente a la misma. 2.1 Sintaxis 2.1.1 Lenguajes de primer orden Alfabetos Todos los lenguajes de Lgica de Primer Orden utilizan un conjunto comn de smbolos. Adems de este conjunto, cada lenguaje utiliza algunos smbolos propios. Los smbolos propios de cada lenguaje determinan qu constantes, funcionesyrelaciones considera. Definicin 2.1 (Alfabeto) El alfabeto de un lenguaje de Primer Orden incluye: smbolos comunes: variables: Var= {x1,x2,x3...} conectivas: {?,>,,^,_,!,$} cuantificadores: {8,9} smbolosde puntuacin: parntesisy comas (smbolo de igualdad: {}) smbolos propios: su conjunto de constantes: C

= {c1,c2,...} su conjunto de funciones: F = { f1, f2,...} su conjunto de relaciones: R = {R1,R2,...} Notacin Se denomina A al conjunto de smbolos comunes, S al de smbolos propiosy AS a l alfabeto resultante. Cada eleccin de Sdetermina un lenguaje: se denotar como L(S) L(R ,F , C). Los conjuntos C, F yR se escogen independientemente: un lenguaje puede o no contener constantes, o funciones o relaciones. Un lenguaje sin relaciones propias debe, al menos, utili zar la relacin de igualdad.

2.1. Sintaxis Toda funciny toda relacin tienen asignado un nmero n. Una funcin o relacin n-dica o naria se aplica sobre una n-tupla de trminos: R(t1,...,tn). No todos los lenguajes utilizan la relacin de igualdad. Por su especial tratamien to semntico convena excluirla del conjuntoR .Enlos lenguajescon igualdad,seutilizarexcepcionalmentela notacininfija(t1 t2) en vez de la prefija (t1,t2). Al cuantificador . (lase para todo ) seledenomina universal yal cuantificador. ( existe ), existencial. En las exposiciones tericas, cuando son muy pocos los smbolos requeridos, se utili zan como constantes las letras iniciales del alfabeto latino {a,b,c,d,...},las letras finales como v ariables {..., u,v,w,x,y, z} yletras intermedias { f, g,h,...} como funciones.Para las relaciones se usarn letras maysculas. Ejemplo 2.2 Para representaryanalizarel conjuntode nmeros naturalesse requieren,a l menos, una constanteyuna funcin.La constantefijaelprimer nmero(elquenoes sucesordeotro)yla fu ncin proporciona el sucesor de cada nmero. Para desarrollar una teora sobre grafos basta un lenguaje con una nica relacin bina ria (la relacin entre nodos). En principio, no se precisa de smbolos constantes ni de funciones. Las ecuaciones son relaciones de igualdad entre trminos: t1 t2. La lgica ecuacional estudia este fragmento de la lgica de primer orden, donde la nica relacin precisa es la de igualdad. Los trminos se construyena partirdevariables, constantesyfunciones. Lenguajes Suponga fijado un cierto alfabeto AS. Todas las definicionesy resultados que sig uen se restringen a ese alfabeto. As, los trminosyfrmulas sernexpresiones sobre este alfabeto;ylas con stantes, funcionesyrelaciones requeridas en su definicin deben pertenecera este alfabeto. En las escasas ocasiones en que se consideren varios alfabetos, se avisar explcitamente. Definicin 2.3 (Trmino) Un trmino es unaexpresin obtenida por aplicacinde las siguient es reglas:

1. cada constante c es un trmino 2. cada variable x es un trmino 3. si f es una funcin n-ariay t1,...,tn son trminos, entonces f(t1,...,tn) es un trmino Notacin El conjunto de todos los trminos se denotar como Term. Definicin 2.4 (Frmula atmica) Una frmula atmica es una expresin de la forma: R(t1,...,tn) , donde Res un smbolo relacional n-arioy t1,...,tn son trminos En los lenguajes con igualdad tambin es una frmula atmica (t1 t2),dondet1yt2 son trminos. Asimismo en los lenguajes que utilicen los smbolos . y. (que se pueden entender como conectivas 0-arias), ambas frmulas sern frmulas atmicas. Notacin Al conjunto de todas las frmulas atmicas se le denominar Atom. Definicin 2.5 (Frmula) Una frmula es una expresin obtenida por aplicacin de las sigui entes reglas:

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 1. toda frmula atmica es una frmula 2. si f es una frmula entonces (f) es una frmula 3. si f y. son frmulas entonces (f * y) es una frmula, para toda conectiva binaria * 4. si f es un frmulayx una variable entonces (8xf) y(9xf) son frmulas Notacin El conjunto de todas las frmulas se denotar como Form. (8x(R(x,c) . P( f(y)))) 8x (R(x,c) . P( f(y))) . R(x,c) P( f(y)) x cf(y) x cf R ???????.... ?>=<89:; P y y (a) rbol sintctico (b) rbol, ms esquemtico Figura 2.1: Frmula de Primer Orden: rbol sintctico Ejemplo 2.6 En la figura (fig. 2.1) se representa el rbol sintctico de la frmula (8 x(R(x,c) . P( f(y)). Se han marcado flechas ascendentes para resaltar el proceso de generacin:

x (variable)yc (constante) son trminos; si Res un smbolo relacional didico, R(x,c) es una frmula atmica. yes un trmino; si f es un smbolo mondico de funcin, f(y) es un trmino; si Pes un smbolo relacional mondico, P( f(y)) es una frmula atmica. el condicional de dos frmulas es una frmula: (R(x,c) . P( f(y))) la cuantificacin de una frmula es una frmula: (8x(R(x,c) . P( f(y)))) En la subfigura derecha se han enmarcado con un crculo los nodos que representan una frmula. El resto de los nodos representan trminos. Ejemplo 2.7 Todas las expresiones siguientes son trminos, no frmulas: x, z, c, f(x ), f(c), g(x,y), g(x,c), g( f(y),x), h(x,c,g(x,y), f(z)).Trate de expresar el rbol sintctico de este ltimo trmino. Los trminos son los sujetos , los individuos citados en nuestras frases formales. Sobr e ellos no se podr afirmarsi sonverdaderosofalsos, slo tendr sentido determinar quines son . Ejemplo 2.8 Todas las expresiones siguientes son frmulas:

2.1. Sintaxis 67 P(x), Q(y), (P(x) . (Q(y))), ((P(c) . R(x,y)) . Q(y)) (P( f(x)) . (Q( f(c)))), R(g(x, f(y)), f(c)) 8x(P(x) . (Q(y))), 8x(P(x) !9y(Q(y))), 9y8xR(g(x, f(y)), f(c)) Asegresedequepuedeexpresarelrbol sintcticode cualquieradeestas frmulas.Los anidamien tos relativosde los parntesisfacilitanla determinacinde los nodos hijo. 2.1.2 Induccinyrecursin Cada lenguaje de primer orden tiene una estructura inductiva. Ya se consider esta estructura en el estudio de los lenguajes proposicionales. Recuerde que permita enunciar defini ciones de manera concisa, recursiva, sobreel conjunto infinitode frmulas.Tambinfacilitabaun mecanis mode prueba, por induccin estructural, de propiedades de estas frmulas. Estrictamente, en los l enguajes de primer ordenhaydos conjuntos inductivos:elde trminosyelde frmulas. Definicin 2.9 (Principio de induccin estructural) Para demostrar que todos los trmi nos de un lenguaje de primer orden tienen la propiedad Pbasta demostrar que: 1. toda variable tiene la propiedad P 2. toda constante del alfabeto tiene la propiedad P 3. si los trminos t1,...,tn tienen la propiedad Py f es una funcin n-aria del alfa beto, entonces f(t1,...,tn) tiene la propiedad P Para demostrar que todas las frmulas tienen la propiedadPbasta demostrar que: 1. toda frmula atmica tiene la propiedad P 2. si la frmula f tiene la propiedad P, entonces (f) tiene la propiedad P 3. si las frmulas f y. tienen la propiedad P, entonces (f *

y) tiene la propiedad P 4. si la frmula f tiene la propiedad Pyx es una variable, entonces tanto (8xf) como (9xf) tienen la propiedad P El Principio de Induccin estructural puede demostrarse a partir del conocido Prin cipio de Induccion sobre nmeros naturales: aplicndolo sobre la longitud de cada expresin, sobre su nmer o de smbolos. Entre las propiedades de inters que pueden demostrarse inductivamente res altaremos la unicidad enla descomposicin sintcticade un trminoyde una frmula. Teorema 2.10 (Anlisis sintctico nico) Cada trmino pertenecea unayslo unade las siguie ntes categorias: 1. es una variable 2. es una constante de AS 3. es de la forma f(t1,...,tn) para una funcin n-aria f de AS ytrminost1,...,tn) unvocamente determinados

68 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Cada frmula f pertenecea unayslo unade las siguientes categorias: 1. f es atmica 2. f es de la forma (y), para una . determinada 3. f es de la forma (. * c), para . , . yconectiva binaria determinadas 4. f es de la forma (8xy), o de la forma (9xy) para cuantificador, variableyfrmula . determinados Este resultado permite escribir el rboldeun trminoode una frmula,garantizandoque te ndr estructurade rbolyquea cada frmulale correspondeexactamente uno. Observequeenelejemplo(ej.2.6),para generaruna frmula,separtadevariosnodosinconexos yse ascenda, intentando construir un rbol. Ahora, de arriba abajo, el proceso de a nlisisgarantiza que, si la expresin es un trmino o una frmula, se produce un rbol. 2.1.3 Subfrmulas Definicin 2.11 (Subfrmulas) Dada una frmula f, el conjunto de todas sus subfrmulas s e define recursivamente como: subform(f)= . . >>>>. . >>>>. {f} ,f atmica {f}. subform(y) ,f =(y) {f}. subform(y) . subform(c)

,f =(. * c) {f}. subform(y) ,f =(8xy) {f}. subform(y) ,f =(9xy) Las subfrmulas de una frmula dada son todas las que aparecen en su rbol sintctico, i ncluida ellamisma. Observequeno todoslos nodosde este rbol representan frmulas: cada frmula atmica tiene por subrbol el rbol de todos sus trminos. Ejemplo 2.12 Enla figura (fig. 2.2),la frmula analizadaala izquierda, tiene4subfrm ulas: todas las de sus nodos salvolos trminos x,c, f(y),y.La frmula analizadaala derecha tiene 5subfrmulas, todas las de sus nodos salvo los trminos: x, y, y. Esta definicin (def. 2.11) es un ejemplo de definicin recursivasobre el conjunto d e frmulas. En particular, define una funcin subform:Form7 . P(Form) de frmulas en subconjuntos de frmulas. Observeque la definicin de subform(f) requiere5funcionespreviasquefacilitanla imagende f segn f se encuentreenunadelos5categorasenquepuedeestar.En realidad,sonmslascategoras: todasla conexiones binarias se han condensado en una lneaylas dos opcionesde frmul as atmicas tambin. Una funcin recursiva que, por ejemplo, calcule el nmero de conjunciones de una frmula necesita diferenciar en dos la lnea nica dedicada a conectivas binarias. Yasehagarantizadoque una frmula pertencea unayslo unade esas categoras. Adems,el Principio de Recursin estructuralgarantiza que, para una eleccin dada de esas func iones previas en cada categora, la funcin f : Form7 . X est bien definiday es nica. Y esto, sea cual sea el conjunto X. Puede intentar definir recursivamente una funcin del conjunto de frmul as Formsobre un conjuntode2equiposde ftbolo sobre los3coloresde un semforo.

2.1. Sintaxis (8x(R(x,c) . P( f(y)))) (9x((R(x,y)) . (8yP(y)))) (R(x,c) . P( f(y))) ((R(x,y)) . (8yP(y))) . ??????. R(x,c) P( f(y)) R(x,y)(8yP(y)) x cf(y) x yP(y) yy (a) (b) Figura 2.2: Dos frmulas de Primer Orden: subfrmulas Ejemplo 2.13 La funcin numsubf :Form7 . Ncalcula el nmero de subfrmulas de una dada: . ??????. numsubf(f)= 8. . 1 ,f atmica 1+ numsubf(y) ,f

=(y) | (8xy) | (9y) 1+ numsubf(y)+ numsubf(c) ,f =(. * c) 2.1.4 Eliminacin de parntesis La sintaxis descrita, con todo el rigor necesario, permite: 1. evitar un lenguaje ambiguo, donde una frmula se pueda descomponer en ms de una forma distinta 2. comprobar la correcta definicin de conceptos 3. describir procedimientos para el clculo efectivo de estas definiciones (subfrmu las, variables libres, etc.)yde otras, relativasala interpretacinde las frmulas. Todo esto es an ms crtico si se pretenden disear sistemas automticos que utilicen las lgicas descritas. Como contrapartida, el exceso de parntesis dificulta la comprensin de u n lector, de un agente lgico humano . Los convenios de precedencia, como los fijados para la lgica pr oposicional, permiten eliminar parntesis sin caer en la ambigedad: en caso de duda, el convenio es todo lo que se necesita para deshacerla. 1. Se prescindir de los parntesis externos de la frmula. Tambin de los que rodean a una expresin cuantificada (8xP(x)) ya una frmula negada (P(x)). Asimismo se prescinde de los parntesis que delimitan los trminos de una relacin R(x,y,z). Se podra prescindir de los que delimitan los trminos de una funcin g(x,y), pero preferimos conservarlos. 2. En casode duda, se aplicarn primero los cuantificadoresylas negaciones, despus las conjuncionesydisyunciones, yluego los condicionalesybicondicionales. No se establece precedencia entre conjuncionesydisyuncioneso entre condicionalesybicondicionales.

70 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 3. Gracias a la propiedad asociativa de la conjuncin, en una expresin ambigua f1. f2. f3 no importar (a efectos semnticos) si se ha evaluado como (f1. f2) . f3 o como f1. (f2. f3). Luego, en una conjuncin de n frmulas se eliminarn los parntesis. Lo mismo ocurre par a la disyuncin. Ejemplo 2.14 Con este convenio, una expresin como 8xPx . Qx es una abreviatura de la frmula ((8xP(x)) . Q(x)) yno de (8x(P(x) . Q(x))) Px. Qy es una abreviatura de la frmula ((P(x)) . Q(y)) yno de ((Px. Q(y))) 8xPx. Qx. Rxyz . Sxyes una abreviatura de la frmula (((((8xP(x)) . Q(x)) . R(x,y,z)) . S(x,y))) 2.1.5 Variables libres Noes difcil definir una funcinque produzca todaslasvariablesde una frmula dada.Para ello basta definir el conjunto de las variables de una frmula en funcin de los conjuntos de v ariables de sus frmulas componentes. Al llegar a las frmulas atmicas, sus variables son las que hay an aparecido en sus trminos. Ejemplo 2.15 La funcin vart :Term7 . P(Var) calcula el conjunto de variables que aparecen en un trmino: vart(t)= 8. .

0/,t = c {x} ,t = x vart(t1) . ... . vart(tn) ,t = f(t1,...,tn) La funcin var :Form7 . P(Var) calcula el conjunto de variables que aparecen en una frmula: var(f)= . . >>. . >>. vart(t1) . vart(t2) f =(t1 t2) vart(t1) . ... . vart(tn) f = R(t1,...,tn) var(y) f =(y) | (8xy) | (9xy) var(y) . var(c) f =(.

* c) mbito de un cuantificador Si una frmula es de la forma (8xf) o (9xf) se dice que f es el mbito de ese cuantificador. En la figura (fig. 2.3a), toda la frmula condicional que oc urre como subrbol de 8x determina el mbito de este cuantificador. En la figura (fig. 2.3b) hay dos cuantificadores: el mbito de 8yes la frmula atmica Py,yest incluido en el mbito de 9x. Los mbitosdelos cuantificadores(sus respectivos subrboles)nose solapan: se anidan, comoen el ejemplo de la figura (fig. 2.3b) o son disjuntos, como en ((8xPx) . (8yQy)). Apariciones libresyligadas Todaslas aparicionesde unavariablex, en el mbito de un cuantificador para esa variable, (8xf) o (9xf), se denominan ligadas. As, en una frmula sin cuantificadores ninguna variable ser ligada. Ytodo cuantificador liga, a lo sumo, las apariciones de una variable en su mbito. Enlafigura(fig.2.3b)hay5frmulas distintas.Vemosculesel comportamientodelasvariables en esas frmulas: en las frmulas atmicas R(x,y) yP(y) ninguna aparicin de variable es ligada

2.1. Sintaxis en la frmula (8yPy) la aparicin de yes ligada en la frmula disyuntiva (R(x,y) . (8yPy)) slo es ligada la ltima aparicin de la variable y en la frmula (9x(R(x,y) . (8yPy))) todas las apariciones son ligadas salvo la de la primera y Observe quea cada (sub)frmulale corresponde un nodo del rbol sintctico.Paradetermin arsi unavariable estligada en esa (sub)frmula basta ascender desdeel nodode esavariable hastael nodo de esa (sub)frmula: si se encuentra en esa rama un cuantificador aplicable a esa variable, entonces est ligada en esa (sub)frmula. 8x 9x . . . ??????. P . ??????. . y 8y . y . .

??????. (b) . R xf . y . ??????. . ??????. P . .

c .

??????. (a) . R x .

Figura 2.3: mbitosyvariables libres Si la aparicin de una variable no es ligada, se la denomina libre. Una aparicin es ligada o libre; pero, comose observaenla frmularazde2.3,unavariablepuede tener apariciones libresy ligadas en una misma frmula: (9x(R(x,y) . (8yPy))) Una variable se denomina libre en una frmula si todas sus apariciones en esa frmul a son libres. En la frmula precedente ni x ni yson variables libres. Definicin 2.16(Variables libre) El conjunto de variables libres de una frmula se d efine como la siguiente funcin, libres:Form7 . P(Var), de frmulas en conjuntos de variables: libres(f)= . . >>>>. >. >>>. var(t1) . var(t2) f =(t1 t2) var(t1) . ... . var(tn) f = R(t1,...,tn) libres(y)

f =(y) libres(y) . libres(c) f =(. * c) libres(y) -{x} f =(8xy) | (9xy) Definicin 2.17 (Sentencia) Una frmula sin variables libres se denomina sentencia. En una sentencia toda variable est en el mbito de un cuantificador para esa variab le.

72 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 2.1.6 Sustituciones Una frmula de primer orden tiene siempre estructura de rbol. El desarrollo de este rbol, desde la frmula inicial, llega necesariamente a las subfrmulas elementales: las subfrmulas a tmicas. Un ejemplo de frmula atmica es Q(x,a) Q(x,g(a)); en general: un predicado n-ario aplicado a n trminos. Cada uno de estos trminos (de estos sujetos del predicado) admite asimismo un desar rollo en rbol. Un trmino puede ser simplemente unavariable(y),o una constante(b)o una funcin k-aria aplicada a ktrminos: f(a,x,g(b,x)). Observe que uno de los tres trminos sobre los que se aplica la funcin f es, a su vez, otra funcin binaria gaplicada sobre dos trminos. La operacin sintctica que se propone en esta seccin se aplicar slo sobre trminos. Ms especficamente, sustituir trminos que sean variables por otros trminos. El lector ya ha utilizado sustitucionesyreemplazos de frmulas, no de trminos. Por ejemplo, cuando reemplaza un condicional por la frmula equivalente antecedente . consecuente . En cada caso, este proceso de sustitucin deba ajustarse a unas normas, a unas restriccione s. Como contrapartida, segarantizabaqueel resultado obtenidosegua manteniendo cierta propiedad determina da,si sta exista en la frmula inicial. La sustitucin de variables por trminos tambin se ajustar a ciertas restricciones: la s que se necesiten para que sea til. En particular, la utilidad bsica consistir en descubrir , por manipulacin sintctica, si un mismo predicado (aplicado a trminos distintos) se est refiriendo, implcitamente, a los mismos elementos del universo . Sustituciones de variables Definicin 2.18 (Sustituciones) Una sustitucin sv es una funcin sv :Var7 . Term, del conjunto de variables en el conjunto de trminos. Observe que esta definicin depende del lenguaje L(C,F ,R ) empleado. Si no existen constantes ni funciones en el lenguaje, los nicos trminos posibles son los formados por una v ariable. En este caso, se trata de sustituir una variable por otra. Ejemplo 2.19 Considere un lenguaje L(C,F ,R

) tal que el conjunto de constantes del lenguaje es C = {a,b} yel conjunto de funciones esF = {g} (donde ges binaria). Una sustitucin sv fija, para cada variable, qu trmino de este lenguaje le correspon de. Por ejemplo: ... sv(v)= a, sv(w)= a, sv(x)= y, sv(y)= g(x,z), sv(z)= g(g(b,y),g(a,g(z,w))), ... Los puntos suspensivos anteriores responden al hecho de que en todo lenguaje de primer orden (salvo que se indique lo contrario) el nmero de variables es infinito. La sustitu cin sv asigna a cada una de ellas un trmino. Ejemplo 2.20 La sustitucin del ejemplo anterior no estaba bien definida: no se es pecificaba la imagen de cada variable (salvo de unas pocas). La forma ms sencilla de fijar la imagen d e las restantes es precisar que no se modifican . Es decir, que sv(u)= u,que cada unade estasvariablesse sustituye por s misma.

2.1. Sintaxis En este caso, basta enumerar las variables que a del ejemplo anterior se denotar como: sv =[v/a, w/a, x/y, y/g(x,z), z/g(g(b,y),g(a,g(z,w)))]

s se modifican . Una sustitucin como l

entendiendo que, para el resto de variables, sv(u)= u. Paraesteejemplo,tanslo5variablessesustituyenporuntrmino distintodesmismas.Cuando el nmero de estas variables sea finito se dir que la sustitucin tiene un soporte fi nito. Sustituciones en trminos Dado un trmino como f(x,a) y una sustitucin sv tal que sv(x)= b, el resultado de aplicar tal sustitucin es f(b,a). Es decir, dado un trmino de entrada , una sustitucin determina u n nico trmino de salida . Se puede ampliar cada funcin sv (devariables en trminos)a otra func in st (de trminos en trminos). Definicin 2.21 (Sustituciones: extensin a trminos) Sea sv :Var7 . Termuna sustitucin, se define entonces recursivamente una funcin st :Term7 . Termtal que: xst = sv(x), para cada variable x del lenguaje cst = c, para cada constante c del lenguaje [ f(t1,...,tn)]st = f(t1st,...,tnst) para cada funcin n-aria f del lenguaje. Notacin Escribiremos (trmino)s o, ms adelante, (frmula)s, para designar la imagen de la sustitucin, en lugar de s(trmino) s(frmula). Enparticular, escribiremos xs para referirnos al trmino imagen de la variable x. Desafortunadamente, cada texto utiliza una notacin particular para denotar sustit uciones. As, en unos se usa (trmino)s yen otros s(trmino). Adems,la sustitucindelavariable x por el trmino t se puede encontrar como: [x/t]

[t/x] (x . t) stx, entre otras notaciones. Ejemplo 2.22 Seala sustitucin sobrevariables sv =[x/ f(y,a), y/z]. Entonces, para cada uno de los cuatro siguientes trminos su imagen es: wst = w, donde w es una variable distinta de x e y ast = a, donde a es una constante (h(a,x,w))st = h(ast,xst,wst)= h(a, f(xsv,a),wsv)= h(a, f(y,a),w) (h(a, f(x,y),w)st = h(ast,( f(x,y))st,wst)= h(a, f(xsv,ysv),wsv)= h(a, f( f(y,a),z),w) Trate de visualizar, de dos maneras, una sustitucin sobre trminos sobre el rbol deu n trmino (annodeunafrmula). Primero,deforma recursiva,desdelarazalosnodoshoja. Alternativame nte, efectuandola sustitucin sobre las nodos hojaypropagndola hastael nodo raz. Composicin de sustituciones Los modernos procesadores de texto permiten (casi) simular este proceso de susti tucin. Dado un texto como f(x,b,g(x,c)) se puede requerir la sustitucin en todas las apariciones de la variable x por la cadena g(x,b). El resultado sera f(g(x,b), b,g(g(x,b),c)). Observe que: la sustitucin afecta a todas las apariciones de x en el texto original, no se modifican las nuevas apariciones de x (si las hubiera) introducidas por la sustitucin.

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Una nica sustitucin que afectavariasvariables Si el texto inicial hubiera sido f(x ,b,g(x,z)) se poda haber requerido simultneamente la sustitucin de las x por g(z,b) yla de lasz por a. Se habra obtenido entonces la cadena f(g(z,b),b,g(g(z,b),a)). Esta operacin no se encuentra generalmente en un procesador de texto. Supone apli car una nica sustitucin st, pero st asignaa cadavariableel trmino que debe sustituirla.Yla sust itucinde cada variable se produce simultneamente, sin interrelacin entre ellas. No se sustituyen primero las x y luego, sobre ese resultado, se produce la sustitucin de las z (las originalesylas que aparecen tras sustituir x). Compruebe, sobre la cadena ejemplo, que este proceso conduce a otr o resultado. Una sustitucin tras otra Si se dispone de dos sustituciones s1ys2 se pueden compo ner. Dada una cadena de entrada, se puede aplicar una de ellas (p.ej.,s1),sustituyendo sim ultneamente todas las variables de la cadena por el trmino asignado por s1. Despus, sobre el resultado f inal, se producen las sustituciones fijadas por s2. Definicin 2.23 (Composicin de sustituciones) Si s1y s2 son sustituciones sobre trmi nos, la composicin t = s1s2 es otra composicin sobre trminos definida como: tt = t[s1s2]=(ts1)[s2] = ((ts1)s2) donde t es un trmino. Es decir, sustituya en t primero (y simultneamente) cada variables por su trmino s ustituyente fijado en s1. Y, sobre la cadena resultante, sustituya simltneamente cada variable (aunque hayan aparecido tras la sustitucin anterior) por su trmino en s2. El resultado es bviamen te otro trmino, al que denominaremos ts1s2. En la definicin se ha denominado t aesta nuevasustitucin para resaltar que efectivamente es una nica sustitucin, aunque construida a partir de dos previas. Generalmente, a esta n ueva sustitucin se le denomina simplemente s1s2 , nombre que explicita su gnesis. El trmino correspon diente a t por esta nica sustitucin (compuesta a partir de las anteriores) es tt t[s1s2].

Observe que, con nuestra notacin postfija para composiciones, en xs1s2 es s1 la q ue se aplica primero (la ms prxima a la cadena original). sta misma composicin, en notacin prefija , se escribira como s2s1x. Ejemplo 2.24 Dadas las sustituciones s1 =[x/ f(z,a), y/w], s2 =[x/b, z/g(w)], aplicando la definicin previa: x[s1s2]=(xs1)[s2]= f(z,a)[s2]= f(zs2,as2)= f(g(w),a) y[s1s2]=(ys1)[s2]= w[s2]= ws2 = w z[s1s2]=(zs1)[s2]= z[s2]= zs2 = g(w) w[s1s2]=(ws1)[s2]= w[s2]= ws2 = w h(a,y,x)[s1s2] = ((h(a,y,x))s1)[s2]= h(a,w, f(z,a))[s2]= h(as2,ws2,( f(z,a))s2)= h(a,w, f(g(w),a)) De los resultados previos se sigue que la sustitucin s1s2 es: s1s2 =[x/ f(g(w),a), y/w, z/g(w)] En general:

2.1. Sintaxis 1. cualquier variable, como w, que no se sustituya ni en s1 ni en s2 tampoco se ver alterada por s1s2. Es decir, ws1s2 = w 2. todas lasvariables sustituidas en s1 resultarn sustituidas en s1s2. Observe cmo se llega tanto a xs1s2 = f(g(w),a) como a ys1s2 = w 3. todas las variables sustituidas en s2 que no lo fueran en s1, tambin sern susti tuidas en s1s2. Observe cmo se llega a zs1s2 = g(w) Obviamente, una vez que se dispone de la definicin de esta nueva sustitucin t = s1s2 t = s1s2 =[x/ f(g(w),a), y/w, z/g(w)] se puede aplicar directamente sobre cualquier trmino: h(a,y,x)[s1s2]=(h(a,y,x))t = h(at,yt,xt)= h(a,w, f(g(w),a)) Proposicin 2.25 Sean s1ys2 dos sustituciones con soporte finito, tales que s1 =[x 1/t1,...,xn/tn] y s2 =[y1/u1,...,yk/uk]. Entonces,la sustitucin compuesta s1s2 tiene soporte finito ,yviene definida por: s1 =[x1/(t1s2),...,xn/(tns2), z1/(z1s2),...,zm/(zms2)] donde x1,...,xn son todas lasvariables modificadas porla primera sustituciny z1,. ..,zm son slo algunas de las variables y1,...,yk, en particular, aquellas variables nuevas , no i ncluidas entre las x1,...,xn. En el ejemplo previo, las variables modificadas por la primera sustitucin eran x e y. Y las variables slo modificadas por la segunda se limitaban a z. Observe qu trminos se asignan a ca da una.

Proposicin 2.26 La composicin de sustituciones es asociativa: (s1s2)s3 = s1(s2s3) En general, la composicin no es conmutativa. Es decir, habitualmente s1s2 produci r una sustitucin distinta a s2s1 (salvo excepciones). Ejemplo 2.27 Sean las sustituciones: s1 =[x/ f(y), y/w,],s2 =[x/g(w), z/b],s3 =[y/b, w/ f(c), v/w] entonces: s1s2 =[x/ f(y), y/w, z/b] y (s1s2)s3 =[x/ f(b), y/ f(c), z/b, w/ f(c), v/w]

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Sustituciones en frmulas Cuando se produce la sustitucin de las variables de un trmino el resultado es otro trmino. Esto nos llev a extender el concepto de sustitucin hasta una funcin de trminos en trminos. De igual forma, cuando se sustituyen las variables de una frmula, el resultado es otra frmu la. De ah, que la simple sustitucin definida inicialmente pueda ser extendida como funcin de frmulas en frmulas. Ahora bien, una vez que somos capaces de calcular cualquier sustitucin, nos limit aremos a utilizar slo unas pocas . Aquellas que nosgaranticen unbuen comportamiento . En particular: 1. tan slo sustituiremos las apariciones libres de las variables 2. las apariciones de las variables que aporte cada trmino sustituyente deben res ultar libres en la frmula final Este camino formal tiene una recompensa valiosa: Las sustituciones de variables en frmulas, con las restricciones mencionadas, pro ducen nuevas frmulas que son tan satisfacibles (positiva o negativamente) como las de p artida. Este resultado ser fundamental para decidir relaciones de consecuencia via insati sfacibilidad. En concreto, esta es la estrategia que se utiliza en sistemas deductivos tales c omo los basados en Resolucino los basados enTablas Semnticas. Sustituir slo en apariciones libres Las definiciones siguientes tienen por objeti vo incluir esta restriccin en la propia definicin de sustitucin en una frmula . Definicin 2.28 Sea st una sustitucin sobre trminos. Se puede entonces extender, rec ursivamente, a una funcin s de frmulas en frmulas: 1. (Q(t1,...,tn))s = Q(t1st,...,tnst) 2. >s = >, ?s = ?, 3. (X)s = (Xs) 4. (XY)s

=(Xs Ys), para toda conectiva binaria * 5. (8xX)s = 8x(Xsx), (9xX)s = 9x(Xsx) Donde sx es una sustitucin sobre frmulas iguala s salvoel hechodequeno modificalavariable x. Ejemplo 2.29 Sea la sustitucin s =[x/ f(y), y/b]. Entonces (8x(Qx . Rxy))s = 8x((Qx . Rxy)sx)= 8x((Qx)sx . (Rxy)sx)= 8x(Qx . Rxb) (Qx !8xRxy)s =(Qx)s . (8xRxy)s = Q( f(y)) !8x((Rxy)sx)= Q( f(y)) !8xRxb (8x(Qx !8yRxy))s = 8x((Qx !8yRxy)sx)= 8x((Qx)sx . (8y(Rxy))sx)= 8x(Qx . 8y((Rxy)sxy)) = 8x(Qx !8yRxy)

2.2. Semntica 77 Observe que se ha incorporado, en la propia definicin de sustitucin sobre frmulas, la primera de las restricciones: dada una sustitucin, aplquese slo sobre las apariciones libre s de las variables. Notacin Suponga una frmula f. Resaltaremos, cuando interese, queexisten aparicione s libres de, p.ej., las variables x e y, mediante la notacin f(x,y). Se denotar como f(x/t1,y/t2) la frmula resultado de aplicar una sustitucin a f que sustituye las x libres por t1ylasylibres por t2. Usualmente, la notacin f(x,y) no requiere que estas dos sean las nicasvariables con apariciones libres.A vecesnoespreciso enumerartodas,cuandoloque realmentees significativoparalademost racinoel desarrollo es que al menos esas dos tengan apariciones libres. En una frmula del tipo 8xf no existen variables x libres. As, ninguna sustitucin, taly como se ha definido, modificar las x. Por otro lado, las apariciones de x que estuvieran ligadas por el cuantificador resultan apariciones libres en la subfrmula f (si slo se considera sta, sin el cuantificador previo). Ms adelante, dada una frmula como 8xf y una sustitucin, se le pedir que la efecte sobre f yobservar en los ejemplos que s se modifican lasx. Observe, en esos casos, que se requiere la sustitucin sobre la frmula f yno sobre la frmula8xf. Ejercicio 2.30 Aplique la sustitucin s =[x/ f(y), y/w] sobre las frmulas: Px . Qy Px !8yQy 9xPx !8yQy Producir slo apariciones libres La utilidad de esta restriccin (como de la anterio r) se entender cuando se explique la semntica de las frmulas de Primer Orden. Definicin 2.31 (Sustitucin libre para una frmula) Una sustitucin se denomina libre p ara una frmula cuando todas las apariciones de variables introducidas por la sustitucin en esa frmula resultan libres.

Ejemplo 2.32 La sustitucin [z/ f(x)] no es libre para la frmula Rz^9x(Px !9yRxyz) porque algunas de las apariciones de la variable x que introduce ocurren en el mb ito de un cuantificador 9x. 2.2 Semntica 2.2.1 Introduccin La interpretacin en Lgica de Proposiciones Para decidir si una frmula proposicional es verdadera se requiere interpretarla. La interpretacin se produce sobre un objeto matemtico: sobre una asignacin, sobre una funcin del conjunto de letras proposicionales en {0,1}. Basta una asignacin para que, de cualquier frmula, se decida su valor de verdad. E s decir, basta una asignacin para que se compruebe si esa interpretacin de la frmula la satisface. La definicin recursivade satisfaccinfacilita esta decisin,pormuy complejaque seala frmula.

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Es ms, sobre una misma asignacin se pueden interpretar todas las frmulas de un conj unto de frmulas dado. Se puede apreciar as su distinto comportamiento (su valor de verdad) f rente a un mismo estado de cosas (una misma interpretacin). Bastaba escribir la tabla de verda d conjunta, para todas las letras proposicionales que aparecan en esas frmulas. La interpretacin en Lgica de Primer Orden Los lenguajes de primer orden tienen un alfabeto ms expresivo: constantes, funciones, relaciones,... Para interpretar cualquiera de sus frmula es preciso un objeto matemtico ms complejo. De hecho, tanto ms complejo cuntos ms smbolos propios tengael lenguaje.Para no perdernos, cuandola notacin sea msfarragosa, conv iene ofrecer una descripcin coloquial de este objeto matemtico : 1. Escoja primero un conjunto U no vaco, cualquiera. 2. Por cada predicado mondico, como P(x), debe escoger un subconjunto de U. Por c ada predicado didico, como R(x,y) debe escoger una relacin binaria en U: un conjunto de pares de elementos de U. En general, por cada predicado n-dico, un conjunto de n-tuplas de elementos de U. 3. Por cada smbolo constante en la frmula debe escoger un elemento de U. 4. Por cada smbolo funcional, como g(x,z), en la frmula debe escoger una funcin sob re U con el mismo nmero de argumentos: 2, en el caso de g. Auna construccin como sta se la denominar estructura. Por ejemplo, si una frmula no contiene constantes, ni funciones y todos sus predicados son mondicos, una estructura adec uada es simplemente un conjuntoy variosde sus subconjuntos. Cualquier sentencia se puede interpretar sobre una estructura adecuada a esa frmu la. Si existen apariciones de variables libres, la interpretacin va a depender de quines se supone n que son esas variables sobre la estructura . En este caso es preciso establecer una corresponde ncia entre variables yelementos deU, que denominaremos asignacin. Relacionesyfunciones sobre un universo Sea U un conjunto no vaco. El conjunto Un es el conjunto de todas las n-tuplas de U. Un a relacin n-aria Rsobre U es un subconjunto de Un . Ejemplo 2.33 Sea U = {a,b,c}. Entonces,

U2 = {(a,a),(a,b),(a,c),(b,a),(b,b),(b,c),(c,a),(c,b),(c,c)} y U4 = {(a,a,a,a),(a,a,a,b),(a,a,a,c),(a,a,a,d),...,(c,c,c,b),(c,c,c,c)} Una relacin binaria R es un subconjunto de U2. Posibles relaciones binarias son: R1 = 0/ (sin pares de U2)oR2 = U2 (con todos los pares).Obien, R3 = {(a,a),(a,c),(b,a),(b,b),(c,c)} La relacin R3 se puede representar como una matriz, como una tabla (tabl. 2.1a). Si se fija en el par (a,c) . R3 sobre esta tablaverquelas filas representanel primer elementodelparylas column as el segundo. Existen233 relaciones Rk binarias distintas sobre un conjuntode3eleme ntos.

2.2. Semntica Tambinpueden representarse grficamentecomografos:dibujelosnodosa,byc;si(a,c) . R3 trace una flecha desde el nodo a hasta el c. Observe que alguna de estas flechas pueden ir de un nodo a s mismo. (a) R3 . U2 (b) f :U 7 . U R3 a b c a x x x b x x x b c Rf a b c x a

c x

Tabla 2.1: Relacionesyfunciones Una funcin f :Un 7 . U hace correspoder a cada n-tupla de su dominio Un un elemento de U. Observe la relacin binaria Rf . U2 de la tabla (tabl. 2.1b). Determina una funcin monaria f :U 7 . U.Es una funcin porque cada lneadela tabla contiene una marcayslo una .En general, las funciones n-arias son especiales relaciones (n+ 1)-arias. 2.2.2 Interpretaciones Dada una frmula f, una estructura adecuada a ella ser una construccin matemtica sobr e la que se pueda interpretar f: un conjunto U yla eleccinde un representante para cada smbolo propio empleado en f (constantes,funcionales,relacionales). En realidad, se ofrecer una interpretacin p ara cada smbolo propio del lenguaje, as se podrn interpretarvarias frmulas sobre una mis ma estructura an cuando alguna utilice un smbolo propio que otra no usaba. Definicin 2.34 (Estructura) Una estructura adecuada al lenguaje L(RFC) es un par hU,I. tal que:

1. U es un conjunto no vaco, denominado dominio o universo 2. Ies una funcin sobre el conjunto de smbolos propios de S= R [F [C que hace corresponder: (a) a cada smbolo relacional n-ario R. S, una relacin n-aria sobre U (b) a cada smbolo funcional n-ario f . S, una funcin n-aria sobre U (c) a cada constante c . S, un elemento de U Ejemplo 2.35 Suponga un lenguaje L(R ,F ,C) con una relacin binaria R, una funcin monaria f y una constante c. Las dos frmulas siguientes pertenecen a ese lenguaje: 8xRxc y 9xRf(x)c !8zRzz Para decidir suvalordeverdad sobre una misma estructura, primero es preciso esco ger un universoy elegir qu relacin sobre el mismo representa a R, qu funcin a f yqu elemento ac. Restrinjmonos a un universo U = {1,2,3}. Existen233 relaciones binarias distintas.Y33 funciones monarias distintas.Y3eleccionesde elemento representantede c. Salvo error de clcu lo, hay 2729 interpretaciones distintas sobre este universo (adecuadas a ese conjunto de smbolos propios). El nmero es lo de menos. Escojamos una de ellas: RIfI I = {(1,2),(2,1), (2,3)}, = {(1,1),(2,3),(3,3)}, c= 2

80 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Es decir, sobre este universo, 2 est relacionado por R con 1, la imagen por f de2 es3 = f(2) yel elemento2 representa a c. Cualquier frmula sobre este lenguaje se podr interpr etar en esta estructura. Las frmulas de alfabeto AS se pueden interpretar sobre un nmero infinito de estruc turas: puede escoger cualquieruniverso (finitoo infinito)y, sobrel, cualquier combinacind e eleccionesde subconjuntos, relaciones, funcionesyelementos (constantes). 2.2.3 Asignaciones Definicin 2.36 (Asignacin) Una asignacin Asobre una estructura hU,I. es una funcin A:Var7 . U: hace corresponder a cada variablex del alfabeto con un elemento del universo U. A Al elemento de U imagen de x por Ase le denotar preferentemente como x, en vez de A(x). Definicin 2.37 Suponga que hU,I. es una estructura adecuada a un lenguaje L(R ,F ,C). Yque A es una asignacin sobre esta estructura. Entonces, se puede ampliar el concepto de asignacin para que a cada trmino t del lenguaje le corresponda un nico elemento tI,A del universo U: I,AI c= c xtI,A = xA I,AI,A f(t1,...,tn)I,A = fI(t1 ,...,tn ) Los dos primeros casos son inmediatos. A cada constante le corresponde su elemen to por la interpretacin I (sea cual sea la asignacin). Y a cada variable le corresponde su e lemento por la asignacin A(sea cual sea la interpretacin). El ltimo caso se ocupa de trminos como g(

f(x),y,c), donde f es una funcin monaria del lenguajey g una funcin ternaria del lenguaje. Por ejemplo, suponga un universo de 3 elementos IAA donde c= 2, x= 1, y= 1. Adems, a la funcin f de la frmula le representa una funcin tal que fI(1)= 3. Entonces se trata de determinar qu termino es gI(3,1,2), que debe ser un eleme nto del universo. Definicin 2.38 (Asignacin variante de otra) Suponga que sobre una estructura se ha fijado una asignacin A,que hace correspondera cadavariabledela frmula conun elementodeluniver so. Otra asignacin Ax es una variante en x de Asi coincide con Aen la asignacin de toda var iable excepto para la variable x. 2.2.4 Satisfaccin Definicin 2.39 (Satisfaccin de una frmula) Sea hU,I. una estructura adecuada al lenguaje L(R ,F ,C) yAuna asignacin.Acada frmula f de L(R ,F ,C) se le hace corresponder un valor de verdad fI,A como sigue: 1. Frmulas atmicas ?I,A = 0,>I,A = 1 (t1 t2)I,A = 1siyslositA = tA 12 [R(t1,...,tn)]I,A = 1siyslosi(t1A ,...,tA) . RI n

2.2. Semntica 81 2. [y]I,A = [yI,A] 3. [. * c]I,A = yI,A* cI,A 4. [(8xy)]I,A = 1siyslosiyI,Ax para toda asignacin Ax variante en x respecto a A 5. [(9xy)]I,A = 1siyslosiyI,Ax para alguna asignacin Ax variante en x respecto a A 2.2.5 Ejemplos de interpretacin Slo con predicados Mondicos Los ejemplos de este apartado son bsicos. Consideran frmulas con, a lo sum o, 2 predicados mondicosy3constantes.No contienen funcionesniel smbolodeigualdad.En con creto, son frmulas de un lenguaje L(R ,F ,C) con: R = {P,Q}, F = 0/, C = {a,b,c} dondetodos los smbolos de R son mondicos. Para cada una de estas frmulas se escogern (1) un universo U, (2) una interpretacin I adecuaday(3) una asignacin A, sobrelosque deci direlvalor de verdad de la frmula en ese caso. Cada interpretacin de este lenguaje debe fijar: (1) qu subconjuntos del universo s on PI yQI y (2) qu elementos del universo son aI , bI ycI . En las frmulas que no contengan todos estos smbolos, basta especificar la interpre tacin slo para los smbolos que aparecen. Lo mismo ocurre con las asignaciones A: basta prec isar qu elemento u = xA del universo representa a cada variable x que aparece en la frmula. Salvoenlos ejemplos iniciales,envezdePI,se denotar smplemente comoP,en negrita, al subconjuntorepresentantedelpredicadoP enla frmula. Lo mismose har conlas constantes. Figura 2.4:Tres estructuras sobreel mismo universo

Ejemplo 2.40(Pc) El proceso de interpretacin que se propone se enuncia coloquialm ente como: yo no s qu propiedad formaliza P, pero en este universo de n elementos marco arbitr ariamente que estos m tienen esa propiedad; dme quin consideras que es c en este universoycompro baremossi se encuentra entre los m marcados .

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Sobre la figura (fig. 2.4b), si c es el elemento 1, entonces la frmula Pc es verd adera. Por contra, si se considera que2representaa c, entonces esfalsa. Observe que seha utilizado una interpretacin Iadecuada quefacilita quin es P en ese universoy quin es c . Ms formalmente, siempre se requiere un universo U,una interpretacinIadecuadayuna c orrespondencia Aentrevariablesyelementos.Enestecaso,elvalordeverdadde Pc resultar independiente de la asignacin A: no hay variables en la frmula. Por eso, se suele omitir: I hU = {1,2,3};PI = {1,3};c= 1. Entonces, aplicando la definicin de satisfaccin de una frmula: (Pc)I,A = 1 siyslosi cI,A . PI siyslosi cI . PI siyslosi 12{1,3} Luego Pc resulta verdadera sobre esta estructura. Sobre toda estructura en que P c sea verdadera su negacin Pc esfalsa.Ysobre toda estructura en que Pc seafalsa, su negacin Pc es ve rdadera. Una frmula como Pc podra representar la frase: Antonio es rubio o El nmero0 es par .Y una frmula como Pc: Antonio no es rubio o El nmero0 no es par ;o tambien: Antonio es no-rubio o El nmero0 es no-par . Ejemplo 2.41(Px) Observe la figura (fig. 2.4b). La frmula Px es verdadera sobre l a siguiente estructurayasignacin: hU = {1,2,3};PI = {1,3}i, con A(x)= 3 Efectivamente, aplicando la definicin de satisfaccin de una frmula: (Px)I,A = 1 siyslosi xI,A . PI siyslosi xA . PI siyslosi 32{1,3} Sin embargo, sobre esta misma estructura, si se utiliza otra asignacin A.

hU = {1,2,3};PI = {1,3}i, con A0(x)= 2 entonces la frmula Px resultafalsa. Observeque slovariandola asignacin sobre x, en la misma estructura,se consiguequela frmulaseabienverdadera,bienfalsa. Hay dos casos extremos donde lo anterior no se produce. En estructuras como (fig . 2.4a), donde P= U, ninguna asignacin consigue que la frmula Px sea falsa. Y en (fig. 2.4c), donde P= 0/, ninguna asignacin consigue que la frmula Px sea verdadera. Una frmula como sta puede representar la frase depende de la asignacin de x. x es rubio

x es par . Su valor de verdad

Ejemplo 2.42(8xPx) Una frmula como sta puede representar la frase todos (los elemen tos del universo) son rubios o todos (los elementos del universo) son pares . Es slo verdader a en las estructuras en que Pseaigualatodoeluniverso(fig.2.4a)yfalsaen otros casos(byc). Observe que su valor de verdad no depende de la asignacin. De hecho, as se valora el cuantificador: si toda asignacin de la variable x hace verdadera Px entonces 8xPx es verdadero. En (fig. 2.4a) las tres asignaciones posibles A(x)= 1, A0(x)= 2y A00(x)= 3 hacen verdadera Px sobre esa estructura;ypor tanto, 8xPx es verdadera sobre esa estructura. (8xPx) La frmula 8xPx es verdadera donde 8xPx esfalsa: (fig. 2.4b-c). Podra representar la s frases no todos son rubios o no todos son pares .

2.2. Semntica (8xPx) No confunda la frmula anterior con 8xPx: todos son no-rubios , todos son no-pares . O, ms bien, ninguno es rubio , ninguno es par . Esta frmula slo es cierta en (fig. 2.4c) donde todos los elementos verifican P, es decir, donde todos estn en P , complementario de P. Ejemplo 2.43(9xPx) Una frmula como sta puede representar la frase alguno (elemento del universo) es rubio o hay alguien (elemento del universo) que es par . Es slo verdadera en las e structuras en que Psea distinto delvaco (fig. 2.4a-b)yfalsa en otro caso (c). Observe que su valor de verdad no depende de la asignacin. De hecho, as se valora el cuantificador: si al menos una asignacin de la variable x hace verdadera Px entonces 9xPx es ver dadero. En (fig. 2.4b), dos de las asignaciones posibles A(x)= 1, A0(x)= 3 hacen verdadera Px sobre esa estructura;ypor tanto, 9xPx es verdadera sobre la estructura de (fig. 2.4b). (9xPx) La frmula 9xPx es verdadera donde 9xPx esfalsa: (fig. 2.4c). Podra representar las frases no existe alguien rubio o ningn nmero es par . (9xPx) No confunda la frmula anterior con 9xPx: alguien es no-rubio , alguien es no-par . Paraqueesta frmulaseaverdaderabastaqueexistaun elementoquetengala propiedadP, que est fuera del conjunto P . Ejercicio 2.44 Interprete los siguientes pares de frmulas sobre la misma estructu ra: 8xPx , 9xPx 9xPx , 8xPx 8xPx , 9xPx 9xPx , 8xPx Qu distingue a esos pares de frmulas de los siguientes? Pa , Pc Px , Pc Px , 9xPx Pc , 9yPy Ejemplo 2.45(9x(Px. Qx)) Esta frmulaesverdaderaenlas estructuras dondeal menosun elemento pertenece a PI y(ese mismo elemento) pertenece tambin aQI . Es decir, cuando la i nterseccin de ambos conjuntos no sea vaca. Efectivamente, en ese caso, hay una asignacin de x

que verifica (Px. Qx),ypor lo tanto 9x(Px. Qx) es verdadera. Sobre universos finitos, puede ser til la siguiente aproximacin. Considere su eval uacin como un proceso iterativo, como un bucle : . 9x . . (Px. Qx) En cada iteracin (para cada asignacin), la variable x delbucle es un elemento dist into del universo. Suponga que en la primera iteracin es xA = 1. Entonces, enel cuerpo delbucle se preguntasi (P1. Q1) ; en la siguiente iteracin (P2. Q2) , ..., hasta que finalizan los elementos del universo. En realidad, se abandona el proceso (contestando afirmativamente)tan pronto como se verifica la frmula para un elemento. Slo es preciso recorrer todo el universo para ofrecer una respu esta negativa. Obviamente, para universos infinitos hay que armarse con algo de paciencia.

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Observelafigura(fig.2.5a).La frmula analizadaesverdaderaenella.Dehecho,bastaqueex ista (al menos) un elemento en la regin PQ, con independencia de los elementos que hub iera en las otras 3regiones. 9x(Px. Qx) Esta frmula esfalsa en (fig. 2.5a). Requiere que un mismo elemento noverifique P pero si Q. Es decir, debera haber (al menos) un elemento en la regin PQ. 9x(Px. Qx) Esta frmula esverdadera en (fig. 2.5a). Hay dos elementos(1y3) que cuando se les pregunta ,en ese hipotticobucle,siverifican Po Q(o ambos) responde afirmativamente. De hecho, podan estar situado en cualquiera de las3 regiones que comprende la unin P. Q, que no debe ser vaca. Figura 2.5: Estructuras con dos predicados mondicos Ejemplo 2.46((9xPx) . (9xQx)) Para interpretar esta frmula es fundamental percatarse de que hay dos mbitos disjuntos cuantificados. Siguiendo con la imagen delbucle, corresponde ra al siguiente proceso: 26. 26 . ^ 9x Px 9x Qx Se pregunta primero,a todoslos elementosdeluniverso,si tienenla propiedad P. Si se encuentra un elemento (una asignacin de la variable x delbucle)queloverifique, entoncesse sale de este mbito dando un valor verdadero a la subfrmula (9xPx) . Otro tanto se hace con la subfrmula 9xQx) . Yse evala su conjuncin.

En laevaluacin de 9x(Px^Qx),lasdosvariablesdel mbitode9xreferencian al mismo eleme nto. En (9xPx)^(9xQx) noexiste esa relacin entre esasvariables,de mbitos distintos. Alguienes rubio yalguien es alto se hace verdadera aunque el rubio (3) no sea el mismo que el alt o (1). Observe que una evaluacin equivalente se obtiene para la frmula (9xPx) . (9yQy)

2.2. Semntica En lgica de proposiciones, cuando se repeta una letra como pdentro de la misma frmu la representaba la misma p , la misma proposicin. En lgica de primer orden las variables (slo las variables) puede que no tengan esa restriccin: dependen del mbito del cuantificado r en que se encuentren. Ejemplo 2.47(9x9y(Px. Qy)) Para poder evaluar esta frmula primero analizaremos una previa: 9y(Px . Qy).Volviendoala imagen delbucle,lavariable yva a recorrer todas las posibles as ignaciones, luego no hacefalta precisar una en concreto para ella. Sin embargo,lavariable li bre x va a adoptar el valor , el elemento (nico) que se le asigne: . 6. 9y (Px. Qy) Sobre la figura (fig. 2.5a), con la asignacin A(x)= 3la frmula es verdadera. Observe que, dentro de estebucle, se pregunta primerosi (P3. Q1) , despus si (P3. Q2) ,si (P3. Q3) . La primera asignacin de y (A(y)= 1) satisface el cuerpo delbucle, la frmula cuantificada existencialmente. Luego hace verdadera la frmula existencial. 9x9y(Px^Qy) Los mbitosdelos cuantificadoresose anidanoson disjuntos, sintcticamente nunca se solapan. Esta es una frmula del tipo 9xf, donde f puede informalmente verse como unbucle anidado. La frmula global ser verdadera si alguna asignacin de x hace verdadera f. En concreto, como se ha visto antes, para A(x)= 3(o paraA(x)= 1) se satisface la frmula existencial interna. Ejemplo 2.48(8x(Px . Qx)) Observe la figura (fig. 2.5b). En tres de las cuatro regiones marcadas puede haber elementos sin que esta frmula seafalsa: . 6. 8x (Px . Qx)

De este bucle informal slo se sale afirmativamente si todas las asignaciones de x v erifican la sub frmula de su mbito. Basta que haya un elemento en PQ,quehagaverdaderoel antecedent eyfalso el consecuente, para que seevale comofalso todoelbucle. Observe que una estructura en que Pno tenga elementos tambin satisface esta frmula . No se requiere que Ptenga elementos, pero, si los tiene, deben estar en la regin PQ. Es decir, la frmula se hace verdadera donde P. Qes verdadero. Esta frmula puede leerse todos los Pson Q . Ejercicio 2.49 Evale sobre la misma estructura los siguientes pares de frmulas: 8x(Px . Qx) , 8x(Px. Qx) 8x(Px. Qx) , 8x(Px. Qx) 8x(Px. Qx) , 9x(Px. Qx) Didicos Las frmulasde este apartado utilizan,alo sumo,unparde predicados didicos(Ry S), un parde predicados mondicos(PyQ)yun parde constantes(a yb).

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Ejemplo 2.50(Rxy) Esta frmula, con ambas variables libres, es verdadera sobre la siguiente estructurayasignacin: hU = {1,2,3};RI = {(1,3),(2,2)}i, con A(x)= 1,A(y)= 3 Grficamente, sobrela tabla (tabl. 2.2a), suponeverificarquesise entraporla fila1y la columna3, la casilla pertenece a la relacin. (a) R. U2 (b) S. U2 R 1 2 3 1 2 3 S x x 1 2 3 1 2 3 x x x x x Tabla 2.2: Dos relaciones sobre el mismo universo Ejemplo 2.51 (9yRxy) yasignacin: Esta frmula, con la variable libre x, es verdadera sobre la siguiente estructura hU = {1,2,3};RI = {(1,3),(2,2)}i, con A(x) = 1 Puesto que existe una asignacin de y que satisface R1y. Grficamente, sobre la tabl a (tabl. 2.2a), suponeverificar quesi se entra porla fila1para alguna columna y, la casilla pert enece a la relacin. Ejemplo 2.52(8x9yRxy) Esta frmula ya no requiere asignaciones: todas las variable s estn ligadas.

Informalmente se puede leer como casilla (x,y) pertenece a la relacin.

para toda fila x existe una columna y tal que la

Sobrela tabla (tabl. 2.2), esfalsa en (a),si RI = Rpero es verdadera en (b), si RI = S. 9y8xRxy Existe una columna y tal que, para toda fila x sobre esa columna, la cas illa pertenece a la relacin. Sobrelatabla(tabl.2.2),esfalsaen(a),peroverdadera en(b)para yA = 2. Observe que esta frmula es la que se obtiene de la ltima analizada permutando los cuantifi cadores: no son equivalentes, no es lo mismo decir todo el mundo quiere a alguien que alguien es qu erido por todo el mundo . Puede comprobar que la frmula 9x8yRxy no se satisface sobre ninguna de las dos re laciones de la tabla (tabl. 2.2). Ejemplo 2.53(8x8y(Rxy . Sxy)) Interprete RI = RySI = Sdela tabla (tabl. 2.2). Este doblebucle anidado esverdaderosi en todas sus3 3iteracionesel condicional no se hacefalso.Para ello basta que nuncael antecedente seaverdaderoyel consecuentefalso: que ninguna casilla ma rcadade Rdeje de estar marcada en S. Es decir, que R. S, el conjunto de pares Rsea un subconjunto del de S. Compruebe que, si esta frmula es verdadera sobre una estructura, no pueden dejar de ser verdaderas 9x8y(Rxy . Sxy) y8x9y(Rxy . Sxy), menos exigentes. Ejemplo 2.54(9x(8yRxy . Px)) Estaexpresin podra formalizar una sentencia como existe alguien quequiereatodoelmundoyquees rubio .Enuna estructuracomo: hU = {1,2,3};RI = {(1,3),(2,1),(2,2),(2,3)}, PI = {(2}. efectivamente existe alguien (el 2) que verifica esta frmula. Observe que si algui en quiere a todo el mundo no puede dejar de quererse a s mismo .

2.2. Semntica 87 La interpretacin de predicados polidicos U(x1,...,xn) es grfica e intuitivamente menos inmediata. Tambin lo es la interpretacin sobre universos infinitos o con muchos elementos. Es preciso utilizar sistemticamente la definicin formal de satisfaccin. Esperamos que los ejem plos previos hayanfacilitadoel uso del formalismo. Funciones e igualdad En esta seccin se completan los posibles smbolos propios que pueden utilizarse en un lenguaje de primer orden. Ejemplo 2.55(8xRxf(c)) Esta frmula podra representar la sentencia todo el mundo qui ere a la madre de Juan . Grficamente, considere la estructura de la tabla (tabl. 2.2b), dond e cI = 3y la funcin fI :U 7 . U es tal que fI(3)= 2. La frmula es verdadera en esa estructura.

8xRf(x)x Esta frmula podra ser una versin simblica de la expresin mi mam me mima : par toda persona, su madre quiere a esa persona. Considere la relacin de esta frmula c on 8x9yRyx. Cul de ellas no puede dejar de verificarse donde se verifica la otra? Ejemplo 2.56(Pc^8x(Px . x c)) Esta frmula es una conjuncin: slo es verdadera cuando se satisfagan ambas subfrmulas. As, cI debe pertenecera PI,yademsel condicionalno debe serfalso para ninguna asignacin de x. Es decir, nunca puede darse que x tenga la propiedad Psin que coincida que esa x es c. En pocas palabras: c tiene la propiedad Pyes el nico del universo que la tiene. Observe que el predicado didico no se interpreta arbitrariamente como cualquier relacin binaria sobre el universo. Una interpretacin normal requiere que t1 t2 seaverdad cuandoel elemento que representa a t1 sea el mismo que el que representa a t2: t1 I = t2I . Ejemplo 2.57(8x8y8zg(g(x,y),z) g(x,g(y,z))) Esta frmula slo es verdadera sobre estructuras donde la funcin binaria gsea asociativa. Por poner un ejemplo con universo infini to, considere el conjunto de los nmeros naturales donde gI es la funcin suma. 2.2.6 Conceptos semnticos bsicos En las notas sobre semntica proposicional se utilizaron profusamente las tablas d

e verdad para fijar los conceptos de consecuencia lgica, validezyequivalencia. Para aprovechar estas mismas intuiciones basta considerar que ahora, para una frmula cualquiera, tiene algo parecido a una tabla de verdad con infinitas lneas (interpretaciones) distintas . Todos los esquemas utilizados en lgica de proposiciones siguen siendo vlidos: as, u na frmula ser consecuencia de otra si es verdadera en todas las lneas en que sta lo es (y qui z en alguna ms). Y un conjunto de frmulas ser satisfacible si existe al menos una lnea (una interp retacinasignacin) donde coincidan en ser verdaderas. Definicin 2.58 (Satisfacibilidad) Una frmula es satisfacible si existe algn univers o, interpretacinyasignacin donde seaverdadera. Un conjuntode frmulas es satisfaciblesiexiste algn universo, interpretacinyasignacin donde coincidan todas en serverdaderas. Definicin 2.59(Validez) Una frmula f es verdadera en un universo, con interpretacin Iyasignacin A, si se satisface fI,A en el mismo. Una frmula es vlida si se satisface para todo universo, toda interpretacinyasignacin.

88 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Una frmula es vlida si y slo si su negacin es insatisfacible. Un conjunto de frmulas es satisfaciblesiyslosila frmula conjuncinde todas ellas es satisfacible. Definicin 2.60 (Consecuencia) Una frmula f es consecuencia lgica de un conjunto de frmulas F si en toda estructura hU,I. yasignacin en que todas las frmulas deF sean verdaderas tambin lo es f. Se expresar entonces como F |= f. Es decir, si las frmulas de F slo fueran simultneamenteverdaderas en3casos, f debera serlo en esos 3 casos (y opcionalmente puede serlo en alguno ms). Si el conjunto F es insatisfacible cualquier frmula es consecuencia lgica suya. Definicin 2.61 (Equivalencia) Dos frmulas f y. son equivalentes si f |= . y. |= f. 2.3 Deduccin Natural Los sistemas deductivos en Lgica Proposicional eran (casi) un lujo. Ylo eran, en tanto que tericamente mediante tablas de verdad podan decidirse las cuestiones semnticas bsicas sobre frmu las dadas. Otro tema, tanto en los mtodos semnticos como en los sintcticos, era su comp lejidad temporal. Las consideraciones siguientes tratan de presentar las sutilezas que deben consi derar los sistemas deductivos en Lgica de Predicados, sean stos del tipo que sean. 2.3.1 Consideraciones previas Decida cules de estas consecuencias admite intuitivamente. Los prrafos siguientes confirmarn su intuicin. 1. 8xPx |= Pa? (todos los elementos tienen la propiedad P, luego el elemento a la tiene) 2. 9xPx |= Pa? (algn elemento tiene la propiedad P, luego el elemento a la tiene) 3. Pa|= 8xPx ? (el elemento a tiene la propiedad P, luego todos la tienen) 4. Pa|= 9xPx ? (el elemento a tiene la propiedad P, luego alguno la tiene) No son consecuencia ... La segundaytercera propuestas no severifican. Entre las

interpretaciones que satisfacen 9xPx, efectivamente, algunas satisfacen Pa, pero no todas. Para f ijar ideas, en toda situacin en que alguien es rubio no tiene por qu satisfacerse de forma general que an es rubio . Formalmente,9xPx 6|= Pa. Tampoco en toda situacin en que Juan es rubio debe satisfacerse que todos sean rubio s . Puedequeexistan situaciones dondese satisfagan ambas,perola primeranogarantiza generalmentela satisfaccin de la segunda: Pa6|= 8xPx. Para negar una relacin de consecuenciaf1,...,fn |= . basta mostrar un contrajemplo, una interpretacin que satisface a todas las frmulas de {f1,...,fn} pero no a y. En nuestro caso: I 2. 9xPx 6|= Pa I= hU= {1,2}, con PI = {1},a= 2. I 3. Pa6|= 8xPx I= hU= {1,2}, con PI = {1},a= 1. Es importante insistir en que 9xPx 6|= Pa. No siempre que alguien tiene la propiedad P se puede asegurar que precisamente este determinado elemento la tiene .

Ju

2.3. Deduccin Natural Son consecuencia ... Sin embargo, s se puede afirmar: 1. 8xPx |= Pa 4. Pa|= 9xPx 1. Siempre que todos los elementos del universo, todas las asignaciones posibles de la variable x, resultan pertenecer a P,nosevaapoder escogerun elemento representantedela consta nte a que no pertenezca a P. 4. Siempre que ha sido posible encontrar un representante de a en el universo tal que pertenece a P, basta asignar ese elemento a x para que se satisfaga Px ypor tanto9xPx. Al finyal cabo, esta ltima frmula se satisface si hay alguna asignacin de x que satisface Px. Ejemplo 2.62 Considere la frmula universalmente cuantificada: 8y(Qy . Ryy) Una de las (infinitas) interpretaciones que la satisfacen es: I= hU = {1,2,3}, con QI = {1,2},RI = {(1,1),(1,3),(2,2)}. Esto es as porque, cuando se considera que yes el elemento 1, efectivamente: 0Q1. R11. , ms formalmente,1 . QI . (1,1) . RI Y porque resulta verdadera cualquier otra asignacin de y. Compruebe que son verda deras tanto 0Q2. R22. como 0Q3. R33. . Compruebe que en todos los modelos en que es verdadera la frmula 8y(Qy . Ryy) tambin lo es una frmula como Qa . Raa. Propiedades preservadas La pregunta inicial se poda haber planteado sobre frmulas ms com plejas, como las de la segunda columna de esta tabla:

1. 8xPx |= Pa? 2. 9xPx |= Pa? 3. Pa|= 8xPx ? 4. Pa|= 9xPx ? 8x Px . (Qz_9yRyx) |= Pa. (Qz_9yRya) ? 9x Px . (Qz_9yRyx) |= Pa. (Qz_9yRya) ? Pa. (Qz_9yRya) |= 8x Px . (Qz_9yRyx) ? Pa. (Qz_9yRya) |= 9x Px . (Qz_9yRyx) ? 8x. |= j(x/a) ? 9x. |= j(x/a) ? j(x/a) |= 8x. ? j(x/a) |= 9x. ? Para cada caso, para cada lnea, la respuesta es la misma que la que se adelant par a las frmulas iniciales ms sencillas. Es decir, dada una frmula existencial (lnea 2) no resultar c onsecuencia lgica de ella la que se produzca eliminando el cuantificadory particularizando (sus tituyendo) la variable x por una constante a. Esto es lo que expresa como j(x/a).

En la tercera lnea, una expresin como j(x/a) |= 9x. se interpreta como que la hiptesis tiene la misma formaqueladela supuesta conclusin,sia stasele hubiera eliminadoel cuantif icadory sustituido las x por a. Todos los sistemas deductivos que siguen hacen uso adecuado de estas particulari zaciones, que toman la forma sintctica de una sustitucin. Todas las restricciones sobre las mism as (qu puede ser sustituidoyqu sustituyente)garantizarnen cada casoquese mantieneelbuen comport amiento semntico de la expresin obtenida. Por buen comportamiento semntico entendemosque,aveces,sequerrgarantizarquelaexpresin resultante sea consecuencia de la inicial: que todo modelo de la primera lo sea de la segunda. O, a veces, algo menos fuerte, que sean ambas satisfacibles o ambas insatisfacib les. Observe que esto ltimo slo requiere que si hay un modelo que satisface una de las frmulas entonces hay un modelo (quiz distinto) que satisface a la otra. Por ejemplo, si b ien 9xPx 6|= Pa, sin embargo son igualmente satisfacibles. Basta que se muestre un slo modelo de una p ara (rectificndolo si es necesario) obtener un modelo de la otra.

90 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 2.3.2 Cuantificadores universales Ya se ha expuesto un sistema de deduccin natural para la Lgica de Proposiciones. C on aquellas reglas de inferencia se puede, por ejemplo, demostrar (vase fig. 2.6a): p. q,q. r . p. r Sin ampliar aquellas reglas de inferencia puede demostrarse (vase fig. 2.6b): 9xPx !8yQy,8yQy !8zSz `9xPx !8zSz Observe este ltimo esquema deductivo: se obtiene por sustitucin uniforme de cada l etra proposicional por una frmula de primer orden. 1 p. q premisa 1 9xPx. 8yQy premisa 2 q. r premisa 2 8yQy . 8zSz premisa 3 p suposic 3 9xPx suposic 4 q !E1,3 4 8yQy !E1,3 5 r !E2,4 5 8zSz !E2,4 6 p. r !I3,5 6 9xPx. 8zSz !I 3,5 (a) Frmulas proposic. (b) Instancias de frm. proposic. Figura 2.6: Inferencia sobre instancias de frmulas proposicionales No obstante, con las reglas expuestas hasta el momento no se puede deducir un se cuente correcto como: 8x(Px . Qx) 8x(Qx . Sx) 8x(Px .

Sx) Es preciso, por tanto, aadir nuevas reglas de inferencia para (cuando se requiera ): abrir las frmulas cuantificadas (eliminar cuantificadores) aplicar las reglas de inferencia proposicionales cerrar las frmulas resultantes (introducir cuantificadores) Existen, respectivamente, una regla de introducciny otra de eliminacin para cada u no de los cuantificadores. Eliminacin La eliminacinde un cuantificador universal es intuitivay no requiere demasiadas c autelas: 8x. 8xE j[x/t] Es decir, de una frmula universal 8x. se puede derivar en cualquier momento una particularizacin: la que resulta de instanciar todas las apariciones libres de x en . por un trmino cualquiera t. Tan slo se requiere que el trminot sea libre para x en j.

2.3. Deduccin Natural Ejemplo 2.63 Por aplicacin directa de esta regla, sin complicaciones, se deriva: 8x(Qx. Rxa) 8xE Qg(y,b) . Rg(y,b)a donde el trmino t = g(y,b) ha sustituido a todas las apariciones libres de x en esa subfrmula (Qx. Rxa). Ejemplo 2.64 Por aplicacin de esta regla se deriva: 8x(Qx^9xRxx) 8xE Qa^9xRxx donde el trmino t= aha sustituidoatodaslas apariciones libresde xen esa subfrmula (Qx^9xRxx). Una frmula como 8x(Qx^9xRxx) conviene escribirla en su forma equivalente 8x(Qx^9yRyy). No obstante, sintcticamente puede ocurrir, y la instanciacin (por sustitucin) slo de be afectar a todas las apariciones libres de x tras prescindir del cuantificador 8x. Ejemplo 2.65 Por aplicacin incorrecta de esta regla se podra derivar: 8x(Qx^9yRxy) incorrecto!! 8xE Qy^9yRyy donde el trmino t = yha sustituido a todas las apariciones libres de x en esa frmula (Qx^9yRxy), pero no era un trmino libre para x en esa frmula. El trmino t = y con el que se sustituye a x no es libre para x en esa frmula porque produce incorrectamente una aparicin ligada de y. Ejemplo 2.66 Un ejemplo algo ms completo: 1 8y(Py. Qy) premisa 2

Pa premisa 3 Pa. Qa 8yE :1 4 Qa !E :2,3 Observe que Pa es una de las premisas. Para poder concluir Qa es preciso instanc iar la frmula universal de (1) con la sustitucin [y/a]. Cualquier otra instanciacin, de las much as posibles, no permite concluir Qa. Introduccin El ejemplo ms citado de generalizacin se encuentra en la geometra eucldea. En ella h ay varias frmulas que se aceptan como premisas. Y un argumento podra comenzar y acabar as: Sea un triangulo a cualquiera [...varios pasos deductivos...] por lo tanto, en a sus ngu los suman 180 grados, as que en todo tringulo sus ngulos suman 180 grados . La correccin del argumento reside en que a es un tringulo cualquiera: es decir, en ninguna de las premisas (o suposiciones previas no cerradas) aparece ese trmino a. Ninguna fr mula previa fija propiedades especiales para ese tringulo a. Por otro lado, toda frmula universal previa se puede particularizar para ese a(co mo paracualquier otro trmino). Trabajando, inferiendo, a partir de estas propiedades no especficas de a se puede

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN llegara una determinadaexpresin.La generalizacindel resultadose produce sustituyen do todaslas apariciones de a por una variable (por ejemplo, x)yligando esta variable, antepo niendo8x. a . . . j[x/a] 8xI 8x. Ejemplo 2.67 Unbreve ejemploque incluye eliminacine introduccinde cuantificadoresu niversales: 1 8xPx premisa a 2 Pa 8yE :1 3 8yPy 8xI :2 El sentidodelacaja,del marcoquerodeaala frmula(2)es: apartirdeestepuntovamosahablar de un trmino a, no utilizado antes, sin propiedades especficas, con afn de generalizar los resultados . Observe que la caja slo marca el mbito donde se utilizar el trmino a: no se abre por que se haga una suposicin que haya que eliminar posteriormente. De hecho, la frmula (2) no es una de estas suposiciones adicionales, sino la particularizacin de una propiedad general para este trmino a. En este ejemplo, el resultado que se quera conseguir para ese a se consigue en un slo paso: a tiene la propiedad P. Como Pase puede obtener a partir de Py mediante la sustitu cin [y/a], se ajusta al esquema propuesto parala regla,y se puede generalizar como 8yPy. Ejemplo 2.68 Otro ejemplo breve que incluye tanto eliminacin como introduccin de u niversales: 1 8x(Px.

Qx) premisa 2 8y(Qy. Sy) premisa a 3 Pa. Qa 8xE :1 4 Qa. Sa 8yE :2 5 Pa suposic 6 Qa !E :3,5 7 Sa !E :4,6 8 Pa. Sa !I :5,7 9 8x(Px. Sx) 8xI :8 2.3.3 Cuantificadores existenciales Introduccin La introduccin del cuantificador existencial tambin es directa e intuitiva: j[x/a] 9xI 9x. Si un elemento a tiene cierta propiedad, se puede afirmar que existe algn element o que la tiene.

2.4. Tablas semnticas Ejemplo 2.69 1 8x(Px. Qx) premisa 2 Pa. Qa 8xE :1 3 Pa ^E :2 4 Pa. Sa _I :3 5 9x(Px. Sx) 9xI :4 Eliminacin La eliminacindel cuantificadorexistencialnosepuede realizar directamente:yaseha v istoque aunque se conozca que alguien tiene cierta propiedad no se puede derivar que tal elemento determinado la tiene . De hecho, la regla de eliminacin del existencial tiene esta otra forma ( no muy intuitiva): a j[x/a] . . 9xjx . . 9xE . Es decir, si se conoce que alguien tiene cierta propiedad se abre una caja con la suposicin de que es un determinado elemento, por ejemplo a. Esta constante no debe aparecer e

n ninguna frmula previa (fuera de la caja). Tampoco se exportar posteriormente fuera de ese mbito. De hecho, en . no debe aparecer este trmino. Ejemplo 2.70 1 9x(Px. Qx) premisa a 2 Pa. Qa suposic 3 Pa ^E :2 4 9xPx 9xI :3 5 9xPx 9xE :1,2 2.4 Tablas semnticas 2.4.1 Frmulas proposicionales Recordemos las propiedades bsicas de los tableaux para frmulas proposicionales: 1. se utilizan para decidir la satisfacibilidad de un conjunto de frmulas; indire ctamente, para decidirla relacinde consecuencia entre una frmulayun conjunto: niegue aqullae incorprela al conjunto inicial analizado 2. se construye un primer rbol, con una sola rama, que consta de tantos nodos com o frmulas haya en el conjunto inicial 3. las ramas se pueden bifurcar o ampliar linealmente; los nodos aadidos son subfr mulas adecuadas (negadas o no) de una frmula en esa rama

94 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 4. una rama es satisfacible si lo es el conjunto de todas sus frmulas; obviamente , si entre ellas se encuentran tanto una frmula como su negacin, la rama es insatisfacible 5. un rbol es satisfacible si lo es alguna de sus ramas 6. el arbol inicial es tan satisfacible como los sucesivos rboles ampliados; as, s i se detecta que alguno de ellos es insatisfacible, tambin lo era el conjunto inicial de frmulas Ejemplo 2.71 Observe el rbol de la figura (fig. 2.7). Muestra que, de la hiptesis p. (q. r), es consecuencia lgica r !p. Ms apropiadamente, que esto segundo se deduce de aquello pr imero. Pero en este sistema (consistente) todo lo que se deduce es consecuencia. [nodos 1-2] El rbol inicial lo constituyen el nodo1 (nica hiptesis)yel nodo2 (negac in de la supuesta conclusin). Situados en el nodo ms bajo de esta rama (el 2), tratamos de ampliarla descomponiendo adecuadamente alguna de las frmulas de esa rama. Estratgicamente, s e recomienda descomponer primero las frmulas a (conjuntivas)ydespus las (disyuntivas).

[nodos3-5] Optamospor utilizarla frmula2(a, conjuntiva):dalugara unaexpansin linea lde esa rama (nodos3y4).Y seguimosexpandiendo: estamosenel nodo4ypodemosexpandir esa rama utilizando cualquieradelas frmulasdela misma. Entrelasdiversas opciones,seop tapor utilizar la propia frmula 4: la doble negacin se puede expandir como sin negacin (nodo 5). [nodos 6-7]Enel nodo5se decideexpandirla frmula1(b, disyuntiva), que bifurca la r ama (nodos 6y7). La rama del nodo6 se puede cerrar inmediatamente: entre las frmulas de esa rama (1-6) hay tanto una frmula (la 6) como su negacin (en 5). [nodos 8-9]Enla rama del nodo7 nose observa an este tipode contradiccin. Pero toda va se puedenexpandir frmulasde esa rama;en concreto,la propia frmula7(detipo a). Se obti enen los nodos8y9.Yel nodo9esla negacindela frmula del nodo3, en esa misma rama desde la raz. El rbol se ha cerrado. Luego el conjunto de partida(. en nodo1, . en nodo2)era insatisfacible. As que se ha demostrado que . . y, es decir, que . |= y. Ejemplo 2.72 El rbol de la figura (fig. 2.8) es igual al del ejemplo previo (fig. 2.7). Compare las

frmulasde unoyotro: todaslas frmulasdelsegundo ejemplose obtienen,por sustitucin un iforme, de las del primero. Observe cmo se produce el cierre del segundo ejemplo: donde a ntes se cerraban en frmulas atmicas, ahora se pueden cerrar en sus frmulas sustituyentes. El rbol de la figura (fig. 2.9) es ya una primera incursin en lgica de predicados. Sin embargo, no sevana necesitar aqu reglas adicionales: tambin es una instancia por sustitucin del primer rbol considerado. Compruebe qu frmula ha sustituido a qu proposicin. 2.4.2 Notacin uniforme En lgica de predicados, no todas las relaciones de consecuencia entre frmulas tien en raz puramente conectiva (proposicional). Por eso se requieren nuevas reglas de inferencia. En concreto, en este sistema, se aadirn dos nuevas reglas: 1. una, para manipular frmulas universalmente cuantificadas (tipo g)

2.4. Tablas semnticas 1. (p. (q. r)) 2. (r !p) a1,2 3. r a2,2 4. p ,4 b1,1 b2,1 . 6p. ()7^qr. ?,5 a1,7 5p. ?????. 8. q . a2,8 9. r ?,3 Figura 2.7:Tableau que confirma que p. (q. r) `r !p 1. ((p. p0) . ((q. q0) . (r . r0))) 2. ((r . r0)

!(p. p0)) a1,2 3. (r . r0) a2,2 4. (p. p0) ,4 5. (p. p0) 6. (p. p0) 7. ((q. q0) . (r . r0)) ?,5 a1,7 b1,1 b2,1 8. (q. q0) . a2,8 9. (r . r0) ?,3 Figura 2.8: (p. p0) . ((q. q0) . (r . r0)) `(r . r0) !(p. p0)

96 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 2. otra, para manipular frmulas existencialmente cuantificadas (tipo d) As, toda frmula en este sistema es (intrnsecamente) conjuntiva(a), disyuntiva(b), u niversal (g), existencial(d)o una doble negacin ( . >). La tabla (tabl. 2.4) resume las frmulas que se consideran intrnsecamente universal es(g)yexistenciales( d), juntoa suexpansin.Todas ellas producen unaexpansin del rbol en un slo nodo. No producen, por tanto, bifurcacin del rbol. Ejemplo 2.73 Considere la frmula: 8x(8z(Pz . Qx) !9wRwa) es de tipo existencial(d). Su subfrmula inmediata: (8z(Pz . Qx) !9wRwa) es de tipo(b). Sus subfrmulas inmediatas: (8z(Pz . Qx), 9wRwa son, respectivamente,(g)y(d).Yla subfrmula: (Pz . Qx) es de tipo(a). 2.4.3 Reglas de expansin . yd En ambos tipos de frmulas la expansin aporta un slo nodo. En concreto, la subfrmula inmediata: la frmula que resta cuando se omite el cuantificador principal. Ms precisamente, u na instancia por sustitucin de esta subfrmula. El prrafo siguiente expone cules pueden ser las cadena s sustituyentes.Ms adelantese determinarqusedebe sustituiry conqu restricciones. Parmetros Cada lenguaje de primer orden fija sus propias constantesyfunciones. Si se pretende que el lenguaje sirva, por ejemplo, para razonar sobre nmeros naturales, debe inc luir una constante (quese asignaral0)yuna funcin(la funcin sucesor). Las demostraciones sobre frmulas de un lenguaje suelen requerir, como herramienta , el uso de

constantes auxiliares. Aestas constantes adicionales se les denomina parmetros . As, las demostraciones sobre frmulas de un cierto lenguaje L se describen usando frmulas del lenguaje Lpa r: extensin del Lpor adicin de estas constantes. Las cadenas sustituyentesenlaexpansin sern,segnlos casos, parmetroso trminos cerrados : trminos de Lpar que no incluyen variables. Regla de expansin d Las frmulas d son del tipo 9xf 8xf. Su expansin es un nico nodo de la forma f(x/p) f(x/p) (respectivamente), donde todas las apariciones libres en f de la variable del cuantificador se han sustituido por el mismo parmetro p. Este parmetro, esta c onstante auxiliar, debe ser nueva en el rbol: no puede figurar en ninguna frmula previa (realmente, b asta que sea nueva en la rama). De una frmula como 9xPx no tiene por qu ser consecuencia Pa. Sin embargo, si 9xPx es satisfacible, tambin lo serPa.Yestamos trabajando en un sistema que trata de decidir la satisfac ibilidad de un conjunto de frmulas.

2.4. Tablas semnticas 97 Cada instanciacin debe hacerse sobre una constante nueva. De lo contrario, esta c onstante tendra unas propiedades (fijadas en otras frmulas, donde aparece) que pueden modificar ( innecesariamente) la decisin final sobre la satisfabilidad del conjunto. Este cuidado se mantiene en toda manipulacin de frmulas de primer orden. Si no se considera, se puede llegar a afirmar (errneamente) que siempre que hay alguien que tiene la p ropiedad P y hay alguien que tiene la propiedad Q, entonces alguien tiene ambas propiedades . U n razonamiento errneo (en deduccin natural) sera: puesto que alguien tiene la propiedad P, llammosle a, luego Pa. Puesto que alguien tienen la propiedad Q, llammosle a, luego Qa. Entonces, Pa . Qa. Luego alguien tiene (a la vez) la propiedad PylaQ . Regla de expansin . Las frmulas . son del tipo 8xf 9xf. Su expansin es un nico nodo de la forma f(x/t) f(x/t) (respectivamente), donde todas las apariciones libres de la variable del cuantificador se han sustituido por el mismo trmino t. Este trmino debe ser cerrad o: no debe incluir variables, slo constantesyfuncionesde Lo constantes auxiliares. La particularizacin de una frmula universal no requiere de ningn cuidado especial: lo que es verdadero para todo elemento del universo lo ser para el que represente al trmino t. Todas las reglas de expansin se recogen en la tabla (tabl. 2.5). 2.4.4 Ejemplos Ejemplo 2.74 El rbol de la figura (fig. 2.10) muestra que: 8xPx_9yQy `9y8x(Px. Qy)

[nodos 1-2]Respectivamente, hiptesisy negacindela supuesta conclusin. [nodos 3-4] Expansin(b)de la frmula 1. Estratgicamente, siempre es preferible expan dir primero las frmulas proposicionales(a y b), luego lasexistenciales(d)y finalmente las universales(g)para intentar cerrar. [nodo5]Expansindela frmula2(universal, g),porque noexista ninguna frmulaexistencial en la rama 1-3. Se puede instanciar ypor cualquier parmetro. [nodo6] Expansindela frmula5(existencial, d). El parmetro de la instanciacin debe se

r nuevo: b. [nodos 7-8]Expansindela frmula6(a) [nodo 9]Aprovechando que ya existe Pb enel nodo8,expandiremosla frmula3(universal) . Como se puede escoger cualquier trmino, elegiremos instanciarla para b, cerrando esta rama. [nodos 10-14] Se procede de manera anloga (indicada en el rbol). Tan slo merece res ear la eleccin de parmetros. El de la lnea 10 deba ser un parmetro nuevo en la rama. Se h a escogido incluso nuevo enel rbol(c). [nodos 11-14]El parmetro de la lnea 11 proviene de una sustitucin universal: poda se r cualquiera. Como ya exista Qc previamente, se escoge asimismo Qc. El parmetro de la lnea 12 deba ser nuevo: d. La eleccin correcta de la instancia universal en la lnea 11 acab afavoreciendo el cierre de esta ltima rama en 14. Ejemplo 2.75 La tabla (2.11) confirma que 8x9y(Rxy . Qy),8x8yRxy `9zQz

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 1. (8xPx . (9yQy ^8zRz)) 2. (8zRz . 8xPx) a1,2 3. 8zRz a2,2 4. 8xPx ,4 5. 8xPx b1,1 . b2,1 OOOOOOOOOO 6. 8xPx . '' 7. (9yQy^8zRz) ?,5 a1,7 8. 9yQy . a2,8 9. 8zRz ?,3 Figura 2.9: 8xPx . (9yQy ^8zRz) . 8zRz . 8xPx conjuntivas disyuntivas a a1 a2 b1 b2 X^Y X Y (X^Y) X Y (X_Y) X Y X_Y X Y (X . Y)

X Y X . Y X Y (X . Y) X Y X . Y X Y (X. Y) X Y X. Y X Y X . Y X Y (X . Y) X Y X6 . Y X Y (X 6 . Y) X Y X6 . Y X Y (X 6 . Y) X Y Tabla 2.3: Notacin uniforme, conectivas binarias universales existenciales . g(t) d d(a) 8xX X(t) 9xX X(a) 9xX X(t) 8xX X(a) Tabla 2.4: Notacin uniforme, frmulas cuantificadas

2.4. Tablas semnticas conectivas monarias: X X . . . . conectivas binarias: a a1 a2 b1 | b2 cuantificador universal: . g(t) (para cualquier trmino t cerrado de Lpar) cuantificador existencial: d d(p) (para cualquier parmetro pnuevo) Tabla 2.5: Reglas de expansin de un tableau 1. 8xPx_9yQy 2. 9y8x(Px. Qy) ooooooooo. OOOOOOOOO . wwb1,1 b2,1 . '' 3. 8xPx 4. 9yQy g,2 d,4 5. 8x(Px. Qa) 10. Qc g,2 d,5 6. (Pb. Qa) 11. 8x(Px.

Qc) d,11 a1,6 7. Pb 12. (Pd . Qc) a1,12 a2,6 8. Qa 13. Pd . g,3 . a2,12 9. Pb 14. Qc ?,7 ?,10 Figura 2.10:Tableau que confirma que 8xPx_9yQy `9y8x(Px. Qy)

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN 1. 8x9y(Rxy. Qy) 2. 8x8yRxy 3. 9zQz g,1 4. 9y(Ray . Qy) d,4 5. (Rab . Qb) ooooooooo. OOOOOOOOO . wwb1,5 b2,5 . '' 6. Rab 7. Qb g,2 . g,3 10. Qb 8. 8yRay ?,7 . g,8 9. Rab ?,8 Figura 2.11:Tableau que confirma que 8x9y(Rxy. Qy),8x8yRxy`9zQz 2.5 Resolucin 2.5.1 Forma prenexa Toda frmula de primer orden admite infinitas frmulas equivalentes: frmulas satisfac ibles exactamente por los mismos modelos. Dos frmulas equivalentes son dos expresiones sintcticas di stintas que significan lo mismo (sobre esta semntica). El objetivo de esta seccin se resume en pocas palabras: dada una frmula cualquiera, encontrar una frmula equivalente tal que todos sus cuantificadores estn situados a l

principio de la frmula. Ejemplo 2.76 El lector aprender, a lo largo de esta seccin, a calcular que, dada l a frmula: (8xPx^9yQy) !8t9wRtw cualquiera de las siguientes frmulas son equivalentes a ella (y por tanto, entre s): 9x8y8t9w((Px. Qy) . Rtw) 8y9x8t9w((Px. Qy) . Rtw) 8t9x8y9w((Px. Qy) . Rtw) Sin embargo, entre otras muchas, no ser equivalente a las anteriores: 9w9x8y8t((Px. Qy) . Rtw) ni ninguna otra donde 9w aparezca antes de 8t.

2.5. Resolucin Lo primero que hay que fijar es que esto es posible: efectivamente, se demuestra que para toda frmulaexisten frmulas prenexasequivalentes. Inmediatamente despuslapreguntaes cmo:exi ste un procedimiento que permita calcular una frmula prenexa equivalente a una frmula dada?. El desarrollo de esta seccin responde esta pregunta. Equivalencias bsicas ElTeorema de Reemplazo permite calcular sintcticamente frmulas equivalentes entre s: reemplace, en la frmula inicial, una de sus subfrmulas por otra equivalent ey obtendr una frmula global final equivalente a la frmula inicial. Este teorema comienza a ser til cuando se dispone de algunas equivalencias elemen tales, que permiten sustituir unas subfrmulas por otras. Para nuestro objetivo, entre otras, ser imprescindible utilizar las equivalencias mostradas en la tabla (tabl. 2.6). Siempre que la funcin . no contenga apariciones libres de la variable x: 8xf . . 8x(f . y) . ^8xf 8x(. . f) 8xf . . 8x(f . y) . _8xf 8x(. . f) 9xf . . 9x(f . y) . ^9xf 9x(.

. f) 9xf . . 9x(f . y) . _9xf 9x(. . f) Tabla 2.6: Equivalencias de inters para alcanzar la forma prenexa Aestas equivalencias habr que aadir otras que se utilizarn para: introducir negaciones: 8xf 9xf, 9xf 8xf, (ms las equivalencias de De Morgan) renombrar variables: 8xf 8yf(x/y), 9xf 9yf(x/y) permutar cuantificadores del mismo tipo: 8x8yf 8y8xf, 9x9yf 9y9xf Ejemplo 2.77 Dada la frmula 8xPx_9yQy,si se pretende desplazar el cuantificador8x , se observa que es de la forma 8xf . . donde . no tiene apariciones libres de x. Luego: 8xPx_9yQy 8x(Px_9yQy) Alternativamente, la frmula inicial era tambin de la forma . _9yf donde en . no hay apariciones libres de y(del cuantificador que se desea desplazar). Luego, tambin: 8xPx_9yQy 9y(8xPx. Qy) Siguiendo con este ltimo caso, la subfrmula (8xPx. Qy) es de la forma 8xf

. y, donde . no contiene x libres, luego (8xPx. Qy) 8x(Px. Qy) .Ypor tanto: 8xPx_9yQy 9y(8xPx. Qy) 9y8x(Px. Qy) Alternativamente se poda haber obtenido: 8xPx_9yQy 8x(Px_9yQy) 8x9y(Px. Qy) Le recomendamos que interprete este sencillo ejemplo sobre algn universo pequeo (d e2 o3 elementos). Ajuste la interpretacin hasta que satisfaga a una de las frmulas. Comp ruebe que todas las dems frmulas equivalentes se satisfacen. Si tiene dificultades para interpreta r alguna de las frmulas convendra, en este punto, que repase las notas sobre semntica de primer ord en.

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Ejemplo 2.78 Considere la frmula 9xPx !9xQx. Puesto que es una frmula condicional: 9xPx !9xQx = 9xPx_9xQx 8xPx_9xQx 8x(Px_9xQx) Este ltimo paso se justifica porque la frmula era de la forma 8xf . y, donde en . no haba x libres. Conviene que lo contraste sobre una interpretacin sencilla. No obstante,llegadosaestepuntonosepuede conseguirlaformaprenexafinal.Enla subfrmu la (Px _9xQx) no se puede desplazar de forma equivalente el cuantificador 9x puesto que la otra frmula (Px)s contiene apariciones libres de la variable del cuantificador: (Px_9xQx) 6 = 9x(Px. Qx) Basta ver que hU = {1,2}, con P= {1},Q= 0/. satisface la frmula derecha: efectivamente existe un elemento (2) que satisface (Px. Qx). Esta misma interpretacin, con la asignacin xA = 1para la variable libre x sigue satisfaciendo la frmula derecha, puesto que no hay vari ables libres en ellas. Pero ya no satisface la frmula la izquierda. Sin embargo, puesto que 9xQx 9yQy, an se puede obtener: (Px_9xQx) = (Px_9yQy) 9y(Px. Qy) Yse consigue la frmula prenexa equivalente a la inicial: (9xPx!9xQx) = (9xPx_9xQx) = (8xPx_9xQx) 8x(Px_9xQx) 8x(Px_9yQy)

8x9y(Px_Qy) En este ltimo ejemplosigalapista del cuantificador existencial del antecedente: a caba produciendoun cuantificadoruniversalenla cabeceradelafrmula prenex. Intrnsecamente,su significad o noeraexistencialsinouniversalpuestoqueestabaenelmbitodeunanegacin.Este comportamie nto es generalizableyproduce nuevas relacionesde equivalencia: Siempre que la funcin . no contenga apariciones libres de la variable x: 8xf . . 9x(f . y) . !8xf 8x(. . f) 9xf . . 8x(f . y) . !9xf 9x(. . f) Tabla 2.7: Otras equivalencias de inters para alcanzar la forma prenexa Ejemplo 2.79 Los inconvenientes mostradosenel ejemplopreviose puedenevitar desde el principio. Basta renombrar variables inicialmente. As, la frmula: 8y(9xRxy !(9xSxy_8yPy)) puede reescribirse equivalentemente como: 8z(9xRxz !(9wSwz_8yPy)) donde cada cuantificador afectaa unavariable distinta.Apartirde aqu, unode los po sibles caminos hacia la forma prenexa es:

2.5. Resolucin 1. 8y(9xRxy !(9xSxy_8yPy)) 8z(9xRxz !(9wSwz_8yPy)) [renombrar variables] 2. 8z(9xRxz_(9wSwz_8yPy)) [eliminar . ] 3. 8z(8xRxz_(9wSwz_8yPy)) [introducir ] 4. 8z(8xRxz. (9wSwz^8yPy)) [introducir ] 6. 8z(8xRxz. (8wSwz^9yPy)) [introducir ] 7. 8z(8xRxz_9y(8wSwz^Py)) [desplaz. cuantif.] 8. 8z(8xRxz_9y8w(Swz^Py)) [desplaz. cuantif.] 9. 8z9y(8xRxz_8w(Swz^Py)) [desplaz. cuantif.] 10. 8z9y8x(Rxz_8w(Swz^Py)) [desplaz. cuantif.] 11. 8z9y8x8w(Rxz. (Swz^Py)) [desplaz. cuantif.] Los cuantificadores de una frmula prenexa constituyen la cabecera de la frmula. La subfrmula restante (sin cuantificadores ya) se denomina matriz de la frmula. Enestepunto,ellectorpuedevolveralejemplo(2.76).Tratedeobtenerlas frmulasprenexasa ll expuestase intente justificarporqunose podan desplazarlos cuantificadoresen cualqu ier orden. 2.5.2 Funciones de Skolem En la seccin (secc. 2.4.3) ya se present el concepto de parmetro: constantes auxili ares que se introducan enel cursode una demostracin.Facilitaban las demostraciones sobre las fr mulasde un cierto lenguaje aunque no eran constantes de ese lenguaje.

Las derivaciones por resolucin requieren introducir no slo constantes auxiliares s ino tambin funciones auxiliares, que se denominan constantesyfunciones de Skolem. Su eleccin adecuada en cada caso suele denominarse skolemizacin eskolemizacin de una frmula. Se utilizan par eliminar cuantificadores existenciales a costa de introducir tales elementos aux iliares. El objetivo de esta seccin es: dada una frmula que puede incluir cuantificadores existenciales, generar otra frmula sin tales cuantificadores pero que sea tan sat isfacible como la anterior . Observequeel procesoquesevaa describirno genera necesariamenteuna frmulaequivalen

teala anterior.Es decir,noentodos los modelos donde la inicial se satisfaga lo har la resultante. Sin embargo, si existe algn modelo donde la inicial se satisface e xistir otro (quiz distinto) que satisface la resultante. Ejemplo 2.80 Dada una frmula como 9x8yRxy, su eskolemizacin produce 8yRay. Si la frmu la con el existencial era satisfacible en algn modelo es intuitivo es porque exista u na asignacin para x en ese modelo tal que 8yRxy se satistaca. Utilizando ese mismo elemento del unive rso para interpretar la constante a se consigue que 8yRay sea tambin satisfacible. Obviamente, sobre ese mismo modelo, si no se interpreta adecuadamente la constan te se satisfar la frmula existencial pero no la otra. De hecho, 8yRay |= 9x8yRxy pero 9x8yRxy 6|= 8yRay La reflexin anterior slo nos sirve para resaltar que no son expresiones equivalent es. Quedmonos con la propiedad que efectivamente conserva este proceso: Satisfacible(9x8yRxy) si slo si Satisfacible(8yRay)

104 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN El camino total en que estamos inmersos puede describirse as: para confirmar que u na frmula es consecuencia de otras, niguela e inclyala entre stas; escriba todas estas frmulas en forma clausuladaydeterminesi este conjuntoes insatisfaciblepor Resolucin. La eskolemizacin forma parte del proceso de escritura de una frmula en su forma cl ausulada. Luego la forma clausulada no es equivalente a la frmula inicial, sino tan slo igua lmente satisfacible. Pero eso es justo lo que requiere un sistema deductivo que trata de detectar sin tcticamente la insatisfacibilidad. La explicacin del proceso de eskolemizacin se simplifica bastante si se considera que las frmulas estn en forma prenexa. No obstante, no es un paso previo necesario. Ejemplo 2.81 Una frmula como 9x8yQyx podra expresar existe alguien (al menos uno) t al que todo el mundo le quiere . Con esta misma lectura, 8y9xQyx se entendera como todo el mundo tiene alguien (al menos uno) al que quiere . En la primera frmula, puesto que hay alguien a quien todo el mundo quiere, llammos le a y escribamos 8yQya todo el mundo quiere a a . Recuerde que estas dos frmulas no son eq uivalentes pero s igualmente satisfacibles. En el segundo caso no se puede elegir una constante como receptor universal del cario de todos. De hecho en 8y9xQyx cada elemento debe apreciar al menos a uno, que puede coinci dir o diferir del apreciado por otro elemento. La frmula 8yQyf (y) es ms restrictiva: ahora cada elemento yse relaciona slo con uno, su f(y), aunque an se puede coincidir en el afecto a un mis mo elemento. Volviendoal formalismo puroyduro:8y9xQyx es satisfaciblesiyslosi 8yQyf (y) lo es. En general, dada una frmula prenexa, para eliminar un existencial es preciso cons iderar cuntos cuantificadoresuniversalesla preceden.Lavariabledelexistencial,enla matriz,sedeb e sustituirpor una funcin nueva de lasvariablesde los cuantificadores universales precedentes. Ejemplo 2.82 Al eliminar (en el proceso de eskolemizacin) los existenciales de la s siguientes frmulas se obtiene: 1. 8x8y9z(Qzx . Syz) . 8x8y(Qf(xy)x. Syf(xy)) 2. 8x8y9z8w(Rzxw .

Syz) . 8x8y8w(Rf(xy)xw. Syf(xy)) 3. 8x8y9z9t8w(Rzxw . Tyzt) . 8x8y8w(Rf(xy)xw. Tyf(xy)g(xy)) 4. 8x9t8y9z8w(Rzxw . Tyzt) . 8x8y8w(Rf(xy)xw. Tyf(xy)h(x)) 5. 9t8x8y9z8w(Rzxw . Tyzt) . 8x8y8w(Rf(xy)xw. Tyf(xy)a) 6. 9t9z8x8y8w(Rzxw . Tyzt) . 8x8y8w(Rbxw . Tyba) Las constantes de Skolem se pueden interpretar como una funcin de Skolem de cero argumentos; es decir, se producen cuando no hay ningn cuantificador universal delante del existe ncial eliminado. 2.5.3 Forma clausulada Dada una frmula inicial f cualquiera se puede obtener una expresin prenexa equivalente fprenex. Si incluyeraexistenciales, mediante constantesyfuncionesdeSkolem, se puede obten er una frmula prenexa sin ellos fsko ,que resulta tan satisfacible como las anteriores. Supues ta esta frmulafsko prenexprenex,

2.5. Resolucin el objetivo de esta seccin es reescribir equivalentemente la matriz de esta frmula hasta expresarla como una conjuncin de clusulas. Si se han seguido los pasos sugeridos en las secciones previas, sobre la frmula o riginal: 1. se independizaronlos mbitos, renombrandolasvariables utilizadasenmsdeun cuantif icador 2. se eliminaron bicondicionales (reescribindolos como condicionales) y condicion ales (como no antecedenteconsecuente ) 3. se introdujeron las negaciones (cambiandoel tipode cuantificadoryutilizando l asleyesdeDe Morgan) 4. se desplazaron sucesivamente todos los cuantificadoresala cabeza; estratgicame nte conviene desplazar al inicio los existenciales primero, si es posible 5. se eliminaronlosexistenciales medianteel usode constantesyfuncionesdeSkolem ( constantes yfunciones nuevas en la frmula para cada existencial eliminado) En este puntose tiene una frmula matriz, con susvariablesuniversalmente cuantific adasenla cabecera, donde las negaciones no afectan ms que a frmulas atmicas (estn pegadas directamente a los predicados )ydonde las nicas conectivas binarias son conjuncionesydisyunciones. Basta entonces aplicar adecuadamente la distributividad entre ellas para reescribir la matriz c omo una conjuncin de clusulas. Un ejemplo de clusula es: (Pa. Rxf(x) _Qby) donde las frmulas atmicas (negadas o no) estn unidas por disyunciones. Si se denomina literal a una frmula atmica o a su neg acin, una clusula Cse puede definir como una disyuncin de literales: C=(l1,...,ln). La matri z debe tener la forma de una conjuncin de tales clusulas: C1. ... ^Ck. Ejemplo 2.83 Los pasos que se han enumerado se pueden apreciar en el siguiente d esarrollo: 9x8yRxy . (9xPx^8yQy) 9x8yRxy . (9zPz ^8wQw) (9x8yRxy) . (9zPz ^8wQw) = (8x8yRxy) . (9zPz ^8wQw) =

(8x9yRxy) . (9zPz ^8wQw) 8x9y(Rxy) _9z8w(Pz. Qw) 9z8x9y8w(Rxy. (Pz. Qw)) . 8x8w(Rxf(x) . (Pa. Qw)) 8x8w((Rxf(x) . Pa) . (Rxf(x) . Qw)) La matriz de esta ltima frmula est efectivamente en forma normal conjuntiva: consta de dos clusulas unidas por una conjuncin. Ambas clusulas comparten algunas variables en comn (en co ncreto, x). En este punto siempre se puede (y se debe, ya que ser til) evitar conexin entre clusulas: 8x8w((Rxf(x) . Pa) . (Rxf(x) . Qw)) es equivalente a 8x((Rxf(x) . Pa) ^8w(Rxf(x) . Qw)) utilizando, enel otro sentido,la equivalencia que permita desplazar cuantificador esala cabeza,y (8x(Rxf(x) . Pa) ^8x8w(Rxf(x) . Qw))

puesto que 8x(f . y) = (8xf ^8xy) distributividad que presenta el universal slo frente a la conjuncin (as como el existencial frente a la disyuncin). Renombrando variables: (8x(Rxf(x) . Pa) ^8t8w(Rtf(t) . Qw))

106 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN yvolviendoa colocar los cuantificadores en cabeza: 8x8t8w((Rxf(x) . Pa) . (Rtf(t) . Qw)) En resmen: llegados a la forma normal conjuntiva, a clusulas distintas se les pued e (y debe) independizar sus variables comunes, renombrndolas. Loque restaesuncasiun mero cambio notacional: prescindadelos cuantificadoresysim plemente muestre el conjunto de clusulas de la frmula: {(Rxf(x) . Pa),(Rtf(t) . Qw)} o, incluso, defina cada clusula como el conjunto de sus literales: {{Rxf(x),Pa}, {Rtf(t),Qw}} 2.5.4 Unificacin Introduccin Recordemos brevemente el Principio de Resolucin para lgica de proposiciones. Supon ga que una interpretacin satisface las siguientes dos clusulas: (p_r_t)(r_q) tales que una contiene un literal(r)yla otra su complementario(r). Sea cual sea e l valor asignado a r esta interpretacin slogarantiza la satisfaccin de una de las dos clusula. En la otra, debe ser verdaderoalgn literalparaquela clusulalo sea. Estogarantizaque,enuna clusulaquelos contenga a todos (salvo r yr), al menos uno de estos literales ser verdadero frente a la mi sma interpretacin. Es decir, que toda interpretacin que satisface: (p_r_t)(r_q) tambin satisface (p_t_q)

No es difcil aceptarel mismo principio sobre clusulas con predicados sinvariables. Toda interpretacin que satisface: (Pa_Rba . Tcb)(Rba _Qe) tambin satisface (Pa. Tcb_Qe) Este principio no se verifica si los alguno de los trminos del literal sobre el q ue se resuelve fueran distintos: si en vez de Rba y Rba aparecieran Rba y Rca. Otra cosa sera si s e cuenta, respectivamente en cada clusula, con Rxa yRba. Por ejemplo, si se parte de las clus ulas: (Pa_Rxa. Tcx)(Rba _Qe) Sobre ellas no es aplicable directamente el principio de resolucin previo; no obs tante, si son satisfacibles ambas tambin lo sern las siguientes dos clusulas: (Pa_Rba . Tcb)(Rba _Qe) obtenidas de las anteriores por instanciacin (por sustitucin) de la variable x por el trmino b. Yya s se podr aplicar el principio de resolucin, generando la clusula: (Pa. Tcb_Qe)

2.5. Resolucin Al proceso previo de instanciacin se le denomina unificacin. Se produce utilizando sustituciones. El objetivo es que en dos referencias a un mismo predicado sus trm inos (los sujetos del predicado ) lleguen a ser respectivamente idnticos en ambas referenc ias. Respetada cierta condicin, este proceso de sustitucin no altera la satisfacibilida d. Si dos clsulas eran satisfacibles, tambin lo sern las clusulas resultantes de estas sus tituciones. Adems, si lo que se ha unificado son literales complementarios (un predicado en una clusulay su negacin en la otra), se puede aplicar el Principio de Resolucin. ste nosfacilita adicionalmente una tercera clusulaa partirde estas dos, tan satisf acible como ellas. Puesto que ninguna de las acciones que se ejecutan (unificacinyresolucin) alteran la satisfacibilidad: si se parte de un conjunto de clusulas satisfacible nunca se ob tendr la clusula vaca (seal sintctica inequvoca de contradicciones en el conjunto analizado). Parafijarideas,sisepartede10 clusulasyse utilizanla unificacinyresolucin adecuadame nte, seva ampliando este conjuntode clusulasgarantizando que es tan satisfacible comoe lde partida. Si el proceso de ampliacin incluye la clusula vaca, se puede ya afirmar que el conj unto inicial de clusulas (o cualquiera de sus sucesivas expansiones) es insatisfacible. Despus de esta declaracinde intencionesyde rumbo, y algoritmos que las materializan. Unificadores Considere las siguientes dos frmulas atmicas: P(x, f(g(c)), x) P(b, f(y), b) donde el mismo predicado ternario Pest relacionando, respectivamente, ternas de tr minos distintos. Si las dos ternas fueran idnticas, estas dos frmulas ya estaran unificadas. Ysi el predicado en una yotra no fuera el mismo, no seran unificables. Observe tambin que las definiciones sobre unificacin, sin ms, no requieren contar c on un predicado P() ysu negacin P(). Se centran slo en los trminos que hay dentro del predicado. Ser slo faltan adjuntar las definiciones

posteriormente, cuando se aplique Resolucin, cuando se escogern pares tales que un o slo est adems negado. Ejemplo 2.84 Para unificar las frmulas mencionadas: P(x, f(g(c)), x) P(b, f(y), b) se puede intentar inicialmente unificar los primeros trminos. Como uno de ellos e s una variable, la sustitucin s1 = x/bservir: P(b, f(g(c)), b) P(b, f(y), b) Los segundos trminos empiezan igual en ambos predicados. Cuando comienzan a difer ir, aparece unavariable yen unoyotro subtrminoenel otro. Basta ejecutarla sustitucin s2 = y/g(c). Observe que no bastara con la susticin y/c: la variable debe sustituirse por el subtrmino mx imo en que no coinciden. El resultado final de este proceso es: P(b, f(g(c)), b) P(b, f(g(c)), b)

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN que se obtiene de las clusulas originales por aplicacin sucesiva de s1ys2. Una sus titucin total, nica, que produce este resultado es s3 = s1s2 = {x/b,y/g(c)} La unificacin de todos los pares de trminos correspondientes de un par de predicad os se puede descomponer en pasos. Cada uno de ellos considera sucesivamente la unificacin de un nico par de trminos correspondientes. Hasta que se diga lo contrario, nos limitaremos a estud iar este problema. Ejemplo 2.85 Si se precisara unificar los trminos t1 = f(g(c,h(x))) yt2 = f(g(c,y)) se deberan recorrer ambos desde la izquierda hasta que se detecte la posicin en que comienza n a diferir. En este caso difieren en los subtrminos h(x) en t1e y en t2. Es decir, el rbol de t1yt2 es idntico salvo en estos dos subrboles respectivamente.Aestos subtrminosde desacuerdo se les denominar subtrminos crticos. En este caso, como uno de los subtrminos crticos es una variable, basta efectuar l a sustitucin de esta variable por el otro subtrmino: y/h(x). Noes posible unificarsi ningunodelosdos subtrminoses unavariable, sino constantes o funciones. Por ejemplo: en t1 = f(g(c,h(x))) yt2 = f(g(c,b)) en t1 = f(g(c,h(x))) yt2 = f(g(c,g(x))). Ejemplo 2.86 Al intentar unificar t1 = f(x,h(g(x)) yt2 = f(g(y),h(z)) se observa que el primer par de subtrminos crticos es x en t1yg(y) en t2. Si se consigue unificar ambos an habr que unificar los subtrminos crticos z yg(x). Para unificar el primer par de subtrminos crticos basta ejecutar la sustitucins1 = x/g(y). Se obtiene entonces t1 = f(g(y),h(g(g(y))) yt2 = f(g(y),h(z)). Luego, los siguientes subtrminos crticos

unificables ya no son los que se detectaron: ahora son z en t2yg(g(y)) en t1. Basta ejecutar la sustitucin s2 = z/g(g(y)) para obtener: t1 = t2 = f(g(y),h(g(g(y))). Una sola sustitucin s que unifica ambos trminos se calcula por composicin de las anteriores: s = s2s1.Y es tal que t1s = t2s. Unificacin de un par de trminos Para un nico par t1yt2 de trminos (de argumentos de un predicado), se puede proceder a su unificacin mediante el siguiente algoritmo: Sea s inicialmente la sustitucin identidad (la que sustituye cada variable por s misma); WHILE t1s 6 = t2s DO: (principio) determine un par de subtrminos crticos s1ys2 entre t1s yt2s IF ni s1 ni s2 es una variable THEN ELSE sea var la variable s1o s2 (si ambas lo son, escoja una) sea termel otro trmino(s1o s2)no asignado a var IF la variable var aparece en term THEN no unificables ELSE recalcule s componindola con la sustitucin var/term; es decir: s := s{var/term} no unificables

(fin)

2.5. Resolucin 109

Enel pseudocdigo anterior, no unificables suponeuna salidadelbucle,sin xito. Puede de berse a que ninguno de los subtrminos crticos sea una variable, caso del par h( f(x)) y f(a) del par b y g(w) . O puede deberse a que se intenta unificar pares como x y f(x) z y g(h(z,a) donde la variable sustituida aparece en el trmino que debe sustituirla. En este ltimo caso, la unificacin de x yde f(x) , que se puede interpretar como la solu cin de x = f(x), no es generalmentegarantizable.Ala comprobacinde quelavariable no aparece e nel trmino sustituyente se la denominar comprobacin de aparicin (occurs check, en ingls). Ejemplo 2.87 Tratemos de unificar los trminos t1 = f(x,g(x,a),z) t2 = f(h(z),y,g(b,y)) El primer par de subtrminos crticos es x yh(z). Como unode ellos es unavariable(x) ysta no ocurre en el otro trmino: se efecta la sustitucin s1 = x/h(z). Entonces: t1s = f(h(z),g(h(z),a),z) t2s = f(h(z),y,g(b,y)) Todava s = s1 es tal que t1s 6 = t2s, luego se contina ejecutando el bucle. El siguiente par de subtrminos crticos es yyg(h(z),a). Igual que en el caso anterior, no hay inconveni ente: se efecta la sustitucin s2 = y/g(h(z),a). Entonces: t1s = f(h(z),g(h(z),a),z) t2s = f(h(z),g(h(z),a),g(b,g(h(z),a))) Como para este s

= s1s2 an se verifica t1s 6 = t2s, se contina la ejecucin. El siguiente par de subtrminos crticos es: zg(h(z),a) donde la variable z ocurre en el trmino g(h(z),a), luego no resultan unificables. Si el algoritmo propuesto finaliza con xito no slo se obtiene la unificacin de ambo s trminos, sinoquesegarantiza ademsquesehan unificado conel unificadorms general posible. Para introducir este ltimo concepto observe que f(x) y f(y) se pueden unificar mediante la sustitucin s = {x/a,y/a}, o tambin mediante t = {x/h(z),y/h(z)}, o tambin mediante = {x/y}. El unificador es el unificador ms general porque instancia, particulariza lo mnimo necesario para que ambos trminos coincidan . Particularizar ambos trminos a la misma constante a tambin produce la unificacin, pero es una unificacin ms fuerte que la necesaria. En concreto, si se unifican ambos trminos mediante se obtiene: t1= t2= f(y). Desde aqu an se puede obtener el mismo resultado que hubiera supuesto la aplicacin directa d e s: t1s = t2s = f(a). Basta aplicar la sustitucin h{y/a} sobre t1= t2= f(y).Ola sustitucin . sobre los trminos originales. Ms formalmente, dadas dos sustituciones s1ys2 se dice que s2 es ms general que s1 si existe otra sustitucin t tal que s1 = s2t. Unificacin de literales Ya se ha precisado cmo unificar, si es posible, dos trminos t yt. correspondientes. Volvamos al problema de unificar P(t0,t1,...,tn) y P(t0. ,t1.

,...,t. ). Comencemos por n unificar un primer par de trminos correspondientes (p.ej. t0y t0. ), encontrando su unificador ms general. Entonces: [P(t0,t1,...,tn)]s0= P(t0s0,t1s0,...,tns0), [P(t0. ,t1. ,...,tn. )]s0= P(t0. s0,t1. s0,...,tn. s0) con t0s0= t0. s0

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Es decir, las sustituciones de s0 se aplican tambin a los restantes trminos. Si se desea unificar el par de trminos en segunda posicin, stos son ahora t1s0yt1. s0. Si se encuentra un unificador s1 para ellos [P(t0,t1,...,tn)]s0s1, [P(t0. ,t1. ,...,t. )]s0s1 n producen: P(t0s0s1,t1s0s1,...,tns0s1), P(t0. s0s1,t1. s0s1,...,t. s0s1) n donde ya: (t0s0)s1 =(t0. s0)s1y (t1s0)s1 =(t1. s0)s1 El proceso se repite hasta obtener la composicin s0s1...sn necesaria. Ejemplo 2.88 Tratemos de unificar los dos siguientes literales: P( x, f(w), g( f(x),b) ) P( h(y), y, g( f(h( f(t))),t) ) Para el primer par de trminos correspondientes se obtienes0 = {x/h(y)}. Aplicando esta sustitucin sobre ambos literales resulta: P( h(y), f(w), g( f(h(y)),b) ) P( h(y), y, g( f(h( f(t))),t) ) Para el segundo par de trminos se obtienes1 = {y/

f(w)}. Su aplicacin produce: P( h( f(w)), f(w), g( f(h( f(w))),b) ) P( h( f(w)), f(w), g( f(h( f(t))),t) ) Para unificar el tercer par de trminos se necesita primero que lasw se sustituyan por t (para el primer argumento)yluego que las t se sustituyan por b. El resultado de la compos icin de ambas (el resultado del algoritmo previo que unificaba este par) es s2 = {w/t}{t/b} = {w/b,t/b}. Aplicando s2: P( h( f(w)), f(w), g( f(h( f(b))),b) ) P( h( f(w)), f(w), g( f(h( f(b))),b) ) Es decir, [P(x, f(w), g( f(x),b))]s0s1s2 =[P(h(y), y, g( f(h( f(t))),t))]s0s1s2 donde s = s0s1s2 = {x/h(y)}{y/ f(w)}{w/b,t/b} = {x/h( f(b)),y/ f(b),w/b,t/b} 2.5.5 Resolucin La resolucin, como en el caso proposicional, se produce sobre dos clusulas que con

tengan, respectivamente, un literaly su complementario. Por ejemplo, en: P(x, f(y)) . Q(x) y R(z) _P(a,z) se puede intentar la resolucin sobre los predicado P() yP();pero esto requiere unificar sus trminos: P(a, f(y)) . Q(a) y R( f(y)) _P(a, f(y)) El resultado de la resolucin es entonces la clusula: Q(a) _R( f(y)) Este principio,juntoalos desarrollosprevios,facilitala ejecucindelos siguientes p asos:

2.5. Resolucin 1. Dado un conjunto de frmulas F = {f1,...,fk}, se quiere comprobar si una frmula . es consecuenciade ellas. Nieguelayverifiquesiel conjunto F . {y} es insatisfacible. 2. Para ello, en este sistema, debe escribir cada frmula de este conjunto en form a clausulada: fm . (C1. ... ^Cr). Recuerde que, si se han introducido constantes o funciones de Skolem, ambas expresiones no son equivalentes. No obstante, fm ser satisfacible siy slo si lo son todas sus r clusulas. Luego,el conjuntode frmulas analizado ser satisfaciblesiyslosi lo sontodasycadaunadelas clusulasquesehan producido. 3. Busque dos clusulas que contengan literales complementarios. Su unificacin, si es posible, produce dos nuevas clusulas tan satisfacibles como las previas. La resolucin de sta s produce una nueva clusula tan satisfacible como las anteriores (an ms, consecuencia de ella s). 4. Si se obtiene la clusula vaca, el conjunto F . {y} es insatisfacible. Ejemplo 2.89 Comprobemos, por resolucin, que: 8xPx . (9yQy^8zRz) . 8zRz . 8xPx Este mismo ejemplo ya fue resuelto mediante tablas semnticas (tabl. 2.9). Ambos s istemas comprueban que: {8xPx . (9yQy ^8zRz),(8zRz . 8xPx)} es insatisfacible. La forma clausulada de la primera frmula es: 1. 8xPx . (9yQy ^8zRz) = 8xPx. (9yQy ^8zRz) = 2. 9xPx. (9yQy ^8zRz) =

3. 9x9y8z(Px. (Qy. Rz)) . 4. 8z(Pa. (Qb. Rz)) = 5. 8z((Pa. Qb) . (Pa. Rz)) = 6. (Pa. Qb) . (Pa. Rz) Luego la primera frmula es tan satisfacible como este par de clusulas. Observe que , en (3.), se podan haber sacado los cuantificadores en cualquier orden. Interesa desplazar pri mero losexistenciales para simplificar la eskolemizacin en (4.). Esta frmula (4) no es equivalente a la an terior, sino igualmente satisfacible. Cada eliminacin de un existencial requiere una constante distinta. En (5) se reescribre equivalentemente la matriz en forma normal conjuntiva. En (6) se omit en los cuantificadores universales, que quedan implcitos. Enunaexpresin como(5) siemprees posiblevolvera introducirlos cuantificadoresunive rsales yrenombrar variables de forma tal que clusulas distintas no utilicen las mismas va riables . La forma clausulada de la segunda frmula es: 1. (8zRz . 8xPx) (8zRz . 8xPx) = 2. 8zRz ^8xPx = 3. 9zRz^8xPx . 4. Rc. Px

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN Observe que el resultado son dos clusulas, no una. La frmula inicial es tan satisf acible como estas dos clusulas. Se ha escogido la constante c porque no se haba utilizado hasta el momento. El conjunto de dos frmulas iniciales es tan satisfacible como el conjunto de esta s cuatro clausulas: {(Pa. Qb),(Pa. Rz),(Rc),(Px)} Utilizando unificacinyresolucin: 1. (Pa. Qb) 2. (Pa. Rz) 3. (Rc) 4. (Px) 5. (Pa) 2,3z/c 6. () 4,5x/a Como se obtiene la clusula vaca, el conjunto de clusulas es insatisfacible. Bibliografa complementaria Cualquiera de los textos citados en el captulo de Lgica de Proposiciones aborda ta mbin su extensin a Lgica de Primer Orden. Entrelostextosms enfocadosasuuso computacionalse encuentrar[HuthyRyan2000],[BenAr i90], [Burris98]ymuy especialmente[Fitting96].Los lectoresms interesadosporla fundament aciny uso en Matemticas pueden consultar [Ebbinghaus et al. 96], [Dalen 97]especialmente [Mendelson 97]. Aunque no se citen repetidamente, existen varios compendios de inters sobre Lgica en Computacin e Inteligencia Artificial, por ejemplo [Gabbay el al. 93-98] entre otros. Actividades y evaluacin El alumno dispone de ejemplosy actividades en el grupo de tutorizacin telemtica de l curso, as como exmenes resueltos de aos pasados.

Parte II FORMALISMOSPARA PROGRAMACIN

Captulo3 PROGRAMACIN LGICA Resumen En este tema se presenta el paradigma de la programacin lgica, basado en los proce dimientos de deduccin de frmulas vlidas en sistemas de axiomas. En particular, se introduce, un eficiente mtodo de deduccin aplicable en sistemas de clusulas de Horn: la resolucin SLD. Este tipo de resolucin constituye la base de la semntica operacional del PROLOG, el lenguaje de programacin lgica ms difundido. Se analiza finalmente en qu medida este lenguaje verifica los p resupuestos de la programacin lgica. Objetivos El objetivo principal de este tema no es ensear un lenguaje de programacin lgica, s ino presentar los fundamentos tericosdeesteparadigmade computacinymostrarcmoloslenguajescomoPROLOG se apartan de la programacin lgica pura por motivos de eficiencia. El alumno d ebe aprender a interpretarun conjuntode clusulasde Horn comounprograma lgico,y a simular manual mente la ejecucin de dicho programa aplicando el mtodo de resolucin SLD. Debe asimismo co nocer el funcionamiento del motor de inferencia que implementan los intrpretes PROLOGy adq uirir unos conocimientos bsicos de la sintaxis de este lenguaje, de modo que sea capaz de di sear programas sencillosy utilizar adecuadamente sus predicados ms caractersticos (en particular, el predicado de corte). Finalmente, sebusca queel alumnorepare en las particularidades del pa radigmadela programacin lgica e identifique sus naturales campos de aplicacin, en el contexto g lobal de los paradigmas computacionales. Metodologa En el captulo anterior se ha mostrado cmo convertir una frmula de la lgica de predic ados en una frmula equivalente que tiene la forma clausulada. Se ha explicado tambin cmo ex tender las tcnicas de resolucin al caso de la lgica de predicados, incorporando tcnicas de sust ituciny unificacin, con el fin de obtener un procedimiento coherentey completo para dicta minar la satisfacibilidad de sus frmulas. En este tema se muestra cmo estas tcnicas sirven de base para la implementacin de los denominados lenguages de programacin lgica. En el paradigma de la computacin lgica, un problema se formaliza como una sentenci a lgica

(denominada sentencia objetivo) que ha de probarse bajo los supuestos de un sist ema de axiomas, 115

116 Captulo 3. PROGRAMACIN LGICA que constituye el programa. La ejecucin del programa consiste en la prueba de sat isfacibilidad de la sentencia. En este tema nos centraremos en el caso de particular inters en que los axiomas p ueden expresarse como clusulas de Horn. Veremos cmo en un sistema de clusulas de Horn es posible demostrar la satisfacibilidad de una frmula aplicando un eficiente mtodo de deducc in: la resolucin SLD. Estaforma peculiarderesolucin constituyeel fundamentodelaprogramacin lgicay, concretamente, es la base de la semntica operacional del difundido lenguaje PROLO G. En la seccin1de este captulo mostramos cmo una frmula lgica puede interpretarse como unprograma que utiliza como motorde inferenciael mtododeresolucin. Enla seccin2defi nimosel conceptode clusulade Horn,yotros conceptosrelacionadosde utilidad enel contextode la programacin lgica.Enla seccin3exponemosel mtododeresolucinSLD,que constituyeunprocedi mientode deduccin coherenteycompleto cuando se aplica en sistemasde clusulasde Horn,e investigamos la eficiencia de sus posibles implementaciones. Dedicamos la ltima s eccin del captuloal lenguajePROLOG, mostrando cmo sus intrpretes implementanlaresolucin SLD,yllamando la atencin sobre cmo en la prctica algunas de sus construcciones vulneran los presu puestos de la programacin lgica pura por motivos de eficiencia. 3.1 Cmo interpretar una frmula lgica como un programa 3.1.1 Declaracin de programa versus algoritmo de solucin SegnKowalski, un algoritmo que resuelve un problema particular consta de dos comp onentes: la lgicao declarativa,yel control.El componente lgico especificael conocimiento til pa rala resolucin del problema,yel componente de control determina la forma en que ese conocimient o puede utilizarse para resolverlo. Ejemplo 3.1 Elfactorialde un nmero se define como: 1 cuando n = 0 Fact(n)= n* Fact(n1) cuando n > 0 definicin que constituye el componente lgico de cualquier algoritmo de clculo de la funcin factorial. As como el componente lgico de un algoritmo es nico, un programador puede usualment

e elegir entre varios diseos de componentes de control alternativos en funcin de sus requisitos de eficiencia, plataforma de implementacin, etc. En nuestro ejemplo, el cmputo delfac torial puede realizarse mediante dos algoritmos diferentes: Entrada n Paso1 Fact= 1 Paso2 If n = 0then returnFact Paso3 Fact= Fact* n, n = n1, gotoPaso2 y: Entrada n Paso1 Fact= 1, n1 = 0 Paso2 If n1 = nthen returnFact Paso3 n1 = n1+ 1, Fact= Fact* n1, gotoPaso2

3.1. Cmo interpretar una frmula lgica como un programa Podramosdecirqueelprimer algoritmo calculaelfactorial de arribaaabajo ,esdecirvade n a 0, aportando en cada iteracin unfactor n1al cmputo delfactorial. El segundo algoritmo, por el contrario, calculaelfactorial deabajoa arriba , partiendodela afirmacinexpresadaenel componente lgico como Fact(0)= 1yderivando de sta nuevas afirmaciones sucesivamente(Fact(1)= 1, Fact(2)= 2,...) hasta encontrar la solucin. Ambos algoritmos generan las mismas respuestas , pero la eficienciayel consumo de espacio de almacenamiento que requieren difiere. Los dos algoritmos constituyen dos diferentes componentes de control para el mismo componente lgico. En la programacin algortmica, el nfasis se pone en disear algoritmos que resuelvan p roblemas, de modo que al ejecutarlos se calcule la solucin. En la programacin lgica, por el c ontrario, el nfasis se sita en el problema que se pretende resolver. El programador especifica el componente lgico de los algoritmos, es decir, el conjunto de condiciones que las soluciones satisfacen. Los mecanismos genricos de inferencia incorporados en los intrpretes de los lenguajes lgicos permiten deducir las soluciones a partir de las condiciones que satisfacen. Utilizando el lenguaje de la lgica, las condiciones que satisfaceelfactorialde un nmero seexpresan como: Fact(0,1) ^8n8n18m8m1[(n > 0) . (n1 = n1) . Fact(n1,m1) . (m = n* m1) . Fact(n,m)] donde la interpretacin de Fact(x,y) es yes el nmerofactorial del nmero x . Vemos que la frmula anterior expresa una propiedad de la solucin (si m es elfactorial de n ento nces se cumple que ...) sin proporcionar instrucciones explcitas para su clculo. Sin embargo, a l a vista de los algoritmos antes presentados, es evidente que el componente lgico est implcito en los procedim ientos de solucin. El componente lgico de un programa insina un procedimiento de clculo. Veam os

otro ejemplo. Ejemplo 3.2 Consideremos la teora de cadenas, donde se han definido la funcin de c oncatenacin (que denotaremos con el smbolo ), los predicados subcadena, prefijo ysufijo,ylos axiomas siguientes: 1. 8x subcadena(x,x) 2. 8x8y8z ((subcadena(x,y) . sufijo(y,z)) . subcadena(x,z)) 3. 8x8ysufijo(x,y x) 4. 8x8y8z ((subcadena(x,y) . prefijo(y,z)) . subcadena(x,z)) 5. 8x8y prefijo(x,x y) Esta teora tambin puede expresarse utilizando el operador de implicacin inversa , de modo que cada axioma Ase escriba como: A= 8x1...8xk(B. B1. ... . Bm). 1. 8x subcadena(x,x) 2. 8x8y8z (subcadena(x,z) . (subcadena(x,y) . sufijo(y,z))) 3. 8x8ysufijo(x,y x) 4. 8x8y8z (subcadena(x,z) . (subcadena(x,y) . prefijo(y,z))) 5. 8x8y prefijo(x,x y)

Captulo 3. PROGRAMACIN LGICA Bajo esta forma, resulta intuitivo interpretar cada axioma A como un procedimien to que se lee como: para computar B, es necesario computar previamente B1...Bm o, dicho de otro modo, si desea averiguar si se satisface la conclusin B, averige si se satisfacen las pre misas B1...Bm En trminos informales, el anterior procedimiento constituye el componente de cont rol o mecanismo de inferencia genrico de los programas lgicos. En el caso de los axiomas de nuestr o ltimo ejemplo, cabe interpretarlos como: 1. x es una subcadena de x 2. Para averiguar si x es una subcadena de z, encuentre un sufijo y de z y averi ge si x es una subcadena de y 3. x es un sufijo de y x 4. Para averiguar si x es una subcadena de z, encuentre un prefijo y de z yaveri ge si x es una subcadena de y 5. x es un prefijo de x y Ejercicio 3.3 Defina una clusula que permita resolver el problema de ordenar los tres nmeros distintos del conjunto X = {X1,X2,X3}. La secuencia ordenada {Xi,Xj,Xk} deber satisfacer: Xi,Xj,Xk pertenecen a X; Xi,Xj,Xk son distintos entre s; Xi es menor que Xj; Xj es menor que Xk. Suponga definidas las relaciones: pertenece(Xi,X), distintos(Xi,Xj), menor(Xi ,Xj). Algunos lenguajes de programacin lgica permiten especificar ambas componentes espe cficas deun programalgico:lapuralgicao declaracinde axiomasque caracterizalas soluciones,y el control o procedimiento de deduccin de conclusiones a partir de los axiomas. En e ste caso la eficiencia de los programas puede incrementarse cambiando el componente de control sin modi ficar el componente lgico. Sin embargo el ideal de la programacin lgica es que el programado

r se despreocupe del procedimiento de solucin, que estara predeterminado en los entornos de program acin en que los programas se ejecutan. Un programa consiste exclusivamente, en este caso ideal, en su parte lgicao declarativa,y noexiste ningn modo en queel programador pueda optimizarla bsq ueda de la solucin. A continuacin veremos como las tcnicas de resolucin pueden verse como un tal procedimiento genrico de solucin.

3.1. Cmo interpretar una frmula lgica como un programa 119 3.1.2 La resolucin como algoritmo para la solucin de problemas En captulos anteriores hemos visto cmo las tcnicas de resolucin se aplican a sistema s de axiomas expresados en forma clausulada. Vimos tambin cmo cualquier frmula lgica poda expresar se en esta forma. Habitualmente los axiomas se declaran a modo de reglas: Si premisa1 y premisa2 y... entonces conclusiones Formalmente, se escribe: A= 8x1...8xk(B1. ... . Bm . B) donde B yBi sonlos tomosque representan, respectivamente,la conclusin(o consecuent e)y las correspondientes premisas(o antecedentes).Enel casodegeneradoenquenohay ante cedentes,la frmula se escribe: A= 8x1...8xkB. Enun captulo anterior vimos cmo traducir estetipode frmulasa una clase particularde clusulas denominadas clusulas de Horn, en el caso de la lgica proposicional. La extensin del concepto de clusula de Horn al caso de la lgica de predicados es inmediata. En esta seccin r ecordaremos cmo aplicarel mtodode resolucinensistemasde clusulasde Horn para dictaminarsi una frm ula Ges una consecuencia lgica de un conjunto de axiomas. Acontinuacinveremos cmo la ap licacin de dicho mtodo puede interpretarse como la ejecucin de un programa lgico que averig ua la satisfacibilidad de la frmula G. La traduccin a forma normal conjuntiva de una regla, prescindiendo de los cuantif icadoresy eliminando el condicional, es inmediata: A= (B1. ... . Bm) . B= B1. .... _Bm . B Podemos ahora aplicar el mtodo de resolucin para dictaminar si una frmula escrita e

n forma normal conjuntiva G= G1. ... . Gl es una consecuencia lgica del conjunto de axiomas: basta con aadir Gal conjuntode axiomas,expresadosen forma clausulada,yrefutarlapor resolucin. Gse denomina habitualmente la clusula objetivo . Un conjunto de axiomas es presumiblemente satisfacible, de modo que en la refuta cin no tiene sentidobuscar resolventes entrelos axiomas;enlugarde ellobuscaremos resolverla c lusula objetivo con un axioma. Como G se expresa como una disyuncin de literales negativos, G= (G1. ... . Gl)= G1. ... _Gl, slo existe la posibilidad de que uno de tales literales negativos, Gi, se resuelva con el nico literal positivo del axioma, B. El resolvente ser por tant o una clsula que constar slo de literales negativos: B1. ... _Bm _G1. ... _Gi-1_Gi+1. ... _Gl . Por tanto, todos los resolventes que aparezcan a lo largo de la refutacin contend rn slo literales negativos. Eventualmente, la resolucin tendr lugar con axiomas que no tengan antec edentes, es decir, axiomas cuyas formas clausuladas consistan en un nico literal positivo. Pr ogresivamente se producirn resolventesms cortosy, finalmente,la clusulavaca.De este modo quedar refuta dala frmula Gyse habr probado la satisfacibilidad de la frmulaG. Ejemplo 3.4 Expresemos la teora de cadenas presentada en el ejemplo 3.2 anterior en forma clausal:

120 Captulo 3. PROGRAMACIN LGICA 1 subcadena(x,x) 2 subcadena(x,y) _ sufijo(y,z) . subcadena(x,z)) 3 sufijo(x,y x) 4 subcadena(x,y) _ prefijo(y, z) . subcadena(x,z)) 5 prefijo(x,x y) Una forma de probar que la frmula subcadena(a b c,a a b c c) es una consecuencia lgica de la teora es refutar mediante resolucin la frmula subcadena(a b c,a a b c c), segn se describe en la siguiente secuencia: 6 substr(a b c,a a b c c) 7 substr(a b c,y1) . su ffix(y1,a a b c c)

(de 6y2 conx = a b c,z = a a b c c) 8 substr(a b c,a b c c) (resolvente de 9 substr(a b c,y2) . prefix(y2,a b c c) (resolvente de 10 substr(a b c,a b c) (resolvente de 11 . (resolvente de

7y3)

8y4)

9y5) 10 y1)

Como vimos en la seccin anterior, resulta ms intuitivo ver este sistema axiomtico c omo un programa si se utiliza el operador de implicacin inversa . Abreviadamente (asumi endo que todas lasvariables estn cuantificadasde forma universalyque las comas enel antecedente denotan conjuncin.), la teora se transforma entonces en: 1. subcadena(x,x) 2. subcadena(x,z) . subcadena(x,y), sufijo(y,z)) 3. sufijo(x,y x) 4. subcadena(x,z) . (subcadena(x,y), prefijo(y,z)) 5. prefijo(x,x y) Bajo esta perspectiva, la refutacin de

subcadena(abc,aabcc), prueba de que la clusula bsica subcadena(a b c,a a b c c) es una consecuencia lgica de los axiomas de la teora de cadenas, puede verse como la aplicacin de un procedimiento o programa para averig uar si la cadena abc es una subcadena de la cadena aabcc. Los distintos pasos del procedimiento de reso lucin pueden verse como subprocedimientos de un procedimiento principal. La utilidad de este programa se ve ms claramente si la frmula bajo prueba es: 9. subcadena(w,a a b c c) El procedimiento de prueba consiste en este caso en refutar en el sistema de axi omas la frmula (9. subcadena(w,a a b c c)) equivalente a: 8. subcadena(w,a a b c c) Es fcil ver que el proceso de resolucin produce como resultado la clsula vaca bajo l a sustitucin: {. . a b c} El procedimiento, en este caso, no slo sirve para probar que la frmula 9. subcadena(w,aab

c c) es una consecuencia lgica de los axiomas, sino que adems = a b c que hace cierta la frmula subcadena(w,a a b c c).

computa

un valor de .

Ejercicio 3.5 Muestre cmo puede utilizarseel sistemade clusulas siguiente: 1. Fact(0,1)

3.1. Cmo interpretar una frmula lgica como un programa 121 2. 8n8n18m8m1((n > 0) . (n1 = n1) . Fact(n1,m1) . (m = n* m1) . Fact(n,m)) para calcular el factorial del nmero 3. Idem en el caso del sistema de clusulas solucin del ejercicio 3.3yel problema de o rdenar los nmeros 9,2y5. La refutacin de frmulas en un sistema de axiomas sirve de mecanismo de inferencia genrico de los programas lgicos. Ha de observarse, no obstante, que la conversin de un pro cedimiento de refutacin en un programa no es del todo inmediata. El programa esbozado anteriorm ente es altamente no determinista, ya que el procedimiento de refutacin generalmente lo es: en cada paso puede darse la opcin de qu literal resolvery de qu axioma, ya que la resolucin puede ser posible con ms de un axiomayutilizando distintos literales. Esto significa que no se ha especif icado por completo el control de ejecucin, condicin indispensable para que un algoritmo pueda ejecuta rse de forma automtica.Traducirun procedimientode refutacinaun programaexige especificarreglasq uefijen las opciones anteriores.Talesreglas concretanla semntica operacionaldel lenguajed e programacin lgica utilizado. Entre las mencionadas reglas cabe distinguir entre reglasde comp utacinyreglasde bsqueda, que a continuacin definimos. Definicin 3.6 Regla de computacin: Regla que indica el literalyla clusula objetivo con que se efectuar una resolucin. Definicin 3.7 Regla de bsqueda: Regla que indica la clusula con que se efectuar una resolucin con un literalyclusula objetivo previamente escogidos. 3.1.3 Programacin lgica versus programacin algortmica La programacin lgica nace a principios de los aos 70 fruto de los primeros trabajos sobre demostradores automticos de teoremas, que culminan con la regla de resolucin publicada por Robin son en 1965.En1972,Kowalskipublicalasprimerasideas acercadecmolalgicadeprimerordenpodra ser usada comoun lenguajede programacin. Poco despus Colmerauerllevaala prctica est as ideas conla implementacindel lenguajePROLOG(PROgrammingin LOGic),el primeryms difundido

lenguaje de programacin lgica, cuyo intrprete primitivo se desarroll en el lenguaje ALGOL-W (Roussel, Universidad de Marsella). El paradigma de la programacin lgica se encuadra dentro del paradigma ms general de la programacin declarativa, cuyo enfoque es esencialmente distinto del de la convencional progr amacin algortmica. Frente a los lenguajes algortmicos (tales como Modula-2, C++, Java, et c), tambin llamados procedimentales o imperativos, los lenguajes declarativos no sirven par a especificar cmo resolver un problema, sino qu problema se desea resolver. En la programacin algortm ica un programa consiste en una secuencia de instrucciones que una computadora ha de ejecutar pa ra resolver un problema. El diseo del control de ejecucin de tales instrucciones forma tambin part e del programa. Por el contrario, idealmente en la programacin declarativa la labor del programad or no consiste en codificar instruccionesexplcitas, sino en especificar conocimientoysuposiciones a cerca del problema. Los intrpretes de los lenguajes declarativos tienen incorporado un motor de infer encia genrico que resuelve los problemas a partir de su especificacin. Entre los lenguajes declarativos se distinguen los lenguajes funcionalesylos len guajes lgicos. Mientras que en la programacin funcional el mecanismo de inferencia genrico se bas a en la reduccin de una expresin funcional a otra equivalente simplificada, en el paradigma de la computacin lgica, un problema se formaliza como una sentencia lgica que ha de probarse bajo l os supuestos de un sistema axiomtico, que constituye el programa. La ejecucin del programa consist e en la prueba de satisfacibilidad de la sentencia.

Captulo 3. PROGRAMACIN LGICA El paradigma lgico, independiente del modelo de mquina En los prrafos anterioreshem os presentado el paradigma de programacin lgica en su forma ms pura. Los programas lgic os no incluyen instruccionesexplcitasde operacin, considerndosequeel conocimientoylas suposiciones acerca del problema, proporcionados en forma de axiomas lgicos, son suficientes p ara resolverlo. El conjuntode axiomas describe asla relacin entrela entradaysalida del programa,ycons tituyela alternativaal programa convencional.El programador escribeel conjuntode axiomas,yel compilador o intrprete utilizado incorpora un motor de inferencia de resolucin que, junto con las correspondientes reglasde bsquedaycomputacin, constituye una estructurade control nica, sea cual sea el programa ejecutado. El problema que se desea resolver se formaliza como una sent encia lgica (la sentencia objetivo)que ha de probarse en el sistema axiomtico que constituye el p rograma lgico. Su computacin es un intento de resolver el problema, es decir, de probar la sentenci a objetivo dados los supuestos del programa lgico o, dicho de otro modo, de deducir las consecuencias de l programa. Mencionamos anteriormente que la diferencia esencial entre la programacin lgicayla programacin algortmica radica en que en la programacin algortmica el programador disea el conoci miento del problema en forma de instrucciones explcitas, y disea tambin el control de la c omputacin como parte esencial del programa. Existe, sin embargo otra diferencia clave entr e ambos paradigmas de programacin: los lenguajes algortmicos slo tienen significado con ref erencia al procedimientoque realizanenunamquinaVon Neumann.Lamayoradelos ordenadores modernos se basan en este modelo de mquina, caracterizado por un conjunto homogneo de celda s de memoriay una unidad de procesamiento con algunas celdas locales denominadas registros. La unidad de procesamiento puede cargar datos desdela memoriaalosregistros, realiza operac iones lgicasy aritmticas en stosy almacenavalores enla memoria. Los lenguajesde programacin se ha n diseado para comunicar al ordenador los procedimientos de resolucin de los problemas desde la perspectiva de la ingeniera del ordenador. De este modo, un programa diseado para una mquina Von Neumann consiste en una secuencia de instrucciones encaminadas a realizar la s operaciones anterioresy un conjunto adicional de instrucciones de control. Para alguien nofamiliarizado con las restriccionesdela ingenieraque conducenal diseovon Neuman, pensaren trminosdeun con junto restringido de operaciones no resulta nada fcil. De ah que surja la divisin de tare as entre el diseo

de mtodosde solucinyla codificacin o traduccinde las instruccionesde los diseadores a las instrucciones que puede entender el ordenador. Partiendo del denominado lenguaje mquina , directamente comprendido por el ordenador , se han ido desarrollando formalismosynotaciones ms convenientes paralaexpresin humana , aunque en un principio tambin en correspondencia bastante directa con el lenguaje subyac ente de la mquina, al que los programas deben finalmente traducirse para ser ejecutados. Los lengua jes de programacin lgica, por el contrario, se derivan del lenguaje abstracto de la lgica matemtica,y no guardan dependencia ni relacin directa con ningn modelo de mquina. La lgica proporciona un lenguaje preciso paraexpresarexplcitamente los objetivos, conocimientoypresunciones caract ersticosde un problema, en trminos ms cercanos a los que un ser humano utiliza en sus razonamien tos. De este modo, no obliga al programador a pensar en trminos de las operaciones de un orden ador. El compromiso entre programacin lgicayprocedimental La indiscutible ventaja de dej ar el control de la ejecucin al completo cuidado de un intrprete tiene, no obstante una importante contrapartida. Obviamente, por muy eficiente que sea un compilador de programas lgicos, su prede terminada estructura de control nunca podr equipararse a una estructura especficamente conce bida para una cierta computacin. Los investigadores en programacin lgica han explorado los co mpromisos entrelapuralgica declarativaylas construcciones procedimentalesque permitenalos p rogramadores escribir programas de eficiencia razonable frente a la de los lenguajes procedim entales.

3.2. Formalismo lgico para la representacin de problemas 123 Dejar que un intrprete de PROLOG asuma exclusivamente el control de ejecucin de un programa puede conducir a soluciones ineficientes, por ejemplo, cuando se entra en ramas de recursin infinita (hay que tener presente que el clculo de predicados es indecidible). Com o veremos en las siguientes secciones, los sistemas PROLOG proporcionan algunos mecanismos bsicos de especificacin de control, como la posibilidad de ordenar clusulas y objetivos y el predicado de corte. Desafortunadamente, en sistemas actuales de PROLOG algunos programas pueden ente nderse slo pensando en trminos procedimentales, al abusarse de estas caractersticas no lgicas del lenguaje. En muchas ocasiones, la semntica declarativa de un programa PROLOG (que es la semn tica de un sistema de clusulas de Horn en lgica de predicados) no coincide con su semntica ope racional (es decir, la ejecucin del programa no proporciona exactamente el conjunto de solucio nes que define el sistema de clusulas). En la seccin 3.4.2 de este captulo discutiremos estos aspecto s del lenguaje PROLOG. En la siguiente seccin exploramos primero ms en profundidad la base terica de la programacin lgica. 3.2 Formalismo lgico para la representacin de problemas En esta seccin recordamos el concepto de clusula de Horn, as como otra serie de con ceptos tiles en el contexto de la programacin lgica,y mostramos cmo la aplicacin de un procedimie nto de resolucin se expresa en trminos de los nuevos conceptos definidos. La utilidad de las clusulas de Horn radica en la existencia de un eficiente mtodo de resolucin que constituye un mtodo coherenteycompletode deduccin cuandoseaplicaa clusulasdeestetipo. Estemtodode resolucin, denominado SLD, se analiza en la seccin 3.3. Definicin 3.8 Clusula Horn: ClusulaA. B1,...,Bn, en forma clausulada (B1. ... . Bm) . A= B1. ... _Bm . A, con a lo sumo un literal positivo. El literal positivo, A, se denomina cabeza y los literales negativos Bi, se denominan cuerpo. Su semntica informal es: para cad a asignacin de cada variable, si B1,...,Bn son frmulas ciertas, Aes una frmula cierta . Las clusulas de Horn se clasifican en clusulasde programayclusulas obtetivo. Definicin 3.9 Clusula objetivo u objetivo: clusula Horn que carece de literales pos itivos .

B1,...,Bn (en forma clasular B1. ... _Bm). Cada Bi es un subobjetivo del objetivo principal. Definicin 3.10 Clusula de programa: clusula Hornque constadeun literal positivoyuno oms literales negativos. Definicin 3.11 Clusula unitaria o hecho: clusula Horn de programa que consta de un n ico literal positivo A. (en forma clasular, A). Su semntica informal es: para cada asignacin de cada variable,A es una frmula cierta. Definicin 3.12 Procedimiento o definicin de un predicado: conjunto de clusulas de H orn de programa cuyas cabezas comparten la letra de predicado. Definicin 3.13 Programa lgico: Conjunto de procedimientos Definicin 3.14 Base de datos (en un programa lgico): Procedimiento consistente en un conjunto de hechos bsicos (es decir, sin variables libres).

Captulo 3. PROGRAMACIN LGICA Definicin 3.15 Respuesta correcta: SeaPun programay Guna clusula objetivo. Una sub stitucin . para las variables de Ges una respuesta correcta si P. 8( Gq), donde . denota el cierre universal de las variables libres de Gq. Si Gcarece de variables, la nica respuesta correcta es la sustitucin identidad. El conjunto de respuestas correctas de un programa P define su semntic a declarativa SD(P). A continuacin ilustramos con un ejemplo cmo la aplicacin de un mtodo de resolucin en un sistema de clusulas de Horn se interpreta como la ejecucin de un programa,y se describe en trminos de los conceptos definidos. Ejemplo 3.16 El conjunto de clusuas de Horn: 1. q(x,y) . p(x,y) (en forma clausulada p(x,y). q(x,y)) 2. q(x,y) . p(x,z),q(z,y) (en forma clausulada p(x,z) . q(z,y). q(x,y)) 3. p(b,a) 7. p( f,b) 4. p(c,a) 8. p(h,g) 5. p(d,b) 9. p(i,h) 6. p(e,b) 10. p( j,h) Es un programa que tiene dos procedimientos, uno de los cuales es una base de he chos. Supongamosquesedesea utilizareste programapara demostrarlavalidezdela frmula 9y9z(q(y,b). q(b,z)) y,msan,para obteneruna sustitucindelasvariablesy,zque hace cierta la frmula q(y,b). q(b,z). La validez de la frmula queda demostrada refutando su negacin 9y9z(q(y,b) . q(b,z)) = 8(q(y,b) _q(b,z))

en el sistema de clusulas. Una refutacin posible consiste en la siguiente secuencia: 1. Se escoge resolver q(y,b) conla clusula1obtindose . p(y,b),q(b,z) (en forma clausulada p(y,b) _q(b,z)) 2. Se escoge resolver p(y,b) con la clusula5 aplicando la sustitucin {y . d} obtindose . q(b,z) (en forma clausulada q(b,z)) 3. Se toma el nico literal posible para resolver con la clusula 1, obtenindose . p(b,z) (en forma clausulada p(b,z)) 4. Se tomael nico literal posible para resolver conla clusula3aplicandola sustituc in {z . a}, obtenindose la clusula vaca . De la secuencia anterior deducimos que la sustitucin . = {y. d, z . a} hacefalsala frmula 8(q(y,b) _q(b,z)), con lo que queda demostrada la validez de la frmula 9y9z(q(y,b) . q(b,z)). Veamos ahora que el problema resuelto equivale al problema de encontrar una resp uesta correcta para la frmula q(y,b) _q(b,z), es decir, que la sustitucin encontrada, . = {y . d, z . a}, es una respuesta correcta para las variables de la clusula objetivo . p(y,b),q(b,z). Efectivamente, segn la definicin antes presentada, una substitucin . para las variables de G= . p(y,b),q(b,z) es una respuesta correcta si P. 8( Gq), es decir, si P. . ( (q(y,b) _q(b,z))). ), es decir,

P. . ((q(y,b) . q(b,z)). ). Esta frmula es precisamente la frmula demostrada para la sustitucin . = {y. d, z . a}. Como esta sustitucin es bsica, en este caso el cierre universal es prescindible, d e modo que P. (q(y,b) . q(b,z))q. Pero la sustitucin que conlleva un proceso de refutacin por resolucin no siempre es bsica. A veces, la clusula vaca puede obtenerse sin necesidad de sust ituir todas las variables de la frmula demostrada. Baste como ejemplo sencillo el clculo de una su stitucin de respuesta correcta para la frmula G= (x = y+ 13) en el conjunto de axiomas de la aritmtica. La

3.3. Resolucin SLD 125 sustitucin . = {y. x-13} proporciona la frmula 8( Gq)= 8x ( ((x= x))) = 8x (x= x), que es vlida en el sistema de axiomas considerado. En resumen, los sistema de programacin lgica ideales usan nicamente la regla de res olucin como regla de inferencia. La prueba de que una frmula B= 9(B1. ... . Bn) es una consecuencia lgica de un programa P (es decir, si P. B) se llevaa cabo negandola frmulay aadindolaal conjunto de axiomas que constituyen el programa, para averiguar si el sistema de frmulas extendido es insatisfacible (contradictorio). Si ste es el caso se ir derivando una serie de objetivos sucesivos hasta llegarse a la clusula vaca. Esta prueba es pues equivalente a la prueba de q ue existe una respuesta correcta . para la clusula objetivo G= (B1. ... . Bn). Baste ver que: 8G= 8(B1. ... . Bn)= 9(B1. ... . Bn)= B. Encontrar una respuesta correcta para una clusula objetivo Ges encontrar una sustitucin de variables que conduce a la refutacin de Gen el sistema de axiomas. Si esta sustitucin se encuentra, se habr probado la validez de la frmula G. 3.3 Resolucin SLD En esta seccin exponemos el mtodo de resolucin SLD, debido a Kowalski, que constitu ye un procedimientode deduccin coherenteycompleto cuandose aplicaen sistemasde clusulasd e Horn.

La denominancin SLD significa Seleccin Lineal de programas Definidos , haciendo as ref erencia a la esencia del mtodo, que radica en la seleccin sucesiva de clusulasyliterales pa ra resolver de acuerdoa criterios especificadosporreglasde computacinybsqueda.Al trminodela seccins e investiga cmo la eficiencia del mtodo se ve condicionada por las reglas elegidas. Definicin 3.17 Derivacin por resolucin SLD: Sea P un conjunto de clusulas de program a, R una regla de computaciny G una clusula objetivo. Una derivacin por resolucin SLD de P. {G} se define como una secuencia de etapas de resolucin entre clsulas objetivo y clusul as de programa. La primera clusula objetivo es G0 = G. Asumiendo que se ha derivado Gi,Gi+1 se define seleccionando un literal Ai . Gi de acuerdo a la regla de computacin R, escogiendo una clusula Ci . Ptal que la cabeza de Ci pueda unificarse con Ai mediante una sustitucin MGU (Uni ficador de Mxima generalidad) qi yresolviendo: Gi = . A1,...,Ai-1,Ai,Ai+1,...,An Ci = A. B1,...,Bk Aiqi = Aqi Gi+1 = . (A1,...,Ai-1,B1,...,Bk,Ai+1,...,An)qi Una refutacin SLD de P[{G} es una derivacin SLD finita de P[{G} que tiene la clusula vaca, , como ltimo objetivo en la derivacin. Si Gn es la clusula vaca, decimos que la longitud de refutacin es n. Definicin 3.18 Respuesta computada: Sea P un conjunto de clusulas de programa, R u na regla de computaciny Guna clusula objetivo. Una respuesta computada . para P[{G} es la sustitucin obtenida por la composicin q1,...,qn de todas las variables de G, donde q1,...,qn es la secuencia de MGUs usados en una refutacin SLD de P[{G}. Se consideran incluidas slo las . que sean sustituciones de las variables del programa. El conjunto de respuestas computada s de un programa define su semntica operacional SO(P). Ejemplo 3.19 Sea el programa P= {p(a),q(a,b)}

yla clusula objetivo:. p(x), q(x,y) 1. Resolviendo p(x) con p(a), aplicando la sustitucin q1 = {x/a}, se obtiene como nuevo objetivo: . q(a,y)

Captulo 3. PROGRAMACIN LGICA 2. Resolviendo q(a,y) con q(a,b), aplicando la sustitucin q2 = {y/b}, se obtiene . La respuesta computada en la refutacin de la clusula objetivo en el programa Pes { x/a,y/b}. Ejercicio 3.20 Derive . por resolucin SLD aplicada a la clusula objetivo . q(y,b), q(b,z) en el programadel ejemplo 3.16,yobtengala respuesta computada. Observequela derivacineq uivalea la refutacin de la clusula (q(y,b) _q(b,z)). Puede demostrarse que el mtodo de resolucin SLD constituye un procedimiento de ded uccin coherenteycompleto cuandose aplicaen sistemasde clusulasde Horn. Este resultadose enunciaen los siguientes teoremas (cuya demostracin no inclumos): Teorema 3.21 Consistenciadelaresolucin SLD Sea Pun conjunto de clusulas de programa, Runareglade computaciny Guna clusula obje tivo. Se supone la existencia de una refutacin SLD de G. Sea . = q1...qn la secuencia de unificadores usadosenla refutacinysea s la restriccin de . a lasvariablesdeG,es decir,la respuesta computada en la refutacin. Entonces, s es una respuesta correcta para G. Como las respuestas computadas definen la semntica operacional del programa, SO(P),ylas respuestas correctas la semntica declarativa, SD(P), se concluye que SO(P) . SD(P). Teorema3.22 CompletituddelaresolucinSLD aplicadaa clusulasdeHorn Sea Pun conjunto de clusulas de programa, Runa regla de computaciny Guna clusula ob jetivo. Sea s una respuesta correcta para G. Entonces existe una refutacin SLD de Ga partir de P tal que s es la restriccin de la secuencia de unificadores . = q1...qn a las variables de G, es decir, la respuesta computada en la refutacin. Del mismo modo, ya que para cada respuesta c orrecta existe una respuesta computada, podemos afirmar que SD(P) . SO(P).

De los dos teoremas anteriores se deduce que SD(P)= SO(P), es decir, la semntica declarativa de un programalgico descrito en trminosde clusulasde Horn coincide con su semntica oper acional cuando el control de ejecucin consiste en la derivacin SLD. Ejemplo 3.23 Consideremos el programa P= {p(a), q(x,y) . p(x), q(a,b)} donde el dominio de las variables x e yes {a,b}. La semntica declarativa 1 de est e programa est definida por el conjunto de trminos bsicos ms sencillos que son consecuencia lgica d el conjunto de clusulas del programa (el modelo de Herbrand), es decir: SD(P)= {p(a), q(a,b)}.Para obtener la semntica operacional debemos ver cuales son las respuestas ms sencillas (es decir, pertenecientes a la base de Herbrand) que pueden computarse mediante la aplicacin del procedimient o de resolucin SLD, obtenindose igualmente SO(P)= {p(a), q(a,b)}. Enla seccin anterior sealbamosla necesidadde definirreglasde computacinyreglasdebsque da que permitiesen sistematizar los procedimientos de resolucin conviertindolos en pr ogramas eficientes. Para visualizar la aplicacin de tales reglas es til representar las po sibles derivaciones SLD de una clusula objetivo, bajo una cierta regla de computacin R, en forma de un a estructura tipo rbol, denominada rbol SLD. Las reglas de bsqueda pueden verse como algoritmos de bsq ueda en el rbol SLD.Acontinuacin definimos una seriede conceptos tiles en este contexto. 1Nos referimos aqua los conceptos rigurososde semntica declarativaysemntica operaci onal, definidos en trminos de modelos de Herbrand . En el resto del captulo se usan segn sus acepciones infor males (con frecuencia utilizadas en la literatura), haciendo referencia, respectivamente, al conjunto de todas las resp uestas correctasycomputadas; habida cuenta de que los modelos de Herbrand no son materia de estudio obligatorio en esta asi gnatura.

3.3. Resolucin SLD Definicin 3.24 Arbol SLD. Sea P un conjunto de clusulas de programa, R una regla d e computaciny Guna clusula objetivo. Todas las posibles derivaciones SLD pueden representarse e n una estructura de tipo rbol denominada rbol SLD. La raz se etiqueta con la clusula objet ivo G. Dado un nodo n etiquetado por la clusula objetivo Gn, se crea un nodo ni para cada nue va clusula objetivo Gni que puede obtenerse resolviendo el literal escogido por Rcon la cabeza de un a clusula en P. Definicin 3.25 Rama de xito de un rbol SLD:Rama que conduce a una refutacin Definicin 3.26 Rama de fallo de un rbol SLD:Rama que conduce a una clusula objetivo cuyo literal seleccionado no pude unificarse con ninguna clusula del programa. Definicin 3.27 Rama infinita de un rbol SLD:Rama correspondiente a una derivacin no terminante. Definicin 3.28 Regla de bsqueda en un rbol SLD:Procedimiento de bsqueda de una refut acin en un rbol SLD. Definicin 3.29 Procedimiento de refutacin SLD: Algoritmo de refutacin SLD junto con la especificacinde una reglade computaciny una reglade bsqueda. Ejemplo 3.30 Sea el programa: P= {p(b), p(a),q(a,b)}Los siguientes rboles SLD consisten en una nica rama: . p(b) rama de xito . p(a) rama de xito . q(a,a) rama defallo . q(a,b) rama de xito . q(b,a) rama defallo . q(b,b) rama defallo Ejemplo 3.31 Enla figura3.1se muestrael rbolde derivacin correspondienteala clusula objetivo q(y,b), en el conjunto de clusulas de programa del ejemplo 3.16,ydonde la regla d e computacin consiste en escoger siempre el literal situado ms a la izquierda de la clusula obj etivo. Los nmeros que etiquetan las aristas sealan la clusula del programa con que se aplica la reso

lucin. Las ramas etiquetadas con5,6y7conducenala clusulavaca. Ejercicio 3.32 Construya los rboles de derivacin de la clusula objetivo . p(y,b),q(b,z) cuando la regla de computacin consiste en seleccionar el ltimo literal de la clusula objet ivo, y cuando consiste en seleccionar el primer literal de la clusula objetivo. Teorema 3.33 Sea P un programay G una clusula objetivo. Entonces, cada rbol SLD de P yG bien tiene infinitas ramasde xitoo bien cada unade sus ramas tieneel mismo nmero f initode ramas de xito. Del teorema de completitud se deduce que la resolucin SLD es un procedimiento com pleto independientemente de la eleccin de la regla de computacin, pero slo indica que existe una refutacin. La eleccin de la regla de bsqueda determinar el que la refutacin se encuentre o no. Surge de este modo un compromiso entre completitudyeficiencia. Una bsqueda en anchura en un rbol S LD, donde se comprueban todos los nodos de cada nivel antes de adentrarse ms en el rbo l,garantiza que se encontrar la rama de xito siempre que exista. Por el contrario, si se aplic a una estrategia

Captulo 3. PROGRAMACIN LGICA q(y,b) p(y,b) (1) x(2) p(y,z), q(z,b) (5) (7)(6)(3)(10) q(a,b) (1)(2) q(h,b) (1)(2) q(a,z ), q(z ,b)p(a,b)p(h,z ), q(z ,j)p(h,j) x. . . . . . Figura 3.1: rbol SLD del objetivo q(y,b) de bsqueda en profundidad, siempre existe la posibilidad de explorar una rama no terminante. La regla de bsqueda en anchura es completa en el sentido de que siempre encuentra la respuesta correcta cuando sta existe. Sin embargo, el tamao del rbol que requiere almacenar en una est ructura de datos crece exponencialmente con la profundidad de la bsqueda, de modo que la apl icacin pura de esta estrategia no resulta una regla prctica. 3.4 El lenguaje PROLOG El PROLOG surgi de los trabajos de Colmerauer sobre el procesamiento del lenguaje natural. Su primera implementacin eficiente se debeaWarrenyotrosinvestigadoresdela universida dde Edimburgo. Adems de tratarse del primeryms difundido lenguaje de programacin lgica, su estudio es muy interesante debido a que la traduccin de clusulas de Horn a procedimientos codificados en PROLOG es inmediata, e ilustra particularmente bien el paradigma de programacin lg ica expuesto enlas secciones anteriores.Acontinuacin presentamoslos principios bsicosdela progr amacinen PROLOGy sus mecanismos operacionales ms interesantes. Reflexionamos tambin sobre s us peculiaridades como lenguaje de programacin,ysobre sus caractersticas no-lgicas, particularmente sobre las derivadas del uso de la controvertida primitiva de corte. 3.4.1 Definicindepredicadosrecursivos. Reglasde computacinybsqueda Comenzaremos por ver los sencillos cambios notacionales que introduce PROLOG con respecto a la notacin matemtica que hemos utilizado en los apartados anteriores. En un programa PROLOG, las variables empiezan con letras maysculas, los predicadosylas constantes con letras minsculasy en

lugar del smbolo . se utiliza : -. Las clusulas, denominadas tambin en PROLOG terminan con un punto.

reglas , se

Ejemplo 3.34 El ejemplo de la seccin 3.16 se escribe pues en PROLOG de la forma s iguiente: 1. q(X,Y) :p(X,Y). 2. q(X,Y) :p(X,Z),q(Z,Y).

3.4. El lenguaje PROLOG 3. p(b,a). 7. p( f,b). 4. p(c,a). 8. p(h,g). 5. p(d,b). 9. p(i,h). 6. p(e,b). 10. p( j,h). De hecho, este programa ilustra una tpica definicin recursiva de predicado PROLOG. Los predicados ms complejos(q(X,Y))se definen en trminos de predicados ms sencillos(p(X,Y)),ylas clusulas ms generales son recursivas, es decir, el predicado definido (cabeza de l a clusula) aparece en la definicin (cuerpo de la clusula). As como en los lenguajes algortmicos se util iza la iteracin (mediante estructuras debucle tipo for , while ,y repeat/until ), en loslenguajes lgicos l recursin es el recurso principal que el programador utiliza para disear los predic ados. Ejemplo 3.35 Efectivamente, es fcil imaginar diferentes programas que respondan a l patrn anterior. Considrese, por ejemplo, el problema de estudiar la conectividad en un grafo diri gido. Un grafo dirigido puede representarse en un programa lgico por medio de una coleccin de hechos. Un hecho arco(Nodo1,Nodo2) estar presente en el programa si existe un arco desde el Nodo1 al Nodo2en el grafo. Dos nodos estarn conectados si existe una serie de arcos que pu eden recorrerse para llegar desde el primer nodo hasta el segundo. Es decir, la relacin que repre senta el predicado conectado(Nodo1,Nodo2), que es cierta si los nodos Nodo1yNodo2estn conectados, es el cierre transitivo de la relacin arco. El predicado conectado se define mediante el sigui ente programa: 1. conectado(Nodo1,Nodo2) :arco(Nodo1,Nodo2). 2. conectado(Nodo1,Nodo2) :-arco(Nodo1,Enlace),conectado(Enlace,Nodo2). El siguiente conjunto de hechos representara un grafo inconexo: 3. arco(b,a). 7. arco( f,b). 4. arco(c,a). 8. arco(h,g). 5. arco(d,b). 9. arco(i,h). 6. arco(e,b). 10. arco( j,h). Ejercicio 3.36 Defina en PROLOG el predicado ancestro, cierre transitivo de la r elacin padre. Proporcione

asimismo una definicin recursiva en PROLOG para el predicado factorial, partiendo de su definicin como sentencia lgica presentada en la seccin 3.1.1. Utilizando el programa anterior, un intrprete de PROLOG puede responder, por ejem plo, a la pregunta qu nodos Y yZ pueden conectarse a travs de un camino que pase por el nodo b ? . Se denominan preguntas PROLOG a los objetivos introducidos en un sistema PROLOG con e l fin de comprobar su satisfacibilidad y/o computar las correspondientes respuestas. Norm almente, la lnea de comandosenquese introducenlosobjetivos sometidosapruebase identificaconel smbo lo?-. En el sistema de clusulas asociado, responder a la anterior pregunta supone compu tar una respuesta para el objetivo . conectado(y,b), conectado(b,z), que se introduce en la lnea de comandos del intrprete como:? -conectado(Y,b), conectado(b,Z). La respuesta correcta obtenida en el ejemplo 3.16 de la demostracin de validez de la frmula 9y9z(q(y,b) . q(b,z)), . = {y. d, z . a}, es precisamente una de las respuestas quebuscamos. El motor de inferencia de PRO LOG computa esta respuesta aplicando el mtodo de resolucin en el sistema de clusulas contenido en su base de datos. Como regla de computacin utiliza la seleccin del literal situado ms a la izq uierda en la clusula objetivo,y como regla de bsqueda la seleccin de la clusula situada ms arriba en la lista de clusulas de cada procedimiento, de forma que realiza la computacin en los sigui entes pasos:

Captulo 3. PROGRAMACIN LGICA 1. Escoge resolver conectado(Y,b) (el subobjetivo situado ms a la izquierda) con la primera clusula en que la equiparacin es posible (la clusula 1). La nueva clusula objetivo e s: . arco(Y,b), conectado(b,Z). 2. Escoge resolver arco(Y,b) (el subobjetivo situado ms a la izquierda del objetivo actual) con la primera clusula en que la equiparacin es posible (la clusula 5), aplicando la susti tucin {Y . d}. La nueva clusula objetivo es: . conectado(b,Z) 3. Toma el nico subobjetivo posible, conectado(b,Z), para resolver con la primera clusula en que la equiparacin es posible (la clusula 1). La nueva clusula objetivo es: . arco(b,Z) 4. Toma el nico subobjetivo posible, arco(b,Z) para resolver con la nica clusula en que la equiparacin es posible (la clusula 3), aplicando la sustitucin {Z. a} ,obtenindo la clusula vaca . El rbol SLD correspondiente se muestra en la figura 3.2. arco(Y,b), conectado(b,Z) conectado (b,Z) arco (b,Z) Y dconectado(Y,b), conectado(b,Z) (1) (5) (1) Z a(3) Figura 3.2: rbol SLD del objetivo conectado(Y,b),conectado(b,Z) Es la aplicacin de una estrategia de bsqueda en profundidad lo que hace que los in trpretes de PROLOG sean tan eficientes. Gracias a esta estrategia, en tiempo de ejecucin bast a con almacenar: a) la clusula objetivo actual, con un puntero al subobjetivo actual, b) un punter o a la clusula del procedimiento cuya cabezase puede unificar conel citado suobjetivoyc)el conjunto de sustituciones de variables realizadas hasta el momento. Adicionalmente, resulta til sealar de al gn modo los nodos previos del rbol SLD donde an quedan ramas por explorar. De este modo, e n caso de ocurrirunfallo,sepuede retroceder directamentehastaelnodoms cercanocuyos subrboles puedan proporcionar soluciones adicionales.Tales nodosseregistranen una listay se denom inan puntosde retroceso ( backtracking ). Debido a la regla de bsqueda de PROLOG, las ramas no exp loradas

estn siempre situadas a la derecha de la rama actual. Esta estrategia es eficient e desde el punto de vista del almacenamiento, ya que no requiere guardar memoria de todos los camino s explorados, que estn implcitos en los datos anteriores. Los puntosde retroceso no slo son tiles en c asodefallode

3.4. El lenguaje PROLOG alguna rama, sino en los casos en que se desea computar ms de una respuesta corre cta, o todas las respuestas correctas para un objetivo dado. Explorando nuevas ramas del rbol SLD, PROLOG puede computar respuestas adicionale s, en particular las soluciones {Y . e, Z . a} y{Y . f, Z . a}, como se muestra en el rbol SLD de la figura 3.3, donde los puntos de retroceso se han sealado con un asterisco. *arco(Y,b), conectado(b,Z) *conectado (b,Z) arco (b,Z) Y d*conectado(Y,b), conectado(b,Z) (1) (5) (1) Z a(3) (6) (7) *conectado (b,Z)*conectado (b,Z) arco (b,Z) (1) Z a(3) arco (b,Z) (1) Z a(3) Y eY farco(b,X), conectado(X,Z) (2) X a(3) *conectado(a,Z) FALLOFALLOarco (a,Z) (1) arco(a,P), conectado(P,Z) (2) FALLOFALLOFALLO Figura 3.3: Reevaluacin del objetivo conectado(Y,b),conectado(b,Z) Enla figura 3.4 se muestra cmoPROLOGexplorael rbol enbuscade nuevas soluciones, re trocediendo en cada paso al punto de retroceso ms recientemente sealado. Supongamos ahora que se formulaaPROLOGla pregunta? conectado(X,Y), con el propsito de encontrar todos los pares de nodos conectados entre s. La posibilidad de encon trar la solucin radica

en dar con una rama finita. PROLOG encuentra las soluciones porque su estrategia de recorrido del rbol le conduce en este caso a evaluar primero las ramas finitas. En concreto , comenzar por satisfacer repetidasvecesel subobjetivo arco(X,Y) hasta agotar todaslas respuestas.Acontinuacin,el retroceso le llevar a intentar satisfacer conectado(X,Y) utilizando la segunda clusula, encontrando primero un tercer nodo Z ligado mediante un arco a X, es decir, intentado satisf acer arco(X,Z), etc. Sin embargo, consideremos las clusulasysus literales ordenados enla siguiente for ma: 1. conectado(Nodo1,Nodo2) :conectado(Enlace,Nodo2), arco(Nodo1,Enlace). 2. conectado(Nodo1,Nodo2) :arco(Nodo1,Nodo2). Al desplegar el correspondiente rbol de bsqueda de respuestas para? conectado(X,Y), nos encontramosconquees infinito. Debidoala recursin,delas ramas situadasmsala izquier dacuelga siempre un subrbol que reproduce el rbol global (vase la figura 3.5). PROLOG no sera capaz de

Captulo 3. PROGRAMACIN LGICA *arco(Y,b), conectado(b,Z) *conectado (b,Z) *conectado(Y,b), conectado(b,Z) *conectado (b,Z) *conectado(a,Z) FALLOFALLOFALLOFALLOFALLO*conectado (b,Z) Figura 3.4: Exploracin del rbol SLD del objetivo conectado(Y,b),conectado(b,Z) por un intrprete PROLOG computar ni una sola respuesta, quedndose eternamente explorando la primera rama infinita. conectado(X,Y) conectado(Z,Y), arco(X,Z) (1) conectado(P,Y),arco(P,Z), arco(X,Z) (1) Figura 3.5: Rama infinita del rbol SLD del objetivo conectado(X,Y) Vemos pues, como se anticip en la seccin anterior, que las estrategias de bsqueda e n profundidad pueden conducir a computaciones no terminantes incluso en casos en que existe un a respuesta correcta. Un programador de PROLOG debe ordenar cuidadosamente las clusulas dentr o de cada procedimiento, as comolos literales dentrode las clusulas, paraevitarla no-termina cin.Es por esta razn que es muy importante conocer las estrategias de computacinybsqueda de PR OLOG ytenerlas presentes cuando se disean los programas. En realidad, sta es una caract erstica de la programacin en PROLOG impropia de un paradigma puramente lgico, donde idealmente e l programador puede por completo despreocuparse del control de ejecucin de sus programas. En la seccin 3.4.2 veremos algunas otras caractersticas no-lgicas del lenguaje PROLOG. Ejercicio 3.37 En el caso de la primera versin del programa anterior, muestre cmo PROLOG encuentra todaslas solucionesalapregunta? conectado(Nodo1,Nodo2) explorando su rbol SLD.

3.4. El lenguaje PROLOG 133 Qu ocurresi se intercambian las clusulas1y2, conservandoel ordende los literales de ntrode las clusulas? Finalmentesupngasequesedesea conocerlalistadenodos conectadosaunnododado,porejemp lo, el nodo h. Bastara con formular la pregunta PROLOG ? conectado(Nodo,h) y solicitar todas las respuestas posibles. La tarea puede facilitarse no obstante definiendo un nu evo predicado que proporcione en una sola respuesta la lista de tales nodos. Obsrvese que la pregun ta anterior podra haberse formulado en la forma ? conectados(ListaNodos,h), donde el predicado conectados se habra definido previamente como: conectados(Nodo1|ListaNodos,Nodo2) :conectado(Nodo1,Nodo2), conectados(ListaNodos,Nodo2). conectados([],Nodo). En este caso el intrprete PROLOG proporcionara todas las soluciones en la primera respuesta, con la notacin caracterstica de las listas PROLOG, donde los elementos aparecen se parados por comasyencerrados entre corchetes. La notacin Nodo1|ListaNodos, denota una lista c uyo primer elemento es Nodo1. Hemos introducido este ltimo ejemplo para ilustrar la utilidad de las estructuras de tipo lista en los programas PROLOG, as como la forma en que se manipulan. La p osibilidad que proporciona la recursin de definir estructuras de datos infinitas como la lista d ota a los programas PROLOG de una gran potencia matemtica. Ejercicio 3.38 a) Defina un predicado PROLOG que descomponga un nmero en la suma de dos nmeros pares, utilizando los predicados predefinidos between(A,B,C) (pertenencia de un nmero a un intervalo), + (suma), =:=(igualdad), mod (mdulo o resto de divisin entera). Muestre el rbol SLD correspondiente a la computacin de descom poner(6,a,b). b) Defina en PROLOG un predicado de ordenacin utilizando el programa lgico del eje rcicio 3.3 , haciendo uso de los predicados predefinidos PROLOG member(X,Xs) (pertenecencia de un elemento a una lista), = / = (distinto) y < (menor). Muestre el rbol SLD correspondiente a la computacin de ordenar([2,5,9]).

3.4.2 Usos procedimentales del PROLOG A lo largo del captulo hemos sealado en diversas ocasiones la necesidad de los len guajes prcticos de alejarse del ideal de la programacin lgica puramente declarativa. As, no es posi ble disear buenos programas PROLOG ignorando los mecanismos de ejecucin que implementan sus intrpretes. Una programacin lgica efectiva requiere conocimientoyutilizacin de estos mecanismos , de este modelo de ejecucin. En la seccin previa veamos cmo un programador de PROLOG se vea obligado a pensar en trminos del control de ejecucin de sus programas ordenando cu idadosamente clusulasyliterales conel findeevitar ejecuciones no terminantes. En esta seccin veremos cmo es posible simular en PROLOG las construcciones iterati vas de los lenguajes algortmicos,ycmo determinadas circunstanciasexigen queel programador piense en trminos procedimentaleseinterfieraenel controlde ejecucindel programa utilizando p redicadosno lgicos, en particular, el potente predicado de corte. Este ltimo es el nico predica do que realmente afectala estrategiadeevaluacinenlos programasPROLOG,y suusoponeen cuestinel carcter autnticamente declarativo del lenguaje.

Captulo 3. PROGRAMACIN LGICA Programas iterativos Enla introduccinde este captulo presentamosdos algoritmosde clculodela funcinfactori al.En PROLOG, dicha funcin se codifica naturalmente como: factorial(0,1). factorial(N,M) :N> 0, N1isN 1, factorial(N1,M1),.MisN* M1. Enestelenguajenoexisten construcciones iterativas,demodoquecuandose traduceun al goritmo iterativo habitualmente la iteracin se sustituye por la recursin. Existe, sin emba rgo, una clase de programas PROLOG recursivos que guardan una relacin cercana con los programas ite rativos convencionales. Estos programas incluyen un tipo particular de variables denominadas acumuladores , que hacen las veces de variables de almacenamiento de resultados intermedios, va riables de las que PROLOG carece. Tpicamente, estos resultados intermedios se producen como resultad o de la computacin de cada etapa de una iteracin. Ilustramos la tcnica con una versin iterativa del pr ograma anterior: factorial(N,M):-factorial(N,1,M). factorial(N,T,M):-N> 0, T1isT * N, N1isN 1, factorial(N1,T1,M). factorial(0,M,M). Este programa no vulnera estrictamente los principios de la programacin lgica. Sin embargo, su significado declarativo no es muy intuitivo, mientras que resulta una traducc in bastante inmediata

de un clsico algoritmo parael clculo delfactorial. Predicadosno lgicosde entrada/salidayclculo aritmtico Los predicados no lgicos son predicados que carecen de significado declarativo co mo frmulas lgicasycuyo propsito principal es generar determinados efectos laterales . En esta seccin tratare mos dos categoras de predicados no lgicos que no interfieren en lo esencial con el mec anismo operacional dePROLOG: los predicadosde entratadaysalidaylos predicadosde clculo aritmtico. Predicados para la gestin de entradasy salidas. Los ejemplos ms obvios de predicad os no lgicos son los predicados de entrada/salida getyput. Como literales de una clusula objetivo, estos predicadossiempreseverifican(salvandoel casoenqueel predicado getdetecta el fina l de un fichero, que produce unfallo). Su significado es procedimental: put poneun caracterenlapa ntallay getlee un carcter por teclado. Ambos predicados son imprescindibles para que los sistemas P ROLOG puedan interaccionar con perifricosyotros sistemas. Puesto que su uso est normalmente con finadoa reas bien definidas de los programas, y puesto que su comportamiento lgico es trivial, no interfieren realmente con la estructura lgica declarativa de los programas PROLOG. Predicados para el clculo aritmtico La mayora de los programas implican algn clculo a ritmtico. Si bien la aritmtica puede formalizarse en clculo de predicados, lo cierto es que su formulacin resulta muy poco prctica. As por ejemplo, los nmeros naturales pueden definirse rec ursivamente del siguiente modo: numero_natural(0). numero_natural(sucesor (X)) :-numero_natural(X).

3.4. El lenguaje PROLOG Todos los nmeros naturales se obtienen as recursivamente como 0, sucesor(0), sucesor(sucesor(0)), sucesor(sucesor(sucesor(0))) y, en general,sucesorn(0). Las operacionesde adicin, multiplicaciny exponenciacin p uede defi nirse asimismo de forma recursiva: +(0,X,X) :-numero_natural(X). +(sucesor(X),sucesor(Y),sucesor(sucesor(Z))) :+(X,Y,Z). (0,Y,0). (sucesor (X),Y,Z) :-* (X,Y,XY),+(XY,Y,Z). exp(sucesor (X),0,0). exp(0,sucesor(X),sucesor(0)). exp(sucesor (N),X,Y) :-exp(N,X,Z),(Z,X,Y). Estas definiciones recursivas plantean varios problemas. En primer lugar, la res olucin no es un mtodo eficiente de computacin numrica. En segundo lugar, la notacin resulta largayte diosa de interpretar. Todos los computadores contienen instrucciones eficientes, directam ente implementadas en la mquina, para llevar a cabo operaciones sobre enteros, mientras que, utiliza ndo los predicados anteriores, una operacin tan trivial como la suma de la constante 10 a un nmero re quiere al menos 10 unificacionesyresoluciones.La formalizacin axiomticadelos nmerosen coma flotante resulta ya completamente inmanejable. PROLOG no definela aritmticade acuerdoa los axiomasydefinicinde tipo precedentes, sino que proporciona un conjunto de predicados predifinidos para la realizacin de comp

utaciones aritmticas estndar que utilizan directamente las capacidades aritmticas subyacentes del orden ador. Estos predicados se utilizan en sentencias de sintaxis: Resultado isExpresion. Los pre dicados aritmticos se comportande forma diferentealos predicados ordinarios, particularmente con re spectoala unificacin. Un predicado aritmtico se interpreta en una nica direccin. As por ejemplo,10 isX +Y sera una sentencia ilegal, que no producira una secuencia de instanciaciones de X eY a (0,10), (1,9), etc. Si Resultado isExpresion, Resultado slo puede ser unavariable sin instanciary Exp resionha de evaluarse a un nmero bsico. Ntese que las sentencias anteriores no son sentencias d e asignacin, taly como se conciben en los lenguajes algortmicos. La sentencia is slo puede pues asignar valor a una variable Resultado una nica vez en el cuerpo de un predicado. Los predicados de la aritmtica definidos al comienzo de este apartado presentan s in embargo una ventaja: los mltiples usos que puede hacerse de ellos. As, plantear una pregunta c omo ?+(sucesor(0), sucesor (0), sucesor(sucesor(0))) significa comprobarsi1 + 1= 2, mientras que la consulta ?+(sucesor(0),X,sucesor(sucesor(0))) implicallevaracabouna substraccin,ylapregunta ?+(X,Y,sucesor(sucesor (0))) incluso da al sistema la posibilidad de ofrecer mltiples soluciones. Ejercicio 3.39 Utilizando los predicados predifinidos de clculo aritmtico de PROLO G, proporcione dos definiciones distintas del predicado mod ( mdulo o resto de una divisin entera ). La primera de ellas ha de ser una traduccin directa de la definicin matemtica del resto de una divisin entera: Z es el valor de X modY si Z es estrictamente menor que Y y existe un nmero Qtal q ue X = QY+ Z. La segunda debe constar de dos clusulas, de modo que la segunda de ellas sea r ecursiva. Compruebe la mayor eficiencia de la segunda definicin, dada la menor dimensin de l os rboles SLD que genera.

Captulo 3. PROGRAMACIN LGICA Predicado de corte El corte es el predicado no lgico ms controvertido de PROLOG, por la modificacin ta n importante que supone de la programacin lgica. El predicado de corte, denotado con el smbolo ! , interfiere directamente en el procedimiento de refutacin SLD evitando que se lleve a cabo el retroceso en ciertos puntos. Una vez que el predicado de corte se ha ejecutado en un potencial punto de retroceso, todas las ramas alternativas del rbol SLD que penden del nodo correspondiente se podan automticamente. Puesto que el principal objetivo de la programacin lgica es permitir que el progra mador escriba programas declarativos dejando la parte de control para el motor de inferencia g enrico implementado en los intrpretes, los cortes deberan evitarse, puesto que slo pueden entenderse de sde una perspectiva procedimental de la programacin. Sin embargo, los programadores deben estarfamili arizados con los diferentes usos del corte, por lo que a continuacin presentamos algunos e jemplos de cmo el predicado de corte permite resolver esencialmente problemas de ineficienciay, en particular, de computacin no terminante. Ejemplo 3.40 Consideremos la siguiente definicin del predicado mezcla en PROLOG: %mezcla(Xs,Ys,Zs) :%mezcladoslistas ordenadasden umeros enterosXseYs enlalista ordenadaZs mezcla([X|Xs],[Y|Ys],[X|Zs]) :X < Y,mezcla(Xs,[Y|Ys],Zs). mezcla([X|Xs],[Y|Ys],[X,Y|Zs]) :X = Y,mezcla(Xs,Ys,Zs). mezcla([X|Xs],[Y|Ys],[X,Zs]) :X > Y,mezcla([X|Xs],Ys,Zs). mezcla(Xs,[],Xs). mezcla([],Ys,Ys). Ante cualquierpreguntaPROLOG,unayslounadelascinco clusulases aplicable.Sinembargo en caso de solicitarse todas las respuestas posibles, el intrprete tantear todas l as opciones. Ejercicio 3.41 Compruebe la ineficiencia del predicado construyendo el rbol SLD c orrespondiente

a la computacin del objetivo mezcla([1,3,5],[2,3],Ks). Ejemplo 3.42 Consideremos ahora la definicin de un predicado de ordenacin de lista s: %ordena(Xs,Ys) :%ordenalalistaXs enlalistaYs ordena(Xs,Ys):-append(As,[X,Y|Bs],Xs), X > Y, append(As,[Y,X|Bs],Vs), ordena(Vs,Ys). ordena(Xs,Xs) :ordenada(Xs). %append(Ps,Qs,PsQs) :%PsQs esla concatenaci ondelaslistas PsyQs append([],Qs,Qs). append([P|Ps],Qs,[P|Zs]) :-append(Ps,Qs,Zs). %ordenada(Xs) :-

3.4. El lenguaje PROLOG 137 %Xs es unalista ordenada ordenada([]). ordenada([X]). ordenada([X,Y|Ys]) :X = Y,ordenada([Y|Ys]). El programabusca un par de elementos adyacentes desordenados, los intercambiayco ntina hasta que la lista est ordenada. Dado que slo existe una lista ordenada, cualquier alter nativa de bsqueda conduce a la misma solucin. Sin embargo, ante una solicitud de todas las respuest as posibles el intrpretebuscar intilmente otras alternativas. Ejercicio 3.43 Comprueba la ineficiencia del predicado construyendo el rbol SLD c orrespondiente a la computacin del objetivo ordena([3,2,1],Ks). Veamos ahora cmo se puede utilizar el predicado de corte para aumentar la eficien cia de los programas anteriores. Un predicado de corte define un objetivo que siempre se sa tisfaceyque compromete todas las elecciones hechas desde que el objetivo que se est resolviendo se unifi c con la cabeza de la clusula en que el corte ha ocurrido, es decir, poda todas las ramas alternativas que penden del punto de retroceso ms reciente del correspondiente rbol SLD. En definit iva, si un corte se satisface, no intentarn satisfacerse clusulas alternativas a la clusula que lo c ontiene. Como consecuencia, una conjuncin de objetivos seguida de un corte producir a lo sumo un a solucin. Obsrvese, sin embargo, que un corte no afecta a los objetivos situados a su derec ha, que s podrn producir ms de una solucin. Sin embargo, si estosfallan, la bsqueda proceder desde l a ltima alternativa previa a la eleccin de la clusula que contiene el corte.Veamos cmo defi nir formalmente este predicado (ver figura 3.6). Definicin 3.44 Sea una clusula Cen un procedimiento que define el predicado A: C= A:B1....Bk,!,Bk+2,...,Bn Si el objetivo actual Gse unifica con la cabeza de CyB1....Bk se satisfacen, el corte: 1. compromete la eleccin de Cpara reducir G;cualesquiera clusulas alternativas par aAunificables con Gson ignoradas; 2. si Bi falla parai> k+ 1, el retroceso opera slo hasta llegar a !. Las computaciones restantes

en Bi, i= k, se podan del rbol de bsqueda; 3. siel retroceso alcanzaa!stefallayla bsqueda procede desdela ltima eleccin hecha a ntes de elegir a Cpara la reduccin de G. Ejemplo 3.45 Coloquemos cortes en el predicado mezcla, con el fin de solventar l os problemas de eficiencia antes destacados: mezcla([X|Xs],[Y|Ys],[X|Zs]) :-X < Y,!,mezcla(Xs,[Y|Ys],Zs). mezcla([X|Xs],[Y|Ys],[X,Y|Zs]) :-X = Y,!,mezcla(Xs,Ys,Zs). mezcla([X|Xs],[Y|Ys],[X,Zs]) :-X > Y,!,mezcla([X|Xs],Ys,Zs). mezcla(Xs,[],Xs) :-!. mezcla([],Ys,Ys) :-!.

Captulo 3. PROGRAMACIN LGICA A:- B1....Kk,!,Bk+2 ,..., B1....KkFALLOFALLO FALLOBk+iA Figura 3.6: Funcionamiento del operador de corte Obsrvese que el corte se sita tras el test en las tres clusulas recursivas,y como ni ca clusula del cuerpo de la regla en los casos base. Ejercicio 3.46 Compruebe la eficiencia del nuevo predicado construyendo el rbol S LD correspondiente a la computacin del objetivo mezcla([1,3,5],[2,3],Ks). Coloquemos tambin cortes en el predicado ordena: ordena(Xs,Ys):-append(As,[X,Y|Bs],Xs), X > Y,!, append(As,[Y,X|Bs],Vs), ordena(Vs,Ys). ordena(Xs,Xs) :ordenada(Xs),!. Ejercicio 3.47 Compruebe la eficiencia del nuevo predicado construyendo el rbol S LD correspondiente a la computacin del objetivo ordena([3,2,1],Ks). Ntese que la utilizacin del predicado de corte ha implicado, en los dos casos ante riores, mejorar la eficicencia tanto espacial como temporal: al podarse ramas del rbol de bsqueda se reduce el tiempode computaciny,al requerirse guardar menos informacinpara usaren casode retroceso,seg ana espacio de almacenamiento. Como contrapartida, al podar dinmicamente los rboles de bsqueda, el corte ha alterado la estrategia de evaluacin de los programas. Como ilustran los ejemplos anteriores, el corte permite evitar caminos de computacin infructuosos que el programador sab e que no producirn soluciones o producirn soluciones redundantes o indeseadas. En particular, podr ta mbin utilizarse para podar caminos infinitos origen de computaciones no terminantes. Ejercicio 3.48 El siguiente predicado permiteaveriguarsielfactorialde un nmero es menor que 100: comprueba(N) :factorial(N,F),minimo(F,100,F). Identifique posibles computaciones no terminantes en la utilizacin de este predic ado e indique

cmo evitarlas con la utilizacin del predicado de corte.

3.4. El lenguaje PROLOG El predicado de corte se introdujo inicialmente para aumentar la eficiencia de l os programas PROLOG, sin embargo, su utilizacin puede tener otros efectos no relacionados con la efici encia. Aeste respecto se distingue entre los denominados cortesverdes y cortes rojos . Los cortes verdes podan ramas de computacin que no conducen a nuevos resultados, proporcionando una solucin ms eficiente sin que su adicin o eliminacin altere el significado declar ativo de los predicados. Estos corte se utilizan, por ejemplo, para hacer explcita la natu raleza mutuamente exclusiva de tests aritmticos (como en el caso del predicado mezcla)o para elimin ar computaciones redundantes (como en el caso del predicado ordena). Ejercicio 3.49 Reflexiona sobre el uso del corte verde en la definicin del predic ado: %minimo(X,Y,Min) :%Min eselmumerosX eY inimodelos n minimo(X,Y,X) :-X = Y,!. minimo(X,Y,Y) :-X> Y,!. Comprueba la eficiencia del predicado construyendo el rbol SLD correspondiente a la computacin del objetivo minimo(5,3,K). Los cortes rojos, por el contrario, podan ramas de computacin que podran conducir a nuevas soluciones, de modo que su adicin y eliminacin altera el significado declarativo d el predicado. Veamos un uso habitual de este tipo de cortes: la omisin de condiciones explcitas. Previamente definimos una versin del predicado ordena(Xs,Ys) con cortes verdes. Consideremos ahora una nueva definicin que incluye cortes rojos: Ejemplo 3.50 %ordena(Xs,Ys) :%ordena la lista Xs en la lista Ys ordena(Xs,Ys):-append(As,[X,Y|Bs],Xs), X > Y,!, append(As,[Y,X|Bs],Vs), ordena(Vs,Ys). ordena(Xs,Xs)

:-!. Puede observarse que la primera regla se aplica siempre que hay un par de elemen tos adyacentes en la lista que estn desordenados. Debido al corte, cuando se usa la segunda ya n o existen tales elementosy la lista est ordenada: la condicin ordenada(Xs) puede pues omitirse. Este uso del corte es ciertamente peligroso, ya que puede olvidarse que si el corte se suprim e el programa dara solucionesfalsas. Ejercicio 3.51 Reflexione sobrela posible adicinde cortes rojosyverdes enla defin icin del predicado borra(Lista,X,SinXs) %borra(Lista,X,SinXs) :-la lista SinXs es el resultado de eliminar todas las ocurrencias %deX de la lista Lista borra([X | Xs],X,Ys) :-borra(Xs,X,Ys). borra([X,Xs],Z,[X| Ys]):-X = \ = Z, borra(Xs,Z,Ys). borra([],X,[]).

140 Captulo 3. PROGRAMACIN LGICA Observemos, finalmente, que la utilizacin de cortes puede conducir a definiciones errneas de predicados. Consideremos la definicin de predicado del siguiente ejemplo: Ejemplo 3.52 %minimimo(X,Y,Z) :%Zeselm inimodelos enterosX eY minimo(X,Y,X) :X =< Y,!. minimo(X,Y,Y). El razonamiento implcito en esta definicin es: si X es menor o igual que Y, entonc es el mnimo es X;de otro modo el mnimo esY,ycualquier otra comparacin entre X e Y es innecesar ia. Esta definicin de predicado es incorrecta: conduce a la satisfaccin de objetivos incorr ectos debido a la omisin de la condicin X> Y en la segunda regla. Ejercicio 3.53 Compruebe la satisfaccin del objetivo minimo(2,5,5) utilizando la anterior definicin del predicado. El error anteriorpuedeevitarse haciendoexplcitala unificacin entrelosargumentos pr imeroytercero, que est implcita en la primera regla: minimo(X,Y,Z) :X =< Y,!,Z= X. minimo(X,Y,Y). El problema de este modo de usar el corte es que genera un cdigo difcil de interpr etar. Elusode cortesparala eliminacinde condicionesexplcitasesunbuenejemplodeuso peligro so del operador de corte. Se basa en el conocimiento del comportamiento de PROLOG, especficamente sobre el orden en que se usan las reglas, para omitir condiciones que podran infe rirse como ciertas. Omitiruna condicinesposiblesielfallodelas clusulaspreviaslaimplica;engeneral,la co ndicin

eslanegacindelas condicionesprevias.Aveces resulta esencialenla programacin prctica yaque las condicionesexplcitas, especialmentelasnegativas, son engorrosasde especificar o ineficientesen ejecucin. Sin embargo, la omisin de condiciones es propensa a error, obliga a tene r en mente el comportamiento operacionaldePROLOGypermite escribir programasque resultanfalsos ledos como programas lgicos: proporcionan conclusionesfalsas, aunque se comportan correctame nte porque PROLOG es incapaz de probarlas. En general, omitir condiciones simples es desaco nsejable: laganancia en eficiencia es mnima comparada conla prdidadelegibilidadymantenimiento del cdigo. Siempre ser preferible escribir el programa lgico correctoydespus aadir cortes si es importante para la eficiencia: minimo(X,Y,Z) :X =< Y,!. minimo(X,Y,Y) :X > Y,!. 3.4.3 Ventajas de la programacin en PROLOG. Principales aplicaciones. Las caractersticas de la programacin lgica descritas a lo largo de este captulo, jun to a las propias del lenguaje, proporcionan las siguientes ventajas de la programacin en PROLOG fr ente a la programacin convencional: Programacin declarativa, en un alto nivel de abstraccin No obstante las objeciones planteadas en la seccin anterior, el programador de PROLOG se ve en gran parte liberado de l a tarea de especificar como resolverlos problemasde forma complejaypasoa paso,y se concentr a principalmente en describir el propio problema, mientras que la solucin es llevada a cabo por lo s mecanismos operacionales predefinidos de PROLOG.

3.4. El lenguaje PROLOG Prototipado rpido Tanto la lgica como la programacin requieren la expresin explcita d e conocimientoy mtodos de solucin de un problema en un formalismo. Sin embargo, mientras que la formalizacin del conocimiento en lgica con frecuencia contribuye a profundizar en el problema en consideracin, la formalizacin en trminos de un lenguaje de programacin convencion al raras vecesaporta beneficios.PROLOGseha demostradomuytilparaeldiseode prototiposenlasfas es de especificacin de sistemas, proporcionando al mismo tiempo una especificacin est ructurada del problemay una fuente compilable. Facilidad de aprendizaje Apesar de que sus races se encuentren en la disciplina m atemtica de la lgica, el uso de PROLOG no requiere conocimientos de lgica formal. De hecho, su si ntxis simple ycompactalo convierten en un lenguaje muy fcilde aprender, incluso paralos que no tienen previa experiencia en programacin. No hay que pensar, no obstante que escribir programas en PROLOG es tarea sencilla. Un principiante puede ser rpidamente capaz de escribir sus primer os programas, pero el desarrollode programas grandes requiereun modo rigurosode pensary una maestrad el lenguaje difciles de adquirir. Tiempo de desarrollo corto En PROLOG, el nmero de lneas de cdigo que se requieren p ara resolver un problema es tpicamente solo una fraccin del tiempo requerido con un le nguaje de programacin en formade procedimientos comoC oPascal. Claramente esto puede reduci r considerablemente los costes de desarrollo,ypuesto que el cdigo es ms fcil de modificar, los costes subsiguientes de mantenimiento son con frecuencia tambin ms bajos. Facilidad de lecturaymodificacin Muchos de los tpicos errores de programacin comune s en lenguajes como C o Pascal -por ejemplo, un bucle que itera demasiadas veces o un a variable sin instanciar -no se producen cuando se programa en PROLOG. El cdigo puede verse com o la especificacindeun problemabien estructuradaque ademses ejecutable.Talcdigoes adems fcilmente legibleymodificable cuando se modifican aspectos del dominio en cuestin. Fcil manipulacin de estructuras de datos complejas Trabajar con complejas estructu ras de datos como rboles, listas o grafos con frecuencia da lugar a programas grandesy c omplejos que gestionan la reservayliberacin de memoria. Por el contrario, PROLOG proporciona u na notacin simpleyelegante para accedera tales estructurasde datosydefinirlas recursivament e, ahorrandoal programadorla implementacinde todos los detalles, punterosygestinexplcita del almac enamiento. Mecanismos de control alternativos El control en los programas PROLOG es en cier

to modo similar al de los lenguajes convencionales. La invocacin de objetivos se corresponde con la invocacin de procedimientos,yla ordenacin de los objetivos en el cuerpo de las reglas se co rresponde con el secuenciamiento de sentencias. Las diferencias ocurren cuando tiene lugar la ree valuacin. En un lenguaje convencional, si la computacin no puede proseguir (por ejemplo, todas la s ramas de una sentencia case sonfalsas), tienelugarun erroren tiempode ejecucin.EnPROLOG, simplem ente la computacin retrocede hasta el ltimo punto donde se seleccion una alternativa,y s e intenta un camino de computacin diferente. Manipulacin flexible de estructuras de datos. Lenguaje no tipado. Las estructuras de datos manipuladas por los programas lgicos, denominadas trminos, se corresponden en gene ral con estructuras registro en los lenguajes convencionales. La gestin de las estructuras de datos e n PROLOG

Captulo 3. PROGRAMACIN LGICA es muy flexible. Como el Lisp, PROLOG es un lenguaje no tipado, libre de declara ciones. Las diferencias ms importantes entreelPROLOGylos lenguajes convencionales enel usode estructurasd e datos surge de la naturaleza de las variables lgicas. Las variables lgicas se refi eren a entes ms que a localizaciones de memoria. Consecuentemente, una vez que una variable se ha li gado a un objeto particular, ya no es posible asignrsela a otro. El contenido de una variable inic ializada no puede cambiar. La manipulacin de datos en los programas lgicos es llevada a cabo enteram ente por el algoritmode unificacin,que implica asignacin,pasode parmetroyalojamientoen memoria. Estas operaciones se llevana cabo en programacin convencional usando listas lincadasyma nipulacinde punteros. La manipulacin de las variables lgicas por medio de la unificacin puede v erse como una abstraccin de la manipulacin de bajo nivel de punteros a complejas estructuras de datos. Diversidad de aplicaciones El uso de los lenguajes de programacin lgica no se ha l imitado a las aplicaciones de investigacin. Entre sus campos de mayor difusin destacan las a plicaciones de Inteligencia Artificial (sistemas expertos -basados en reglasy marcos -, resoluc inde restricciones, procesamientodel lenguaje natural),la teoray desarrollodelas basesde datos deduct ivas,y tambin aplicaciones ms convencionales tales como bases de datos, problemas de plan ificacin dinmica, configuracinylogstica, implementacinde compiladores,etc.Unreade inters actualen la programacin lgicaeseldelos sistemas concurrentesyparalelos. MientrasquePROLOGse ha a daptado particularmenteparasu ejecucinen arquitecturasVon Neumann,lo ciertoesqu elaprogramacin lgica en sus formas ms puras, en parte por las caractersticas antes sealadas, se ada pta particularmenteal diseode lenguajesde programacin concurrente (tales comoel difund idoParlog. Bibliografa complementaria Un excelente libro sobre los fundamentos de la programacin lgica, con un estudio d el PROLOG como caso particular, es[1]. Otros dos libros interesantes -yen cierto modo comp lementarios -son [2], que no trata ningn lenguaje particular,y[3], que incluye un captulo sobre la verificacin de programas en PROLOG. Una comparacin de distintos lenguajes de programacin lgica se encuentra en [4]. Textos recomendados para un estudio ms en profundidad del lenguaje Prolog son [5], [6],[7]yel clsicoymuy completsimo [8]. El alumno que desee ampliar conocimientos p uede estudiarprogramacin

lgica concurrenteyprogramacin lgica conrestriccionesrespectivamente en las secciones 8.4y8.5de [9]. [1]J. Lloyd. Foundations of Logic Programming. Addison-Wesley, Reading, MA, 1987 . 2a edicin. [2] K. Doets, From Logic to Logic Programming. MIT Press, Cambridge, MA, 1994. [3] K.R. Apt. From Logic Programming to Prolog. [4] E. Shapiro, Thefamilyof concurrent logic programming languages ACM Computing Surveys, 21 (1989) 413-510. [5]W.F. ClocksinyC.S. Mellish. Programacin en Prolog. Springer-Verlag(1984).Tradu cido en Editorial Gustavo Gili, 1987. [6]I. Bratko (1991).Prolog programming for artificial intelligence. Addison-Wesl ey(Segunda edicin). [7]F. Giannesini,R.H. Kanoui,R.Pasero,M. van Caneghem. Prolog. Versin traducida ( 1989). Addison-WesleyIberoamericana. [8]L. Sterling, E. Shapiro (1986). The art of prolog. MIT Press. [9] M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice-H all International, Londres, 1990.

3.4. El lenguaje PROLOG Actividades y evaluacin Los ejercicios ms interesantes de este tema consisten en construir el rbol de dedu ccin SLD asociadoala ejecucinde un pequeoprograma lgico; vanse los ejercicios4,5y6 del captulo8 del texto: Ben-Ari M. Mathematical Logic for Computer Science. Springer-Verlag, London, 2001. Tambin es conveniente realizar los ejercicios4 a7 tal como estn enunciados enel li bro. Como apoyo para la realizacin de estos ejercicios puede ser muy interesante utilizar u n programa para la visualizacin de rbolos SLD, tal como el que ofrece un alumno de la Universidad de Mlaga en la direccinWeb: http://polaris.lcc.uma.es/ pacog/apuntes/pd/ Finalmente,esmuy interesantequeel alumnose inicieenlaprogramacinenPROLOG mediante la codificacin de pequeos programas. Los ejercicios no se centrarn en cuestiones de estilo ni se orientarn al desarrollo de grandes aplicaciones, ya que tan slo se pretende que el alumno comprendalas idiosincrasiasdelaprogramacin lgicaylos compromisos(programacin lgicafrente a algortmica) que supone el diseo de programas eficientes. Adicionalmente, la prog ramacin en PROLOG mejorar la comprensin de la lgica proposicionalyde predicados, particularmen te de los mtodos deductivosque utilizanlaresolucin (junto conlosprocesosde equiparacinyun ificacin de variables que conlleva), ya que la traduccin de las clusulas Horn a cdigo PROLOG es inmediata. Para este propsito el alumno instalar en su ordenador un intrprete de PROLOG. En la s pginas web de la asignatura Programacin orientada a la inteligencia artificial , cuya direc cin es: http://www.ia.uned.es/asignaturas/prog-ia/util/index.html se pueden encontrar diferentes intrpretes tanto para los sistemas LINUX como para los sistemas WINDOWS.Porsu sencillez, aconsejamos utilizarel entornoSWI.Sugerimosla utilizacin delasfacilidadesdetrazaquelos intrpretesproporcionan, conelfindedepurarlosprogramasycomprender en profundidad la semntica operacional que los sistemas PROLOG implementan (algor itmo de bsqueda, mecanismos de unificacinyequiparacin...). Una vez codificado un predicado, es tamb in altamenterecomendablequeel alumno ensayeadibujarel rbolSLD correspondienteala eje cucin de determinadaspreguntasPROLOGycompruebe cmoel intrpretellevaa caboel correspondie nte proceso de resolucin.

144

Captulo4 VERIFICACIN DE PROGRAMAS SECUENCIALES Resumen Este tema estudia cmo definir con precisin la semntica de un lenguaje formal median te la lgica de Hoare y cmo utilizar un mtodo deductivo basado en ella para la verificacin de pr ogramas secuenciales. Objetivos El objetivo principalesqueel alumnoaprendaaverificar pequeosprogramas secuenciale s mediante la lgica de Hoare. Metodologa Para poder comprobar que un programa es correcto hace falta establecer con preci sin su semntica. Por ello, casi al principio de este tema se define un lenguaje que contiene slo t res instrucciones: ifthenelse, while-do y:= (asignacin de valores a variables); aunque se trata de un leng uaje aparente muy simple,la mayor parte de las instrucciones de lenguajes de programacin ms comp lejos salvo las relativas a interfaces de entrada/salida se pueden construir a partir de esta s tres instrucciones bsicas. Luego se establece la semntica de este lenguaje mediante ciertas expresion es lgicas, las ternas de Hoare, que representan la transformacin de estados asociada a cada inst ruccin. Finalmente, se expone un sistema deductivo para la lgica de Hoare y se explica cmo aplicarlo a la verificacinysntesisdeprogramas. 4.1 Introduccin El hecho de que un programa tenga un error puede resultar sumamente costoso, no slo en trminos econmicos, sino que en ciertos casos incluso puede poner en peligro la vida de mu chos seres humanos. Por eso es importante disponer de mtodos que permitan comprobar que un programa c umple las especificaciones con que fue diseado. Generalmente las especificaciones suele n venir dadas en lenguaje natural. Por ejemplo: Quiero un programa que calcule las nminas de mis em pleados, a partir de los siguientes datos... . Naturalmente, dadala ambigedadyfaltade precisin del lenguaje 145

146 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES naturalyla ausenciade mtodosque permitan una compresin automticadel mismo,se hace n ecesario contar con descripciones formalesque indiquende forma precisae inequvocalas espec ificaciones de cada programa. Unavez que se conocen las especificaciones, sera deseable conta r con un mtodo, implementable en un programa de ordenador, que generase automticamente el program abuscado, libre de errores. Dado que esto es todava hoy ciencia-ficcin, al menos sera deseabl e contar con mtodosque permitan comprobarde forma automticao semiautomticaque cierto programa cu mple las especificaciones, es decir, que hace lo que se espera de l, sin cometer nunca errores; es lo que se conoce como verificacin de programas. An estamos lejos de contar con verificadores totalmente automticos, pero recientem ente se han desarrollado ya verificadores semiautomticos para lenguajes de alto nivel.1 Los g randes avances que sehan producidoenlas ltimas tres dcadasylos interesesdelosfabricantesde softwarepo rgarantizar la fiabilidad de sus productos hacen pensar que en los prximos aos se seguirn produ ciendo progresos muy significativos en este campo. Precisamente por la importancia del tema, es de esperar queel conocimientodelos mtodosdeverificacin formal sea unadelas cualidadesmsvalorad asde los ingenieros en informtica de un futuro no muy lejano. En este tema vamos a estudiar los mtodos de verificacin de programas secuenciales. En concreto, vamos a estudiar un sistema deductivo que permite verificar programas de un leng uaje de programacinmuy sencillo, tan sencilloque slo tiene tres instrucciones: asignacindevariables(:=), condicional(if-then-else), ybucle(while-do). Aunque se trata de un lenguaje apar entemente muy simple, la mayor parte de las instrucciones de lenguajes de programacin ms com plejos salvo las relativasa interfacesde entrada/salida se pueden construira partirde estas tre s instruccionesbsicas.Luego introduciremos ciertasexpresiones lgicas,las ternasdeHoare,que permit en especificar formalmenteun programa. Ms adelanteexpondremosun sistema deductivo(el sistemade H oare)y explicaremos cmo aplicarlo a la verificacin de programas escritos en nuestro micro -lenguaje. 4.2 Sintaxis 4.2.1 Un micro-lenguaje de programacin Como hemos dicho en la introduccin, la verificacin de un programa escrito en un le nguaje de alto nivel es sumamente complicada.Para simplificar nuestro estudio,vamosadefinir un pequeo lenguaje que slo tiene tres instrucciones y dos tipos de datos: booleanos y enteros. En la s conclusiones comentaremos las limitaciones de este micro-lenguaje en comparacin con los lengua

jes habituales. Utilizando la notacin gramatical de Naur Backus (NBF), definimos nuestro micro-le nguaje as: E:== n | x | (-E) | (E + E) | (E -E) | (E * E) B:== true | false | !B | (B& B) | (B| B) | (E == E) | (E != E) | (E < E) | (E =< E) | (E > E) | (E >= E) S:== x:=E | if B then (S)[ else (S)] | while B do (S) | S;S Observe que en este lenguaje tenemos dos tiposdeexpresiones: boleanas(B)yenteras

(E)ytres tipos de instrucciones(S, del ingls, statement). Una expresin booleana puede venir dada por un entero(n), tal como 1 3758, una variable de programa (por ejemplo, x),el opuestode unaexpresin entera (por ejemplo, -1 o -y)o bien por la suma, resta o multiplicacin de dos expresiones enteras. 1Vea, por ejemplo, el proyectoKeY,http://i12www.ira.uka.de/~key/, que ha consegu ido integrar especificacin formal (en OCL)y verificacin semiautomtica (con una ampliacin de las tcnicas expuest as en este captulo) en una herramienta CASE de modelado mediante objetos (UML), especialmente diseada para p rogramar en Java.

4.2. Sintaxis 147 Las palabras reservadas true yfalse son expresiones boolenas. La negacin de una expresin booleana tambinlo es, as comola conjuncinydisyuncindeexpresiones booleanasyla compar acin de expresiones enteras.2 El primer tipo de instruccin que tenemos es la asignacin de una expresin numrica E a una variable x. Hay tambin expresiones condicionales (de la forma if-then o if-then-else)y, en tercerlugar,bucles (instrucciones while).La concatenacindedosexpresiones(C;C)tamb in es una expresin. Ejemplo 4.1 El siguiente programa, que denominaremos fact1, est escrito en nuestr o microlenguaje: fact := 1; i := 0; while (i != x) do ( i := i + 1; fact := fact * i ) Comoellectorhabradivinado,este programasirvepara calcularelfactorialde x. Ms adela nte vamos a demostrar formalmente que esto es as.

4.2.2 Especificacin de estados Dado el conjunto de variables que aparecen en un programa, un estado viene dado por la asignacin de un valor a cada una de variables. Por ejemplo, si las variables son x, i y fact, la expresin {x = 10. i= 4. fact = 24} representa un estado. Puede haber tambinexpresionesenqueno aparezcan todaslasvariablesquese usanenel pr ograma. Talesexpresionesno representanun estado, sinoun conjunto infinitode ellos. As,sil asvariables de un programa son x, i yfact, la expresin{i= 4} no representa un nico estado, sino el conjunto de todos los estados en que la variable i tiene el valor 4; este conjunto tiene tantos estados como valores puedan tomar x yfact. Otro ejemplo de expresin que representa un conjunto de estados es la siguiente:{x = 0. x = 10. i6 = x}. Cualquierexpresin lgica,por tanto, representaun estadooun conjuntode estados.En pa rticular, {>}representa todos los estados posibles,y{?}no representa ningn estado (conjunto vaco). 4.2.3 Ternas de Hoare Dadoun lenguajequeexpresalos estadosdeun sistemayun lenguajede programacin(cada fr mula de este lenguaje representa una instruccin, es decir, un programa), definimos un nuevo lenguaje formado por ternas de la forma {precondicin}(instruccin){postcondicin} Estas expresiones se denominan ternas de Hoare. La interpretacin intuitiva de est a expresin es que si un sistema que se encuentra en alguno de los estados representados por la pre condicin ejecuta la instruccin, pasa a alguno de los estados representados por la postcondicin. 2ObservequeenPascalla asignacindevariablesse representa mediante := yla comparacin me diante = , mientras que enCy Java la asignacin se representa mediante = y la comparacin mediante == . Para e vitar confusiones, en nuestro micro-lenguaje hemos utilizado := parala asignaciny == para la comparacin. En cambio, en las expresiones lgicas utilizaremoselsigno = paradenotarlaigualdadporqueenellasnohay confusinsobresu s ignificado.

148 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES Ejemplo 4.2 La terna{i = 4}(i:=i+1){i= 5} significa que si el sistema se encuentra en un estado en que i vale4yejecutala instruccin i:=i+1, pasa a un estado en que i vale 5. Ejemplo 4.3 {i > 0}(i:=i+1){i> 1}. Ejemplo 4.4 Dado que la condicin . es cierta para todos los estados, la terna{>}(i:=5){i = 5} significa que, cualquiera que se sea el estado inicial del sistema, la ejecucin d e la instruccin i:=5 hace que el sistema pase a un estado en que i vale 5. Nota. Como hemos visto anteriormente al definir nuestro micro-lenguaje, la conca tenacin de dos instrucciones es una nueva instruccin. En la prctica llamamos programa a una i nstruccin compuesta que realiza cierta tarea. Sin embargo, formalmente no hay diferencia e ntre programas e instrucciones. Cuando tenemos una terna de Hoare en que el programa no est definido todava, se di ce que tenemos una especificacin del programa, pues estamos indicando solamente cules son los requisitos que debe cumplir el programa. Por ejemplo, la condicin {x = 0}(S){fact = x!} (4.1) es una especificacin, porque indica que el programa debe calcular el factorial de un nmero no negativo (ms adelante veremos por qu esta especificacin no es del todo correcta). 4.2.4 Variablesdeprogramayvariables lgicas Imagine que queremos expresar mediante una terna de Hoare la propiedad de que, c ualquiera que sea elvalor inicialdelavariable i,la instruccini:=i+1 hacequeelvalordeestavariable aumenteenuna unidad. Por analoga con el ejemplo 4.4, un aprendiz de lgica ingenuo podra intentar representarla as: {>}(i:=i+1){i= i+ 1} (incorrecta) Claramente, esta expresin es incorrecta, porque la condicin i=

i+ 1 siempre esfalsa. La forma correcta de representar la propiedad anterior es sta: 8a, {i= a}(i:=i+1){i = a+ 1} Observe que en este caso la variable a no aparece en la instruccin. Estas variabl es, que no forman parte del programa, sino que se introducen para relacionar la precondicin con la postcondicin, se denominan variables lgicas, para distinguirlas de las variables de programa, q ue son las que aparecen la instruccin S. En las ternas de Hoare, las variables lgicas estn siempre sujetas a un cuantificador universal, que en la prctica suele omitirse, de modo que lo habitua l ser escribir la expresin anterior simplemente as: {i= a}(i:=i+1){i = a+ 1} Peronodebemosolvidarqueenrealidadhayun cuantificadorenestaexpresin,aunquenolohaya mos escrito. Veamos con otro ejemplola necesidadde introducirvariables lgicas.Ya hemos dicho a ntes que laexpresin (4.1) es una especificacin parael clculo delfactorialde enteros no negat ivos. Aunque todava no hemos desarrollado los mtodos formales, no ser difcil para el lector compr obar que el

4.3. Semntica de los programas 149 programa fact1 del ejemplo 4.1 cumple esta condicin, lo cual es correcto. Sin embargo, observe que el programa (x:=1;fact:=1) tambin cumple la condicin (4.1), {x = 0}(x:=1;fact:=1){fact = x!} a pesardequeno calcula correctamenteelfactorial cuando x> 1. Esto nos muestra que la especificacin (4.1) no es satisfactoria. En cambio, el siguiente programa, que llamaremos fact2, fact := 1; while (x != 0) do ( fact := fact * x; x = x -1; ) s calcula correctamente el factorial, pero no cumple la condicin (4.1). Por tanto, la especificacin (4.1) no es necesariani suficiente paragarantizar queel programa calculaelfactor ial. Cul es la forma correcta de representar esta especificacin? Una solucin es la siguie nte: 8a, {x = a}(S){fact = a!} (4.2)

En esta expresin hemos indicado explcitamente el cuantificador universal para que quede claro que a esunavariablelgica,ypor tantonopuede aparecerenel cuerpodel programa. (Siel pro grama utilizase la variable a tendramos que escoger una variable lgica diferente, como e s natural.) Recomedamos al lector que compruebe que el programa (x:=1;fact:=1) no cumple esta especificacin, pero los programas fact1 yfact2 s la cumplen. La conclusin que se saca de los ejemplos anteriores es que hay que utilizar varia bles lgicas cuando queremos que la poscondicin haga referencia al valor que toma cierta varia ble en la precondicinyel cuerpo del programa modificaelvalorde esavariable. As, en nuestro ejemplo, querem os que, despus de ejectutar el programa S, la variable fact contengaelfactorialdelva lor asignado inicialmente a x. Cuando el programa no modifica el valor de x (como era el caso del programa fact1), la especificacin (4.1) no plantea problemas, porque el valor final de x es el mis mo que el inicial. En cambio, cuando el programa modifica el valor de x (como era el caso del programa fact2), la postcondicin{ fact = x!}, que hace referencia al valor final de x, no nos sirve,ypor eso debemos util izar la especificacin (4.2). 4.3 Semntica de los programas 4.3.1 Correccin total Una terna de Hoare,{p}(S){q), puede considerarse como una proposicin y por tanto es posible asignarle un valor de verdad. Decimos que una terna de Hoare es cierta si todo s istema que parte de un estado (cualquiera) que satisface ppasa a un estado que satisface q,y se repr esenta as:3 tot {p}(S){q} 3En este captulo estamos definiendo la semntica de modo un tanto informal, basada en el estado inicialy el estado finalde una computacin.Paraun tratamiento riguroso,el lectorpuedeconsultarel libr ode Francez [1992]oeldeApty Olderog [1997].La definicinde semnticaque ofreceel librode Ben-Ari [2001]es difere nte,yest basadaenel concepto de condicin ms dbil ( weakest precondition ).

150 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES Esta propiedad, denominada correccin total, es muy importante en la prctica, pues la verificacin del programa Sconsiste precisamente en demostrar que siempre que el sistema sati sface ciertas condiciones( p)la ejecucin deS hace que se satisfaga la condicin que nos interesa( q). Las dos tareas ms frecuentes que vamos encontrar en la prctica son: Verificacin: Tenemos las condiciones p y el programa S (codificado por nosotros m ismos o por otro programador)yqueremos demostrarqueel programaes correcto(es decir,la ejecuc indel programa hace que se satisfaga la condicin q). Programacin: Conocemos las condiciones p y q y queremos encontrar el programa S. En este caso, se trata de un problema de programacin. En este captulo vamos a estudiar mtodos formales de verificacin. En la seccin 4.7.2 mencionaremosbrevementela posibilidadde utilizar estos mtodospara realizaralavezla programaciny la verificacin. Para algunas instrucciones sencillas es fcil ver que se satisface la correccin tot al. Por ejemplo, tot{i = 4}(i:=i+1){i = 5} En la prctica, demostrar la correccin total directamente suele ser bastante compli cado. En estos casos podemos resolver el problema dividindolo en dos subtareas: (1) demostrar qu e el programa, si termina, llega a q es lo que se denomina correccin parcial y(2) demostrar que el p rograma termina.4 Enla prctica,el mtodo que se sigue es demostrar primerola correccin parci alyadaptar luego la demostracin para probar la correccin total (vase la sec. 4.6). 4.3.2 Correccin parcial La correccin parcial se expresa as: par {p}(S){q} y, como hemos dicho, significa que si un sistema que se encuentra en un estado q ue satisface la condicin ejecuta el programa S, si el programa termina, llega al estado q. De esta definicin se deduce que un programa que no termina nunca siempre es parci almente correcto (para toda pytodaq), pero nunca es totalmente correcto. Por ejemplo, par {p}(while true do (i:=0)){q} 6true (i:=0)){q}

tot {p}(while do Otro ejemplo trivial es que para todo Sse cumple que par {?}(S){q} (4.3) Por tanto, todo programa Ses parcialmente correcto para la precondicin que sea la postcondicin.5 Anlogamente tenemos que par {p}(S){>} (4.4)

? cualquiera

4Obviamente,lasnicas instruccionesquepuedenhacerqueel programano terminesonlosbuc les while. Por eso, para demostrar que un programa termina bastademostrar que todos susbucles terminan. 5Naturalmente, este ejemplo slo tiene inters didctico,porque la precondicin ? excluye todos los estados. Dado que un ordenador real siempre va a encontrarse en algn estado, la propiedad (4.3) nunca puede aplicarse en la prctica.

4.4. El sistema deductivo de Hoare 151 porque la condicin > se satisface siempre,yde ah se deduce que todo programa es parc ialmente correcto para la prostcondicin > cualquiera que sea la precondicin.6 En la prxima seccin vamos a estudiar un sistema deductivo que nos permitir demostra r la correccin parcial de programas que presentan inters real. En la seccin 4.6 discutir emos cmo demostrarla terminacin enel casode programas conbucles. 4.4 El sistema deductivo de Hoare El sistema deductivo de Hoare se basa en cinco axiomas, que sirven como reglas d e deduccin: Asignacin: . {P(E)}(x:=E){P(x)} (4.5) Condicional: . {p. B}(S1){q} . {p. B}(S2){q} . {p}(if B then (S1) else (S2)){q} (4.6) Bucle: . {p. B}(S){p} . {p}(while B do (S)){p. B} (4.7) Composicin: . {p}(S1){q} . {q}(S2){r} . {p}(S1;S2){r} (4.8) Encadenamiento: . {p. p0} . {p0}(S){q0} .

{p}(S){q} . {q. . q} (4.9) Aestas reglas habraque aadir los axiomas propios del dominio. En el caso de nuestr o microlenguajeeldominioesla aritmticaentera,pueselnicotipodedatosqueadmitesonenteros(aparte de expresiones booleanas, naturalmente, que formarn parte de la lgica). Por ejemp lo, un axioma del dominio puede ser 8x, x = x . Otro axioma puede ser 8x,8y,8z, x = y. x+ z = y+ z . De hecho, ms adelante veremos que en la verificacin de programas se combinan dos sistemas de ductivos, uno para razonar sobre las ternasde Hoareyotro para razonar sobreel dominio(la aritmt ica). Vamos a explicar a continuacin cada una de estas reglas. Pero antes debemos menci onar que los nombresvaranmuchodeuntextoaotro.Poresonoes importante recordarlosnombresdelasregl as sinosu significadoyla formaenquese aplican. 4.4.1 Regla de asignacin La regla de asignacin nos dice que si una condicin, expresada en forma de predicad o, se cumple para la expresin E entonces se cumple tambin para x despusde haber asignadoalavaria ble x el valor E (x:=E). Dicho de otra forma, si queremos demostrar que la variable x cum ple el predicado Ptenemos que demostrar que el valor (dado por la expresin E)que hemos asignado ax cumpla el predicado P, porque si no se cumpla P(E), tampoco va a cumplir P(x). 6De nuevo encontramos un ejemplo que slo tiene inters didctico, a pesar de que la p ropiedad (4.4) siempre es cierta: la razn es que esta propiedad slo nos dice que, si el programa Stermina, el sistem a se va a encontrar en algn estado, lo cual es tanto como no decir nada.

152 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES Ejemplo 4.5 La regla de asignacin nos permite deducir que `{a = 0}(x:=a){x = 0} En este ejemplo, el predicado Pes iguala cero ylaexpresin E (el valor asignado a la variable) es a ; por eso P(E) es a = 0 . El significado de la regla de asignacin, en este ejemplo, es que si a vala inicialmente 0, la instruccin x:=a hace que x tambin valga 0. En la prctica esta regla se aplica hacia atrs, de modo que si queremos demostrar q ue despus de la asignacin x:=E se cumple P(x),intentaremos demostrar queP(E) era cierto antes de la asignacin. Laformadehaceresto consisteentomarla postcondicinysustituirenella xpor E. As, en e l ejemplo anterior,debemos tomar la postcondicin x= 0 ,ysustituir x porelvalorquele asignala instruccin (x:=a), con lo cual obtenemos la precondicin a = 0 . Ejemplo 4.6 Si queremos ver qu precondicin satisface esta terna {?}(x:=a+1){x = 0} tenemos que tomar la postcondicin, x = 0 ,ysustituir x por el valor que se le asigna, que es a+ 1, con lo cual la precondicin que obtenemos es a+ 1= 0 : {a+ 1= 0}(x:=a+1){x = 0} Ejemplo 4.7 `{x+ y= 7}(z:=x+y){z = 7} Ejemplo 4.8 `{x+ 1= 4}(x:=x+1){x = 4} Comoseveen estos ejemplos,la precondicinse obtiene tomandola postcondicinysustituy

endo en ella la variable por el valor que se le asigna. 4.4.2 Regla del condicional La regla del condicional nos dice que si tenemos que demostrar una terna de la f orma {p}(if B then (S1) else (S2)){q} podemos hacerlo en dos pasos: por un lado demostramos que, cuando partimos de la condicin pyB es cierto, la ejecucin de S1garantiza la condicinq, {p. B}(S1){q} ypor otro lado, demostramos que, cuando partimos de la misma condicinpyBesfalso,l a ejecucin de S2 tambingarantizala condicin q, {p^B}(S2){q}

4.4. El sistema deductivo de Hoare 153 Ejemplo 4.9 Para demostrar que {x 6(x then else = 0}(if > 0) (y:=x) (y:=-x)){y> 0} basta demostrar que {x 6 = 0. x > 0}(y:=x){y> 0} yque {x 6(x > 0)}(y:=-x){y> 0} = 0. Naturalmente, al traducir las expresiones booleanas del programa al lenguaje de la lgica hay que recordar la equivalencia entre los operadores de programaylos operadores lgico-ma temticos. Por ejemplo, las expresiones booleanas (x!=0) y(0=<x & x=<10) se traducen, respectivamente, como (x 67 = 0) y(0= x. x = 10). Como hemos visto,laregladel condicionalesmuy fcilde entender.Vamosavera continuac in otra versin de esta regla que, aunque no es tan intuitiva ni tan fcil de recordar, resulta ms cmoda

de aplicar en la prctica. 4.4.3 Regla del condicional modificada Queremos que el sistema, despus de ejecutar la instruccin Bthen (S1) else (S2) satisfaga la condicin q. if

`{p}(if Bthen (S1) else (S2)){q} Supongamos que hemos encontrado dos condiciones, p1yp2, tales que {p1}(S1){q} y{p2}(S2){q}. Definimos pas p=(B. p1) . (B. p2) (4.10) Como p. B. p1, por la regla de encadenamiento tenemos que {p. B}(S1){q} Anlogamente, como p^B. p2, {p^B}(S2){q} Introduciendo estos dos resultados en la regla del condicional (expresin (4.6)) t enemos que `{p1}(S1){q} `{p2}(S2){q} (4.11) `{(B. p1) . (B. p2)}(if B then (S1) else (S2)){q} Esta nueva versin de la regla del condicional nos dice que para asegurar que el s istema, despus de ejecutar la instruccin if Bthen

(S1) else (S2) satisfaga la postcondicin q, es suficiente que satisfaga la precondicin (B. p1) . (B. p2). Esta nuevaversin tienelaventajade que es ms fcilbuscar p1y p2 por separado que tene r quebuscar directamente una condicin pque satisfaga las dos condiciones, {p. B}(S1){q} y{p. B}(S2){q}. O visto de otra forma, elbuscar p1y p2 por separado es una forma debus car p, de acuerdo con la ecuacin (4.10). En la seccin 4.5.3 veremos cmo se aplica esta regla en la prctica. 7Tenga cuidado de no confundir x!=0 ,que significa x es distinto de 0, con 0 ,que significaqueelfactorialde x es 0. x!=

154 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES 4.4.4 Regla delbucle Laregladelbucleest ntimamenteligadaal conceptodeinvariante. Definicin 4.10 La condicin pes un invariante para la instruccin B do (S) siyslo si se cumple que {p. B}(S){p} (4.12) De esta definicin se deduce que, si pes cierto antes de ejecutar la instruccin whi le tambin lo ser despus de haberla ejecutado. Por qu? Supongamos que Besfalsa. Entonces el cue rpo S no se ejecuta; por tanto, el estado del sistema no se modificay la condicin p sig ue siendo cierta. Supongamos que B es cierta. Eso significa que el cuerpo S se ejecuta en un estad o que satisface la condicin p. B,y entonces la propiedad (4.12) nosgarantiza que despus de ejecutar S el sistema va a seguir cumpliendo la condicin p. Dicho de otro modo, no sabemos a priori cunt as veces se va a ejecutar el cuerpo S dentro de la instruccin while, pero s sabemos que en cad a una de las ejecuciones se va a mantener la propiedad p. Por eso pse denomina invariante. Es to es lo que nos permite concluir que `{p. B}(S){p} `{p}(while B do (S)){p} Por otro lado, la instruccin while slo termina cuando B es falsa. Uniendo estos dos resultados tenemos `{p. B}(S){p} `{p}(while B do (S)){p^B} que es precisamentela regla delbucle. Proposicin 4.11 Para toda instruccinwhile, . es un invariante. Demostracin. La frmula {. . B}(S){>} es una tautologa, porque la postcondicin siempre es cierta. . while

Naturalmente,enla prcticanos interesa encontrarinvariantesnotriviales.Veamos otro s ejemplos de invariantes. Ejemplo 4.12 La regla delbucle nos dice que para demostrar {x = 0}(while (y!=0) do (z:=3)){x = 0^(y6 = 0)} basta demostrar que {x = 0. y=60}(z:=3){x = 0}. (Esta frmula se demuestra por la regla de asignacin, pues en la postcondicin x= 0 no aparece z,ypor eso al sustituirzpor3la precondicin que se obtiene es la misma, x = 0 .) El invariante es x = 0. . En este ejemplo se da una paradoja: inicalmente no sabemos cul es el valor de yys in embargo concluimos que, despus de ejecutar elbucle, se cumple que (y6 = 0), es decir, y= 0, a pesar de que el bucle no ha modificado el valor de y. Cmo se explica esto? Debemos tener en cuenta dos situaciones: si inicialmente y= 0, la instruccin while no hace nada, y el programa termina, satisfaciendo la condicin {x = 0. y= 0}. En cambio, si inicialmente y=60, el programa entra en unbucle infinito. Por eso no hay contradiccin al afirmar que si el programa termin a (algo que no ocurre cuando y6 = 0), el valor de yal salir delbucle es 0 . Comoya hemos mencionado,el sistema deductivode Hoare slogarantizala correccin parc ial: la afirmacin `{p}(S){q} es equivalente a par {p}(S){q}, que, como vimos anteriormente, significa que si el sistema satisface inicialmente la condicin pyejecuta el programaSyel pro grama termina, entonces el sistema satisface la condicin q .

4.4. El sistema deductivo de Hoare 155 En el ejemplo anterior era muy fcil encontrar un invariante: como el cuerpo de la instruccin while, que es z:=3,no modificaelvalorde x ni de y, cualquier condicin en que slo a parezcan estas dos variables ser un invariante. Otro ejemplo similar es el siguiente: Ejemplo 4.13 `{x < 5}(while (x==0) do (y:=1)){x < 5^(x = 0)} En estos dos ejemplos, el cuerpo de la instruccin while, S, no modifica la condic in, B,ypor eso hay dos posibilidades: o bien la condicin es cierta antes de ejecutar la instrucc in while, con lo cual el programa entra en unbucle infinito,o bienla condicin esfalsa antesde ejecutarl a instruccin, con lo cual la instruccin while no hace nada,y es como si no estuviera en el programa. Por eso en la prctica slo nos interesan los casos en que el cuerpo, S, puede modificar la con dicin, B. Ejemplo 4.14 Queremos demostrar que `{x = 0}(while (x!=0) do (x:=x-1)){x = 0} Para ello, demostramos la expresin `{x = 0. x 6 = 0}(x:=x-1){x = 0} que indica que x = 0 es uninvariante para estebucle. Aplicandola regla delbucle, con las equivalenci as p= x = 0 , B= x 6 = x:=x-1 se obtiene que =

0 y S `{x = 0}(while (x!=0) do (x:=x-1)){x = 0^(x 6 = 0)} de donde se deduce la expresin que queramos demostrar. 4.4.5 Regla de composicin La regla de composicin es muy sencilla: si queremos demostrar {p}(S1;S2){r} tenemos quebuscar una propiedad qtal que {p}(S1){q} y{q}(S1;S2){r}. Ejemplo 4.15 Para demostrar que {x = 0}(y:=x+1;z:=2*y)){z = 0} basta demostrar estas dos frmulas: {x = 0}(y:=x+1){y= 0} {y= 0}(z:=2*y)){z = 0} o bien estas dos: {x = 0}(y:=x+1){y= 1} {y= 1}(z:=2*y)){z = 0}

156 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES 4.4.6 Regla de encadenamiento La reglade encadenamiento tambin es muy sencillayyala hemos aplicado en algunosde los ejemplos anteriores.Tanslovamosa indicarquedelareglade encadenamientoydela propiedad p. p se deducen estas dos reglas, que pueden considerarse como casos particulares de ella: `{p. p0} `{p0}(S){q} `{p}(S){q} `{p}(S){q0} `{q0. q} `{p}(S){q} 4.5 Verificacin parcial de programas 4.5.1 Composicinyencadenamiento Supongamos que tenemos un programa S compuesto por una serie de instrucciones, S = S1;...;Sn. Una formadeexpresarlaverificacinde este programa consisteen escribir una cadenade condiciones e instrucciones, de este modo, {p} S1 {p1} [Justificacin-1] . . . {pn-1} [Justificacin-(n-1)] Sn {q} [Justificacin-n] (Definimos p0 = py pn = q.) Para cada eslabn `{pi-1}(Si){pi} se indica entre corchetes cul es la regla que lo justifica. Al demostrar todosy cada uno de los eslabones, el programa S queda demostrado, por la regla de composicin. Si Si es una instruccin compuesta, hay que repetir el proceso anterior anidando las cadenasde demostracin,yas sucesivamente, hasta llegara instr ucciones simples.

Aveces puede resultar que la postcondicin de Si no coincida con la precondicin que requiere Si+1. En ese caso es posible insertar varias condiones entre Si ySi+1, {p} Si {pi,1} [Justificacin-i] {pi,2} [Justificacin-i,1] . . . {pi,k} [Justificacin-i,k] Si+1 de modo que la primera condicin intermedia, pi,1, es la postcondicin de Si,yla ltim a condicin intermedia, pi,k, sirve de precondicin para Si+1. Para cada par de proposiciones consecutivas, la frmula . pi, j . pi, j+1 se demuestra por alguno de los axiomas del dominio o por alguna de las propiedades de la lgica de predicados, que se indica entre corchetes como [Justif icacin-i, j]. La validezdela demostracin vienegarantizadaporlareglade encadenamiento.

4.5. Verificacin parcial de programas 157 Observe que en el proceso de verificacin estamos combinando dos sistemas deductiv os. Por un lado, tenemos el sistema deductivo de Hoare, que nos permite justificar los e slabones del tipo `{pi-1}(Si){pi},ypor otro lado el sistema deductivo propio del dominio, que nos permite justificar los eslabones del tipo . pi, j. pi, j+1. Como hemos dicho ya, en el caso de nuestro micro-lenguaje, el dominio es la aritmtica de los nmeros enteros. Ejemplo 4.16 La demostracin de . {>}(x:=2;y:=3*x+1){y= 7} puede ser sta: {2= 2} [8x, x = x] x:=2 {x = 2} [Regla de asignacin] {3x+ 1= 7} [3* 2+ 1= 7] y:=3*x+1 {y= 7} [Regla de asignacin] Observe que la demostracin de `{2= 2}(x:=2){x= 2} yde`{3x+1= 7}(y:=3*x+1){y= 7}se basa en la regla de asignacin, que pertenece al sistema deductivo de Hoare, mientras que `>. 2=2y . (x = 2) . (3x+

1= 7) se demuestran mediante el sistema deductivo de la aritmtica. . Aunque resulta ms intuitivo entender la demostracin leyndola en el sentido de ejecu cin del programa, es decir, de arriba a abajo (o hacia adelante, si se prefiere), la con struccin de la demostracin suele ser ms sencilla en sentido inverso, es decir, desde la postcondicin hasta la precondicin (deabajoa arriba,o hacia atrs).La raznesque generalmentelareglade asignacinyladel c ondicional son ms fciles de aplicar hacia atrs que hacia adelante, como vamos a ver a continua cin. 4.5.2 Tratamiento de las asignaciones La regla de asignacin puede expresarse as: {P(E)} x := E {P(x)} [Regla de asignacin] Como acabamos de indicar, generalmente esta regla es ms fcil de aplicar hacia atrs. Lo vemos volviendo al ejemplo anterior. Ejemplo 4.17 Queremos demostrar que . {>}(x:=2;y:=3*x+1){y= 7}. Para ello escribimos la precondicin,las instruccionessimplesyla postcondicin. Entrecadaparde instrucciones insertamos la condicin correspondiente que, como an no conocemos, la hemos representado media nte una interrogacin. Una interrogacin entre corchetes indica que an no hemos demostrado es e paso. (Si ellectorloprefiere,alconstruirsus demostracionespuededejarunespacioenblancoenvez deescribir una interrogacin; nosotros utilizamos la interrogacin para que quede ms claro cundo hay todava algn paso pendiente de demostrar.) x := 2 {?} [?] y := 3*x+1 {y=

7} [?]

158 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES Si queremos construirla demostracinde arribaa abajo, tenemos quebuscar un predica do Pque nos permita aplicar la regla de asignacin {P(E)}(x:=2){P(x)}. El problema es que, en nuestro esbozo de demostracin, la precondicin de x:=2 es >; si tomamos este predicado tenemos que P(E)= P(2)= >, con lo que concluimos que . {>}(x:=2){>}, lo cual es cierto pero no nos sirve para nada. Para esta primera instruccin tampoco podemos buscar el predicado P a p artir de su postcondicin porque an no la conocemos (por eso hemos escrito una interrogacin). Vamos a intentar verificar el programa anterior de abajo a arriba. Ahora s es fcil aplicar la regla de asignacin: basta tomar la postcondicin de la ltima instruccin, y= 7,y en estaexpresin sustituimos ypor el valor asignado, con lo cual obtenemos la precondicin de y:=3* x+1: x := 2 {3* x+ 1= 7} [?] y := 3*x+1 {y= 7} [Regla de asignacin] Siguiendo el mismo proceso para la instruccin x := 2, tomamos su postcondicinysustituimos x por el valor asignado: con lo cual llegamos a {3* 2+ 1= 7} [?] x := 2

{3* x+ 1= 7} [Regla de asignacin] y := 3*x+1 {y= 7} [Regla de asignacin] Para concluir la demostracin, basta probar que>. 3* 2+ 1= 7, que es equivalente a probar que3 * 2+ 1= 7(habra que demostrarlo por la aritmtica de nmeros enteros).. 4.5.3 Tratamiento de las instrucciones condicionales Para tratar las instrucciones if-then-else aplicamos la regla del condicional modificada (expresin (4.11)), que se traduce en: {(B. p1) . (B. p2)} if B then ( {p1} S1 {q} [Justificacin-1] ) else ( {p2} S2 {q} [Justificacin-2] ) {q}

[Regla del condicional] Ejemplo 4.18 Para demostrar que {x 6(x>0) then (y:=x) else (y:=-x)){y> 0} = 0}(if escribimos este esbozo de demostracin:

4.5. Verificacin parcial de programas {x 6 = 0} {?} [?] if (x>0) then ( {p1?} y:=x {y> 0} [?] ) else ( {p2?} y:=-x {y> 0} [?] ) {y> 0} [?] Las condiciones p1yp2 se obtienen por la regla de asignacin: {x 6 = 0} {?} [?] if (x>0) then (

{x > 0} y:=x {y> 0} [Regla de asignacin] ) else ( {(-x) > 0} y:=-x {y> 0} [Regla de asignacin] ) {y> 0} [?] La precondicin de la instruccin condicional es (B. p1) . (B. p2), de modo que {x 6 = 0} {(x > 0. x > 0) . ((x > 0) . (-x) > 0} [?] if (x>0)

then ( {x > 0} y:=x {y> 0} [Regla de asignacin] ) else ( {(-x) > 0} y:=-x {y> 0} [Regla de asignacin] ) {y> 0} [Regla de asignacin] Dejamos como ejercicio para el lector demostrar que x6 = 0. (x> 0. x> 0) ^((x> 0) . (-x) > 0, con lo cual se completa la verificacin del programa. (En este caso, la verific acin parcial es una verificacin total, porqueel programa no contienebucles.)

160 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES 4.5.4 Tratamientode losbucles Hemos visto anteriormente que el tratamiento de las instrucciones de asignacinyco ndicionales es bastante fcil, pues se limita a la aplicacin de un algoritmo. Sin embargo, el trat amiento de los buclesesmuchoms complicado,puesrequiere encontrarinvariantes,unatareaparalacualno existe un algoritmo, sino tan slo algunas heursticas.8 Cuando en la demostracin de un programa nos encontramos con una situacin como sta, {?} while B do (S) {q} [?] tenemos que encontrar un invariante que nos permita escribir {p} while B do ( {p. B} S {p} [Justificacin (de que pes un invariante)] ) {p^B} [Regla delbucle] {q} [p^B. q] Para ello, el invariante pdebe satisfacer tres condiciones: 1. `{p. B}(S){p} (es la definicin de invariante); 2. . p^B. q(para poder obtenerla postcondicin delbucle); 3. Hacefalta que ppueda deducirsea partirdela postcondicindela instruccin anterior albucle (para poder continuar luego la demostracin hacia arriba). Ejemplo 4.19 Dado el programa fact1 introducido en el ejemplo 4.1, queremos demostrar que se cumple la condicin (4.1).9 Para ello buscamos un invariante p que cumpla que ` {p.

i =6x}(i:=i+1;fact:=fact*i;){p} y. p^(i6 = x) . fact = x!. Una heurstica que recomiendan algunos autores para encontran invariantes es const ruir una tabla que refleje el valor que toman las variables del programa en cada ejecucin del bu cle, y tratar de ver qu propiedad(es) se cumplen para cada una de las filas. Para este ejemplo, to mandox = 6(un valor escogido arbitrariamente, con la nica condicin de que no sea demasiado grand e ni demasiado pequeo), obtenemos la tabla 4.1. En todas las columnas de esta tabla se cumple qu e fact = i!.Vamos a comprobar si esta condicin es un invariante: 8Como ya sabe el lector, en inteligencia artificial se denomina heurstica a una r egla que ayudaabuscar una solucin, aunque generalmentela aplicacinde una heursticanigarantizaquese encuentre una solu cin,nigarantizaquela solucin encontrada sea ptima. Poresopodramosdecirqueeltratamientodelas condicionesdeasignacinycondicionalesesuna tcnica,mientrasque el tratamientode losbucles es un arte, que slo se aprende conla prctica. 9Recordemos que la especificacin (4.2) era ms correcta, pero la especificacin (4.1) tambin era vlida cuando el programa no modifica el valor de la variable x,yen nuestro caso es ms sencilla de aplicar. Dejamos como ejercicio para el lector comprobar que el programa fact1 cumple la especificacin (4.2).

4.5. Verificacin parcial de programas iteracin x i fact B 1a 2a 3a 4a 5a 6a 7a 6 6 6 6 6 6 6 0 1 2 3 4 5 6 1 1 2 6 24 120 720 . . . . . . . Tabla 4.1:Tabla para probarelbucledela funcinfact1.. {fact = i!. i6 = x} i := i + 1; {?} [?] fact

:= fact * i; {fact = i!} [?] Aplicando dos veces la regla de asignacin llegamos a {fact = i!. i6 = x} {fact = i!} [p. q. p] {fact * (i+ 1)=(i+ 1)!} [8a, (a+ 1)!=(a+ 1) * a!] i := i + 1; {fact * i= i!} [Regla de asignacin] fact := fact * i; {fact = i!} [Regla de asignacin] lo cual demuestra que fact = i!esuninvariante. Podemos integrar este resultadoenlaverificacindel

programa completo, que queda as: {x = 0} {1= 0!} [Axioma (definicindefactorial)] fact := 1; [Regla de asignacin] {fact = 0!} i := 0; {fact = i!} [Regla de asignacin] while (i != x) do ( {fact = i!. i6 = x} {fact = i!} [p. q. p] {fact * (i+ 1)=(i+ 1)!} [8a, (a+ 1)!=(a+ 1) * a!] i = i + 1;

{fact * i= i!} [Regla de asignacin] fact := fact * i; {fact = i!} [Regla de asignacin] ) {fact = i!^(i6[Regla delbucle] = x)} {fact = i!. i= x} [8a,8b, a 6 = b$(a = b)] {fact = x!} [Regla de sustitucin (propiedad de la lgica)]

Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES Observe que la precondicin {x = 0} no nosha hechofalta para demostrar {0! = 1}, porque ste es un axioma del sistema. Por tanto, tambin habramos podido demostrar que . {>}(fact1){fact = x!} Sin embargo, cuando x < 0, el programa fact1 entra en unbucle infinito. Por eso la precondicin {x = 0} es necesaria paragarantizarla correcin total, mientras que,de acuerdo conlaexpres in que acabamosde escribir, no es necesaria ninguna precondicin paragarantizarla correcin parcial. Ejercicio 4.20 Demostrar que `8a, {x = a}(fact1){fact = a!} `8a, {x = a}(fact2){fact = a!} 4.6 Verificacin total de programas El sistema deductivoexpuestoenla seccin4.4 slogarantizala correccin parcial.Para de mostrar la correccin total es necesario sustituirla regla delbucle anterior por esta otra :10 Regla delbucle (para correccin total): `{p. B. E0. E=a}(S){p. E0. E<a} `{p. E0}(while B do (S)){p^B} En esta regla psigue siendo un invariante, porque si se cumple antes de que se e jecute elbucle, secumple tambindespus.Sihemos demostradoyala correccinparcialparaestebucle,podemos utilizar aqu el mismo invariante. La expresin E se denomina variante,11 porque si es igual a a (un nmero entero) ant es de que se ejecute el bucle, ser estrictamente menor que a cuando el bucle se ha ejecutad

o, y continuar decreciendo cada vez que se ejecuta el cuerpo del bucle. Como esta expresin no pu ede decrecer indefinidamente(porquesiempreesmayorque0),elbucledebe terminar. De este modo, el nuevo sistema deductivogarantiza tanto la correccin parcial como la terminacinde losbucles, conlo que se demuestrala correccin total. Ejemplo 4.21 Dado el programa fact1 introducido en el ejemplo 4.1, queremos demostrar que se cumplela condicin (4.1) enel nuevo sistema deductivo (quegarantizala correccin tot al). Recordemosqueelbucleque apareceen este programaes while (i!=x) do (i=i+1; fact:=fact*i) yque en la verificacin parcial habamos tomado como invariantefact= i!. Por tanto, aunque todava no hemos encontrado E, sabemos que se cumple que `{p. B. E0. E=a}(S){p} 10Desde un puntode vista conceptual, no era necesario definir primeroel sistema deductivodeverificacin parcial, sino que podramos haber definido directamente el de verificacin total. Sin embargo, por motivos pedaggicos nos ha parecido mejor abordarel problema en dos pasos, discutiendo primerolaverificacin parcialyv iendo luego cmo se debe modificar la regla delbucle para obtenerlaverificacin total. 11Observe que el invariante es una proposicin (por ejemplo, fact = i!),ypor esolo hemos representadopor p, mientras que el variante es una expresin numrica (por ejemplo, xi),ypor esolo representamos por E. Observe tambin que, en general, tanto pcomo Ehacen referencia al valor de las variables del programa.

4.7. Comentarios adicionales 163 es decir, `{fact =i!. i6x. E0. E=a}(i:=i+1;fact:=fact*i){fact =i!} = (lo hemos demostrado en el ejemplo 4.19). Vamosabuscar ahora unaexpresinE (un variante) que cumpla que `{p. B. E0. E=a}(S){E0. E<a} Tomamos la expresinxi, pues cumple que `{i6x. x-i0. x-i=a}(i:=i+1;fact:=fact*i){x-i0. x-i<a} = (Invitamos al lector a que lo demuestre formalmente.) Esto implica que si antes de ejecutar el cuerpo delbucle se cumple0 = x-i= a,despusdesu ejecucinse cumple0= x-i< a. Comolaexpresin E siempre decrecealmenosunaunidadencadaejecucindelcuerpodelbucle(enesteejemplo xi decreceexactamente una unidad)ysiempre es mayoro igual que0,elbucle debe termina r. . Ejercicio 4.22 Demostrar la correccin total de fact2 dada la especificacin (4.2). . Comoenel casodelosinvariantes, encontrarunvariantepuedeser complicado,yaquenohay reglas algortmicas, sino slo algunos consejos heursticos. Por ejemplo, se recomienda la co nstruccin de una tabla de ejecucin, como la del ejemplo 4.19 (tabla 4.1), que puede ayudar a encontrar tanto el invariante como el variante. 4.7 Comentarios adicionales 4.7.1 Consistenciaycompletitud El sistema deductivo que hemos definido en la seccin 4.4 es consistente para la v erificacin parcial, lo cual significa que toda terna deducida mediante la aplicacin de sus reglas es

parcialmente correcta: `{p}(S){q} implica que par {p}(S){q} Recordemos que par {p}(S){q} que significa que si el sistema (el ordenador) se encuentra inicialmente en alguno de los estados representados por la precondicin p y ejecuta el programa S y el programa termina, el sistema se encontrar en alguno de los estados representados por la postcondicin q (cf. sec. 4.3.2). Anlogamente, el sistema deductivo que hemos definido en la seccin 4.6 es consisten te para la verificacin total: `{p}(S){q} implica que tot {p}(S){q} Por tanto, la consistencia significa que un programa verificado mediante este si stema deductivo satisface realmente la especificacin{p}(S){q}. Para demostrar la consistencia de ambos sistemas deductivos deberamos establecer primero una semntica formalde nuestro micro-lenguajede programacin (cmoycundo se pasade un estad oa otroalejecutarcadaunadelasinstruccionesdel programa),algoquenohemoshecho.Sinemba rgo,el conocimiento que tiene el lector sobre cmo funciona cada una de esas instruccione s en un lenguaje de programaciny lasexplicaciones que hemos dado para justificar cada regla hacenv erosmilla afirmacin de que el sistema es consistente. El lector interesado en la demostracin formal de la consistencia puede consultarel librode Francez [1992]oeldeAptyOlderog [1997].

164 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES A su vez, cada uno de estos sistemas es completo en sentido relativo. La complet itud es la propiedad recproca de la consistencia,ysignifica que toda terna semnticamente corr ecta puede ser obtenida mediante el sistema deductivo correspondiente: si se cumple tot {p}(S){ q} entonces esta ternapuedeserdemostrada(el programapuedeserverificado)porel sistema deductivodev erificacin total: tot {p}(S){q} implica que `{p}(S){q} La propiedad de completitud para el sistema deductivo de verificacin parcial es a nloga. Laexpresin completo en sentidorelativo significa que completo si consideramos cada frmula del dominio como un axioma (recordemos que en el caso de nuestro micro-lenguaje el dominio es la aritmtica de nmeros enteros). En la prctica es imposible incluir todas las frmulas d el dominio dentro del sistema deductivo, porque son infinitas. Por eso nos interesa que las frmulas del dominio puedan deducirse a partir de un nmero finito de axiomas. Sin embargo, no se puede construir un sistema deductivo completo para la aritmtica de nmeros enteros. Dado que el sistem a deductivo de verificacinque hemos tratadoen este captulo(en susdosversiones, parcialytotal), ad emsde tener como axiomas las cinco reglas propias de la verificacin, incluye tambin los axioma s del sistema deductivo del dominio, si ste no es completo tampoco puede serlo aqul. Por eso se dice que el sistema deductivo de verificacin de programas no es completo en sentido absoluto. 4.7.2 Otras cuestiones El micro-lenguaje que hemos estudiado en este captulo est limitado sobre todo porq ue no utiliza arrays ni procedimientos, dos recursos imprescindibles para desarrollar programa s de cierta envergadura. Estos aspectos se estudian en el libro de Francez [1992]. Segn los mtodos presentados en este captulo, antes de verificar un programa es nece sario haberlo construido. Sin embargo, es posible integrar ambas tareas en una sola, si se esc ribe el programa mediante bloquesquese enlazany expanden;en cada unodelos pasosseverificael cdigo generado, hasta llegara un programa cuya correccin estgarantizada. Puede encontrarse ms infor macin sobre este mtodoenel librodeAptyOlderog [1997]. Bibliografa

complementaria Lareferencia histrica bsicaparaestetemaes[Hoare,1969].LoslibrosdedeHuthyRyanyde Ben-Ari que hemos mencionado en la Bibliografa Recomendada (pg. 3) explican este t ema, aunque dejan algunoscabos sueltos (especialmente el librode Ben-Ari). Un tratamiento mu cho ms completo yriguroso se encuentra en dos librosexcelentes: [AptyOlderog, 1997]y[Francez, 19 92]. Por otro lado, los recursos bibliogrficos e informticos, disponibles en Internet, que hemos comentado en la seccin Motivacin para los alumnos de Ingeniera Informtica (pg. 2) pueden ser tiles para hacer ms interesante el estudio de este tema. Actividades y evaluacin Losejerciciosdeevaluacinms importantesde este tema consisten, naturalmente,enla ve rificacin de pequeosprogramas secuenciales mediantela lgicade Hoare; por ejemplo, los ejerci cios7 a10 del captulo9del librodetexto [Ben-Ari, 2001,pg. 220],olosejerciciosque aparecenal finalde cada seccin en [HuthyRyan, 2000, cap. 4]. En el grupo de tutorizacin telemtica se encuentra la resolucin detallada de algunos ejemplos sencillos (planteados en exmenes previos).

Parte III LGICA MODAL

Captulo5 FUNDAMENTOS DE LGICA MODAL Resumen Este captulo se poda haber titulado Lgicas modales proposicionales. Sintcticamente, todos estos lenguajes se construyen a partir del proposicional, aadiendo uno o ms pares de ope radores modales. Resultan, en todo caso, sintaxis ms sencillas que la de los lenguajes de Primer Orden. La semntica habitualde estos sistemasrequiereuna estructurarelacional: un univers oyrelaciones sobreel mismo.Enel casoms simple,la lgica modal bsica, bastaun universoy unarelacin binaria. Es decir, intuitivamente, para evaluar la satisfaccin de una frmula se re quiere interpretarla sobre un grafo dirigido. Ms precisamente, cada frmula se puede evaluar sobre cada nodo del grafo, satisfacindose quiz en unosy no en otros. Estaevaluacin local es lo que cara cteriza a este tipo lgicas. Las lgicas modales son una insustituible herramienta para analizar estructuras re lacionales. Y en computacin stas son las estructuras sobre las que se modela prcticamente toda la actividad del campo (sistemas de transiciones etiquetadas, autmatas, redes, agentes, etc.). La eleccin de los operadores modales adecuados, siemprecon un enfoque semntico comn, permite propone r sistemas lgicos especficos para ciertas actividades. Desde el punto de vista formal, es interesante observar cmo las frmulas modales pu eden traducirse sistemticamentea frmulasde PrimerOrden.Ycmo definen, con una sintaxis sencillay una evaluacin local, propiedades globales de la estructura. Objetivos Elprimer escalnlo constituyelalgicamodal bsica: su sintaxisy su semntica.Apartirdees tos conceptos se pueden ampliar nuestros horizontes considerando sistemas polimodale s: su sintaxis, semnticaypropiedades. Desde el punto de vista aplicado, un mismo operador modal abstracto se puede lee r, se puede interpretar, de unas formas u otras dependiendo del dominio. O se pueden disear s istemas lgicos adecuados al problema. El paso siguiente puede ser el estudio formal de los diversos sistemas deductivo s de estas lgicas:

de suspropiedades comunesyde las particuliaridadesde ciertas familias. Ms all, pero no menos interesante, resulta el estudio de la reinterpretacin de esta s frmulas como sentenciasenLgicadePredicados:qupuedeexpresarsedeformamodal,comofragmentode laLgicadePredicados,yqu ventajas computacionales aportasuexpresinen estos lenguajes . 167

168 Captulo 5. FUNDAMENTOS DE LGICA MODAL Metodologa Le recomendamos que se centre inicialmente en la compresin semntica de la lgica mod al bsica: se puede conseguirintuitivay grficamente. Y todos losresultados sern fcilmente expo rtablesa otros sistemas lgicos. A partir de este punto, contine con la perspectiva semntica (no se preocupe de los sistemas deductivos) ampliando este lenguaje bsico con otros operadores. Reflexiones sobre las diversas lecturas propuestas. Slo despus de estos pasos le recomendamos que aborde las diversas opciones de sist emas deductivosyopcionalmente su implementacin. Enel estado actualde estas notas, disponede materialintroductorio slo para cubrir la primera parte de este camino. 5.1 Perspectiva Esta seccin anticipa los principales conceptos abordados. Se pretende ofrecer una perspectiva en un tono coloquial. Las definiciones precisas se posponen a las secciones siguientes . 5.1.1 Estructuras Estructurasrelacionales Observelafigura (fig.5.1.1).Esla representacingrficadeun conjuntoydeuna relacin Ren tre sus elementos. En este ejemplo, el elemento5est relacionado conel1: R(5,1), peroel1nolo est conel5; sloel elemento3est relacionado consigo mismo: R(3,3). .... ?>=<89:; 1 . ++ .... ?>=<89:; 2 . LL . FF . .... ?>=<89:; 3 .

. ++ .... ?>=<89:; 4 . EE .... ?>=<89:;.... ?>=<89:; 56 Figura 5.1: Estructura relacional Aeste tipo de construcciones matemticas se les denominaestructuras relacionales: un conjunto novacoyrelaciones sobreel mismo.Tambin se les denominar marcos. Modelos Considere de nuevo la figura (fig.5.1.1), ahora como representacin de una impreci sa relacin entre escenarios de un videojuego . Pueden surgir, de inmediato, algunas objeciones razo nables: no debera ser reflexiva?, qu sentido tienen los escenarios aislados?, no deberan considerarse transiciones

5.1. Perspectiva etiquetadas?. Estasyotras cuestiones dependen del tipode relacin(o relaciones) en tre escenarios que se pretende modelizar. Las estructuras relacionales se utilizan para modelizar sistemas, situaciones, p rocesos. En general, una modelizacin adecuada requiere que la estructura relacional verifique ciertas propiedades formales. Los lenguajes modales permitarn,porun lado,expresarloque ocurreen cada nodoypor o tro, formalizar las particularidades de la relacin entre nodos Proposiciones en cada nodo Volvamos al ejemplo del videojuego, sobre el grafo propuesto. El comportamiento de nuestro hroe virtual , en cada escenario, puede venir descrito por un conjunto de proposiciones : {p,q,r,...}. Resulta entonces un grafo como el de la figura (fig.5.2), donde cada nodo se eti queta con las letras proposicionales localmente verdaderas en el mismo. Observe que la proposicin ppuede serverdadera en unos nodosyfalsa en otros, pero en todos ellos describe el mismo comportamiento, enuncia la misma proposicin. Aeste proceso de etiquetado se le denominaasignacin. Un marco adecuado con una as ignacin es un modelo. .. ONHI .. MLJK 1 p,r . MM . ,, .. ONHI .. MLJK 2 p . FF 3 . ,,4 . FF q q,r

56 .. ONHI.. MLJK.. ONHI.. MLJK p,r p,r Figura 5.2: Un modelo: marcoyasignacin 5.1.2 Frmulas Razonamiento local proposicional Siteseen cualquierade estos escenarios.Enel1,por ejemplo, puestoque son ciertas p yr, admitiremosque debe serverdaderala proposicin (p^r). No se satisface esta conjuncin en el 2, dond e slo es verdadera p. Es decir, en cada nodo razonaremos correctamente por igual, dentro de la lgica de proposiciones; pero los valores de las proposiciones atmica ( los detalles dentro d e cada escenario ) varan de nodo en nodo. Es decir, (de momento) las frmulas en cada nodo slo se refieren a l mismo: son mund os cerrados e inconexos. Ahora bien, supongamos que una decisin de nuestro ciberprot agonista en un escenario dependa de su conocimiento del estado de otros. Veamos cmo se formaliza n este tipo de expresiones.

170 Captulo 5. FUNDAMENTOS DE LGICA MODAL Razonamiento local modal La inspeccin de otros escenarios se simboliza mediante el uso de operadores modal es: 3p, 3(q^r), (3q) . (3r) son ejemplos de frmulas que incluyen un operador modal 3. Como se parte del lenguaje proposicional, es preciso aumentar su sintaxis con re glas que delimiten dnde puede insertarse este nuevo smbolo. La interpretacin de 3pse produce localmente, en cada nodo, previa inspeccin de otr os nodos determinados. Permtanos explicarlo sobre el ejemplo de la figura (fig.5.2): en el escenario 3, 3pes verdadera porque ) donde p es verdadera ; existe al menos un nodo relacionado (el2

sin embargo, en el escenario 2, 3pno es verdadera porque no es cierto que exista algn nodo relacionado con2donde esverdadera p(observe que2 no est relacionado consigo mismo ). Observe cmo una misma frmula (p.ej. 3p)esverdadera en un nodoyfalsa en otros: depe nder dedosfactores. Primero,delos escenariosque sean visibles (estn relacionados) desd eel nodo donde se evala la frmula. Segundo, del estado de esos escenarios (del valor de las varia bles proposicionales). 5.1.3 Modelos adecuados Lecturas de los operadores modales Un operador como . permite representar situaciones, sistemas o conceptos diversos. Uno de ellos es el concepto de posibilidad: una proposicin como, por ejemplo, (p^q) es posible enel mundowsi 3(p^q) es verdadera en w, es decir, si en algn mundo accesible desde w se verifica (p. q) Esdecir, nuestro hroe virtual considera,enunnodo,queesposible reunirlallaveyelcofres i es capaz de ver un escenario accesible desde el mismo donde estn ambos . Slo una ligera objecin: con la semntica propuesta para 3,la proposicin ppuede server dadera en el escenario actual sin que lo sea 3p. Es decir, puede ser localmente verdade ro algo sin que se acepte que es posible ese algo . Formalmente, basta considerar un escenario que no se relaciona consigo mismo.

El problema planteado se soluciona admitiendo que, efectivamente, . representa adecuadamente el concepto de posibilidad pero slo en marcos reflexivos. Otras aplicaciones del operador 3, como representante formal de otros conceptos, pueden requerir nuevas restricciones so bre los marcos. Caracterizacin modal de relaciones Se acaba de considerar que la lectura de . como posibilidad slo es adecuada sobre marcos reflexivos. Por otro lado, independientemente de que lo que represente (de su lectura), . tiene una propiedad formal contrastable: la frmula p. (3p) esverdadera en un mundosiy slosi est relacionado consigo mismo. Es decir, esta frmula es verdadera en todo mundo de un marco siy sl osi stees reflexivo. As, si se disea una teora modal de la posibilidad, ya no es necesario adjuntar la a dvertencia, externa e informal, utilcese slo sobre marcos reflexivos . Basta aadir la frmula p. (3p) como uno de los axiomas de la teora. Se produce el mismo efecto de restriccin sobre los marcos adecuados, de forma local, internay expresada enel mismo lenguaje modal. Se pueden caracterizar otras muchas propiedades de las relaciones mediante frmula s modales. De ello se ocupalaTeoradela Correspondencia.

5.2. Estructuras relacionales 171 Aplicaciones Existe una gran variedad de lenguajes modales, con ms o menos operadores, cuya le ctura pretende modelizar un concepto o un sistema: relaciones entre tiempos, interaccin de agent es, protocolos de comunicacin ... Todos ellos se basan en las mismas ideas sintcticasysemnticas: las que se pueden e ncontrar en la lgica modal bsica, objeto del captulo siguiente. Estos formalismos permiten d isponer de un lenguaje para expresar qu ocurre en cada nodo (en cada tiempo, en cada estado mental de un agente)yqu relaciones son admisiblesen esa lectura. Adems,los sistemas deductivos asociadosa estos lenguajes permiten obtenerconclusiones, localmente, dependientes del conte xtofacilitado por los estados accesibles. 5.2 Estructuras relacionales Definicin 5.1 (Estructurasrelacionales) Una estructura relacional es una tupla hW ,R1,...,Rk. donde: W es un conjunto novaco,y R1,...,Rk son relaciones sobre W. Existe al menos una relacin en la estructura. Las relaciones definidas sobre W pueden ser de distinto tipo: monarias (predicad os Pw), binarias (Rwiwj), ternarias(R0wiwjwk), etc. As, una estructura puede contener, por ejemplo , dos relaciones monarias, tres binariasyuna ternaria, siempre sobreel mismo conjunto W. 5.2.1 Sistemas de transiciones etiquetadas Entre las posibles estructuras relacionales, se prestar especial inters a las que slo constan de relaciones binarias (una o ms). Se pueden ver dos ejemplos en la figura (fig.5.3). La figura (fig.5.3a) consta de una nica relacin binaria. En (fig.5.3b) se han supe rpuesto, en la misma representacin grfica, dos relaciones binarias sobre el mismo conjunto. Se pu ede generalizar la representacin, etiquetando como v los arcos de cada nueva relacin binaria Rv. El estudiantede Informtica habr encontrado multitudde representaciones comolasdel ejemplo, donde las etiquetas se suelen interpretar como entradas externas que producen un a transicin desde un nodo a otro. Por eso, genricamente, se denominan Sistemas de transiciones etiq uetadas a estas estructuras relacionales. Definicin 5.2 (Sistemas de transiciones etiquetadas) Un sistema de transiciones e tiquetadas es

una estructura relacional donde cada relacin Rk es una relacin binaria: Rk . WW para toda k. L,conjunto de etiquetas Otro ejemplo, entre muchos, de sistemas de transiciones son las redes semnticas u tilizadas para representacin del conocimiento. Aqu, una de las etiquetas de los arcos puede ser en cima-de , si se consideran relaciones espaciales entre los objetos representados por los nodos. Observe que, a pesar de su denominacin, no siempre una etiqueta se interpretar como una transicin entre estados. Los sistemas de transiciones etiquetadas con una nica relacin tambin estn ubicuament e presentesenel anlisisyel desarrollo informtico.Un ejemplo sonlas estructurasde rboldeun directori o, definidas tras imponer ciertas restricciones formales a la relacin entre nodos.

Captulo 5. FUNDAMENTOS DE LGICA MODAL . ++2 1 3 .... ?>=<89:;.... ?>=<89:; 56 (a) Relacin Ra 1 2 3 4 5 6 .... ?>=<89:; 1 . LL a a . ++ .... ?>=<89:; 2 . FF a a . .... ?>=<89:; 4. ++ a b . .... ?>=<89:; 3 . EE a . . ++ .... ?>=<89:; 4 .... ?>=<89:; 5 a

b . ++ .... ?>=<89:; 6 (b) Relaciones Ra yRb 1 2 a a 3 a a 4 a a 5 6 a/b b (c) tabla con ambas relaciones Figura 5.3: Relaciones binarias 5.2.2 Propiedades de una relacin binaria Obviamente, las propiedades impuestas sobre las relaciones definirn unasu otrasfa miliasde estructuras, ms o menos adecuadas para modelizar cierta aplicacin en estudio. Las propiedades d e estas relaciones binarias se suelen describir formalmente en lgica de primer orden. A l o largo de este captulo se presentar la lgica modal como un lenguaje alternativo sobreel que descri biryanalizar estructuras relacionales. Revisemos algunas de las propiedades formales que puede verificar (o no) una rel acin R. La tabla (tabl.5.2.2) reune algunas de estas propiedades, expresadas como sentencia s de primer orden. Reflexiva 8xRxx Simtrica 8x8y(Rxy. Ryx) Transitiva 8x8y8z(Rxy. Ryz . Rxz) Euclidea 8x8y8z(Rxy. Rxz . Ryz) Lineal 8x8y8z(Rxy. Rxz . (Ryz. y= z. Rzy)) Funcional 8x9y(Rxy. 8z(Rxz . y= z)) Determinista 8x8y8z(Rxy. Rxz . y= z)

Serial 8x9yRxy Total 8x8y(Rxy. Ryx) Densa 8x8y(Rxy. 9z(Rxz. Rzy)) Tabla 5.1: Propiedades de una relacin binaria, expresadas en lgica de primer orden Para fijar ideas, considere el grafo de una nica relacinRcomo el de la figura (fig .5.3a) o su expresincomotabla, comomatriz,en (fig.5.3c).Losprrafossiguientepretendefacilitarlacompresin de las sentencias de primer orden utilizadas.

5.2. Estructuras relacionales Reflexividad Una relacin es reflexiva si todo elemento est relacionado consigo mis mo. Grficamente, cada nodo del grafo tiene un arco hacia s mismo. En la tabla de la relacin, toda l as celdas de la diagonal pertenecen a la relacin. Una relacin es irreflexiva si ningn elemento est relacionado consigo mismo: 8xRxx. N ingn elemento de la diagonal pertenece a la relacin. Observe que esta sentencia no es la negacin de la anterior. Para que una relacin no sea reflexiva (para que verifique 8xRxx)basta co n que al menos un elemento no est relacionado consigo mismo(9xRxx). Simetra, asimetra, antisimetra Una relacin simtrica no exige a ningn par de elementos estar relacionado. Ahora bien, si lo estn en un sentido(Rxy), tambin deben estarlo en el otro(Ryx). Grficamente, los arcos en los grafos dirigidos ocurren por pares, en ambos sentid os. En la tabla, si una celda pertenece a la relacin, su simtrica respecto a la diagonal debe pertenec er. Una relacin asimtrica exige justo lo contrario: que si una relacin se produce en un sentido, no se produzca en el otro(8x8y(Rxy !Ryx)). En la tabla, no puede haber dos celdas de la relacin simtricas respecto a la diagonal. En particular, ningn elemento puede estar relaci onado consigo mismo. Una relacin antisimtrica mantiene la exigencia de la asimetra, pero permite que exi stan elementos relacionados consigo mismo (no necesariamente todos): 8x8y(Rxy. Ryx . x = y) Observe que ninguna de las tres sentencias precedentes es la negacin de alguna de las otras. Considere en qu casos una relacin no es simtrica, no es asimtrica o no es antisimtric a. Transitividad, relaciones eucldeas, lineales Coloquialygrficamente,la transitivida dexigeque haya un arco directo desde cada elemento x a cualquier otro z accesible desde x por cualquier camino de arcos. En las relaciones eucldeas, dos elementos cualesquiera relacionados con un mismo x deben estar relacionados entre s. Es decir,todos los vecinos accesibles desde x deben estar rel acionados entre s. Observe que, si w1yw2 estn ambos relacionados con x,se satisface tanto((Rxw1^Rxw2 ) . Rw1w2)

como ((Rxw2. Rxw1) . Rw2w1). Asimismo ((Rxw1. Rxw1) . Rw1w1). En las relaciones lineales, los elementos distintos relacionados con x slo deben estar relacionados entre s en , al menos, un sentido. Adems, ((Rxw1^Rxw1) . (Rw1w1_w1 = w1_Rw1w1)) ya no requiere que todo elemento relacionado con x est relacionado consigo mismo. Relaciones funcionales, deterministas, seriales Una funcin de W en W no es ms que una relacin de la que se exige que cada elemento x est relacionado con un nico elemento y. W. En el grafodirigidode una funcin,de cada nodo parte un arcoyslo uno. Observe que no se d escarta que un elemento est relacionado (tenga por imagen) a s mismo. Enuna relacin determinista,deunnodopuedenonopartir arcos,perosiparteunarcosernico. En una relacin serial, de cada nodo parte un arco al menos (si no ms). Relaciones totales, densas En una relacin total, cualesquiera dos elementos deben estar relacionados, en un sentido u otro. Los nmeros enteros, los racionales o los reales, con su rel acin usual de orden, verifican esta propiedad. Muy coloquialmente, en una relacin densa, si dos nodos x e yestn relacionados, deb e aparecer (existir) un nodo intermedio z, tal que Rxz yRzy. Si la relacin Res reflexiva, es e nodo intermedio z podra ser siempre el mismo x. La relacin menor que entre nmeros naturales o enteros no es densa; s lo es entre nmeros racionales o reales.

Captulo 5. FUNDAMENTOS DE LGICA MODAL Satisfaccin de un conjunto de propiedades A una relacin se le puede exigir que verifique varias de estas propiedades. Por e jemplo, que sea reflexiva, simtricaytransitiva(esdecir,una relacindeequivalencia).Oqueseareflexiva , antisimtricaytransitiva( es decir, una relacinde orden). Considere, por separado, todas las estructuras hW,R. con relacin R reflexiva o con relacin R transitiva. Las estructuras con relacin Rreflexivaytransitiva formanel conjunto i nterseccinde los dos anteriores. Cada nueva propiedad exigida a R reduce el nmero de estructuras q ue la verifican. En el caso extremo, puede que en ninguna estructura se satisfaga una relacin con un determinado conjunto de propiedades. Es decir, que ese conjunto de propiedades (de sentencia s de primer orden) sea insatisfacible. Por ejemplo, una relacin no puede ser simultneamente reflexiva yasimtrica. Por otra lado,de la exposicin coloquial se intuye que si una relacin satisface un conjunto determinado de propiedades no podr dejar de satisfacer sta o aqulla otra. En trminos ms formales, alguna de estas sentencias es consecuencia lgica de ciertos conjuntos de otras. L a conexin entre insatisfacibilidadyconsecuencia se encuentra en cualquierexposicinde lgicade prime r orden. El lector puede comprobar que: Si Res simtrica ytransitiva, Si Res reflexiva entonces entonces es eucldea es serial Res simtrica, transitiva yserial es reflexiva yeucldea es una relacin de equivalencia (reflexiva, simtrica ytransitiva) si ysolo si si yslo si 5.2.3 Cierres Una relacin Rcualquiera puede perfectamente no ser reflexiva: quiz algunos element os estn relacionados consigo mismo, pero no todos. Si se aadena Rtodos los pares (x,x) quefaltaban se obtiene otra relacin R0, que se denomina cierre reflexivo de la relacin R. Observe que a la relacin Rde partida se le pueden aadir todos esos pares (x,x) quefaltabany algn par (x,y)

ms. La relacin resultante ser tambin reflexiva e incluir tambin a la relacin R inicial. Lo que caracteriza al cierre reflexivo es que se aaden slo los pares (x,x ) necesariosyningn otro. Es decir, que es la menorrelacinreflexiva que incluyeaR. Definicin 5.3 (Cierre reflexivo) Sea W un conjunto novacoy Runa relacin binaria sob re el mismo. Entonces R0, el cierre reflexivo de Rse define como: R. = \{R0. | R0. es reflexivay R. R00} De igual forma se pueden definir el cierre simtrico o el cierre transitivo de una relacin, entre otros. Notemos como R+ al cierre transitivo de una relacin R. Se puede visualizar grficamente como sigue: desde cada nodo w, produzca un arco directo a cualquier otro accesible de sde w mediante un camino de arcos en R: R+ = \{R0. | R0. es transitivay R. R00} Para ciertas definicionesconvendr considerar cierres ms complejos, por ejemplo, el cierre R* , transitivoyreflexivo,de una relacin R: R* = \{R0. | R0. es reflexivaytransitiva,y R. R00}

5.3. Lgica monomodal 175 De cualquiera de estas definiciones se sigue que si una relacin ya satisface una propiedad, su cierre respecto a ella coincide con la relacin de partida. Para fijar ideas, se p resenta la definicin de rbol, que utilizael cierre transitivoyel transitivo-reflexivode su relacin. Definicin 5.4 (Arbol) Un rbol es una estructura relacional hW,R. tal que: 1. existe un nico elemento (raz) r . W que verifica 8wR* rw 2. para cada w 6 = r existe un nico w. tal que Rww. 3. 8wR+ww 5.3 Lgica monomodal 5.3.1 Lgica modal bsica Permtanos presentarle el lenguaje modal ms simple. Se construye sobre el lenguaje de la lgica de proposiciones, con la incorporacin de dos nuevos smbolos. Como es usual, la sintax is del lenguaje facilita el conjunto de frmulas, de expresiones correctamente formadas. Dada una frmula de la lgica modal bsica, mediante su semntica se comprueba si es ver dadera o no en una determinada estructura relacional. En concreto, las estructuras sobr e las que seevala una frmula de este lenguaje constan de una nica relacin binaria. Lenguaje Alfabetoylenguaje Definicin 5.5 (Alfabeto) El alfabeto de la lgica modal bsica consta de los siguient es elementos: 1. letras proposicionales: po, p1, p2,... 2. smbolos lgicos: (a) constantes proposicionales: . ,. (b) conectivas monarias()ybinarias:^,_,. (c) operadores modales: . ,. 3. smbolos auxiliares: ( y ) Cuando el nmero de proposiciones que se consideran simultneamente es pequeo, se sue len utilizar como letras proposicionales las ltimas del alfabeto latino: (p,q,r,s,...). Ellect or quiz estfamiliarizado con unlenguaje proposicional sin constantes; simplemente representan proposiciones q ue son siemprefalsas(?)o verdaderas(>).

Se utilizar el smbolo . como abreviatura. As, (f . y) abreviar la frmula ((f . y) . (. . f)). Anlogamente, se poda haber considerado un nmero menor de conectivas primitivas, por ejemplo {,^}. El resto se definiran como abreviaturas metalingisticas en la forma usual. Este pl anteamiento acorta las definicionesydemostraciones sobreel lenguaje. Definicin 5.6 (Frmulas del lenguaje modal bsico) Las frmulas del lenguaje se definen por la siguiente expresin BNF: f ::= p|?|>|f | (f . f) | (f . f) | (f . f) | 2f | 3f

Captulo 5. FUNDAMENTOS DE LGICA MODAL Es decir, una frmula es, exclusivamente, cualquier cadena que se genere por aplic acin finita de las siguientes reglas. 1. Cada letra proposicional es una frmula 2. Las constantes proposicionales . y. son frmulas 3. Si . es una frmula, entonces . es una frmula 4. Si . y. son frmulas, entonces son frmulas (. . c), (. . c) y(. . c) 5. Si . es una frmula, entonces son frmulas 2. y3. Notacin Notaremos como Varal conjuntode las letras proposicionalesycomo Formal co njunto de las frmulas. Ejemplo 5.7 De la definicin anterior se sigue: Si slo se utilizan las reglas 1-4, las frmulas generadas son todas las frmulas de l a lgica de proposiciones: (p^q), (p. ?). Esta es la parte, el subconjunto, no modal del lenguaje. Considere la frmula (p^q), que abreviaremos como y. De la regla5 se sigue que 2. es una frmula: 2(p^q). A su vez, esta nueva frmula puede utilizarse para formar otras ms complejas: (regla 4) (2(p^q) . (p. ?)). La aplicacin reiterada de la regla3 permite la construccin de frmulas con negacione s sucesivas: p. De igual forma, la regla5permite la generacin de frmulas con operadores modales consecutivos: 223(p. q). Todas las expresiones siguientes son frmulas del lenguaje de la lgica modal bsica: p, (>. 2p), 3(22p!3q),((q!r) . p) Subfrmulas

Al igual que en la lgica de proposiciones o de predicados, las demostraciones sob re el lenguaje utilizan el principio de induccin estructural. Las definiciones se producen recursivamente . La siguiente definicin es un primer ejemplo de ello. Definicin 5.8 (Conjunto de subfrmulas) Acada frmulaf le corresponde un (nico) conjunto de frmulas Subf(f), el conjunto de sus subfrmulas, definido como: Subf(2f)= {2f}. Subf(f), Subf(3f)= {3f}. Subf(f) Sub((f * y)) = {(f * y)}. Sub(f) . Sub(y) para toda conectiva binaria * Subf(f)= {f}. Subf(f) Subf(?)= {?}, Subf(>)= {>}

5.3. Lgica monomodal Subf(p)= {p} para cada letra proposicional Ejemplo 5.9 De acuerdo con la definicin anterior, Subf(2((p. q) _3r)) = {2((p. q) _3r),((p. q) _3r),(p. q),3r, p,q,3r,r} rboles sintcticos Entre las propiedades que pueden demostrarse inductivamente se encuentra el Prin cipio de anlisis sintctico nico: toda frmulaf (pormuy complejaquesea) esten unayslo unadelas9siguientes categoras: 2y, 3y, . (para una . determinada) (. * c) para y,. yconectiva binaria determinadas ?,. o es una letra proposicional As, la descomposicin sintctica no presenta ambigedad en ningn caso. En pocas palabras : a toda frmula se le podr hacer corresponder un nico rbol sintctico como el que se prese nta (sin definicin formal) enla figura (fig.5.4).Yviceversa. 2((p. q) . (3r)) . ??????. ((p. q) .

(3r)) (p. q)(3r) pq (r) r Figura 5.4: rbol sintctico de 2((p. q) . (3r)) Antes de continuar, asegrese de que es capaz de dibujar el rbol sintctico de cualqu iera de las frmulas que se han visto hasta este punto. Sustituciones La sustitucin uniforme permite escribir una frmulaa partirde otra. Se puede presen tar, intuitivamente, mediante un ejemplo inicial. Ejemplo 5.10 Considere la frmula f := ((p. q) . p) ysustituya todas la apariciones de:

Captulo 5. FUNDAMENTOS DE LGICA MODAL p, por la frmula . :=(r. s) q, por la frmula . :=(t . u) el resultado es la frmula ((r. s) . (t . u)) . (r. s)) |{z. . {. . |{z. . c. donde las marcasde subrayado se han aadido ocasionalmente parafacilitarla corresp ondencia. Cuidado Observe que la sustitucin se produce uniformemente, por igual, en cada ap aricin de la letra proposicional sustituida. Sobre la misma frmula f de partida, se podan haber sustituido todas las instancias de: p, por la frmula . := q q, por la frmula . :=(q!p) el resultado sera entonces la frmula ( q. (q!p)) . q) |{z. . {. .

|{z. . c. Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamen te aparecidas de la letra proposicional. Se producen todas simultneamente: no se convierten prime ro las pen qy, luego, todas lasq(las primitivasylas recin aparecidas) en (q!p). Algo ms formalmente, una sustitucin es una funcin del conjunto de letras proposicio nales en el conjunto de frmulas: s :Var7 . Form. Gracias a esta funcin se puede definir otra que asigna a cada frmula su transformada (por una cierta sustitucin): ()s :Form Sust7 . Form. Definicin 5.11 (Instancia, por sustitucin, de una frmula) Dada una sustitucin s : Var 7 . Form, la transformada fs de una frmula f se define como: 1. (2f)s = 2fs , (3f)s = 3fs 2. (f * y)s =(fs * ys), para toda conectiva binaria * 3. (f)s = fs 4. ?s = ?, >s = . 5. ps = s(p), para cada letra proposicional La frmula fs

es la instancia de f por la sustitucin s.

5.3. Lgica monomodal Ejemplo 5.12 Sea s :Var7 . Formtal que s(p)=(q. 3p) s(q)=(p. 2q) Entonces est definida la transformada (f)s de cualquier frmula f, por ejemplo f :=(p!2q) : (f)s = (p!2q)s = (p)s . (2q)s = (p)s !(2q)s = (p)s !2(q)s = s(p) !2s(q) = (q. 3p) !2(p. 2q) Las sustituciones del ejemplo previo hacen correspondera pyqcon sus frmulas respe ctivas. Si p yqno son las nicas letras proposicionales del alfabeto, la sustitucin s debe precisar qu frmula le corresponde a cada una de las letras restantes. En este caso existir todo un conj unto de sustituciones distintas que coincidan en la asignacin de pyqydifieran en la de alguna de las le tras restantes. Afortunadamente, cualquiera de estas sustituciones producir la misma tranformacin sobre una frmula f, siempre que en f slo aparezcan las letras proposicionales pyq. Instancias, por sustitucin, de tautologas Especial inters van a tener las sustituci ones sobre tautologas clsicas proposicionales (no modales). Por ejemplo, la que transforma (p _p) en: (2(q. 3r) _2(q. 3r))

Semntica relacional Las frmulas de la lgica modal se interpretan sobre objetos matemticos denominados m odelos. Un modelo (5.18)se definea partirdeun marco ( el grafo , 5.13)yde una asignacin (5.16), que precisa qu letras proposicionales son ciertas en cada nodo. Dada una frmula f yun modelo, se definir (5.22) cundo f se satisface (es verdadera) en un nodo determinado del modelo . Sobre esta semntica se consideran los conceptos usual es de validez, equivalenciayconsecuencia lgica. Marcos Definicin 5.13 (Marco) Un marco F (para la lgica modal bsica) es un par hW,Ri, dond eW es un conjunto novacoy Res una relacin binaria sobre W. Notacin Dependiendo del contexto o de la aplicacin, los elementos de W se denomina n mundos, mundos posibles, estados, instantes, ...Alo largode estas notas usaremosindistintamente mundos , estados y nodos . Cuando el mundo w1 est relacionado con w2 diremos que desde w1 se accedea w2 o que w2 es accesible desde w1 . Se notar como Rw1w2.Ala relacin Rse la denomina relacin de accesibilidad. Enla notacinsehan mantenidolas inicialeseninglsdelos conceptos: F= hW,R. correspondea Frame= hWorlds,Relation. Un marco es, en general, una estructura relacional: un conjuntoy relaciones dive rsas n-arias sobre el mismo. En este caso, para interpretar la lgica modal bsica slo se necesita una relacin binaria. Para fijar ideas seguiremos considerando ejemplosde marcos con pocos elementos, fcilmente representables como grafos dirigidos (fig.5.5). Ejemplo 5.14 Observe la figura (fig.5.5). En ambos marcos, el mundo w2 es accesi ble desde el w1, pero el w1 no lo es desde el w2. Observe que el w2 tampoco es accesible desde s m ismo. El mundo w3 es accesible desde el w1 slo en el marco de la derecha. En el marco izquierdo, desde el nodo w4 no se accedea ningn otro: es un mundo fin alo terminal; de hecho, el nico. En el marco derecho, el estado w4 se relaciona consigo mismo, luego no es un nodo final.

Captulo 5. FUNDAMENTOS DE LGICA MODAL . ++2 .... ?>=<89:;.... ?>=<89:; 1 . ++21 . ++43 .... ?>=<89:;.... ?>=<89:;4 3 (a) marco F1 = hW,R1. (b) marco F2 = hW,R2. Figura 5.5: dos marcos sobre un mismo conjunto W Conjuntos o familias de marcos Algunos resultados tericos sern vlidos no slo para un cierto marcoen estudio,sinoparatodoslosdeun determinado conjunto:porejemplo, todoslos mar coscon relacin reflexiva ,o losque sean reflexivosytransitivos .Se utilizarla notacin F para referirse a un conjunto (no vaco) de marcos. Ejercicio 5.15 Con ayuda de la figura (fig.5.6), calcule cuntos marcos distintos pueden definirse sobre un conjunto de4elementos. Observe que, independientemente, cada casilla de la tabla puede pertenecer o no a la relacin. Cuntas de las relaciones anteriores son reflexivas, e s decir, verifican que todo estado es accesible desde s mismo? 1234 xx .... ?>=<89:;.... ?>=<89:;1 xx 1 22 3

xx . 4 . ++ .... ?>=<89:;(b) relacin R1 3 4 (a) marco hW,R1. Figura 5.6: una relacin sobre un conjuntode4elementos Modelos Definicin 5.16 (Asignacin) Una asignacin . en un marco hW,R. es una funcin . :Var7 . P(W) que asocia a cada letra proposicional el subconjunto de mundos donde es verdader a. Ejemplo 5.17 La figura (fig.5.7) representa grficamente un marco hW,R. con una asignacin n,donde:

W = {1,2,3,4,5,6} R= {(1,2),(2,3),(2,4), (3,2),(3,3),(3,4)} n(p)= {1,2,5,6}, n(q)= {3,4}, n(r)= {1,4,5,6} Observe que se define qu letras proposicionales son ciertas en qu estados mediante una funcin . del conjunto de las letras proposicionales en el conjunto de subconjuntos de est ados. Otras exposiciones consideran una funcin n. que asocia a cada estado el subconjunto de letras proposicionales verdaderas en l; por ejemplo, n0(1)= {p,r}. Tambin puede definirse una funcin

5.3. Lgica monomodal n0. que asociaacadapar estado-letra proposicionalelvalorverdaderoofalso,segnseaonover dadera esa letra en ese estado: n00(1, p) = verdadero. .. ONHI .. MLJK 1 p,r . MM . ,, .. ONHI .. MLJK . FF 2 p 3 . ,,4 . FF q q,r 6 .. ONHI.. MLJK5 .. ONHI.. MLJK p,r p,r Figura 5.7: Un modelo: marcoyasignacin Definicin 5.18 (Modelo) Un modelo M (para la lgica modal bsica) es una terna hW,R,n i, donde hW,R. es un marcoy. es una asignacin sobre el mismo. Se notar tambin como hF,ni. Cuidado El trmino modelo, en lgica de primer orden, se aplica a toda estructura so bre la que se satisface una frmula. En lgica modal, se denomina modelo a la estructura matemti ca sobre la que se interpreta la frmula, con independencia de su satisfaccin sobre la misma.

Conjuntos o familias de modelos Algunos resultados tericos son aplicables a todos los modelos de un determinado conjunto. Se utilizar la notacin M para designar a un conjunto de modelos. Definicin 5.19 (Conjunto de modelos sobre un marco) Dado un marco F = hW,Ri, cada asignacin distinta sobre el mismo produce un modelo diferente. Si se consideran todas las asignaciones posibles, cada marco determina un conjunto de modelos. Ejemplo 5.20 Considere de nuevo la figura (fig.5.7). Supongamos que el conjunto de variables es slo Var= {p,q,r}. La asignacin del modelo de la figura se puede representar con la tabla s iguiente: 1 p q r 2 v v v 3 4 5 6 v v v v v v v

Como cada celda (por ejemplo,la (p,1)) se puede marcaro no indistintamente del r esto,existen236 asignaciones distintas sobre este marco. El conjunto de modelos basados en este marcoF consta de los218 modelos: sobre ese mismo conjunto W, con esa misma relacin Rrepresentada en el grafo, para cada unade las218 asignaciones distintas posibles

Captulo 5. FUNDAMENTOS DE LGICA MODAL Observeque,sisevarala relacin R, se obtiene otro marco F. sobre ese conjunto W. El conjunto de modelos basados en el nuevo marco F. tambin constar de 218 modelos, generados aplicando todas las posibles asignaciones distintas. Si se considera el conjunto de ambos marcos F = {F,F0}, el conjunto de modelos basados en el conjunto de marcos F ser la unin de los modelos basados sobre F ysobreF. . Ejemplo 5.21 Se pueden definir conjuntos de modelos que no son conjuntos basados en marcos. Un primer ejemplo lo constituye el conjunto de modelos M que consta slo del modelo representado en la figura (fig.5.7). Sobre ese mismo marco, se pueden considerar slo los 217 modelos en que la variable p es verdadera en el mundo 1. Tambin se pueden considerar los modelos, sobre ese conju nto W, en que la variable pesverdadera en1 sea cual seala relacin(el marco). Intuitivamente, un conjunto genrico M de modelos puede constar: de algunos delos posible modelos sobre cierto marco F, o de algunos modelos escogidos sobre el marco F1yd e otros sobre F2,F3,... O bien, escogiendo paquetes completos , de todos los modelos sobre un marco F, o de todos los modelos sobre los marcos de un conjunto F . Satisfaccin La definicinde una semntica,enun sistema lgico, permite responderalapreguntase satis face(es verdadera) la frmula f, interpretada sobre el objeto matemtico O?.Parael sistemaqu e nos ocupa: se satisface la frmula f, interpretada enel mundow del modeloM? Observe el modelo de la figura (fig.5.8). Sitese localmente en un estado cualquie ra. En el mundo w4, por ejemplo, son verdaderas slo las letras proposicionales qyr. Con la semntic a usual de la lgica de proposiciones, en ese mundo, son verdaderas las frmulas (q. r), (p. r), (p_q) >. Yfalsas otras como: p, (r . p) ?. Cmo se interpretan las frmulas que incluyen operadores modales? Sitese localmente en

un estado cualquieray tenga en cuenta sus mundos accesibles. Por ejemplo, el estado w2 est relacionado tanto con el estado w3 como con el w4 (sin embargo, no est relacionado consigo mi smo): una frmula como 3r se satisface en w2 porque existe al menos un estado accesible (w4)donde es r verdadera; tambin en w2 se satisface 3(r . p), puesto que (r . p) se satisface en su estado accesible w3 una frmula como 2qse satisface en w2 porque en todos sus estados accesibles (w3yw 4)es q verdadera; tambin en w2 se satisface 2(r . q) Paraevaluar frmulas ms complejas se necesita una definicin precisayformal del conce ptode satisfaccin. Definicin 5.22 (Satisfaccin) La satisfaccin de una frmula f en un mundo w del modelo M, notada como M,w . f, se define recursivamente como se adjunta en la tabla 5.2. Observe cmo la satisfaccin de una frmula compleja se hace depender recursivamente d e la satisfaccin de sus subfrmulas, hasta llegar al caso base: las frmulas atmicas 1[a-c] . Las lneas 1[a-c]y2[a-d] son una copiadela semnticadela lgica proposicional. Definen cmo interpretar, en un mundo, una frmula sin operadores modales: simplemente proceda como ya lo haca en lgica proposicional (considerando qu letras proposicionales son verda deras en ese mundo).

5.3. Lgica monomodal 1a M,w . . en ningn caso 1b M,w . . en todo caso 1c M,w . p si yslo si w . n(p) 2a M,w . f si yslo si no M,w . f 2b M,w . (f . y) si yslo si M,w . f yM,w . . 2c M,w . (f . y) si yslo si M,w . f M,w . . 2d M,w . (f . y) si yslo si no M,w . f M,w . . 3a M,w . 3f si yslo si existe un w. . W tal que Rww. yM,w. . f 3b M,w . 2f si yslo si para todo w. . W, si Rww. entonces M,w. . f Tabla 5.2: definicin recursiva de satisfaccinM,w . f

En la lnea 2a, conviene fijarse en que, coloquialmente, el no metalingistico externo se convierte en un no interno del lenguaje(). Y viceversa. Se abreviar no M,w . f como M,w 6 . f. Tambin informalmente, 3a se puede ver desde una perspectiva procedimental: para ve rificar que 2f se satisface en un mundo, inspeccione todos sus mundos accesiblesycompruebe que en cada uno (sin excepcin) se satisface la subfrmula f . La misma perspectiva se puede ofrecer de 3b: para verificar que 3f se satisface en un mundo, inspeccione sus mundos accesibles hasta encontrar al menos uno donde se satisfac e la subfrmula f . La satisfaccin es el concepto clave de la lgica modal. Para fijarlo, revisemos alg unos ejemplos de complejidad creciente. Ejemplo 5.23 (Frmulas sin operadores modales) Considere el modelo Mde la figura 5 .8: Una frmula modal bsica sin operadores modales resulta ser unafrmula proposicional. Su satisfaccin en un mundo, como frmula modal, utiliza slo las entradas 1[a-c]y2[a-d]dela definic in de satisfaccin. La negacin pse satisface slo en los mundos w3yw4. La conjuncin (q. r) slo en el mundo w4. Un condicional como ((p!(q. r)) slo puede serfalso en los mundos en que pes verdadera (yde stos, slo aqullos en queel consecuente seafalso: w1, w5yw6). Para todo modeloymundo, la satisfaccin de estas frmulas, sin operadores modales, no depende de la relacin de accesibilidad. La frmula atmica . se satisface en todo mundo w. Pero tambin cualquier otra tautologa; por ejemplo: M,w . (q. (p_p)), no importa cul sea el mundo w. Incluso, independientemente de cul sea el modelo M. En todo mundo de todo modelo: se satisface cualquiera de las tautologas de la lgic a deproposiciones,y no se satisface ningunade las contradicciones.

Captulo 5. FUNDAMENTOS DE LGICA MODAL 1 . ,,2 p,r p,r 3 . ,,4 q q,r 56 .. ONHI.. MLJK.. ONHI.. MLJK p,r p,r Figura 5.8: satisfaccin de una frmula Ejemplo 5.24 (Frmulas simples con operadores modales) Sigamos considerando el mod elo Mde la figura (fig.5.8). La frmula 3(p. r) se satisface sobre w3, puesto que en alguno de sus mundos accesibles se satisface la subfrmula (p. r) . Ms formalmente: M,w3 . 3(p. r) siyslosi 9w . W tal que Rw3w yM,w . (p. r) Los nicos mundos relacionados con w3 son w2,w4yw6. Como el conjunto W es finitoyp equeo, expandamos las opciones: _ M,w3 . 3(p. r) sii (

) 8. . M,w2 . (p. r) sii M,w2 . pyM,w2 . r [v : si] M,w4 . (p. r) sii M,w4 . pyM,w4 . r v M,w6 . (p. r) sii M,w6 . pyM,w6 . r [ : si] Efectivamente, en los mundos w2y w6 se satisface (p. r), luego en w3 se satisface 3(p. r). Observe que en w3 no se satisface 2(p. r) puesto que la subfrmula (p. r) debera satisfacerse en los tres mundos relacionados: 8. . M,w2 . (p. r) sii M,w2 . pyM,w2 . r M,w4 . (p. r)

sii M,w4 . pyM,w4 . r M,w6 . (p. r) sii M,w6 . pyM,w6 . r ^ M,w3 . 2(p. r) sii () [ : no] Un resultado negativo, como M,w2 6 . 2r se demuestra simplemente sealando un mundo accesible desde w2 (por ejemplo w3)donde no se satisfacer. Qu ocurre en estados como w4w6 don de no se puede mostrar un slo contraejemplo de mundo accesible donde no se satisfaga r?Severificao no M,w4 . 2r?Denominaremos a estos mundosfinales o terminales,ylos analizamos en el ejempl o siguiente. Ejemplo 5.25 (Satisfaccin en mundos finales) Considere, de nuevo, el la figura (fig.5.8). Desde el mundo w4 no es accesible ningn otro (ni siquiera el modelo M slo encontramos dos de estos mundos terminales: w4yw6. La definicin se aplica en ellos de igual forma que en el resto, pero esta aplicacin produce oco intuitivos que conviene resaltar: modelo M de l mismo). En de satisfaccin resultados p

M,w4 . 3f se producesiyslosiexisteun mundo accesible desde w4 donde se satisfaga f. Pero w4 no tiene mundos accesibles. No importa cul sea la subfrmula f: ese mundo relaci onado donde

5.3. Lgica monomodal deba satisfacerse noexiste,ypor tanto, M,w4 6 . 3f cualquiera que fuera f, incluso aunque f fuese una tautologa. Siw es un mundo final, entoncesM,w 6 . 3f (en todo modeloM, para toda frmula f) La satisfaccin M,w4 . 2f se produce siy slo si en todo mundo de W se verifica que si es accesible desde w4 entonces se satisface f . Estaexpresin condicional serverdadera s alvoque algn mundo verifique el antecedente(ser accesible desde w4)sin verificar el consecuen te (satisfacerf). Y, efectivamente, en ningn caso deja de ser verdadero el condicional, porque ningn mu ndo verifica el antecedente. Luego M,w4 . 2f para toda frmula f, incluso aunque f fuese una contradiccin. Siw es un mundo final, entoncesM,w . 2f (en todo modeloM, para toda frmula f) Insistiendo en estos resultados anteriores, recuerde que M,w 6 . 3. yM,w. 2. slo en mundos finalesw,porlainexistenciade mundos relacionados.En cualquierotro caso, cuandowt enga mundos relacionados, en todos ellos se satisfar . yen ninguno de ellos se satisfar ?. M,w . 3. M,w . 2> Si w no es un mundo final M,w 6M,w . 3? . 3?6 Ejemplo 5.26 (Frmulas 3n 2n) La sintaxis permite generar frmulas como 33p. Para ver ificar si esta frmula se satisface en un mundo w hay que considerar la subfrmula 3p en lo s mundos

accesibles de w, que, de nuevo, requiere inspeccionar los mundos accesibles de e stos ltimos: M,w . 33p siyslosi 9xRwxM,x . 3p siyslosi 9yRxyM,y. p As, en el modelo de la figura (fig.5.8), 33pse satisface en w5: RR M,w5 . 33p ya que M,w2 . 3p puesto que M,w1 . p ( Yw5 -. w2 -. w1) Sin embargo, 33pno se satisface en w1. En general: M,w . 3nf siyslosiexisteun mundozalquesepuede acceder desdewtrasrecorrer n arcos tal queM,z . f M,w . 2nf siyslosiparatodomundozalquesepuede accederdesdewtrasrecorrer n arcos se verificaM,z . f Observe que no se descarta el uso de arcos reflexivos en este camino. Es decir, si un mundo est relacionado consigo mismoy pes all verdadero, entonces 3nppara toda n. Sin emb argo, no se puedegarantizar que se satisfaga 2np, por qu?. Ejemplo 5.27 (Frmulas generales) De nuevo sobre el modelo de la figura (fig.5.8), comprobaremos que M,w1 . 3(p. 32(q. r)): M,w1 . 3(p. 32(q. r)) ya que existe w2, con Rw1w2, donde M,w2 . (p. 32(q.

r)) condicional que se satisface, puesto que si M,w2 . p entonces M,w2 . 32(q. r)

Captulo 5. FUNDAMENTOS DE LGICA MODAL Como el antecedente M,w2 . pefectivamente se satisface, para completar el desarrollo hay que mostrar que M,w2 . 32(q. r): M,w2 . 32(q. r) ya que existe w3, con Rw2w3, donde M,w3 . 2(q. r) ya que, para todo w relacionado con w3 M,w . (q. r) en todo w 2{w2,w4,w6} si M,w . q entonces M,w . r Ejercicio 5.28 Determine los mundos (si los hay) en el modelo de la figura (fig. 5.8) donde se satisfacen las frmulas: (2(p. q) . 3r), 22(p. 3q), (p. 2(q. 3q)) Retomandoelhilodelaexposicin,traslosejemplos,conviene resaltarla relacinqueexistee ntre los dos operadores modales. Tan estrecha, que cada uno no es sino una representa cin tranformada del otro. Definicin 5.29 (Operadores duales) Para todo operador modal. que se defina, consideraremos el operador 4, al que denominaremos su operador dual. Los operadores .

y. son duales el uno del otro. Observe que, con la semntica definida: M,w . 2f siyslosi para todo w. accesible desde w se satisface f siyslosi noexiste un w. accesible desde w donde no se satisfaga f siyslosi no M,w . 3f siyslosi M,w . 3f El operador . tieneun sentidoexistencial (sobreel dominiode mundos localmente relacionados), mientras que el operador . tiene un sentido universal. Se poda haber definido el lenguaje con uno slo de los dos operadoresyconsiderar el otro como una abreviatura. As, el lenguaje de la lgica modal bsica es monomodal: slo requiere definir un operador modal. En general, los operadores modales que se irn definiendo, ocurrirn por pares duale s. Aveces, ambos smbolos se definen como operadores primitivos del alfabeto; si no, se suele definir un smbolo adicional como abreviatura del dual del primitivo. Sobresatisfaccinysatisfacibilidad Para terminar este apartado,yentre otros proble mas relativos, resaltaremos los dos siguientes: Dada una frmula f, as como un modelo Myuno de sus mundos w se satisface f en M,w? Dada una frmula f, es satisfacible: existen M,w tales que M,w . f?

5.3. Lgica monomodal Conceptos semnticos bsicos En el apartado anterior se ha definido recursivamente la relacin de satisfaccin. B asndose en ella se definirn otros conceptos semnticos fundamentalescomo verdad, validez, consecuen cia o equivalencia. Definicin 5.30 (Frmula verdadera) Si M,w. f, es decir, si una frmula se satisface en un estado w de un modelo Mdiremos que es localmente verdadera o verdadera en ese estado. Validez Recuerde que, en lgica de proposiciones, la satisfaccin de una frmula se produca, o no, en una lnea de la tabla de verdad. La frmula era vlida (una tautologa) si se satisfaca en to das las lneas. Anlogamente, una frmula modal ser vlida si se satisface en toda interpretacin posible . Definicin 5.31(Validez) Una frmula es vlida si se satisface en todo mundo de todo m odelo. Notacin Para expresar la validez de una frmulaf se utilizar la notacin . f. Un frmula vlida se satisface en todo caso: en todo dominio W ycon cualquier relacin R(es decir,en todo marco), cualquiera que sea la asignacin . yel mundowdondeseevala. As,lavalidez no puede depender de una eleccin particular de estas opciones: depende slo de la p ropia estructura dela frmulaydela semnticade las frmulas modales. Teorema 5.32 Toda tautologa proposicional clsica es una frmula vlida. Considereun marcoy unmundo cualesquiera.Noimportaculseala asignacin,(losvaloresdel asletras proposicionales en ese mundo): la frmula (por ser tautologa) ser verdadera en l. Las tautologas no son las nicas frmulas vlidas. La frmula del siguiente teorema es un ejemplo de ello, suficientemente importante como para recibir un nombre propio: se denom ina Ken honor del lgico Saul Kripke. Teorema 5.33 La frmula (2(p. q) . (2p. 2q)) es una frmula vlida. Para demostrar . K se precisa demostrar M,w . K para todo mundo w de todo modelo M. El esquema

de demostracin que sigue se refiere a un mundo w y a un modelo M cualesquiera. Co mo no se utilizan caractersticas particulares de los mismos, resultar un esquema de demostracin corre cto para todo mundoy todo modelo. La frmula Kes un condicional. El nico caso en que un condicional no se satisface e s cuando s lo hace el antecedente pero no el consecuente. Pero esto no se produce para K: si se supone la satisfaccin del antecedente esto nos conduce lgicamente a la satisfaccin del consecuente. As, supongamos M,w . 2(p. q). Entonces (1): se satisface (p. q) para todo mundo de M accesible desde w. Por otro lado, el consecuente de K es asmismo un condicional. Slo serfalso si se satisface su antecedente pero no su consecuente. Supongamos, entonces, M,w . 2p. Es decir, (2): se satisface ppara todo mundo Maccesible desde w. De(1)y(2)sesiguequese satisface qen todo mundo accesible desde w,ypor tanto M,w . 2q. Algunas frmulas, sin llegar a ser vlidas, pueden an cumplir propiedades menos exige ntes. Por ejemplo: pueden ser verdaderas en todo mundo de cierto modelo M,o de ciertafamil ia de modelos. En estos casos, W,R,n,w . f an se requiere para todo w pero ya slo para ciertos modelos, ciertas elecciones de marco y asignacin. Un caso particular se produce cuando esa familia de modelos coincide con todos los modelos basados en cierto marco en un conjuntode ellos.

Captulo 5. FUNDAMENTOS DE LGICA MODAL Definicin 5.34(Validez en un conjuntode modelos) Una frmula f es vlida en un modelo Msi es verdadera en todo mundo de M. Una frmula f es vlida en un conjunto de modelos M si es vlida en todo modelo M. M . Como caso particular, resultar especialmente interesante la validez sobre todos l os modelos de un marco o de un conjunto de marcos: Una frmula f es vlida en un marco F si es vlida en todo modelo basado en F. Una frmula f es vlida en un conjunto de marcos F si es vlida en todo marco F. F . Notacin Las frmulas vlidasenun modelo,un conjuntode modelos,un marcoyun conjuntode marcos se notan, respectivamente, como M. f, M . f, F. f, F . f. Ejemplo 5.35 Elija un marco F cualquiera (universo W yrelacinR). Considere slo las asignaciones tales que cada letra proposicional es cierta a lo sumo en un mundo. Obtendr un co njunto M de modelos. Una frmula f como (p^q) esverdaderaentodomundode cualquieradeestos modelos M. M ; es decir, M . f, f es vlida en M . Si este conjunto de modelos M coincidiera con todos los modelos basados en F, utilizaramos la notacin (ms expresiva) F. f. Pero no es el caso. El lector puede construir conjuntos de modelos como el anterior: escogiendo uno o varios marcos

ydefiniendo asignaciones peculiares. Observar que el diseo de frmulas vlidas en ese conjunto dependede las restricciones sobre las relacionesyasignaciones utilizadas. Si el conjunto de modelos incluye todos los modelos basados en uno o varios marc os, slo sern relevantes las restricciones sobre las relaciones. Observe que, en este caso, la frmula debe ser vlida no slo en todo mundo sino frente a cualquier asignacin. Ejemplo 5.36 Considere un marco con una relacin reflexiva. La frmula T :=(2p. p) ser verdadera en cualquier mundo de este marco, no importa cul sea la asignacin utilizada. Es de cir, si F es el conjunto de los marcos reflexivos entonces T es vlida en todos los modelos basados en estos marcos: F . T. Sobre el conjunto de frmulas vlidas en M En este punto, concentramos nuestra atencin sobre el siguiente problema: dado un conjunto M de modelos, qu frmulas son vlidas en l? . Recapitulemos algunos resultados parcialesyanticipemos otros: Cualquier frmula vlida, por ser cierta en todo modelo, lo es sobre cualquier subco njunto de modelos.De momento,en esta categora, conocemoslas tautologasyla frmula K Aparte de estas frmulas generales, pueden existir otras particularmente vlidas en M . La frmula T era un ejemplo de ello Existen operaciones sintcticas que preservan la validez: dada una frmula vlida en u n conjunto M , segarantiza que su transformada resultar asimismo vlida en M . La sustitucin uniforme se encuentra entre estas operaciones: preserva la validez, pero cuidado! slo en conjuntos de modelos completos basados en marcos.

5.3. Lgica monomodal Teorema 5.37 Supongaque . es una instancia por sustitucin uniforme de f.Para cualquier conjunto de marcos F : Si F . f entonces F . . Observe que el conjunto de todos los modelos posibles se puede definir como el con junto de los modelos basados en todos los marcos posibles . Las tautologasy K son vlidas sobre es te F global. Y, por tanto, todas sus instancias por sustitucin seguirn siendo vlidas sobre este conjuntoF . Es decir: Las instanciaspor sustitucinde tautologasydela frmulaK resultan ser vlidas,ypor tanto, son vlidas en cualquier conjunto de modelos M . Ejercicio 5.38 Plantese un conjunto M de modelos que conste de un nico modelo M: un marco F yuna asignacin adecuada que consiga que cierta frmula f sea ocasionalmente vlida en M. Puesto que ste no es un conjunto de todos los modelos basados en ciertos marcos, el teorema (teor.5.37) no garantiza que toda instancia de f siga siendo vlida en M. Trate de encontrar una sustitucin que, efectivamente, no preserve la validez. Teorema 5.39 Si M es una coleccin de modelos, el conjunto de frmulas vlidas en M : 1. incluye todas las instancias de tautologas 2. incluye todas las frmulas de la forma (2(f . y) . (2f . 2y)) 3. si incluye f y(f . y) , entonces incluye . 4. si incluye f, entonces incluye 2f Adems, si F

es una coleccin de marcos, el conjunto de frmulas vlidas sobre F es cerrado respecto a la sustitucin. Las dos primeras categoras son frmulas vlidas, en general,y por tanto frmulas vlidas en cualquier conjunto restringido de modelos. El conjunto M puede contar adems con otras frmulas vlidas en l (aunque no vlidas en general). Lo quegarantizan las dos ltimas condiciones es que en M el conjunto total de sus frmulas vlidas (las generalesylas particulares) est cerrado respectoa ellas; es dec ir: 3. en cada mundo en que f y(f . y) se satisfacen tambin se satisface y. Si se supone que f y(f . y) se satisfacen en todo mundo de todo modelo de M , igualmente ocurrir con y. 4. si f fuese una frmula cualquiera, puede satisfacerse f sin que se satisfaga 2f. Ahora bien, si se parte de que f es vlida (verdadera en todo mundo), lo ser en todos los vecinos accesibles, luego se satisface 2f en todo mundo (para el mismo conjunto de modelos en que f sea vlida). Adems,sloenelcasodequese considereunconjuntode modelos basadosen marcos,lasustituc in uniforme preserva la validez sobre este conjunto. Dado un conjunto de marcos F , denominaremos la lgica basada en F al conjunto de frmulas vlidas en F .

Captulo 5. FUNDAMENTOS DE LGICA MODAL Consecuencia Se dir que un conjunto G de frmulas se satisface en un mundo w del modelo Msi M,w. . para toda frmula . . G. Se nota como M,w . G. Definicin 5.40 (Consecuencia) Una frmula f es consecuencia de un conjunto de frmulas G cuando: si M,w . G entonces M,w . f, (para todo mundo w de todo modelo M) Notacin Esta relacin semntica entreelconjuntode frmulas G yla frmulaf se notar G |= f. Se suele escribir y,...,. |= f en vez de {y,...,c}|= f, omitiendo las llaves que delimitan las frmulas del conjunto G. As, se notar . |= f cuando el conjunto G conste de una nica frmula y. La definicin requiere algo ms que el mero hecho de que las frmulas G yla frmulaf coincidan, puntual yocasionalmente, en serverdaderas. Se requiere que donde quiera que seevalen (mund oymodelo) no pueda ocurrir que se satisfacen las frmulas G yno se satisfaga f . Ejemplo 5.41 Como ejemplo trivial, considere p,q|=(p. q). Menos trivialmente, tambin puede demostrarse 2(f . y) |=(2f . 2y) Contrajemplos Para demostrar un resultado negativo, quef no es consecuencia lgica del conjunto

de frmulas G (G 6|= f)basta mostrarun slo mundowde un modeloM donde: M,w . G y, sin embargo,M,w 6 . f, Desgraciadamente, los resultados positivos(G |= f)no pueden decidirse extensivamente, verificando todos los (infinitos) modelos posibles. Consecuencia restringida a un conjunto de modelos La relacin de consecuencia prop uesta es muy exigente: debe verificarse en todo mundo de todo modelo. As, p6|= 3p, ya que existen mundos donde p es verdadera sin que lo sea en ninguno de sus mundos accesibles. No obst ante, si slo considersemos los modelos basados en marcos reflexivos, en todo mundo en que sea verdadera p debe serlo 3p. Es decir, 3pes consecuencia lgica de p(restringida al conjunto de modelos basados en marcos reflexivos). Esta relacin restringida se notar como G |= M f yse define como: si M,w . G entonces M,w . f, (para todo mundo w de todo modelo M. M ) Es importante tener en cuenta que, restringidos a un cierto conjunto de modelos M : todas las relaciones generales de consecuencia se siguen manteniendo; por ejempl o, 2(f . y) |=M (2f . 2y) se satisfacen relaciones que no se satisfacan en el conjunto total de modelos; po r ejemplo, p|= M 3p(para M

igual al conjunto de modelos sobre marcos reflexivos).

5.3. Lgica monomodal 191 Equivalencia Definicin 5.42 (Equivalencia) Las frmulas f y. son equivalentes si f |= . y. |= f. Para representar esta relacin semntica entre ambas frmulas se utilizar la notacin f = y. Observe que la definicin de equivalencia se ha formalizado utilizando el concepto de consecuencia (5.40). De esta definicin resultar que dos frmulas son equivalentes si en todo mund o de todo modelo se satisface unasiyslosi se satisfacela otra. Ejemplo 5.43 (Equivalencia de frmulas sin operadores modales) Las frmulas (p. q) y(p. q) son equivalentes en lgica de proposiciones: (p. q) p(p_q). Como esta propiedad se mantiene en todo mundo de todo modelo, resultan ser frmulas modales equivalentes: (p. q) = (p. q). Ejemplo 5.44 (Equivalencias modales bsicas) Entre las equivalencias modales ms tile s e inmediatas se encuentran: 2f = 3f 2(f . y) = (2f . 2y) 3(f . y) = (3f . 3y) Ejercicio 5.45 Defina un ejemplode modeloymundo donde se compruebe que:

2(f . y) 6 = (2f . 2y) 3(f . y) 6 = (3f . 3y) Ejemplo 5.46 La frmula Kes equivalentea: (2(f . y) . (2f . 2y)) = (2(f . y) . (2f . 2y)) = = (2(f . y) . (2f . 2y)) = = ((2(f . y) _2f) . 2y) =

= ((2(f . y) . 2f) . 2y) = ((2(f . y) . 2f) . 2y) 5.3.2 Teora de la correspondencia Ya se ha expuesto que, dado un conjunto de modelosM existe un conjunto de frmulas vlidas en l. Algunas, porque son vlidas en todo modelo, junto a otras particularmente vlidas en M . Considere una frmula f de este segundo grupo: no es vlida (en general), pero s lo es sobre los modelos de M . No se descarta que esta frmula f sea tambin vlida sobre otros conjuntos de modelos(M1,...,Mk). Cuando no ocurre esto, cuandouna frmulaes vlidasobreun conjuntode modelosyslo sobre ese conjunto, esta frmula modal caracteriza sintcticamente a todo ese conjun to (normalmente infinito) de modelos. En esta seccin nos restringiremos al estudio de los conjuntos de modelos basados en marcosy de las frmulas modales que los caracterizan. Ejemplos de estos conjuntos son: tod os los modelos con marco reflexivo,o con marco transitivo,o con marco transitivoyeucldeo,o cuya relacin sea una relacin de equivalencia, o de orden ... En general, todas estas propiedades s on definibles por sentencias de la lgica clsica de primer (o de segundo) orden.

Captulo 5. FUNDAMENTOS DE LGICA MODAL Esta lnea de investigacin suele denominarse Teora de la Correspondenciaporque trata debuscarla correspondencia adecuada entrelas frmulas modalesylas frmulasen otros lenguajes, cuando todas ellas se satisfacen exclusivamente sobre las mismas estr ucturas relacionales. En general,los teoremas presentan una estructura parecidaaladel siguiente, donde una propiedad dela relacinse presentasiyslosise satisfaceuna frmula(o,equivalentemente,un esquema ): Teorema 5.47 Sea F= hW,R. un marco, entonces: Res transitiva siyslosi F. (2p. 22p) siyslosi F. (2f . 22f)

Si Res transitiva entonces F. (2p. 22p): Considere un modelo M basado en F (con relacin transitiva, por hiptesis) y un mund o w . W. Se satisface este condicional M,w . (2p. 22p) siyslo si la suposicin M,w . 2pconduce a M,w . 22p. Supongamos entonces M,w . 2p. Es decir, (1) que para todo w. accesible desde w se satisface p. Consideremos todos los mundos w0. relacionados con estos w0. Como la relacin Res transitiva, tambin estn relacionados con w. Por el resultado (1), en todos ellos se satisface p. Lue go en cada w. se satisface 2p, yenw se satisface 22p. Si F. (2p. 22p) entonces la relacin Rde F es transitiva: Si la frmula se satisface en F entonces se satisface para todo mundoytoda asignac in sobre F. Luego, se satisface para todo mundo dada una asignacin particular (que construiremos).

Intentaremos demostrar que la satisfaccin sobre esta asignacin particular implica la transitividad de R. Olo que es equivalente, que siRno fuera transitiva, la frmula no sera satisfacible para esa asignacin. As, se habr demostrado que cuando es cierto que la frmula se satisface para todos los modelos de F debe ser transitiva(ofallara,al menos, en ese modelo). Elija un mundo cualquiera t yconsidere una asignacinn(p)= {w . W | Rtw};es decir, pes verdadera slo en los mundos relacionados con t. Esta asignacingarantiza (1) que F,n,t . 2p. Inicialmente supusimos F. (2p. 22p), que junto con (1) implica que (2) F,n,t . 22p. As pues, para todo w. , w0. tales que Rtw. yRw0w00, de (2) se sigue que en w0. se satisface p. Ypor tanto, que Rtw00, puesto que slo satisfacian plos mundos relacionados con t. Observe, del prrafo anterior, que sehagarantizado que para todo w. ,w0. tales que Rtw. yRw0w00, entonces Rtw00: la transitividad de la relacin, puesto que no se ha utilizado ninguna prop iedad especfica del mundot,y por tanto el desarrollo es vlido para todo t. Si F. (2p. 22p) entonces F. (2f . 22f): Lasegunda frmulaes una instanciapor sustitucindela primera.Se preservalavalidezpor que nos hemos ceido a conjuntos de modelos basados en marcos. Si F. (2f . 22f) entonces F. (2p. 22p): La segunda frmula se ajusta al esquema de la primera, simplemente considerando f = p. La tabla (tabl.5.3.2)facilita algunas frmulas modalesjuntoaltipode relacionesque

caracterizan. Se adjunta tambinel nombre histrico dadoa estas frmulas(o esquemasde frmulas). Reflexiva (2p. p) (T) Simtrica (p. 23p) (B) Transitiva (2p. 22p) (4) Eucldea (2p. 23p) (5) Determinista (3p. 2p) (Q) Serial (2p. 3p) (D) Funcional (2p. 3p) Tabla 5.3: Frmulas modales que caracterizan relaciones binarias

5.3. Lgica monomodal 193 La demostracin de estas correspondencias se efecta de forma anloga a la del teorema (teor.5.47). El nico paso no trivial consiste en demostrar la propiedad dada la s atisfaccin de la frmula. Para ello es preciso encontrar una asignacin particular afortunada, de la que se siga este resultado. 5.3.3 Lgicas normales Cada lgica normal es un conjunto determinado de frmulas. Como tales conjuntos, si una frmula pertenecea unode ellosy noa otro, resultan ser conjuntos distintos: lgicas normal es distintas. Existen multitud de lgicas normales distintas. Sin embargo, todas ellas cumplen, para serlo, caractersticas comunes. Definicin 5.48 (Lgica normal) Una lgica normal es un conjunto de frmulas que, incluy e: 1. todas las tautologas 2. todas las frmulas de la forma (2(f . y) . (2f . 2y)) yes cerrado respecto de: 3. modus ponens: si incluyef y(f . y) , entonces incluye . 4. generalizacin: si incluyef, entonces incluye 2f 5. sustitucin uniforme: si incluye f, entonces incluye cualquier instancia suya p or sustitucin uniforme Observe que esta definicin no hace ninguna referencia a estructuras relacionales. Cualquier conjuntode frmulasque sintcticamentegarantice estas propiedadeses una lgica normal.No obstante , esta definicin recuerdaa los resultados del teorema (teor.5.39). Efectivamente, t oda lgica basada en marcos (todas las frmulas vlidas sobre un conjunto de marcos) resultar ser una lgica normal. Sin embargo, no a toda lgica normal le corresponder una lgica basada en marcos. En esta s notas no se considerar ninguna de estas lgicas normales no basadas en marcos. Lgica K Esla menorde las lgicas normales incluye slo las tautologasyla frmula K, as co mo las frmulas que resultan del cierre frente a las tres condiciones propuestas. Tod as sus frmulas son vlidas. Lgica KT Resulta tras aadir el axioma T :=

2p. p, a la lgica K (junto a todas las frmulas que se obtienen por cierre).Todas sus frmulas son vlidas sobre marcos reflexivos. Lgica K4 Resulta tras aadirel axioma4:= 2p. 22p, a la lgica K(junto a todas las frmulas que se obtienen por cierre).Todas sus frmulas son vlidas sobre marcos transitivos. Lgica KT4S4 Resulta tras aadirT y4ala lgicaK(considerando todos sus cierres).Todas s us frmulas son vlidas sobreel conjuntode marcos reflexivosytransitivos.

Captulo 5. FUNDAMENTOS DE LGICA MODAL Lgica KT45 S5 Resulta tras aadirT,4y5:=(2p. 23p) a la lgica K(considerando todos sus cierres). Todas sus frmulas son vlidas sobre el conjunto de marcos reflexivos, eucldeos y transitivos, que resultan tambin serlos marcos reflexivos, simtricosy transitivos, es decir, sobre todas las relaciones que sean de equivalencia. Existen otras muchas lgicas normales de inters. En los ejemplos citados (y en otro s omitidos) estos conjuntos de frmulas presentan3perspectivas complementarias que las hacen e specialmente atrayentes: Porunlado,todassusfrmulassonvlidassobreconjuntosde marcosquetienenunapropiedad formal de inters. As, cuando se quiere modelizar un concepto o un sistema (tiempo, agentes, etc.) s e escoge la lgica adecuada a las propiedades que presentan las relaciones del sistema (simetra , transitividad, ...) Por otro lado, todas estas lgicas tienen diversos sistemas de demostracin bien def inidos. Por ejemplo, a partir de los axiomas K, T y4, mediante reglas de inferencia adecuada s, se puede ir generando sintcticamente frmulas de KT4, de las que segarantiza que son vlidas e n su conjuntode marcos (reflexivosytransitivos). Laexposicinde estos sistemasde demostracin(detipo Hilbert,de deduccin naturalybasad os en tablas semnticas) es un material avanzado que no se incluye en los objetivos bs icos del curso (en esta edicin). Lecturas del operador modal Este apartado poda haberse incluido dentro de una seccin genrica dedicada a la Inge niera Lgica. Antes de abordar (ligeramente) este concepto, analicemos un ejemplo estndar. Se pretende formalizarel conceptode necesidad.Esfactible hacerlo sobrela lgica mo dal presentada si se considera que algo es necesario en un mundo (una situacin) si se satisface e n todo mundo accesible desde l . Informalmente, all hasta donde se puede mirar se produce p, lueg o desde esta situacin pes necesario. En este contexto, una frmula como 2pse puede leer como es n ecesario p . Como 3pequivalea 2p, debiera leerse como ecir: es posible p . no es necesario que no se satisfaga p ; es d

La semntica modal definida hasta el momento parece ajustarse perfectamente a la m odelizacin de este concepto. No es extrao, gran parte del trabajo en lgica monomodal se hizo con esta lectura en mente. Cuando se desarrolla en detalle esta modelizacin se encuentra una objecinevidente: qu ocurre en un mundo no relacionado consigo mismo? Puede satisfacerse 2p sin que se satis faga p en ese mundo. Con la lectura propuesta, supone admitir que p es necesario en un situacin sin que se verifique en la misma. La adecuacin del formalismo se produce, sin ms sorpresas, si se requiere que la in terpretacin de este concepto se produzca sobre marcos reflexivos. Es decir, si uno se restringe a la lgica KT.Todas las frmulas que se pueden demostrar partiendo de estos axiomas sern vlidas en marco s formales, ytodas ellas expresarn relaciones aceptables entre los conceptos de necesidad(2), posibilidad(3)y expresiones lgicas proposicionales.

5.4. Lgicas polimodales 195 La Ingeniera Lgica,en general, partede una aplicacinque pretende formalizary evalaqu sistema lgico es adecuado. Si se escoge un sistema modal, se considera qu restricc iones formales son exigibles al sistema para representar adecuadamente la aplicacin. Formalmente , cuando es posible, esta adicin de restricciones, supone aadir axiomas (frmulas modales) al si stema. 5.4 Lgicas polimodales El lenguaje utilizado hasta este punto es monomodal: contiene un nico operador mo dal 2, junto a su operador dual 3. Gran parte de las aplicaciones de inters requieren lenguajes con ms operadores modales. 5.4.1 Sintaxis Ejemplo 5.49 Considere un lenguaje con dos operadores modales [a] y[b], junto a sus respectivos operadores duales ha. y hbi. Definiremos la sintaxis de este lenguaje como una ampliacin de la sintaxis monomodal: Si f es una frmula, entonces [a]f,[b]f,haif yhbif son frmulas Luego, todas las siguientes expresiones son frmulas: (p. q), (p^q) [a](p. q), [b](p^q), hai(p. q) [a][a](p. q), [a]hai(p^q), hbihbi(p. q) [a][b](p. q), [b]hai(p^q), hbihai[a](p. q) [a][b](p. ([b]hai(p^q))) Un lenguaje modal proposicional con n operadores se define de forma anloga. Definicin 5.50 (Frmulas de un lenguaje polimodal) Se parte de un alfabeto proposic ional que incluye el siguiente conjunto de operadores modales {[a],...,[n],hai,...,hni}. Las frmula s del lenguaje son, exclusivamente, todas aquellas que se pueden generar por aplicacin finita de las siguientes reglas: 1. Cada letra proposicional es una frmula 2. Las constantes proposicionales . y. son frmulas

3. Si . es una frmula, entonces . es una frmula 4. Si . y. son frmulas, entonces son frmulas (. . c), (. . c) y(. . c) 5. Si . es una frmula, entonces son frmulas [k]. y hkiy, para cada uno de los operadores modales Usualmente, no suelen incluirse los operadores duales como smbolos primitivos del alfabeto. Se les asigna un smbolo posterior, como abreviatura.

196 Captulo 5. FUNDAMENTOS DE LGICA MODAL 5.4.2 Semantica Como en el apartado anterior, comencemos considerando un lenguaje con dos nicos o peradores [a] y[b] (junto a sus duales). Interpretar, en un mundo w, una frmula como [a]po como haiprequiere inspeccionar el valor de pen sus mundos a-relacionados Interpretar, en un mundo w, una frmula como [b]po como hbiprequiere inspeccionar el valor de pen sus mundos b-relacionados Los mundos a-relacionados con w pueden ser distintos de sus mundos b-relacionado s Es decir, un lenguaje con dos operadores modales (junto a sus duales) requiere u n marco hW,Ra,Rb. con dos relaciones binarias. En la figura (fig5.9b) se muestra un marco de este estilo. La figura (fig5.9a) aisla la relacin Ra sobre W, que sera suficiente para las frmulas de este lenguaje que slo utilizaran [a]po haip. .... ?>=<89:; 1 . LL . ++ .... ?>=<89:; 2 . FF .... ?>=<89:; 1 . LL a a a . ++ .... ?>=<89:; 2 . FF a a . ++4 a . ++4

3 b 3 b a . ++6 .... ?>=<89:;.... ?>=<89:;.... ?>=<89:; b 56 5 (a) La relacin Ra, separada (b) Marco, con relaciones Ra yRb Figura 5.9: Marco para un lenguaje bimodal Ejemplo 5.51 Sobre el marco del la figura (fig.5.9b) construyamos un modelo Msen cillo de recordar: pyqsonverdaderas sloenel mundo3yfalsasenel resto. Es decir, n(p)= {w3} yn(q)= {w3}. Entonces: M,w3 . (p. q), M,w3 6 . p M,w3 . haip, ya que pes verdadera en alguno de sus mundos a-relacionados (p.ej. w2) M,w3 6p, ya que . [a]pno es verdadera en todos sus mundos a-relacionados (en concreto es falsa enw3) M,w3 . hbip, ya que pesverdadera en algunode sus mundos b-relacionados(w5). Es ms, como ste es su nico mundo b-relacionado, tambin M,w3 . [b]p M,w1 . haihaipya que existe un mundo a-relacionado con w1 (en concreto,w2)donde se sati sface haip, puesto que pes verdadero en w3. Sin embargo, M,w1 6 . [a][a]p(observe que pno se

satisface en w4). Como w1(ow2,entre otros) son mundos finales en la relacinRb,para toda frmulaf severifica M,w1 . [a]f pero M,w1 6 . hbif

5.4. Lgicas polimodales 197 Mayor inters tiene la interpretacin de frmulas donde aparecen ambos operadores: M,w2 . haihbip ya que existe un mundo a-relacionado con w2 (en concreto,w3)donde se satisface hbip, puesto que pes verdadero en w5. M,w2 . haihbi[b]p. Desde w2 existe un a-arco seguido de un b-arco que nos sita en un mundo(w5)donde se satisface[b]p. En el caso general, con n operadores modales, basta modificar la definicin previa de satisfaccin monomodal: 30aM,w . hkif siyslosi existe un w0. W tal que Rkww. yM,w. . f 30bM,w . [k]f siyslosi para todo w0. W, si Rkww. entonces M,w. . f Observe que esta definicin exige que cada operador modal tenga asignada un relacin binaria en el marco sobre el que se interpreta. Interdependencia entre relaciones El marco de la figura (fig.5.9) facilita una r elacin Ra para interpretar el par de operadores [a],ha. yotra Rb para interpretar [b],hbi. Perfectamente Ra yRb se podan haber escogido tales que Ra = Rb. Grficamente, partiendo de Ra, basta aadir la etiqueta ba cada arco etiquetado como a.De esta forma,varios paresde operadores modales pued en interpretarse sobre la misma relacin. Existen otras muchas formas de definir una relacin Rb a partir de una Ra. Se pued e requerir, por ejemplo, que dos mundos estn relacionados en un sentido por Ra siyslosilo estnenel otropor Rb. Es decir, que Ra yRb sean relaciones recprocas o inversas. Ms generalmente: cierta s aplicaciones pueden requerir alguna dependencia entre las relaciones de los marcos donde se i nterpretan. La formulacin de estas dependencias se puede expresar en lgica de predicados. Por ejemplo, la

reciprocidad a la que antes se aluda, se presenta en los marcos que verifican 8x8y(Raxy . Rbyx) Resultar, sin embargo, mucho ms til si la dependencia entre relaciones se puede car acterizar mediante una o varias frmulas modales. Por ejemplo, en todos los marcos en que son vlidas l as frmulas p. [a]hbipp. [b]haip las relaciones Ra yRb son recprocas. 5.4.3 Lgica temporal bsica Sintaxisysemntica La lgica temporal bsica es una lgica modal proposicional con dos operadores: hP. y hFi. De cada unode ellos resultar til considerarsu respectivo operador dual,e incluso rese rvarleun smbolo especfo: [H]= hPi [G]= hFi La lectura pretendida para hP. yhF. es: hPif existe al menos un mundo, un estado (un instante) en el pasado en que se satisfa ce f hFif existe al menos un mundo, un estado (un instante) en el futuro en que se satisfa ce f Con esta lectura, sus operadores duales deben interpretarse como:

198 Captulo 5. FUNDAMENTOS DE LGICA MODAL [Hf] = hPif [Gf] = hFif no existe un instante en el pasado en que no se satisfaga f en todo instante pasado se satisface f no existe un instante en el futuro en que no se satisfaga f en todo instante futuro se satisface f Notacin Se han respetado las iniciales usuales, que en ingls corresponden con: hPi: para algn instante enel pasado(Past) hFi: para algn instante en el futuro (Future) [H]: para todo instante pasado (it always Has been ...) [G]: para todo instante futuro (italways is Going to ...) Usualmente se escriben P, F,H,G(sin corchetes). En esta introduccin se han aadido para recalcar el caracter existencial de PyF frente al universal de H yG, sus respectivos operadores duale s. Modelizacin adecuada del tiempo El lenguaje temporal bsicosepuede interpretaren cualquier marcoquefacilitedos rel aciones binarias RP y RF. Incluso en el marco de la figura (fig.5.9b). No obstante, la relacin ent re nodos (entre instantes) en esta figura no capta las restricciones mnimas de una modelizacin del tiempo. Transitividad Parece razonable que, si en el futuro dew1 se encuentra w2yen el f uturo de w2 se encuentra w3, entonces en el futuro de w1 debiera estar w3. Es decir, que la rel acin RF sea transitiva: 8wiwjwk(RFwiwj. RFwjwk . RFwiwk) La misma transitividad se puede pedir de RP, que relaciona a un instante wi con otro wj en su pasado: RPwiwj. As, como mnimo, no se interpretar la lgica temporal bsica sobre cualquier mar co hW,RP,RFi, sino sobre aqullos donde tanto RP como RF sean transitivas. Es decir, en los marcos en que sean vlidas las frmulas: [H]f . [H][H]f [G]f

. [G][G]f o sus equivalentes hPihPi. !hPi. hFihFi. !hFi. ReciprocidadPasado-Futuro Otra restriccin razonable introduce una dependencia ent re ambas relaciones: querramos que en el futuro de w1 se encuentre w2 siy slo si en el pasa do de w2 se encuentra w1. Es decir, que una relacin sea la recproca de la otra. Ya se ha menci onado que los marcos donde esto se verifica son aquellos en que son vlidas las dos frmulas sigui entes: p. [H]hFipp. [G]hPip Cuando se verifica esta reciprocidad, se puede considerar que existe una nica rel acin R (por ejemplo, R= RF). Entonces, la relacin hacia el pasado utiliza Rpero hacia atrs. Formalmente, basta redefinir la semntica de hP. y[H]: M,w . hFif siyslosi existe un w0. W tal que Rww. yM,w. . f M,w . [G]f siyslosi para todo w0. W, si Rww. entonces M,w. . f M,w . hPif siyslosi existe un w0. W tal que Rw0w yM,w. . f M,w . [H]f siyslosi para todo w0.

W, si Rw0w entonces M,w. . f Observe cmo, en la semntica de hP. y[H], los instantes se relacionan por Rde forma inversa a cmo lo hacen para hF. y[G].

5.4. Lgicas polimodales 199 Otrasrestricciones opcionales Aadiendo restricciones adicionales se pueden ir con siguiendo unas u otras modelizacionesms especficas. Por ejemplo,siseexigequetodo instantetengauno yslo un R-sucesor, nos limitamos a los marcos temporales lineales; si se permiten var ios R-sucesores, consideramos lneas de tiempo que se bifurcan. Asimismo se pueden considerar model os discretos o modelos densos. 5.4.4 Lgica epistmica En la economa, los juegos, los protocolos de comunicacin o la cooperacin entre agen tes, no slo es importante saber si se verifica cierta relacin lgica entre proposiciones; adems interesa precisar si Antonio es consciente de ello si Luis conoce que Antonio sabe que se verifica es o . Ms formalmente, notaremos como: [Kj]f a la expresin la persona o el agente jconoce f.

La formalizacin modal de este concepto se produce admitiendo tantos operadores mo dales [Kj] distintos como agentes distintos estn interactuando. Sus respectivos operadores duales se l eeran como: [Kj]f, jno conoce que no se satisfaga f ; es decir, hasta donde sabe, es posible f.

Este operador dual se representa como hMji. El uso de los corchetes anticipa cmo se interpretan estos operadores sobre las estructuras relacionales. Considere de momento un nico agente. El operador [K] se comporta formalmente como 2;es decir, M,w . [K](p. q) siyslosi en todo mundo relacionado con w se satisface (p. q). En este caso, se satisface si en todos los mundos relacionados con w nunca ocurr e que pes verdadera yqfalsa. Informalmente, el agente sabe algo si eso se satisface en todo mundo que alcanza a ver . Igual que se ha hecho anteriormente, desearamos forzar, restringir el modelo hast a captar formalmente nuestro concepto de conocimiento. Por ejemplo, puede parecer razonable que sea vl ida la siguiente expresin: 1. ([K]p. p): si en una situacinw el agente conoce pentonces efectivamente se satisface pen

w;es decir, lo que se conoce es verdad (en ese mismo mundo) Esta frmula, con la semntica antes definida no es verdadera en todo caso. Falla en los mundos no relacionados consigo mismo. El lector reconocer fcilmente que se trata de una r eescritura del esquema T. As pues, si se asume como axioma en un sistema de demostracin, todas la s frmulas que se deduzcan sern vlidas sobre marcos reflexivos. Puede considerarse la adicin de otras expresiones como axiomas del sistema. Por e jemplo: 2. [K]p. [K][K]p: si el agente conoce pentonces conoce que conoce p;es decir, tiene capac idad de introspeccin positiva 3. [K]p. [K][K]p: si el agente no conoce pentonces conoce que no conoce p;es decir, tiene capacidad de introspeccin negativa Puede que un modelo realista del conocimiento no incluya todas estas capacidades . En todo caso, si se miran detenidamente, las frmulas (2)y(3) son adaptaciones de los conocidos esquemas4y5 (ste, en una versin equivalente). Es decir, si estas frmulas se incluyen como axiom as del sistema (junto a la frmula K monomodal), se estara modelizando el conocimiento sobre la lgi ca KT45 (tambin conocida como S5). En este caso, los marcos sobre los que se interpretan las frmulas se restringena a aqullos con relacin de equivalencia; es decir, donde los mundos se dividen en clases de equiv alencia disjuntas.

Captulo 5. FUNDAMENTOS DE LGICA MODAL Bibliografa complementaria Eltexto[HuthyRyan2000]tienesus contenidosordenadosporsu aplicacinmsqueporlarelacin entre sus sistemas lgicos. El lector puede encontrar en su captulo5 unabuena intro duccinala lgica modalyasuaplicacinparamodelizarlarelacin entreagentes. Anteriormente,enel capt ulo 3, se encuentra tambin unaexcelente introduccinala lgica modal temporaly a su uso, que quiz debiera haberse situado tras el captulo 5. Para una introduccinms formalyextensa conviene consultar[Popkorn94], [Gabbayetal.9 3 y95]y[Blackburnetal.,01],quizen eseordencrecientede dificultad. La lgica epistmica slo se ha esbozado en estas notas introductorias. En [Meyery van der Hoek,1995]y[Faginetal.,1995]sepueden encontrar variosde estos sistemasjuntoalas aplicaciones que se han venido desarrollando sobre ellos: razonamiento en sistemas multiagent es, verificacin de protocolos de comunicacin, sistemas con operadores tanto epistmicos como tempor ales, ... Posiblemente, unlectornovel encuentre[Faginetal.,1995]algomsfcildeseguirque[Meyery van der Hoek, 1995]. Actividades y evaluacin El alumno dispone de ejemplosy actividades en el grupo de tutorizacin telemtica de l curso, as como exmenes resueltos de aos pasados.

Captulo6 Lgica ModalTemporal 6.1 Introduccin 6.1.1 Diseo de sistemas Las frmulas de lgica modal se interpretaban sobre estructuras de Kripke, como la d e la figura 6.1. Una estructura as puede utilizarse para modelar muy diversas relaciones, asignand o adicionalmente propiedades a cada una de las entidades relacionadas. p,qq1243p,sp,r Figura 6.1: Diagrama de transiciones En el diseo de sistemas fsicos o de programas, una figura como la 6.1 se utiliza p ara describir transiciones entre estados de un sistema. Un microondas o nuestro ltimo mvil no re sponde siempre igualala pulsacindela misma tecla: conforme estenun estadou otro ejecutarono alguna accin ypasaronoa otro estado.La descripcin funcionaldeun sistema,osu diseo fsico ntegro, pu eden expresarse mediante estas relaciones entre estados etiquetados. Gran parte de estos sistemas se disean para mantener una permanente actividad rea ctiva: de una mquina de caf o de un sistema operativo se espera un funcionamiento continuo. En e stos casos no hay nodos, estados, finales:de todo estado surgeal menos una transicin hacia otro .Formalmente,en cualquier diagrama con n estados finales se pueden redirigir stos hacia un nuevo nodo adicional (con unbucle hacias mismo).Apartirde este punto consideraremosque estamos trabajando c on estetipo de sistemas, sin estados finales. En ese caso, cualquier trazade ejecucinde transicioneses ilimitada.Sise empiezaen el nodo1 delafigura6.1sepuedepasaral2ydesteal4,...Unposible caminoquepartedel estado1es: 1-. 2-. 4-. 1-. 2-. 4-. 3-. 4-. 3-. 4-. 1... La figura 6.2 presenta todas las opciones de recorrido del diagrama de transicio nes desde el nodo 1. Siempre se puede construir, desde un nodo cualquiera del diagrama de transici ones, este tipo de

201

Captulo 6. Lgica ModalTemporal 1423141324... ... ... Figura 6.2:Transiciones desdeel nodo1dela figura 6.1 rbolde alternativas. Observe que debajo del nodo1 final vuelvea repetirse todala estructurade alternativas que se muestra desde la raz. Algo anlogo ocurre desde cualquier nodo. 6.1.2 Propiedades de un diseo De una mquina de caf no se espera que atienda peticiones mientras est sirviendo un caf, pero s que (tras pasar por otros estados intermedios) llegue de nuevo al estado de rece pcin de peticiones. Esta es una propiedad positiva del sistema, que se espera que ocurra infinitamente a menudo: en cualquier tiempo futuro siempre se confia que en otro instante posterior se pres entar esa propiedad. Sobre el rbol de la figura 6.2: en toda rama se debe asegurar que, situados en cua lquier nodo, otro nodo posterior de esa rama tendr esa propiedad . De otras propiedades negativas , como el bloqueo del sistema, se espera que no ocurran en ningn instante de ninguna de las alterna tivas de ejecucin: que para toda rama, en todo estado de esa rama, no ocurra . Hay multitud de propiedades de un sistema que pueden expresarse, escogiendo los trminos temporales adecuados.De forma abstracta,yapoyndonosenel rbol6.2se pueden citar entre otros: que algo ocurra en el instante siguiente, para alguna de las alternativas de eje cucin (para alguna de las ramas que se abren desde el nodo considerado) o que ocurra en el instante posterior, para toda rama o que ocurra en algn tiempo futuro, en alguna de las ramas que se abren desde el nodo en cuestin o que que segarantice que en toda rama en algn tiempo futuro ocurrir (aunque en ca da rama ese futuro vendr ms tarde o ms temprano) o que en toda rama segarantice que algo ocurre hasta que se produce otra cosa (d e nuevo, ms tarde o ms temprano en cada rama). 6.1.3 Verificacin de las propiedades de un diseo Cualquier lenguaje formal que pretendafacilitar este tipo de sentencias debe dis poner de operadores

temporales adecuados. Si adems ese lenguaje es el de un sistema lgico, debe precis ar una semntica (un significado) para cada operador.

6.2. CTL: Sintaxis 203 Este documento presenta algunos sistemas lgicos temporales diseados parafacilitar el anlisis de sistemas. Las frmulas se interpretan sobre estrucuturas de Kripke, que resulta n ser una descripcin totaloparcialdela funcionalidaddel sistema.El sistema cumplela propiedadexpresad aenla frmula si esa estructura de Kripke satisface la frmula. Observe que esta verificacin de propiedades utiliza la satisfaccin de una frmula: d adas una interpretacin(la estructuradeKripke,eldiseodelsistema)yunafrmulasetrataslodecomproba r si aqulla satisface sta. No se requiere un anlisis de satisfacibilidad, que supondra recorrer todas las (quiz infinitas) interpretaciones posibles para una frmula.Uotros conceptos re lacionados conla satisfacibilidad, como el de consecuencia. En concreto,a esta tcnicadeverificacinsela conoce como comprobacinde modelo (model checking)yest siendo utilizada con xito paraverificar diseos con billonesde estados posibles. Una buena pginade inicio(en ingls)lafacilita Carnegie Mellon http://www.cs.cmu.edu/ modelcheck/ donde tambin se presenta algn programa verificador, como SMV. Lgicas temporales paralaverificacin Este documento se limita a presentar la lgica d enominada CTL(ComputationTree Logic), que permite expresar propiedades sobre todas las pos ibles ejecuciones del sistemaa partirde un cierto estado (figura 6.2). Otros sistemas lgicos, comoL TL(Linear Temporal Logic), se restringen al anlisis de una posible ejecucin, de una rama. Si endo ms precisos, LTLnoesexactamenteun fragmentodeCTL:hay propiedadesquepuedenexpresarse indistint amente enambaslgica,yotrasquepuedenexpresarseenunay noenla otra. Ambaslgicassonunfragmento de una propuesta posterior, denominada CTL* . Ms informacin sobre estos sistemas puede encontrarseeneltextode HuthyRyan: Logic in Computer Science: modelling and reasoning about systems ; M. HuthyM. Ryan, (segunda edicin) 2004 Cambridge University Press Yun estudio ms detallado sobre verificacin en: Model Checking ;E. Clarke,O. GrumbergyD.A. Peled, 2000 MIT Press 6.2 CTL: Sintaxis Definicin 6.1 La sintaxis de las frmulas CTL se puede expresar inductivamente como :

. ::= ?|>| p| (1) (j) | (. . j) | (. . j) | (. . j) | (. . j) | (2) AG. | AF. | AX. | (3a) EG. | EF. | EX. | (3b) A[jUj] | (4a) E[jUj](4b) Aunque la definicin es un poco extensa, basta apreciar que, sobre la sintaxis pro posicional, se proponen algunos nuevos operadores monarios(3)yotros binarios (4). Simplemente hay que destacar que los nuevos operadores monarios (como ya lo era la negacin ), se escriben con dos smbolos, inseparables. Yque los nuevos operadores binarios (4), como ya lo eran . o !, se escriben en una extraa forma mixta : podan haberse insertado ambos entre las frmulas [jAUj] o antepuesto a ellas AU[j,j].

204 Captulo 6. Lgica ModalTemporal Ejemplo 6.2 El proceso de construccin, desde las frmulas del caso base, es el usua l: 1. py. son frmulas CTL (vase (1)), as como (p!>) (por (2)) ((p!>)). Igualmente, (q. r). 2. AG(q. r) lo es (3), as como EF((p!>)). Y su conjuncin o su disyuncin (2). Tambin lo es AGEF((p!>)), que tiene la forma AGj, donde . es una frmula CTL previa. 3. A[pUq] es una frmula CTL correcta, as como cualquier sustitucin de las proposiciones po q por cualquier frmula CTL ms compleja (cualquiera de las anteriores). Incluso por fr mulas en cuya composicin hayan ya intervenido estos nuevos operadores binarios: A[ E[ AGpU EXp] U AXEF(p. q)] . {. . |{z. j1 j2 Ejercicio 6.3 Construya el rbol sintctico de la frmula previa. Observe que cada nod o puede tener unhijoodosalo sumo: uno,sila conectiva principaldela subfrmulaeslanegacinolas cone ctivas temporales monarias (3a,3b);ydossila conectiva principaldela subfrmula es algunad e las usadas en (2, 4a, 4b). Etiquete el nodo con AU o EU, en el caso de las conectivas 4a o 4b. Nota1(Conveniodeprecedencia) La omisin de parntesis produce ambigedad de interpreta cin. Se pueden proponer convenios de precedencia entre las conectivas, que fijan la i nterpretacin sintctica adecuada cuando se duda entre varias. En este documento, todas las conectivas monarias tendrn la mayor precedencia ( ylas temporales AG,AF,AX,EG,EF,EX). Seguidas de la conjuncinydisyuncin; despus, del condicional,y por ltimo de las binarias temporales AU yEU. Ejemplo 6.4 Con el convenio anterior, se tiene que:

1. AFp . qse interpreta como ((AFp)) . q. Cualquier otra interpretacin sintctica, fuera de convenio, requiere ser forzada explcitamente por parntesis: AF(p. q). 2. Como interpretacin de una frmula ms compleja: AFq. r . A[p. qU p. AGq] ((AFq) . r) . (A[((p) . q) U ((p) . (AGq))]) 6.3 CTL: semntica 6.3.1 Introduccin informal Antesdefacilitar una semntica precisa, conviene tenerun primer acercamiento infor mal.En primer lugar, la lgica CTL permite construir (como un fragmento de la misma) frmulas de l a lgica proposicional: sin operadores temporales. En estos casos, en cada nodo, la frmula ser o no verdad era conforme lo sean los tomos( p,q,...) en ese nodo, siguiendo la semntica proposicio nal. Ya ocurra sto en las lgicas modales estudiadas. La aparicin de operadores temporales requiere consultar otros estados, relacionado s con el actual para evaluar el valor de verdad de la frmula en el estado que se considera. Remit imos de nuevo a la semntica de las lgicas modales previas. En estas lgicas (modales) temporales, los estados

6.3. CTL: semntica que deben consultarse son un subconjunto de los estados accesibles en un futuro. Recuerde que cada operador temporal consta de dos signos inseparables: primero AE, seguido de X, G, F U. Cada uno de los dos signos contribuye a perfilar la semntica del operador. As, el primer signo acta como cuantificador sobre las ramas :

(A)para toda rama (desde el nodo evaluado), para toda posible ejecucin del sistem a (E)existe una rama, una posible ejecucin, desde el nodo evaluado Mientras que el siguiente signo se centra en los estados de una rama, de una pos ible ejecucin del sistema: X (neXt)elsiguiente F (some Future state)existe algn estado futuro G(Globally)en todo estado futuro U (Until)existe algn estado futuro donde ocurre ...yhasta el cual ocurre ... Observe que todos ellos se aplican sobre el conjunto de futuros estados en esa e jecucin en particular. Ante esto cabe optar por incluir o no el estado actual en ese conjunto de estado s. As se hace en este documento: cuando se pide que algn estado futuro cumpla algo, basta con q ue lo cumpla el actual. Y si se pide que todos los estados futuros cumplan algo, no debe incu mplirlo el actual: el futuro incluye el presente. La referencia al siguiente estado(X)requiere eval uar el primer estado futuro distinto al actual. Ejemplo 6.5 Anticipamos algunos ejemplos de asignacin semntica, todos ellos sobre el sistema de la figura 6.1, al que llamaremos modeloM.Todas sus ejecuciones se se pueden visu alizar alternativamente sobre el rbol de la figura 6.2, que se poda haber enriquecido con la mencin de qu le tras proposicionales son verdad en cada estado. M,4|= EXs La frmula EXsse satisface en el estado 4: existe al menos una ejecucin (la que comienza pasando al estado 3) donde en el siguiente estado es verdad s. No s e satisface en el estado 1. M,4|= AX(q_r) La frmula AX(q_r) tambin es verdad en 4: para toda ejecucin desde ese estado, en su estado siguiente se satisface (q_r). En la ejecucin que co mienza en

3, porque all es verdad r.Y en la que comienza en 1, porque all es verdad tanto qco mo r. M,1|= EFs La frmula EFs, evaluada en 1, requiere que exista al menos una posible ejecuc in tal que en algn estado futuro de la misma se cumpla s. (Observe que es una compos icin de cuantificadorexistencial sobre ejecucionesyexistencial sobre estadosdela ejec ucin). Efectivamente, no toda ejecucin desde1tiene esa propiedad, perosla que pasa porel estado3. M,16|= AFs No se satisface esta frmula en 1: no es verdad que toda ejecucin desde 1 acceda a algn estado futuro donde se satisfaga s. En particular, no en la ejecucin que repite cclicamente1 -. 2-. 4-. 1... M,1|= EG(q. r) Existe efectivamente al menos una ejecucin desde1 tal que permanentemente, en todo estado de esa ejecucin, es verdad (q. r). En particular, la ejecucin cclica antes citada:1 -. 2-. 4-. 1...

206 Captulo 6. Lgica ModalTemporal M,16|= AG(q. r) No es verdad que en toda ejecucin, en todos sus estados, sea verdad (q. r).Noenlas ejecuciones desde1que accedenal estado3. M,1|= A[qUr] En toda ejecucin, desde 1, ocurre (a) que existe (se acaba accediendo) a un estado donde se satisface r y(b) en todo estado desde1inclusive hasta se (sin inc luirlo) ocurre q. No importa si qsigue ocurriendo,o no, eny a partirde ese estado. M,1|= E[(p. q)Us] Existe al menos una ejecucin desde1 tal que (p. q) se satisface en todo estado hasta que se llega a un estado que satisface s. No toda ejecucin desd e1tiene esta propiedad: requiere que efectivamente exista en ella ese estado que satisface s. 6.3.2 Definicin de la semntica de CTL Las frmulas de CTL se interpretarn sobre un modelo M=(S,-!,L) (una estructura de Kripke), que se recuerda que consta de: un conjunto Sde estados, una relacin -. entre ellosyun etiquetado Ltalqueacadaestadoseleasignaelconjuntodeletras proposicionalesquesesatisfacenene lmismo. Siguiendo, comoentodoeste documento,la notacindeltextodeHuthyRyan,llegamosala siguiente definicin formal de semntica para CTL. Definicin 6.6 Dados un modelo Myuno de sus estados s, la satisfaccin de una frmula . de CTL en el estado s del modelo Mse define recursivamente como: M, s|= . en todo estado. M, s|= . en ningn estado. M, s|= psi el estado s se ha etiquetado con p, p. L(s)

M, s|= . si no ocurre que j M, s|=(. . y) si M,s |= . yM,s |= y M, s|=(. . y) si M,s |= . o M,s |= y M, s|=(. . y) si no M,s |= . o M, s |= y M, s|=(. . y) si M,s |= . siyslosi M,s |= y M, s|= AX. si para todo s0. Stal que s -. s. se cumple M,s0|= . M, s|= EX. si existe un s0. Stal que s -. s. tal que M,s |=

M,s |=

. M, s|= AG. si para todo posible camino s0 -. s1 -. s2 -. ... que comience en s (s0 = s)se satisface . en todo estado sk del camino. M, s|= EG. si existe al menos un camino s0 -. s1 -. s2 -. ... que comience en s (s0 = s) donde se satisface . en todo estado sk del camino. M, s|= AF. si en todo posible camino s0 -. s1 -. s2 -. ... que comience en s (s0 = s) existe al menos un estado donde se satisface j. M, s|= EF. si existe al menos un camino s0 -. s1 -. s2 -. ... que comience en s (s0 = s) donde existe al menos un estado que satisface j.

6.3. CTL: semntica 207 M,s|= A[jUy] si en todo camino s0 -. s1 -. s2 -. ... que comience en s (s0 = s)existe un estado si tal que M,si |= . y, para todo estado estrictamente anteriorsj, j< i, se cumple M,sj|= j. M,s|= E[jUy] siexisteal menosun camino s0-. s1-. s2-. ... que comience en s(s0= s) donde exista un estado si tal que M,si |= . y, para todo estado estrictamente anteriorsj, j< i, se cumple M,sj|= j. 6.3.3 Expresin de propiedades en CTL SobreCTL(as como sobre otras lgicas temporales) puedenexpresarse propiedadesdel di seodeun sistema. Una recopilacin de estos patrones se encuentra en la pgina: http://patters.projects.cis.ksu.edu/ Revisamos el posible uso algunas frmulas CTL sencillas. Para ello, suponemos que se estn evaluando sobre un determinado modelo Men cierto estado s: [AGj] sta es una frmula muyexigente .Para que se satisfaga enel estado s debe ocurrir : (Sobre rbol desplegado del modelo, figura 6.2): en toda ramay en todo estado en c ada rama debe satisfacerse j;es decir, en todo estado del subrbol situado debajo de s. (Sobre modelo, figura 6.1): en todo estado de toda posible ejecucin desde s se cu mple j. Se utiliza paraexpresar propiedades permanentes del sistema que se desean(AGp)o que se quieren evitar (AGq). Complicando un poco la frmula se pueden obtener patrones como AG(q. AGp): de todo el subrbol del estado s, donde se evale, se espera que si algn estado s.

tiene la propiedad q, entonces, a partir de l no ocurra p(en todo estado de este subrbol de s. no ocurra p). [AFj] Para que se satisfaga en el estados debe ocurrir: (Sobre rbol desplegado del modelo, figura 6.2): que de cualquier rama que se esco ja (a partir de s), antes o despus (segn la rama) aparecer un estado que satisface j. (Sobre modelo, figura 6.1): en toda ejecucin del sistema a partir de s se acaba l legando a un estado donde se cumple j. Esto ocurre trivialmente si el mismo estado sya satisf ace . (recuerde que en nuestra formulacin, el futuro incluye el presente). Es usual que un sistema, a partir de cierto estado, puede evolucionar de muy div ersas formas. Un patrn como p. AFq reclama que, si pse ha requerido en el estado actual, no deje de verificarse q en un futuro estado (antes o despus, segn la ejecucin que tome el sistema). Ejercicio 6.7 Siteseenel contextodeun sistema reactivo, comoun sistema operativoo una mquina de caf. Hay una propiedad de inters p+ que se deseaque aparezca ilimitadamente a menudo : ocasionalmente sabiendo que siempre habr una prxima ocasin.Yotra propiedad negativa pque se deseagarantizar que,evolucione comoevolucioneel sistema, acaba definitivament e dejandode ocurrir. Sustituya adecuadamente . por p+ o pen las siguientes frmulas, para expresar los enunciados anteriores sobre estas propiedades. AGAF. AFAG.

208 Captulo 6. Lgica ModalTemporal [EGj,EFj] La primera frmula afirma que, si acertamos con la ejecucin adecuada, todo s sus estados tendrn cierta propiedad . Yla segunda que, si acertamos con la ejecucin adecu ada, algn estado acabar teniendo cierta propiedad . Estos patrones tal cual, sin que formen p arte de otros ms complejos, tienen poco inters comogaranta de propiedades positivas del sistema: quiz no se produzcan en toda ejecucin. Ms inters tienen para sealar la existencia de estados peligrosos : EFbloqueo.Opara afi rmar la ausencia de tales estados, M,s |= EFbloqueo: a partir de s no existe ejecucin tal que se llegue a estado con bloqueo. Observe que esta misma propiedad podra haberse expresado co mo M,s |= AGbloqueo. Patrones que fijanprecedencia entreeventos El uso adecuado de condicionales (ant es citado) juntoalos operadores que incluyen XoUpermiten modelar el orden relativode aparicin de propi edades esperadas. Conviene aqu revisar la semntica del operador (AE)[pUq]: se comporta como un existe ncial sobre estados, requiere que acabe existiendo un estado s. donde se satisfaga q(y que ocurra phasta entonces). As: 1. si qya ocurre en el estado s actual, se satisfacen AU yEU: ocurre pen todos l os estados donde estaba obligada a ocurrir (en cero estados, en un conjunto vaco de estados). 2. si qno ocurre en la rama analizada a partir de s, [pUq] no se satisface, por mucho que ilimitadamente todos los estados desde s satisfagan p 3. pest obligada a ocurrir hasta el estado estrictamente anterior al de ocurrenci a de q;que ocurra o no pen s. o despus es irrelevante, no influye en la satisfaccin de [pUq];en todo caso, no se descarta: [pUq] no afirma (ni niega) que pdeje de ocurrir cuando qaparezca. Es usual definir un operador menos exigente , denominado W (Weak Until), que se com porta como U salvo por la restriccin fijada en el anterior punto 2: pWq se satisface in cluso aunque q no llegue a ocurrir (siempre que siga verificndose p). Los patrones recopilados e n la pginaWeb recomendada utilizan W en lugar de U. 6.3.4 Equivalencias bsicas Ya se ha mencionado queEF. = AGj. Si se contempla el primer signo de un operador temporal como cuantificador sobre ramas (ejecuciones)yel segundo como cuantificador sobre estados de esa

rama, se llega a: AF. = EG. EF. = AG. AX. = EX. Es decir, muy coloquialmente: donde quiera que aparezca en una frmula CTL el opera dor AG es posible sustituir esta cadena por EF yobtener as una frmula equivalente. OsustituirAX por EX, es decir, cada operador por su forma dual . Adicionalmente: AF. = A[>Uj] EF. = E[>Uj] Como es posible reescribir unos operadores temporales en trminos de otros, podra u tilizarse un menor nmero de ellos. En lgica proposicional ya se vi cmo algunos subconjuntos de co nectivas eran suficientes para expresar cualquier frmula boolena: p. ej. {,_}, {,^}. En la e leccin de un conjunto adecuado de conectivas CTL hay que tener presente el siguiente teorema:

6.4. Verificacin CTL: un primer algoritmo 209 Teorema 6.8 (A. Martin) Un conjunto de conectivas temporales de CTL es adecuado siy slo si contiene: al menos una entre {AX,EX} y al menos una bien entre {EG,AF,AU}, o bien EU. 6.4 Verificacin CTL: un primer algoritmo El objetivo de este tema es proponer un algoritmo para comprobar la satisfaccin d e una frmula CTL sobre un modelo M.Ensu aplicacin prctica,el modelo serun diseodeun sistema realy la frmula expresar una propiedad de inters sobre el mismo. Enelplano formalpreviohay simplementequegarantizarquetoda frmulaCTLpodrevaluarse sobre cualquier modelo Mfinito. Como ejemplo, basta considerarla frmuladela figur a6.3evaluada sobre un modelo como el de la figura 6.1. EU .

AF. OO EX. OO . p qp Figura 6.3: E[ AF(p. q) UEX(p)] 6.4.1 Frmulas sin operadores temporales Inicialmente, del modelo lanica informacin de la que se dispone es el etiquetado L (s) de las proposiciones de cada estado s. De la frmula se puede requerir su descomposicin sintctica, su rbol sintctico. Apartirdeah,sepueden recorrerunoaunolosestadosymarcarexplcitamenteconla frmula (p) aquellos estados que no estuvieran inicialmente etiquetados con p.Ymarcarexplcita mente con la frmula (p. q)

aqullos estados previamente marcados tanto con pcomo con q. Anlogamente para el resto de las conectivas proposicionales. Si todas las subfrmulas fueran proposicionales (sin operadores temporales) es fcil definir un proceso iterativo de marcado explcito de frmulas cada vez ms complejas en cada esta do , dependiendo de las marcas que existan previamente. Este proceso considera las frmulas segn apa recen, de abajo arriba, en el rbol sintctico de la frmula global evaluada. Al final del proceso, algunos estados presentarnla marca conla frmula globalevalua dayotros no (quiz slo satisfagan alguna de las subfrmulas de aqulla). Recuerde que la satisfa ccin de una frmula es local: en unos estados del modelo puede ocurrir, mientras que en otros no.

210 Captulo 6. Lgica ModalTemporal Cuidado1 Este proceso se lleva grficamente a cabo sobre el modelo del sistema (co mo el de la figura 6.1),ycomputacionalmente sobre su codificacin. No se trabaja en ningn momen to sobre una representacin como la del rbol 6.2, que se present para fijar ideas. 6.4.2 Frmulas con operadores temporales Cuando aparecen operadores temporales el proceso se complica: las marcas que con firman que una frmula se satisface en cada estado no se calculan exclusivamente a partir de las marcas previas de ese estado.Tambin hande considerarse lasde otros estados relacionados. Frmulas del tipo AF. [Caso base] Si un estado presenta ya la marca j, puede asegurarse sin ms que tamb in satisfar AFj:puestoquesesatisfaceyaenelpresentedecualquierejecucinquepartadeeseestadoynues tra definicin de estados futuros inclua el estado inicial. [Propagacin] Ahora bien, (es suficiente pero) no es necesario que un estado satis faga . para satisfacer AFj: basta que en toda ejecucin desde ese estado se llegue a otro que s satisface j. Este hecho se calcula por propagacin, hacia atrs, de esta informacin. 143paso nAFpaso n + 1431AFf AFfAFff fAF Figura 6.4: Propagacin de la marca AF hiptesis 1: los estados1y3satisfacen AF. hiptesis 2: los estados1y3 son todos los sucesores inmediatos del estado4 conclusin: el estado4tambin satisface AF. El caso basefacilita las primeras marcas AF. yse entra en un proceso iterativo que propaga estas marcas hacia otros nodossi sus sucesores cumplenlas hiptesis anteriores.Se finali zaelbucle trasla primera iteracin que no produce cambios. Nota2 Un sencilloajustedela hiptesis2permite disearun algoritmoanlogopara EFj: un e stado se marca como EF. si alguno de sus sucesores inmediatos satisface EFj. Ejercicio 6.9 Sobre el modelo de la figura 6.1, ejecute manualmente este algorit mo para calcular qu estados satisfacen las siguientes frmulas: AFr, EFs, AFs.

6.4. Verificacin CTL: un primer algoritmo Frmulas del tipo AX. Bastar recorrer una nicavez todos los estadosy etiquetar con AX. cada estado tal que todos sus sucesores inmediatos tengan marca j.Orequerirlo slo de uno de sus sucesores si se quiere etiquetar EXj. Ejercicio 6.10 Ejecute este algoritmo sobre la figura 6.1 para calcular qu estado s satisfacen AXp, AXq, EXp, EXq, AX(p. q). Frmulas del tipo AG. [Caso base] Se marcan primero todos los estados del modelo con AGj.Yse elimina e sta marca en aqullos donde no se cumpla j. [Propagacin] Se entra en un proceso iterativo donde, en cada iteracin, se elimina esta marca de todo estado tal que alguno de sus sucesores inmediatos carezca de la marca AGj. La iteracin finaliza cuando ya no hay cambios de un paso a otro. Se puede adaptar este algoritmo al clculo de la marca EGj: en el proceso de propa gacin basta eliminar la marca de los estados tales que ninguno de sus sucesores inmediatos l a tenga previamente. Ejercicio 6.11 Sobre el modelo de la figura 6.1 aplique este algoritmo para calc ular qu estados satisfacen EGp, AG(p. q). Frmulas del tipo A[jUy] [Caso base] Se marcan inicialmente como A[jUy] todos los estados que tenan previamente marca y. [Propagacin] Se marca con A[jUy] todo estado tal que: 1. tuviera ya una marca . 2. ytodos sus sucesores inmediatos tengan marca A[jUy] La iteracin finaliza cuando ya no hay cambios de un paso al otro. Ejercicio 6.12 Sobre el modelo de la figura 6.1, ejecute manualmente este algori tmo para calcular qu estados satisfacen A[qUp]. Si lo que se quiere calcular es el conjunto de estados que satisfacen EjUy], bas ta hacer unas ligeras modificaciones sobre el procedimiento previo:

[Caso base] Se marcan inicialmente como E[jUy] todos los estados que tenan previamente marca y. [Propagacin] Se marca con E[jUy] todo estado tal que: 1. tuviera ya una marca . 2. yalguno de sus sucesores inmediatos tengan marca E[jUy] La iteracin finaliza cuando ya no hay cambios de un paso al otro.

212 Captulo 6. Lgica ModalTemporal 6.4.3 Pseudocdigo El pseudocdigo del algoritmo 1 utiliza las consideraciones anteriores para constr uir un proceso ESTADOS(j,M), que acepta una frmula CTLy un modelo M; y devuelve el conjunto de e stados del modelo que satisfacen esa frmula. Simplificable Puede ofrecerse una versin reducida, considerando menos casos, si s e reescriben algunas de las conectivas proposicionalesytemporales en funcin de otras. Recuerde que, en lgica proposicional, cualquier frmula era reescribible equivalentemente a otra con, p. ej., slo negaciones yconjunciones. En este caso, la frmula. de entrada tiene que haberse reescrito sobre este conjunto adecuado de conectivas. Procesorecursivo Es un algoritmo que procesa recursivamente la frmula, desde arri ba abajo de su rbol sintctico, haciendo las llamadas oportunasalas subrutinas quevan procesando l as subfrmulas. Estas subrutinas, para las conectivas proposicionales, se resumen en una nueva l lamada al programa ESTADOS. Y para procesar las subfrmulas temporales se llama a subrutinas especfica s para cada una (basadas en los algoritmosde etiquetadoypropagacin antes citados). Subrutinas especficas Parafacilitarel pseudocdigode algunade las subrutinas tempor ales especficas conviene utilizar una notacinquese encuentraeneltextode HuthyRyan citado.Si Y es un conjunto cualquiera de nodos de un modelo: pre9(Y) designar el conjunto de estados con algn sucesor inmediato entre los estados de Y pre8(Y) designar el conjunto de estados con todos sus sucesores inmediatos entre los esta dos de Y Observe que Y se utilizar como conjunto a partir del cual se propaga hacia atrs al guna marca hacia nodos s: todos los elementos de Y tendrn esa marca y se exigir que todos los sucesores inmediatos de s o alguno se encuentren en Y. Los algoritmos2,3y4 son subrutinas suficientes (juntoa las proposicionales) para desarrollar el algoritmo ESTADOS(j,M). Toda frmula CTL tiene una expresin equivalente que slo u tiliza operadores AF,EU yEX (aparte de un conjunto adecuado de conectivas proposicional es) 6.5 Consideraciones finales El caracter introductoriode este documentonoaconseja presentarms contenido. Atrsse

ha quedado laexposicinde otros sistemas temporales comoLTLo CTL*,olaexposicindeverificadoresq ue los utilizan (SPIN,NuSMV,...) No obstante, queda un punto importante por resalta r: el fenmeno de la explosin de estados, que hace del problema de la verificacin un problema difcil. El algoritmo que se ha esbozado, condiversas mejoras, tiene complejidad lineal r especto al nmero de estados. Sin embargo, el nmero de estados del modelo crece exponencialmente re specto a las propiedades que se pretenden evaluar del sistema. Si en la descripcin funcional de un sistema hay3 propiedades de inters(p,q,r), tpic amente se proponen estados suficientes para modelar todas sus ausencias/presencias: pqr , pqr, pqr, ... Es decir23 estados. Aunqueel modelo del sistema puedeobviar algunode estos estados, esta tendencia exponencial persiste. Eltexto recomendadodeClarke(ycolaboradores)esunaexcelente recopilacindetodaslas e strategias de simplificacin del problema. Algunas de ellas suficientemente eficaces como par a manejar

6.5. Consideraciones finales Algorithm1 ESTADOS(j,M) Require: Una frmula . de CTLyun modelo M= {S,-!,L}Ensure: El conjunto de estados de Mque satisfacen . if . es . then 2: return: 0/ else if . es . then 4: return: S else if . es atmica then 6: return: {s . S| . . L(s)} else if . es j1 then 8: return: SESTADOS(j1,M) else if . es (j1. j2) then 10: return: ESTADOS(j1,M) n ESTADOS(j2,M) else if . es (j1. j2) then 12: return: ESTADOS(j1,M) . ESTADOS(j2,M) else if . es (j1 . j2) then 14: return: ESTADOS((j1. j2),M) else if . es (j1 . j2)

then 16: return: ESTADOS(((j1 . j2) . (j2 . j1)),M) else if . es AG. then 18: return: ESTADOSAG(j,M) else if . es EG. then 20: return: ESTADOSEG(j,M) else if . es AF. then 22: return: ESTADOSAF(j,M) else if . es EF. then 24: return: ESTADOSEF(j,M) else if . es AX. then 26: return: ESTADOSAX(j,M) else if . es EX. then 28: return: ESTADOSEX(j,M) else if . es A[jUy] then 30: return: ESTADOSAU(j,y,M) else if . es E[jUy] then 32: return: ESTADOSEU(j,y,M) else 34: return: No es una frmula CTL end if un elevadsimo nmero de estados, es decir, suficientes para abordar la verificacin d e complejos sistemas industriales. EneltextodeHuthyRyan,quehasido referenciadeeste documento,hayunabuenaexposicin de una de estas estrategias: el uso de estructuras de datos eficientes, en parti cular OBDDs(Ordered Binary Decision Diagrams), diagramas binarios de decisin ordenados.

Captulo 6. Lgica ModalTemporal Algorithm2 ESTADOSEX(j,M) Require: Una frmula . de CTLy un modelo M= {S,-!,L}Ensure: El conjunto de estados de Mque satisfacen EX. local var X,Y 2: X := ESTADOS(j,M) Y := pre9(X) 4: return: Y Algorithm3 ESTADOSAF(j,M) Require: Una frmula . de CTLy un modelo M= {S,-!,L}Ensure: El conjunto de estados de Mque satisfacen AF. local var X,Y 2: X := S Y := ESTADOS(j,M) 4: repeat X := Y 6: Y = Y. pre8(Y) until X = Y 8: return: Y Algorithm4 ESTADOSEU(j,y,M) Require: Dos frmulas, . yy,de CTLy un modelo M= {S,-!,L}Ensure: El conjunto de estados de Mque satisfacen E[jUy] local var W,X,Y 2: W := ESTADOS(j,M) X :=

S 4: Y := ESTADOS(y,M) repeat 6: X := Y Y = Y. (Wn pre9(Y)) 8: until X = Y return: Y

Bibliografa [Abramskyet al., 1992-2001] S. Abramsky, D.M. Gabbay y T.S.E. Maibaum. Handbook of Logic in Computer Science. Oxford University Press, Oxford, 1992 (primer volumen) -200 1 (quinto volumen). [Apt, 1996] K.R. Apt. From Logic Programming to Prolog. Prentice-Hall, Londres, 1996. [AptyOlderog, 1997] K.R.AptyE.R. Olderog. Verification of Sequential and Concurr ent Programs. Springer-Verlag, Berln.2a edicin. [Badesaetal.,1998] .Badesa,I.JanyR. Jansana. Elementos de lgica formal. Ariel, 199 8. [Ben-Ari, 1990] M. Ben-Ari. Principles of Concurrent and Distributed Programming . Prentice-Hall International, Londres, 1990. [Ben-Ari, 2001] M. Ben-Ari. Mathematical Logic for Computer Science. Springer-Ve rlag, Londres, 2001. [Blackburnetal.,2001]P. Blackburn,M.deRijkeeY.Venema. Modal Logic. Cambridge Uni versity Press, Cambridge,RU, 2001. [Brodaetal.,1994]K.Broda,S. Eisenbach,H. KhoshnevisanyS.Vickers. Reasoned Progra mming. Prentice Hall International, 1994. [Burris, 1998] S. N. Burris. Logic for Mathematics and Computer Science. Prentic e Hall, 1998. [Clarkeetal.,1994]E. Clarke,O. Grumbergy D.Long. VerificationToolsfor Finite-State Con current Systems . En: J.W. de Bakker,W.P. de Roever. ADecade of Concurrency: Refle ctions andPerspectives. Springer-Verlag, Berln, 1994. [Clarkeetal.,2000] E.M. Clarke,O. GrumbergyD. Peled. Model Checking. MIT Press, Cambridge, MA, 2000. [Clocksinetal.,1994]W. ClocksinyC.S. Mellish. Programming in Prolog. Springer, 1 994.4a edicin. [ChagrovyZakharyaschev, 1997] A. ChagrovyM. Zakharyaschev. Modal Logic. Oxford U niversity Press, Oxford, 1997.

[Cuena, 1985] J. Cuena. Lgica Informtica. Alianza, 1985. [Dalen, 1997] D. van Dalen. Logic and Structure Springer, 1997.3a edicin. [Deao, 1993] A. Deao. Introduccin a la lgica formal. Alianza Universidad, 1993. Dcima reimpresin. 215

216 Bibliografa [Doets, 1994] K. Doets, From Logic to Logic Programming.MIT Press, Cambridge, MA , 1994. [Ebbinghaus et al., 1996] H.-D. Ebbinghaus, J. FlumyW. Thomas. Mathematical Logi c. Springer, 1996.2a edicin. [Fagin et al., 1995] R.Fagin, J.Y. Halpern,Y. MosesyM.Y.Vardi.Reasoning about Kn owledge. MIT Press, Cambridge, MA, 1995. [Fitting, 1996] M. Fitting. First-OrderLogicandAutomated TheoremProving.Springer -Verlag, NuevaYork, 1996.2a edicin. [Francez, 1992] N. Francez. ProgramVerification. Addison-Wesley, Reading, MA, 19 92. [Gabbay et al., 1993] D.M. Gabbay, C.J. HoggeryJ.A. Robinson (eds). Handbook of Logic in Artificial Intelligence and Logic Programming.Vol. 1: LogicFoundations. Oxford University P ress, Oxford, 1993. [Gabbay et al., 1994a] D.M. Gabbay, I. HodkinsonyM. Reynolds. Temporal Logic: Ma thematical Foundations and Computational Aspects.Oxford University Press, Oxford, 1994. [Gabbay et al., 1994b] D.M. Gabbay, C.J. HoggeryJ.A. Robinson (eds). Handbook of Logic in Artificial IntelligenceandLogicProgramming.Vol.2: Deduction Methodologies. Oxford Universit y Press, Oxford, 1994. [Gabbay et al., 1994c] D.M. Gabbay, C.J. HoggeryJ.A. Robinson (eds). Handbook of Logic in Artificial IntelligenceandLogicProgramming.Vol.3: Nonmonotonic Reasoning. Oxford University Press, Oxford, 1994. [Gabbay et al., 1995] D.M. Gabbay, C.J. HoggeryJ.A. Robinson (eds). Handbook of Logic in Artificial Intelligence and Logic Programming.Vol. 4: Epistemic andTemporal Logics. Oxford University Press, Oxford, 1995. [Gabbay et al., 1998] D.M. Gabbay, C.J. HoggeryJ.A. Robinson (eds). Handbook of Logic in Artificial IntelligenceandLogicProgramming.Vol.5:LogicProgramming. Oxford University Press, Oxford, 1998. [Gabbay et al., 2000] D.M. Gabbay, M.A. ReynoldsyI. Hodkinson. Temporal Logic: M athematical Foundations and Computational Aspects.Vol.2.Oxford University Press, Oxford, 200 0. [Garrido, 1995] M. Garrido. Lgica Simblica. Tecnos, 1995.3a edicin.

[Hoare, 1969] C.A.R. Hoare. tions of theACM, 12 (1969) 576-580.

An axiomatic basis for computer programming . Communica

[HughesyCresswell, 1968] G.E. Hughesy M.J. Cresswell. An Introduction to Modal L ogic. Methuen, Londres, 1968. [HughesyCresswell, 1996] G.E. HughesyM.J. Cresswell. ANewIntroduction to Modal L ogic.Routledge, Londres, 1996. [HuthyRyan, 2000] M.R.A. HuthyM.D. Ryan. Logic in Computer Science. Modelling an d Reasoning about Systems. Cambridge University Press, Cambridge,RU, 2000.

Bibliografa 217 [KliryYuan, 1995] G.J. Kliry B.Yuan. Fuzzy Sets and Fuzzy Logic. Prentice-Hall, Englewood Cliffs, NJ, 1995. [Kowalski, 1986] R.Kowalski. Lgica, programacin e inteligencia artificial. Daz de S antos, 1986. Traducida deLogic for Problem Solving. Elsevier, 1979. [Lloyd, 1987] J. Lloyd. Foundations of Logic Programming.Addison-Wesley, Reading , MA, 1987. 2a edicin. [MannayPnueli, 1992] Z. MannayA. Pnueli. TheTemporalLogicof Reactive and Concurr ent Systems. Vol.I: Specification. Springer-Verlar, NuevaYork, 1992. [MannayPnueli, 1995] Z. MannayA. Pnueli. TheTemporalLogicof Reactive and Concurr ent Systems. Vol. II: Safety. Springer-Verlar, NuevaYork, 1995. [McMillan, 1993] K. McMillan. Symbolic Model Checking. Kluwer, Dordrecht, Holand a, 1993. [Mendelson, 1997] E. Mendelson. Introduction to Mathematical Logic. Chapman and Hall, Londres, 1997.4a edicin. [Meyery van der Hoek, 1995] J.J.MeyeryW.van der Hoek. Epistemic Logic for Comput er Science and Artificial Intelligence. Cambridge University Press, Cambridge,RU, 1995. [Pnueli, 1981] A. Pnueli. The temporal logic of concurrent programs . Theoretical C omputer Science, 13 (1981) 45-60. [PnueliyShahar, 1996] A. PnueliyE. Shahar. Aplatformfor combining deductive with a lgorithmic verification . Proceedings ofthe Eighth International Conference on Computer Aided Verifica tion (CAV 96). Springer-Verlag, Berln, 1996. [Popkorn, 1994] S. Popkorn. First Steps in Modal Logic. Cambridge University Pre ss, Cambridge, 1994. [Smullyan, 1995] R.M. Smullyan. First-Order Logic. Dover, NuevaYork, 1995. La pr imera edicin de esta obra fue publicada por SpringerVerlag, NuevaYork, 1968. [Vila, 1994] L.Vila. mmunications, 7(1994) 4-28. Asurveyon temporal reasoningin artificial intelligence . AI Co

Das könnte Ihnen auch gefallen