Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Libro de logica calculatoria, Apuntes de Lógica

:////////////////////////////////////////

Tipo: Apuntes

2022/2023

Subido el 07/12/2023

juan-carlos-bohorquez
juan-carlos-bohorquez 🇨🇴

2 documentos

1 / 259

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Lógica para Informática y Matemáticas
Camilo Rocha
Email address:me@camilorocha.info
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Libro de logica calculatoria y más Apuntes en PDF de Lógica solo en Docsity!

Lógica para Informática y Matemáticas

Camilo Rocha

Email address: me@camilorocha.info

Para Elisa

Índice general

  • Prefacio
  • Capítulo 0. Preámbulo
    • 0.1. Preludio
    • 0.2. Inducción
    • 0.3. Sistemas formales
    • 0.4. Inducción sobre demostraciones
  • Capítulo 1. Lenguaje y especificación Parte 1. Lógica proposicional
    • 1.1. Proposiciones
    • 1.2. Lenguaje formal
    • 1.3. Árboles de sintaxis
    • 1.4. Inducción sobre proposiciones
  • Capítulo 2. Semántica
    • 2.1. Funciones Booleanas
    • 2.2. Valuaciones
    • 2.3. Clasificación de proposiciones
    • 2.4. Consecuencia tautológica
    • 2.5. Argumentaciones
    • 2.6. La isla de caballeros y escuderos
    • 2.6.1. Especificación
    • 2.6.2. Análisis por casos
    • 2.6.3. Análisis con tablas de verdad 6 Índice general
    • 2.6.4. Análisis con argumentaciones
  • Capítulo 3. Herramientas proposicionales
    • 3.1. Sustitución textual
    • 3.2. Instanciación de variables proposicionales
    • 3.3. Reemplazo de ‘iguales por iguales’
    • 3.3.1. Ecuanimidad
    • 3.3.2. Leibniz
  • Capítulo 4. El sistema de Dijkstra y Scholten para proposiciones
    • 4.1. El sistema formal DS
    • 4.2. Propiedades estructurales de la equivalencia
    • 4.3. La negación y la discrepancia
    • 4.3.1. Ciframiento de texto con xor
    • 4.4. La disyunción
    • 4.5. Intermezzo: derivaciones
    • 4.6. La conjunción
    • 4.7. La implicación y la consecuencia
  • Capítulo 5. Técnicas de razonamiento y demostración
    • 5.1. Eliminación de paréntesis
    • 5.2. Técnicas básicas
    • 5.2.1. Reducción a true
    • 5.2.2. Tránsito
    • 5.2.3. Uso de lemas
    • 5.3. Derivaciones relajadas
    • 5.4. Deducción con suposiciones y el Metateorema de la Deducción
    • 5.4.1. Demostración con suposiciones
    • 5.4.2. Metateorema de la Deducción
    • 5.4.3. Metateorema de Coherencia y Completitud
    • 5.5. Técnicas complementarias
    • 5.5.1. Suposición del antecedente
    • 5.5.2. Doble implicación
    • 5.5.3. Contradicción
    • 5.5.4. Contrapositiva
    • 5.5.5. Análisis de casos
  • Índice general
  • Capítulo 6. Lenguaje y especificación
    • 6.1. Lenguajes de primer orden
    • 6.2. Términos
    • 6.3. Fórmulas
    • 6.4. Variables libres y acotadas
    • 6.5. Sustitución de términos
    • 6.6. Un lenguaje para arreglos
  • Capítulo 7. El sistema de Dijkstra y Scholten para predicados
    • 7.1. El sistema formal DS(L)
    • 7.2. La cuantificación universal
    • 7.3. La cuantificación existencial
    • 7.4. Algunos metateoremas
    • 7.5. La igualdad
  • Bibliografía
  • Índice alfabético

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

Capítulo 0

Preámbulo

“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.

0.1. Preludio

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.

Ejercicios

  1. Investigue y enuncie las convenciones notacionales para identificar cada uno de los siguientes conjuntos, explicando la relación que hay entre cada uno de ellos: a) Números enteros. b) Números racionales. c) Números reales. d ) Números complejos.
  2. Investigue y enuncie la definición para cada uno de los siguientes objetos ma- temáticos: a) Número algebraico. b) Número irracional. c) Número trascendental.
  3. Investigue y enuncie la definición para cada uno de los siguientes objetos ma- temáticos: a) Conjunto. b) Conjunto finito. c) Conjunto infinito.
  4. Investigue y enuncie la definición para cada uno de los siguientes objetos ma- temáticos: a) Función parcial. b) Función total. c) Función inyectiva. d ) Función sobreyectiva. e) Función biyectiva.
  5. Investigue y enuncie la definición para cada uno de los siguientes objetos ma- temáticos: a) Relación binaria. b) Relación binaria reflexiva. c) Relación binaria irreflexiva. d ) Relación binaria simétrica. e) Relación binaria antisimétrica. f ) Relación binaria asimétrica.

0.1. Preludio 5

g) Relación binaria transitiva.

  1. Investigue y enuncie la definición para cada uno de los siguientes objetos ma- temáticos: a) Monoide algebraico. b) Grupo algebraico. c) Retículo algebraico. d ) Espacio métrico. e) Espacio topológico.
  2. Investigue y enuncie los siguientes teoremas (sin demostración): a) Teorema fundamental de la aritmética. b) Teorema fundamental del álgebra. c) Teorema fundamental del cálculo.
  3. Para cada una de las siguientes abreviaciones, investigue su origen en latín, su significado en castellano y formule un ejemplo de su uso: a) e.g. b) et al. c) etc. d ) i.e. e) ibid. f ) Ph.D. g) Q.E.D. h) v.gr. i) viz. j ) vs.
  4. Para cada una de las siguientes expresiones en latín, investigue su siginificado en castellano y explique cómo puede ser usada en matemáticas: a) a fortiori. b) a priori. c) ad absurdum. d ) ad infinitum.
  5. Investigue acerca del orígen en griego antíguo de la palabra “lema” y su signifi- cado en castellano. Además, enuncie tres lemas importantes de las matemáticas.
  6. Investigue acerca del orígen en griego antíguo de la palabra “corolario” y su significado en castellano. Además, enuncie un corolario importante de las ma- temáticas.

0.2. Inducción 7

Metateorema 0.

Considere una propiedad M sobre los números naturales y los siguientes dos casos:

  1. Caso base: el número natural 0 satisface la propiedad M , (i.e., hay una de- mostración de M (0)).
  2. Caso inductivo: si n es un número natural para el cual se supone M , en- tonces se puede demostrar que n + 1 tiene la propiedad M (i.e., se tiene una demostración de que M (n) implica M (n + 1)). El principio de inducción matemática indica que si las condiciones (1) y (2) son ciertas, entonces todo n ∈ N tiene la propiedad M.

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).