L´ ogica para la Computaci´ ogica on on II) L´ ogica ogica Cl´ asica asica de Primer Orden
Alfredo Burrieza Mu˜ niz niz Manuel Ojeda Aciego
i
La raz´ on por la que las personas mienten con frecuencia on es que les falta imaginaci´ on on no se dan cuenta de que la verdad, tambi´ en, en, es una cuesti´ on on de invenci´ on. on.
(Ortega (Ortega y Gasset) Gasset)
Este documento presenta la L´ogica ogica Cl´ asica asica de Primer Orden. En ´el el hemos puesto especial ´enfasis enfasis en los aspectos algor´ algor´ıtmicos, en definitiva, en presentar la l´ ogica como el c´ alculo de las 1 Ciencias de la Computaci´ on y, y, en particular, como afirma Mordechai Ben-Ari, como la base matem´ atica atica del software. La L´ogica ogica Computacional, como disciplina incluida en los estudios conducentes a la obtenci´ on on del t´ıtulo de Ingeniero Inform´ atico, ha de enmarcarse en el ambito atico, a´mbito de lo que podemos llamar Fundamentos undam entos y M´etodos etodos Formales en Computaci´ Computa ci´ on . El atractivo de las Ciencias de la Computaci´on on es doble. Por una parte, su juventud; por otra parte, parte, sus or´ or´ıgenes. ıgenes. Se suele establecer establecer que las Ciencias Ciencias de la Computaci´ Computaci´ on se han desarrollado, principalmente, a partir de la confluencia de tres disciplinas: Matem´ atica, ati ca, Ingeni Ing enier er´´ıa y Ling¨ u´ıstica. Vamos a hacer un un breve comentario para cada una de ellas. Podr´ Podr´ıamos situar el inicio de la aportaci´ on de la Ingenier Ingenier´´ıa a la L´ ogica ogica en 1938, cuando 2 Claude E. Shannon (m´ as as tarde famoso por su “Te su “Teor or´ ´ıa de la Informaci´ Informa ci´ on” on”) observ´o que las funciones funcion es realizadas reali zadas por p or circuitos circu itos combinacio c ombinacionales nales (inicia ( inicialmente lmente construid co nstruidos os con rel´ re l´es), es), se pod po d´ıan representar con la notaci´ on on simb´ olica olica de las algebras ´ de Boole . A mediados de los 50, Samuel Caldwell y David Huffman extendieron este trabajo a los circuitos secuenciales, lo cual dio origen al desarrollo desarro llo de la l a teor t eor´´ıa de m´ de m´ aquinas de estados finitos 3 . La contribuci´ on on de la Ling¨ u´ıstica llega a finales de los 50, cuando cuando Noam Chomsky, Chomsky, con su “Teor´ıa ıa de las la s gram´ g ram´ aticas formales”, formales”, estableci´ o las bases de la Ling¨ la Ling¨ u´ıstica ıst ica matem mat em´ atica ´ e e inici´ o el 4 camino hacia la formalizaci´ on on en la descripci´on on de los lenguajes naturales. En la misma ´epoca epoca de los trabajos de Chomsky, se estaba investigando investigando en la especificaci´ esp ecificaci´ on de la sintaxis de lenguajes de programaci´ on de ordenadores. John Backus adapt´ on o las aportaciones 1
Ben-Ari, M. Mathematical M. Mathematical Logic for Computer Science . Prentice Hall”1993. C.E. Shannon. Shannon. A symbolic analysis of relay and switching circuits . Transactions of the AIEEE, 57: 713-723, 1938. 3 D.A. Huffman. The Huffman. The synthesis of sequencial switching circuits . circuits . Journal of the Franklin Institute, 257: 161-190, 1954. 4 N. Chomsky. On Chomsky. On certain formal properties of grammars . Information and Control, 2 (2): 137-167. 1959. 2
ii
de Emil Leon Post 5 a tales especificaciones 6 , y obtuvo una notaci´ on que era una variante de las gram´ aticas de contexto libre de Chomsky. Por otra parte, el estudio de las clases de lenguajes generados por las gram´aticas de Chomsky y el estudio de las m´ aquinas de estados finitos llev´ o al establecimiento de una relaci´ on inmediata y sorprendente: los mismos fen´omenos aparec´ıan de forma independiente en ambos campos, de manera que se pod´ıan establecer una identificaci´ on (“isomorfismo”) entre ambos modelos. La parte correspondiente a la Matem´atica se centra en el “problema de la decisi´ on”, que est´ a ´ıntimamente ligado al concepto de algoritmo y en particular con la automatizaci´ on de los razonamientos . Podr´ıamos remontarnos hasta la Edad Media con Raimundo Lulio que centr´ o su objetivo en encontrar un “m´ etodo” para demostrar si una afirmaci´ on es verdadera o falsa, teniendo en cuenta el “esquema” al que se ajusta. Este objetivo fue formulado con m´as precisi´ on y con la m´ axima ambici´ on por David Hilbert en 1900 (Entscheidungsproblem ) en el Congreso Internacional de Matem´ aticos en Par´ıs. 7 . La pretensi´on de Hilbert era disponer de un algoritmo general que permitiera resolver cualquier problema bien definido en Matem´aticas. Invitamos al lector a que incluya entre sus futuras lecturas las referidas a si Hilbert vio o no cumplido su deseo. Podemos fijar que con Augustus De Morgan, George Boole y, destacadamente, Gottlob Frege en el siglo XIX; Alan Turing, Emil Post, Alonzo Church, Stephen Kleene, Kurt G¨ odel, Jacques Herbrand y Gerhard Gentzen en 1930 y John Alan Robinson en 1960 (todos ellos grandes matem´ aticos) la l´ ogica tom´ o cuerpo como potente herramienta cient´ıfica. Sus trabajos dieron lugar a todo un cuerpo de doctrina que es referida de forma habitual como L´ogica Computacional y que ha constituido la base de lo que hoy se entiende por Ciencias de la Computaci´on. Consideramos que el conocimiento de la l´ogica computacional es fundamental en la formaci´ on del inform´ atico. As´ı se contempla en las m´ as destacadas recomendaciones de los expertos en Computaci´ on. Por ejemplo, La ACM, en la elaboraci´ on de los sucesivos Curriculum en Inform´ atica considera los t´ opicos de l´ ogica computacional como fundamentales. Desde sus inicios, el Comit´e de Actividades Educativas del IEEE, mantiene la misma consideraci´ on. El modelo de curriculum de la Universidad Carnegie-Mellon introduce un apartado sobre las Ciencias de la Computaci´ on en el que destaca la l´ogica. ... Por otra parte, para destacar el inter´es por el estudio de la l´ ogica en el a´mbito de la Computaci´ on, bastar´ıa afirmar que su conocimiento es esencial en la mayor´ıa de las areas. ´ Podemos destacar, sin la pretensi´ on de ser exhaustivos, los siguientes: - Estructuras de Datos y Algoritmos 5
E.L.Post. Introduction to a general theory of elementary propositions . In Jean van Heijenoort, edito, From Frege to G¨ odel. A Source Book in Mathematical Logic . Harvard University Press, 1921. 6 J.W. Backus. The syntax and semantics of the proposed international algebraic language of the Zurich . ACMGAMM Conference. IFIP’59, 125-131, 1959. 7 invitamos al lector a indagar sobre el conocido como “d´ ecimo problema de Hilbert”
iii
- Inteligencia Artificial y Rob´ otica - Bases de Datos y Recuperaci´ on de Informaci´ on. - Comunicaci´ on Hombre-M´ aquina. - Lenguajes de Programaci´ on. - Ingenier´ıa y Metodolog´ıa del Software. - Visi´ on computacional . - Planificaci´ on . - Verificaci´ on de protocolos de seguridad . - Diagn´ ostico. - Etc. Es cierto que se puede argumentar que la L´ogica no ha tenido la repercusi´ on esperada en las aplicaciones; pero tambi´ en lo es que la situaci´ on ha variado en las dos u ´ ltimas d´ecadas y que destacadas empresas en Inform´ atica y Telecomunicaciones como IBM, AT&T, Intel, Motorola, . . . reclaman especialistas en el tema. Todas estas consideraciones nos llevan a abordar la redacci´ on de este texto. En el primer volumen estudiamos la L´ ogica Cl´ asica proposicional y en ´este estudiaremos la L´ ogica Cl´ asica de Predicados. Seguir´an otros sobre diferentes l´ ogicas cuyo papel es relevante en Computaci´ on. Iniciamos la tarea con ilusi´ on y responsabilidad, como reto sobre cuyas consecuciones esperamos enriquecer con sugerencias de los lectores.