O que exatamente é uma lógica?


36

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


17
Irônico que uma pergunta como essa seja feita por alguém chamado Kripke . :-)
David Richerby

11
Devo dizer que sua reação não é estranha. Fiquei bastante surpreso quando encontrei uma definição formal de 'uma álgebra'.
Lagarto discreto

2
@Discretelizard "Álgebra" é provavelmente ainda mais surpreendente, pois não tem absolutamente nada a ver com o que eles chamam de álgebra no ensino médio.
David Richerby

@DavidRicherby Eu também, "álgebra linear" é apenas uma álgebra.
Niklas Rosencrantz

11
@MartinRosenau Por que você acha que isso seria uma barreira para encaixar a lógica difusa em uma noção geral de lógica?
Derek Elkins

Respostas:


39

Fundamentalmente, uma lógica consiste em duas coisas.

  • Sintaxe é um conjunto de regras que determinam o que é e o que não é uma fórmula.
  • Semântica é um conjunto de regras que determinam quais fórmulas são "verdadeiras" e quais são "falsas". Para um teórico de modelos , isso é expresso relacionando fórmulas com as estruturas matemáticas nas quais elas são verdadeiras; para um teórico da prova , a verdade corresponde à provabilidade de um conjunto escolhido de axiomas com um conjunto escolhido de regras (técnicas).

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.φttφt

Como praticamente todas as lógicas são baseadas em lógica proposicional e de primeira ordem, eu recomendaria aprender sobre elas primeiro.


2
Como cientista da computação, também achei a conexão com a teoria de tipos muito útil para aprender lógica. Um sistema de tipos pode ser pensado como uma apresentação alternativa de uma lógica equivalente, através da correspondência de Howard-Curry . Eu recomendo o livro de Pierce para começar.
Phs 25/03

11
Há mais na sintaxe da lógica do que apenas fórmulas, e há mais na semântica do que a mera determinação da verdade.
Andrej Bauer 25/03

Uma perspectiva formal que corresponde aproximadamente à visão mencionada nesta resposta e tenta fornecer uma definição unificadora (e foi projetada para abordar questões em ciência da computação) é a teoria das instituições .
Derek Elkins

Não tão incidentalmente, as instituições são descritas em um artigo intitulado O que é uma lógica?
Derek Elkins

@phs Wow ... não sei como cheguei até aqui, mas esta é a primeira vez que considerei a ideia de que currying uma função poderia ser uma referência a qualquer coisa além do tempero.
Cort Ammon

21

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?

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

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

  3. p,q

    • P,QP(x1 1,...,xn)Q(x1 1,...,xn)
    • Na lógica de segunda ordem, a variável para predicados se torna um tipo de função que assume funções de primeira ordem. Eles se comportam como funções, tendo funções de primeira ordem como argumento. Por exemplo, podemos ter predicados e quantificação sobre predicados.
    • O mesmo raciocínio para terceira ordem, etc. Lógicas de ordem superior aceitam qualquer ordem. Pense em Haskell e OCaml, que possuem funções que assumem funções de funções de funções etc. como argumento.
  4. 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.

    • Teoria dos modelos (semântica), estudar estruturas matemáticas da perspectiva da lógica
    • A teoria da prova (sintaxe), independentemente, estuda as provas como um objeto matemático.
  • 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:

    • UMAUMA¬UMA
    • A lógica intuicionista é um tipo de lógica que rejeita as leis do meio excluídas e todas as leis equivalentes (por razões técnicas e filosóficas que não explicarei aqui).
  • 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:

    • Remova o meio excluído: lógica intuicionista
    • Adicionar modalidades: lógicas modais
    • Restringir a contradição e o enfraquecimento: lógica linear
    • Remover contração: lógica afim
    • Remover enfraquecimento: lógica relevante
    • Lidar com a negação de maneira diferente: lógica paraconsistente
  • Aprenda a lógica proposicional e de primeira ordem primeiro e:

    • teoria dos modelos, segunda ordem, ordem superior, se você estiver interessado em matemática
    • teoria da prova, lógica intuicionista, segunda ordem, lógica linear se você estiver interessado nos fundamentos da ciência da computação
    • lógicas modais, lógicas hoare, lógicas de separação, se você estiver interessado na verificação de sistemas e programas
    • lógicas modais, lógicas não clássicas em geral, se você estiver interessado em filosofia

Referências (Livros)

Eu pessoalmente recomendo misturar referências, se possível.

  • Lógica matemática (Chiswell & Hodges) : livro muito conciso e simples para começar.
  • Um primeiro curso em Logic (Hedman) : um pouco como o anterior, mas fornece mais detalhes e leva em consideração a computabilidade.
  • Manual de lógica prática e raciocínio automatizado (Harrison) : se você quiser entender como alguns conceitos relacionados à lógica são implementados na prática. Mais orientado para o raciocínio automatizado.
  • Lógica em Ciência da Computação (Huth & Ryan) : muito clara e orientada para os cientistas da computação (verificação de programas e sistemas, lógica Hoare, uso prático da lógica modal, lógica temporal, verificação de modelos).
  • Introdução à Teoria da Prova (Buss) : uma introdução à teoria da prova. Deve ser melhor ler isso depois de alguma lógica geral.

Referências (Wikipedia)


Bem, isso é muito ... abrangente, eu diria. Obrigado por tomar o tempo para escrever isso!
Lagarto discreto

5
Isso parece muito abrangente, mas eu realmente não traria Curry-Howard como a segunda coisa que você diz sobre lógica para alguém que está apenas aprendendo o que é. A menos que você esteja realmente estudando teoria dos tipos, Curry-Howard não é "a definição moderna de lógica"; é apenas algo que algumas pessoas fazem com a lógica.
David Richerby

2
@DavidRicherby Ok. Entendo, mas acho que Curry-Howard é importante o suficiente para os cientistas da computação (também porque estamos em cs.stackexchange). Não é realmente uma definição moderna de lógica, mas acho que é para alguns cientistas da computação. O que realmente é uma lógica pode ser subjetivo de qualquer maneira. Sei que nem sempre é uma boa ideia expor o pôster original a muitas coisas, mas não espero realmente uma compreensão completa, mas um panorama abrangente dos ramos da Logic (um pouco tendencioso pelo CS), que pode atuar como um referência para estar ciente de que tipo de lógica existe e onde é usada.
Boris E.

Fiquei com a impressão de que a lógica de ordem superior em Haskell seria operadores de tipo , em vez de funções que poderiam ter funções como entrada.
martin

@martin Hm ... Era apenas uma analogia simples para entender a ideia do mecanismo, mas não deve ser levado muito a sério. Eu queria descrever a idéia de "ordem superior" em vez de precisamente "lógica de ordem superior" (levando em consideração os antecedentes do pôster original).
Boris E.

0

Todas essas lógicas estão sob a lógica matemática .

A lógica matemática é frequentemente dividida nos campos da teoria dos conjuntos, teoria dos modelos, teoria da recursão e teoria da prova. Essas áreas compartilham resultados básicos sobre lógica, particularmente lógica de primeira ordem e definibilidade. Na ciência da computação (particularmente na classificação ACM), a lógica matemática abrange tópicos adicionais não detalhados neste artigo; veja Lógica em ciência da computação para esses.

Além disso, se você quiser conhecer a lógica em termos gerais, este artigo pode ser útil.

A lógica, originalmente significa "a palavra" ou "o que é falado", mas passa a significar "pensamento" ou "razão", é um assunto relacionado às leis mais gerais da verdade e agora é geralmente considerado como consistindo no estudo sistemático da forma de inferência válida. Uma inferência válida é aquela em que existe uma relação específica de suporte lógico entre os pressupostos da inferência e sua conclusão.


4
Hmm, não tenho certeza se isso é muito útil aqui. Você diria que o post de David torna o seu 'substituído'? Se não, por que? Tente expandir isso.
Lagarto discreto

@OmG: Você pode recomendar uma lista de materiais para aprender?
Sheldon Kripke
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.