Podría haber una disculpa por hacer otra pregunta sobre los requisitos previos, pero estaba confundido acerca de los puntos de partida. Me he encontrado con varios términos como "Lógica modal", "Lógica temporal", "Lógica de primer orden", "Lógica de segundo orden" y "Lógica de orden superior".
¿Qué significa exactamente "Lógica" en este contexto? ¿Cómo definimos rigurosamente la palabra "lógica"?
Después de pasar por las páginas iniciales de algunos libros, puedo concluir aproximadamente que una "lógica es una forma de decidir qué sigue a partir de qué y es importante en el diseño de lenguajes de programación, ya que dicta y facilita el diseño de programas para razonar y comprender programas automáticamente. Quiero comprender el segundo punto de una manera un poco elaborada.
Ahora llegando a estas lógicas.
¿Todas estas lógicas, "Lógica temporal", "Lógica modal", "Lógica de primer orden", "Lógica de orden superior" son independientes unas de otras o necesitamos entender algunas de estas lógicas para entender algunas otras en este grupo? En pocas palabras, ¿cuáles serán los requisitos previos para ellos? (Será genial si puedo obtener sugerencias sobre algunos materiales también).
PD: Muchas gracias por tu amabilidad
fuente
Respuestas:
Fundamentalmente, una lógica consta de dos cosas.
La diferencia entre diferentes lógicas está, más simplemente, en la elección de la sintaxis y la semántica. La mayoría de las lógicas son extensiones de lógica proposicional o lógica de primer orden . En cierto sentido, puede ver estas extensiones como "agregar más funciones" a la lógica. Por ejemplo, la lógica temporal trata con verdades que pueden variar con el tiempo.
En general, estas características podrían expresarse en una lógica más simple, a costa de tener que escribir fórmulas más largas. Por ejemplo, el concepto temporal " es verdadero desde este punto por la eternidad" se puede expresar de una manera de primer orden agregando un parámetro de tiempo a todas sus proposiciones y diciendo "Para todos los tiempos , si es mayor o igual que a la hora actual, entonces es verdadero en el tiempo ". En cierto sentido, puede pensar en estas lógicas como agregar bibliotecas a un lenguaje de programación básico para que pueda decir las cosas más fácilmente.φ t t φ t
Dado que casi todas las lógicas se basan en una lógica proposicional y de primer orden, recomiendo aprender primero sobre ellas.
fuente
Mientras que campos como la informática, las matemáticas y la física están relativamente bien organizados, la lógica tiene una historia caótica. Su organización es realmente confusa, así que creo que es importante leer algo de historia para comprender la estructura densa del campo.
El camino que debe elegir dependerá de sus antecedentes y objetivos .
¿Qué es una lógica?
El punto de vista tradicional dice que una lógica es un sistema formal con un lenguaje formal (sintaxis), una semántica (significado externo, pensar en intérpretes de programas) y un conjunto de reglas para deducir declaraciones de otros (piense en las reglas de reducciones de programas). Una lógica se ve puramente como un simple objeto matemático.
El punto de vista moderno, dice, a través del famoso isomorfismo de Curry-Howard de que una lógica es un sistema de tipos coherente (las pruebas son programas y los tipos son fórmulas). Más precisamente: un sistema de reglas de inferencias que disfruta del teorema de eliminación de cortes y el teorema de la confluencia / teorema de Church-Rosser que implica que el sistema de programación subyacente se comportará bien.
Sobre las órdenes, la lógica proposicional puede verse como un sistema de orden 0 (digamos que las variables para las proposiciones se observan ). Se comportan como una función sin argumentos (constantes).p,q
En general, no hay consenso sobre qué es una lógica en realidad. Algunos filósofos usan sistemas que no tienen un sistema de programación subyacente coherente. En realidad, diría que cada campo que usa Logic tiene su propia concepción de la lógica. Y a la mayoría de los matemáticos probablemente no les importa lo que es una lógica.
La estructura del campo
La historia de Logic es demasiado grande, así que solo daré la estructura del campo. El campo de la lógica formal se divide en: el uso filosófico, matemático y computacional. La lógica formal comienza en el siglo 19-20.
Debe estudiar la lógica proposicional y la lógica de primer orden primero. Son los más estándar. Fueron creados para dar una cuenta formal / matemática a la vieja lógica de la época de la antigua Grecia.
La lógica de segundo orden es una extensión de la lógica de primer orden que es una extensión de la lógica proposicional. Es particularmente interesante porque la aritmética "vive" en el segundo orden (predicados en predicados con inducción). De manera similar, la topología vive en el "tercer orden" (predicados en conjuntos que pueden verse como predicados mismos).
Luego vino LEJ Brouwer que dividió la lógica en dos:
En otro contexto, los filósofos se interesaron en la lógica formal y pensaron que podría responder preguntas filosóficas (filosofía analítica). Crearon sus propios sistemas lógicos independientes (lógicas paraconsistentes, lógicas de relevancia y lógicas modales como lógicas deónticas, lógicas temporales, lógicas epistémicas, ...). La lógica modal no funciona con la verdad sino con modalidades como posibilidad, necesidad, tiempo, conocimiento. Todos son independientes de las lógicas anteriores.
La correspondencia de Curry-Howard da una correspondencia formal (isomorfismo) entre pruebas y programas. Ahora muchas lógicas podrían verse como sistemas de programación y viceversa. La lógica intuicionista que fue un poco ignorada ahora se ve como un sistema de programación funcional ( -calculus). Conduce al estudio de la teoría de tipos . Es un tema de investigación actualmente activo.λ
Los científicos informáticos querían verificar y probar la intensidad de los sistemas de manera formal y parece que las lógicas modales son relevantes. Hoy usan lógicas temporales y lógicas modales para razonar sobre sistemas (ver: métodos formales, verificación de modelos). Los sistemas se modelan a través de la teoría de autómatas (por ejemplo) y se verifican mediante herramientas lógicas. Condujo a la lógica temporal lineal (LTL) y la lógica de árbol computacional (CTL) .
En la misma motivación, los informáticos querían verificar la solidez y probar las propiedades de los programas. Entonces inventamos la lógica de Hoare para programas imperativos y, en general, las lógicas de separación .
Al estudiar el isomorfismo de Curry-Howard, surgió una nueva lógica: la lógica lineal que restringe las reglas estructurales (debilitamiento y contracción) vistas como el borrado y la duplicación que operan en pruebas y programas. El potencial infinito de la verdad está explícito. Parece que esta lógica es una generalización de la lógica clásica e intuicionista y ofrece una concepción completamente nueva de la lógica basada en la computación y un paradigma de procedimiento. Principalmente es estudiado por informáticos.
La lógica lineal también proviene de lo que llamamos lógicas subestructurales que rechazan las reglas estructurales de la lógica. Relevant Logic y Affine Logic son ejemplos de tales sistemas.
Resumen y selección de ruta
Cualquier lógica puede ser: lógica proposicional, primer orden, segundo orden, tercer orden, ..., orden superior (cada uno se extiende al anterior).
Podemos agregar o eliminar reglas para crear variantes de sistemas existentes:
Aprenda primero la lógica proposicional y de primer orden y:
Referencias (libros)
Yo personalmente recomiendo mezclar referencias, si es posible.
Referencias (Wikipedia)
fuente
Todas estas lógicas están por debajo de la lógica matemática .
Además, si desea conocer la lógica en términos generales, este artículo podría ser útil.
fuente