O combinador Y contradiz a correspondência de Curry-Howard?


16

O combinador Y tem o tipo . Pela correspondência de Curry-Howard, como o tipo é habitado, ele deve corresponder a um verdadeiro teorema. No entanto, é sempre verdadeiro, portanto parece que o tipo do combinador Y corresponde ao teorema , o que nem sempre é verdadeiro. Como isso pode ser?( a a ) a a a a(aa)a(aa)aaaa

Respostas:


21

A correspondência original de Curry-Howard é um isomorfismo entre a lógica proposicional intuicionista e o cálculo lambda de tipo simples.

Existem, é claro, outros isomorfismos do tipo Curry-Howard; Phil Wadler destacou que o nome de cano duplo "Curry-Howard" prevê outros nomes de cano duplo como "Hindley-Milner" e "Girard-Reynolds". Seria engraçado se "Martin-Löf" fosse um deles, mas não é. Mas eu discordo.

O combinador Y não contradiz isso, por um motivo importante: não é expressável no cálculo lambda de tipo simples.

De fato, esse era o ponto. Haskell Curry descobriu o combinador de ponto de fixação no cálculo lambda sem tipo e usou-o para provar que o cálculo lambda sem tipo não é um sistema de dedução sonora.

Curiosamente, o tipo de Y corresponde a um paradoxo lógico que não é tão conhecido como deveria ser, chamado de paradoxo de Curry. Considere esta frase:

Se esta frase for verdadeira, o Papai Noel existe.

Suponha que a frase fosse verdadeira. Então, claramente, Papai Noel existiria. Mas é exatamente isso que a frase diz, então a frase é verdadeira. Portanto, o Papai Noel existe. QED


6
Papai Noel não existe ?!
Andrej Bauer

10
Ele faz, e eu apenas provei.
Pseudônimo

6
Ufa, fiquei preocupada por um momento.
Andrej Bauer

9

O Curry-Howard relaciona sistemas de tipos a sistemas de dedução lógica. Entre outras coisas, ele mapeia:

  • programas para provas
  • avaliação de programas para transformações em provas
  • tipos habitados para proposições verdadeiras
  • sistemas de tipos para sistemas de dedução lógica

umabumabY(λx.x)Y(λx.M)

A correspondência de Curry-Howard é apenas isso: uma correspondência. Por si só, não diz que certos teoremas são verdadeiros. Diz que tipabilidade / provabilidade carrega de um lado para o outro.

A correspondência de Curry-Howard é útil como uma ferramenta de prova em muitos sistemas de tipos: cálculo lambda simplesmente digitado, sistema F, cálculo de construções etc. Todos esses sistemas de tipos têm a propriedade de que a lógica correspondente é consistente (se a matemática usual for consistente ) Eles também têm a propriedade de não permitir recursão arbitrária. A correspondência de Curry-Howard mostra que essas duas propriedades estão relacionadas.

O Curry-Howard ainda se aplica a sistemas de cálculo digitados sem terminação e deduções inconsistentes. Simplesmente não é particularmente útil lá.

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.