




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
:////////////////////////////////////////
Tipo: Apuntes
1 / 259
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Email address: me@camilorocha.info
Para Elisa
10 Prefacio
Russell y Whitehead [ 11 ], y Hilbert y Bernays [ 5 ]; (ii) la propuesta desde la in- formática de usar la lógica como herramienta para razonar hecha por Dijkstra y Scholten [ 2 ], y refinada posteriormente por Gries y Schnider [ 3 ] y Tourlakis [ 10 ]; y (iii) resultados recientes en reescritura y lógica computacional [8, 9], áreas activas de investigación en métodos formales de la informática.
Dado que el principal énfasis de este texto es en el uso de de la lógica ma- temática como herramienta para razonar, la dimensión de los sistemas formales es un marco conveniente y riguroso para la formulación de los fundamentos de la lógica. Un sistema formal permite hacer cálculos a partir de una colección de fórmulas distiguidas (llamadas axiomas) y unas reglas de manipulación sintáctica (llamadas reglas de inferencia). De este modo la lógica, tanto proposicional como de predicados, se presenta como sendos sistemas formales que resultan en juegos de manipulación sintáctica. Claramente, desde la perspectiva de un estudiante que quiere entender qué calcula, es importante asociar nociones de significado a las fór- mulas de los sistemas formales lógicos. Para este fin, en este texto se estudian las semánticas proposicional y de predicados, como marcos de referencia conceptual y complementaria al de los sistemas formales lógicos.
El estilo calculatorio de Dijkstra y Scholten ha sido utilizado, principalmente, en el área de métodos formales de la informática durante los últimos 40 años. Su uso en el aula de clase se ha visto concentrado en el mismo planteamiento de la lógica como herramienta de estudio y en las matemáticas discretas durante las últimas dos décadas. El poder de este sistema lógico está relacionado directamente con el hecho de que se privilegia la equivalencia lógica, en lugar de la implicación, como relación para calcular demostraciones. Dado que la equivalencia lógica es un conectivo lógico más fuerte que la implicación lógica, el estilo calculatorio de Dijkstra y Scholten puede también ser usado para cálculos lógicos basados en la implicación, es decir, en este estilo de hacer lógica hay lugar para hacer deducciones con un estilo tradicional en las matemáticas. Sin embargo, a pesar de su aparente potencial académico y didáctico, este estilo de “hacer matemáticas” ha pasado largamente desapercibido por la comunidad académica y, en algunas ocasiones, ha sido objeto de crítica por su formulación. Posiblemente, esto se debe a la tradición en matemáticas en usar el lenguaje coloquial para desarrollar demostraciones, al hecho de que el estilo calculatorio de Dijkstra y Scholten propone algunos cambios en notación e introduce nuevas convenciones para escribir demostraciones. En este texto se materializa el concepto de “demostración” à la Dijkstra y Scholten, y se relaciona directamente con aquel de demostración en un sistema formal. La notación empleada para cuantificar, y para operatorias generalizadas, se presenta como azúcar sintáctico de la notación tradicionalmente utilizada en las matemáticas. De este modo estas notas aclaran al lector que la propuesta de Dijkstra y Scholten desde la informática es en un sistema lógico bien fundamentado.
Prefacio 11
La lógica computacional se ocupa de mecanizar la lógica matemática y utilizar- la como motor de inferencia para razonar acerca de y llevar a cabo computaciones. Recientemente, el autor de este texto, en compañía de otros colaborares, ha estudia- do las propiedades computacionales de la lógica de Dijkstra y Sholten como sistema de reescritura de términos, obteniendo resultados inesperados y sorprendentes. Por ejemplo, el sistema formal de la lógica proposicional presentado en este texto puede ser usado como un sistema de reescritura resultando en un procedimiento de deci- sión para la lógica proposicional. Similarmente, el sistema formal de primer orden presentado en este texto puede ser mecanizado por reescritura, con ayuda de se- cuentes à la Gentzen, resultando en un procedimiento de semi-decisión para lógica de predicados. Es decir, cada uno de los sistemas lógicos presentados en este texto gozan de las mejores propiedades computacionales posibles (en cada caso). Adicio- nalmente, relaciones de la lógica de Dijkstra y Scholten con otras teorías como la de anillos Booleanos y la lógica Aristotélica han sido encontradas y documentadas. En este texto se exploran algunas de estas relaciones.
Es abrumadora la cantidad de textos que se han escrito acerca de y sobre la lógica matemática y, recientemente, otro tanto más sobre lógica para informática. Sin embargo, la mayoría de textos en estos temas se escriben para audiencias con cierta maduréz matemática y con el objetivo de estudiar las meta-propiedades de la lógica. Es decir, los textos se centran principal y generalmente en el estudio de la lógica como objeto de estudio, explorando sus posibilidades y limitaciones. Cualquier lector familiarizado con los textos de Hodel [ 6 ], Hamilton [ 4 ], y Huth y Ryan [ 7 ] se dará cuenta de la gran deuda que el autor tiene con ellos gracias al desarrollo de algunas de sus ideas en el presente texto.
Actualmente, hay tres libros que el autor conoce, y que preceden cronológi- camente este texto, los cuales se centran en el uso de la lógica matemática como herramienta para calcular demostraciones: uno por Gries y Schnider [ 3 ], otro por Tourlakis [ 10 ] y otro por Bohórquez [ 1 ]. El primero es un texto introductorio que presenta la lógica de Dijkstra y Scholten como una herramienta para demostrar teoremas, en gran medida dejando a un lado aspectos semánticos de la lógica. La segunda parte de ese texto se ocupa, principalmente, en demostrar teoremas de matemáticas discretas que son deseables en la enseñanza de los currículos de computación e informática hoy en día. El segundo, es un texto más avanzado en comparación con el primero y se enfoca, especialmente, en estudiar y presentar los fundamentos matemáticos de la lógica de Dijkstra y Scholten, al igual que la interrelación entre su aparato formal y su semántica. El tercer texto, además de estar escrito en castellano, presenta y extiende las ideas en [ 3 ] abordando aspectos semánticos de la lógica e incluyendo pruebas de completitud y coherencia, además de numerosos ejemplos que ilustran este enfoque en la corrección y derivación de al- goritmos iterativos. El presente texto puede verse como una extensión adicional de los textos anteriormente mencionados, en donde el sistema de Dijkstra y Scholten se
“Desconfíen vuestras mercedes de quien es lector de un solo libro”, dijo el Capitán Alatriste. Arturo Pérez-Reverte Limpieza de Sangre, 1997
I prioritise story over science, but not at the expense of being really stupid about it. Alastair Reynolds Este capítulo contiene material necesario para el resto del texto y debe ser abordado a medida que se necesite. El material en esta sección incluye convenciones y definiciones básicas, y un recuento sucinto acerca de la inducción matemática y los sistemas formales.
Las matemáticas, y en particular la lógica, se desarrollan usando un código común de términos y una metodología. La terminología se refiere a aspectos lin- guísticos que se supone son conocidos y están claramente entendidos. Es en este sentido en el cual los textos de matemáticas adoptan algunos términos como “defi- nición”, “proposición” y “teorema”, entre otros, y los usan frecuentemente. La me- todología permite abordar el estudio de un tema de manera sistemática: primero, definiendo unívocamente el objeto de estudio; segundo, estableciendo propiedades sobre el objeto de estudio; tercero, y de manera opcional, utilizando efectivamente el objeto de estudio para resolver un problema de interés. Por objeto de estudio puede entederse, por ejemplo, “cómo demostrar que un algoritmo es correcto”, “un
1
2 0. Preámbulo
sistema numérico” o “una teoría de la relatividad”. Esta sección explica cuáles son el código común de términos y la metodología que sigue este texto. Siempre, en matemáticas, lo más importante son las definiciones: sin definicio- nes, o sin entenderlas, no es posible hacer matemáticas; mucho menos pretender que sean de alguna utilidad. El objetivo de una definición es “capturar” unívoca- mente un objeto matemático por medio de sus propiedades básicas y establecer notación para referirse a este. Una definición en este texto hace eso: definir objetos matemáticos y establecer notación para referirse a ellos.
Definición 0.
El conjunto de números naturales es { 0 , 1 , 2 ,.. .} y se denota como N. Un número n es un número natural si y solo si n ∈ N.
Primero que todo, note que las definiciones vienen identificadas con un código. Así no es necesario referirse a ellas como en “la definición anterior” (puede haber más de una definición antes del texto que la referencia y entonces esta indicación sería ambigua), sino más bien referenciándola directamente como en “la Definición 0.1”. En este último caso la palabra “definición” es un nombre propio y por eso su inicial se escribe en mayúscula. Por convención, cuando el nombre propio sea en plural, no se escribe con mayúsculas. Los tipos de letra son claves para entender una definición. Por ejemplo, en la Definición 0.1 hay dos tipos de letra. Los sustantivos “conjunto de números natura- les” y “número natural” están en letra cursiva, lo cual no es un capricho: estos dos son los nombres de los objetos que están siendo definidos. Esto quiere decir, por ejemplo, que en este texto los números naturales son esos y no otros. Como conven- ción se adopta el símbolo N para representar el conjunto de números naturales. En la segunda parte de la Definición 0.1 la expresión “n” es una variable matemática y por eso también aparece en letra cursiva. En algunas ocasiones se hacen suposiciones de notación y convención. Por ejem- plo, en la Definición 0.1 el autor supone conocimiento del lector acerca de qué es un número, de preferir la notación arábica sobre la romana para escribirlos y de entender el significado del símbolo ‘∈’. Es posible tratar de definir todas estas supo- siciones formalmente; sin embargo, sería impráctico en el caso de este texto porque desviaría al lector de su objetivo principal. Una vez un objeto está (unívocamente) definido, es posible entonces proceder a identificar y estudiar sus propiedades. Es en este momento, al haber definido el objeto de interés, que se pueden postular y demostrar propiedades de manera precisa.
4 0. Preámbulo
Nota 0.
Para estudiar lógica es necesario entender muy bien las definiciones y hacer demos- traciones.
0.1. Preludio 5
g) Relación binaria transitiva.
0.2. Inducción 7
Metateorema 0.
Considere una propiedad M sobre los números naturales y los siguientes dos casos:
El principio de inducción es una propiedad inherente de los números naturales. Ahora bien, ¿por qué tiene sentido el principio de inducción? Antes de presentar una demostracíon, considere la siguiente reflexión. Suponga que las condiciones (1) y (2) son ciertas para una propiedad M sobre los números naturales, y sea k un número natural (i.e., k ∈ N). Si k = 0, entonces k tiene la propiedad M por el caso base (i.e., M (0) es cierto). De lo contrario, se puede usar el caso inductivo aplicado a n = 0, para concluir que 1 = 1 + 0 tiene la propiedad M (i.e., M (1) es cierto). El caso inductivo se puede aplicar de la misma forma con n = 1 suponiendo M (1) y entonces concluyendo M (2). Este proceso se puede repetir hasta concluir M (k): es como un “efecto dominó” en donde k es “la primera ficha en caer” o “alguna otra ficha que cae” porque está conectada causalmente con la primera ficha en caer. A contiuación se presenta una demostración del principio de inducción mate- mática.
Demostración. Suponga que las condiciones (1) y (2) son ciertas para M. Sin embargo, para llegar a una contradicción, suponga que M no es cierta para todos los n ∈ N. Es decir, hay un k ∈ N que no tiene la propiedad M. Sin pérdida de generalidad suponga que dicho k es el más pequeño (i.e., el mínimo) entre todos los números en N que no tienen la propiedad M. Hay dos casos: k = 0 o k > 0. Pero k no puede ser 0 porque, por la Condición (1), 0 cumple la propiedad M. Luego, debe ser k > 0. Con k > 0 , se tiene que k − 1 ∈ N. Además, como k es el número natural más pequeño que no tiene la propiedad M , se sabe que k − 1 tiene la propiedad M. Dado que k − 1 tiene la propiedad M se concluye, por la Condición (2), que k tiene la propiedad M. Sin embargo, esto contradice el hecho de que k no tiene la propiedad M. En conclusión, si las condiciones (1) y (2) son ciertas para M , necesariamente todos los números naturales tienen la propiedad M.
8 0. Preámbulo
Nota 0.
La suposición M (n) que se hace en el caso inductivo del Metateorema 0.5 es deno- minada hipótesis inductiva.
Ejemplo 0.
La ecuación de los números triangulares es cierta para todo número natural n. Es decir,
0 + 1 + 2 + 3 + 4 + · · · + n = n · (n + 1) 2 para n ∈ N.
Demostración. Primero que todo, se identifica claramente la propiedad que se quiere demostrar. Sea G(n) una abreviación para la ecuación 0 + 1 + 2 + 3 + 4 + · · · + n = n·(n 2 +1) , lo cual se escribe así:
G(n) : 0 + 1 + 2 + 3 + 4 + · · · + n = n^ ·^ (n^ + 1) 2
Note que n es el parámetro de G así como n es el parámetro en la ecuación de los números triangulares. El objetivo es demostrar G(n) para n ∈ N. Por el principio de inducción matemática (Metateorema 0.5) basta con demostrar las condiciones (1) y (2) para G. Caso base: se quiere demostrar que 0 tiene la propiedad G. Note que G(0) abre- via la ecuación 0 = 0 ·(0+1) 2 , que es directamente una identidad. Entonces 0 tiene la propiedad G, i.e., G(0). Caso inductivo: se quiere demostrar que si n tiene la propiedad G, entonces (n + 1) tiene la propiedad G(n + 1) (i.e., G(n) implica G(n + 1)). Se supone como hipótesis inductiva G(n) (i.e., que n ≥ 1 tiene la propiedad G) y con esta información se busca una demostración de G(n + 1). La expresión G(n + 1) abrevia la ecuación 0 + · · · + n + (n + 1) = (n + 1) · ((n + 1) + 1) 2
Por la hipótesis inductiva (i.e., suponiendo G(n)), la parte izquierda de la igual- dad se puede escribir como n·(n 2 +1) +(n+1). Factorizando (n+1), esta expresión es igual a (n+1) 2 ·( n+2), que a su vez es igual a (n+1)·(( 2 n +1)+1). Entonces, si n tiene la propiedad G, necesariamente (n + 1) tiene la propiedad G. Es decir, G(n) implica G(n + 1).