Eu tenho o que chamaria de uma pergunta filosófica sobre o cálculo-λ.
Ao explorar o cálculo λ, você ficará surpreso ao ver todas as coisas que você pode fazer lá. Você pode definir números inteiros, operações aritméticas, booleanos, instruções if-then-else, loops, funções recursivas, etc. Eu acredito que isso foi provado computacionalmente completo.
Mas, por outro lado, se você considerar o que pode fazer com as funções no cálculo λ, percebe que a única coisa que pode fazer é alimentar uma função e ela retorna outra função. E esse processo nunca termina.
Então, como você pode extrair um resultado de uma computação?
Suponha que o resultado de uma expressão seja função f. Você deseja verificar se fé o que você esperava. Você pode testá-lo, executar uma função que você conhece, aplicar fa ela e receber g. Mas para verificar gestá correto, agora você precisa verificar o que gfaz. E você começa tudo de novo. Então, como você pode contar alguma coisa f?
Parece-me que você pode substituir todas as funções no cálculo λ por uma única função, a função identidade I = λx.xe tudo ainda funciona como descrito no cálculo λ. O numeral da Igreja 3quando dado fe xretorna f(f(f(x))). Mas desde fe xsó pode ser I, ele retorna I. Iaplicado Ie Itambém retorna I. Então, Isatisfaz a definição de 3. Os "booleanos" (λxy.x)e (λxy.y)precisam de 2 argumentos, que serão Ie, Iportanto, os dois booleanos retornarão I. Cada um é equivalente à identidade, mesmo que eles se comportem exatamente de acordo com suas definições.
Então, como você faz a diferença? Como você mostra que o cálculo λ lida com mais do que apenas uma única função?
Existe um conceito de identidade? Você pode identificar uma função imediatamente sem avaliá-la? Eu acredito que foi provado que não há como testar duas funções para igualdade.
Ou o λ-cálculo não é sobre funções, mas sobre a descrição formal do que elas fazem? Isso significaria que as expressões λ não apenas definem o que as funções fazem, mas também são os dados que as funções manipulam. Então, quando você escreve A B, você não se aplicam Aa B, mas você aplica a função descrita pela cadeia Ade definição formal de uma função contida em Bretornar outra definição formal.
O que realmente está acontecendo no cálculo λ? Quais são os objetos matemáticos com os quais lida?
Acompanhamento:
OK, a partir da resposta abaixo, parece que o cálculo λ não é tanto sobre funções no sentido matemático, mas sobre o subconjunto de funções que pode ser expresso como expressões λ. Ou ainda mais sobre a manipulação de expressões λ.