Primeiro, observe que o resultado afirma que o único redex beta em que o lado direito é igual (conversão alfa do módulo) ao lado esquerdo é . Existem outros termos que se reduzem, tendo esse redex em um contexto.(λx.xx)(λx.xx)
Eu posso ver como a maioria das provas de Lercher funciona, embora haja pontos em que eu não posso passar sem modificar um pouco a prova. Suponha que (eu uso( λ x . A ) B = [ B / x ] A para alfa equivalência), e de acordo com a convenção variável supor que x não ocorre livre em B .=xB
Conte o número de 's no lado esquerdo e no lado direito. A redução remove um do REDEX, mais aqueles de B , e adiciona tantos como existem em B vezes o número de ocorrências de x em A . Em outras palavras, se L ( M ) é o número de λ 's em M e # x ( M ) é o número de ocorrências livres de x em M, então 1 + L ( B ) = # x (λBBxUMAL ( M)λM#x( M)xM . A única solução para essa equação diofantina é # x ( A ) = 2 (e L ( B ) = 1, mas não usaremos esse fato).1 + L ( B ) = #x( A ) × L ( B )#x( A ) = 2L ( B ) = 1
Não entendo o argumento de Lercher para o parágrafo acima. Ele conta o número de 's e termos atômicos; vamos escrever este # ( M ) . A equação é # ( B ) + 1 = # x ( A ) × ( # ( B ) - 1 ) , que tem duas soluções: # x ( A ) = 2 , # ( B ) = 3 e # x ( Aλ# ( M)# ( B ) + 1 = #x( A ) × ( # ( B ) - 1 )#x( A ) = 2 , # ( B ) = 3 . Não vejo uma maneira óbvia de eliminar a segunda possibilidade.#x( A ) = 3 , # ( B ) = 2
Vamos agora aplicar o mesmo raciocínio ao número de subtermos igual a em ambos os lados. A redução remove um próximo ao topo e adiciona quantas ocorrências substituídas de x em A , ou seja, 2. Portanto, mais uma ocorrência de B deve desaparecer; Como os que estão em A permanecem (porque B não contém x livre ), a ocorrência extra de B no lado esquerdo deve serBxUMABUMABxB .λx.A
Eu não entendo como Lercher deduz isso não possui B como subtermo, mas isso não é de fato relevante para a prova.UMAB
A partir da hipótese inicial, é uma aplicação. Não pode ser esse o caso se A = x , portanto, A é uma aplicação M N , com λ x . M N = [ ( λ x . M N ) / x ] M = [ ( λ x . M N ) / x ] N[ ( λ x . A ) / x ] AA = xUMAMNλ x . MN= [ ( λ x . MN) / x ] M= [ ( λ x . MN) / x ] N Como não pode se apresentar como um subtermo,M não pode ter a forma λ x . P , então M = xMλ x . PM= x . Da mesma forma, .N= x
Prefiro uma prova sem argumentos de contagem. Suponha que .( λ x . A ) B = [ B / x ] A
Se , temos ( λ x . A ) B = B , o que não é possível, pois B não pode ser um subtermo de si mesmo. Assim, como o lado direito da hipótese é igual a um aplicativo, A deve ser um aplicativo A 1 A 2 e λ x . A = [ B / x ] A 1 e B = [ B /A = x( λ x . A ) B = BBUMAUMA1UMA2λ x . A = [ B / x ] A1 .B = [ B / x ] A2
A partir da igualdade anterior, ou A 1 = λ x . [ B / X ] Uma . No segundo caso, um 1 = λ x . ( λ x . A 1UMA1= xUMA1= λ x . [ B / x ] A , o que não é possível, pois $ A_1 não pode ser um subtermo em si.UMA1= λ x . ( λ x . A1UMA2) B
A partir da igualdade último, quer ou um 2 não tem livres x (de outro modo B seria um subtermo de si mesmo). No último caso,UMA2= xUMA2xB .UMA2= B
Mostramos que . O lado direito da hipótese inicial é, portanto, B B , e B = λ x . A = λ x . xA = x xB BB = λ x . UMA .λ x . x x