Pode haver um pedido de desculpas por fazer outra pergunta sobre pré-requisitos, mas fiquei confuso sobre os pontos de partida. Encontrei vários termos como "Lógica Modal", "Lógica Temporal", "Lógica de Primeira Ordem", "Lógica de Segunda Ordem" e "Lógica de Ordem Superior".
O que exatamente "Lógica" significa neste contexto? Como definimos rigorosamente a palavra "lógica"?
Depois de percorrer as páginas iniciais de alguns livros, posso concluir grosseiramente que a "Lógica é uma maneira de decidir o que se segue e o que é significativo no design de linguagens de programação, uma vez que dita e facilita o design de programas para raciocinar e entender automaticamente os programas. Quero entender sobre o segundo ponto de maneira um pouco elaborada.
Agora vindo para essas lógicas.
Todas essas lógicas, "lógica temporal", "lógica modal", "lógica de primeira ordem", "lógica de ordem superior" são independentes umas das outras ou precisamos entender algumas dessas lógicas para entender algumas outras desse grupo? Em poucas palavras, quais serão os pré-requisitos para eles? (Será ótimo se eu também puder obter sugestões sobre alguns materiais.)
PS: Muito obrigado pela sua gentileza
fonte
Respostas:
Fundamentalmente, uma lógica consiste em duas coisas.
A diferença entre diferentes lógicas está, mais simplesmente, na escolha da sintaxe e da semântica. A maioria das lógicas são extensões da lógica proposicional ou lógica de primeira ordem . De certa forma, você pode ver essas extensões como "adicionando mais recursos" à lógica. Por exemplo, as lógicas temporais lidam com verdades que podem variar ao longo do tempo.
Em geral, esses recursos podem ser expressos em uma lógica mais simples, ao custo de ter que escrever fórmulas mais longas. Por exemplo, o conceito temporal " é verdadeiro a partir deste ponto para a eternidade" pode ser expresso de uma maneira de primeira ordem, adicionando um parâmetro de tempo a todas as suas proposições e dizendo "Para todos os tempos , se for maior ou igual a para a hora atual, então é verdadeiro no tempo . " Em certo sentido, você pode pensar nessas lógicas como adicionando bibliotecas a uma linguagem de programação básica para poder dizer as coisas com mais facilidade.φ t t φ t
Como praticamente todas as lógicas são baseadas em lógica proposicional e de primeira ordem, eu recomendaria aprender sobre elas primeiro.
fonte
Embora áreas como ciência da computação, matemática e física sejam relativamente bem organizadas, a Logic tem uma história caótica. Sua organização é realmente confusa, então acho importante ler um pouco da história para entender a estrutura densa do campo.
O caminho que você deve escolher dependerá de seus antecedentes e objetivos .
O que é uma lógica?
O ponto de vista tradicional diz que uma lógica é um sistema formal com uma linguagem formal (sintaxe), uma semântica (significado externo, pense em intérpretes de programas) e um conjunto de regras para deduzir declarações de outras (pense nas regras de reduções de programas). Uma lógica é puramente vista como um mero objeto matemático.
O ponto de vista moderno, diz, através do famoso isomorfismo de Curry-Howard, de que uma lógica é um sistema de tipos coerente (provas são programas e tipos são fórmulas). Mais precisamente: um sistema de regras de inferências desfrutando do teorema da eliminação de cortes e do teorema de Church-Rosser / teorema da confluência, implicando que o sistema de programação subjacente se comportará bem.
Em geral, não há consenso sobre o que é realmente uma lógica. Alguns filósofos usam sistemas que não possuem um sistema de programação subjacente coerente. Na verdade, eu diria que todo campo que usa o Logic tem sua própria concepção de lógica. E a maioria dos matemáticos provavelmente não se importa com o que é uma lógica.
A estrutura do campo
A história da lógica é muito grande, então vou apenas dar a estrutura do campo. O campo da lógica formal está dividido em: uso filosófico, matemático e computacional. A lógica formal começa no século 19-20.
Você deve estudar lógica proposicional e lógica de primeira ordem primeiro. Eles são os mais comuns. Eles foram criados para dar uma conta formal / matemática à velha lógica da época da Grécia Antiga.
A lógica de segunda ordem é uma extensão da lógica de primeira ordem, que é uma extensão da lógica proposicional. É particularmente interessante porque a aritmética "vive" na segunda ordem (predicados de predicados com indução). Da mesma forma, a topologia vive na "terceira ordem" (predicados em conjuntos que podem ser vistos como predicados).
Depois veio LEJ Brouwer, que dividiu a lógica em duas:
Em outro contexto, os filósofos se interessaram pela lógica formal e pensaram que ela poderia responder a questões filosóficas (filosofia analítica). Eles criaram seus próprios sistemas lógicos independentes (lógicas paraconsistentes, lógicas de relevância e lógicas modais, como lógicas deônticas, lógicas temporais, lógicas epistêmicas, ...). A lógica modal não funciona com a verdade, mas com modalidades como possibilidade, necessidade, tempo, conhecimento. Eles são todos independentes das lógicas acima.
Os cientistas da computação queriam verificar e provar a sonoridade dos sistemas de maneira formal e parece que a lógica modal é relevante. Hoje eles usam lógica temporal e lógica modal para raciocinar em sistemas (veja: métodos formais, verificação de modelo). Os sistemas são modelados através da Teoria dos Autômatos (por exemplo) e são verificados usando ferramentas lógicas. Isso levou à Lógica Temporal Linear (LTL) e à Lógica de Árvore Computacional (CTL) .
Na mesma motivação, os cientistas da computação queriam verificar a solidez e provar propriedades sobre os programas. Por isso, inventamos o Hoare Logic para programas imperativos e, de maneira mais geral, para o Separation Logics .
Ao estudar o isomorfismo de Curry-Howard, surgiu uma nova lógica: a Lógica Linear que restringe as regras estruturais (enfraquecimento e contração) vistas como apagamento e duplicação operando em provas e programas. A infinidade potencial da verdade é explicitada. Parece que essa lógica é uma generalização da lógica clássica e intuicionista e dá uma nova concepção da lógica baseada na computação e em um paradigma processual. É estudado principalmente por cientistas da computação.
A lógica linear também vem do que chamamos de lógica subestrutural, rejeitando as regras estruturais da lógica. Lógica relevante e Lógica afim são exemplos para esses sistemas.
Resumo e seleção de caminho
Qualquer lógica pode ser: lógica proposicional, primeira ordem, segunda ordem, terceira ordem, ..., ordem superior (cada uma estendendo a anterior).
Podemos adicionar ou remover regras para criar variantes de sistemas existentes:
Aprenda a lógica proposicional e de primeira ordem primeiro e:
Referências (Livros)
Eu pessoalmente recomendo misturar referências, se possível.
Referências (Wikipedia)
fonte
Todas essas lógicas estão sob a lógica matemática .
Além disso, se você quiser conhecer a lógica em termos gerais, este artigo pode ser útil.
fonte