Estrutura lógica vs teoria dos tipos


11

Qual é a diferença entre framework lógico e teoria de tipos? Ambos têm tipos, termos e baseiam-se no cálculo lambda de tipo dependente.

Temos Edinburg LF, que é baseado no cálculo lambda-pi, no entanto, parece-me que há alguma diferença sutil lá.

Respostas:


12

Resumo. Uma estrutura lógica é uma meta-linguagem para a formalização de sistemas dedutivos, onde deduções se tornam objetos sintáticos.

Obviamente, o que conta como meta-linguagem é bastante vago e é útil entender o desenvolvimento histórico de estruturas lógicas. O primeiro arcabouço lógico foi o Automath (1) de Bruijn, baseado em -calculus. Muitas das idéias da família de idiomas Automath chegaram às estruturas lógicas modernas. O trabalho de Martin-Löf sobre teorias construtivas de tipos, também baseado em -calculi, também foi influente.λλ

O LF de Edimburgo (2) é uma estrutura lógica muito influente. Edinburgh LF é o que você obtém quando enriquece o -calculus simplesmente digitado com dependência de tipo. Isso é tudo. Para tornar a dependência de tipo precisa, é necessário substituir o operador de espaço de função nos tipos pela abstração de tipo, geralmente escrita e introduza o tipo de tipos, bem como a abstração de tipos. Em termos de regras, a chave está na regra de eliminação para , resp. :Um B Π x Uma . B Um B Π x Uma . BλABΠxA.BABΠxA.B

ΓM:ABΓN:AΓMN:BΓM:ΠxA.BΓN:AΓMN:B{N/x}

À esquerda, temos a regra para o -calculus simplesmente digitado ; à direita, a regra que generaliza a esquerda com dependência de tipo. Vemos que um valor 'flui' para o tipo na conclusão à direita.λ

Eu acho que a assistente interativa de provas Isabelle usa lógica intuicionista de segunda ordem com base em -calculus, sem nenhum número ou tipos de dados recursivos como estrutura lógica. Vários outros foram propostos.λ

Uma vantagem de usar -calculi como estrutura lógica é que construções de ligação como quantificadores universais podem ser implementadas usando o encadernador estrutura. Observe que a maioria das estruturas lógicas é expressivamente fraca: as estruturas suportam o raciocínio no nível do objeto, mas são insuficientes para executar muito raciocínio metateórico, além do fato de que uma determinada instrução no nível do objeto é um teorema. De fato, a lógica do metal é geralmente tão fraca que até provar o teorema da dedução para uma lógica de objetos no estilo Hilbert é impossível. Obviamente, nada impede você de usar teorias de tipos mais poderosas como estrutura lógica.λλλ

Por essas razões práticas e históricas, a maioria das estruturas lógicas em uso atualmente são do tipo -calculi, isto é, teorias de tipos. Veja (3, 4) para discussões mais aprofundadas sobre estruturas lógicas.λ

  1. N. de Bruijn: A linguagem matemática AUTOMATH, seu uso e algumas de suas extensões.

  2. RF Harper, F. Honsell, G. Plotkin: Uma estrutura para definir lógicas .

  3. F. Pfenning: estruturas lógicas.

  4. F. Pfenning: Estruturas Lógicas - Uma Breve Introdução .


Você conhece algum livro introdutório sobre assistentes de prova (estruturas lógicas) adequados para alguém que já conhece os conceitos básicos de cálculo lambda simplesmente digitado e lógica de primeira ordem?
Trismegistos

1
@Trismegistos Acho que não. Sugiro aprender um assistente específico. O Agda é o mais fácil de entrar, pois é basicamente Haskell, mas com tipos dependentes. Na minha experiência, a estrutura lógica não é tão importante quanto outras dimensões dos assistentes de prova. Por exemplo, Isabelle é um provador genérico que você pode instanciar com diferentes lógicas, expondo realmente a estrutura lógica. Mas Isabelle / HOL é a única instanciação usada na prática. Isso ocorre porque todas as táticas de prova, todo o suporte do testador foram escritos para a lógica do objeto HOL. E a usabilidade de um provador depende disso.
Martin Berger
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.