Vamos seja -redução no -calculus. Definir expansão por .
É confluentes? Em outras palavras, temos que para qualquer , se , então existe tal que ?
Palavras-chave: confluência ascendente, propriedade CR de cabeça para baixo
Comecei examinando a propriedade mais fraca: confluência local (ou seja, se , então ). Mesmo se isso fosse verdade, não implicaria confluência, já que a expansão não tem fim, mas eu pensei que isso me ajudaria a entender os obstáculos.
(Superior) No caso em que ambas as reduções são em alto nível, a hipótese torna-se . Até renomeação de α , podemos assumir que e que nem nem são livres nesses termos.
(Lance) Se não é livre em , temos e, por conseguinte, ter .
Uma prova ingénuos por indução (em e ) para o caso (Superior) seria o seguinte:
Se for uma variável ,
Se , a hipótese torna-se , e que, de facto, .
Se , então podemos simplesmente usar (Lance).
As mesmas provas aplicadas são é uma variável.
Para e , torna-se a hipótese e a hipótese de indução dá tal que o que implica que . Infelizmente, não temos . (Isso me faz pensar em redução.)
Um problema semelhante surge para aplicativos: os s não estão onde deveriam estar.
fonte
Respostas:
Dois contra-exemplos são:
O contra-exemplo detalhado abaixo é apresentado em The Lambda Calculus: Its Syntax and Semantics por HP Barenredgt, edição revisada (1984), exercício 3.5.11 (vii). É atribuído a Plotkin (nenhuma referência precisa). Dou uma prova incompleta, que é adaptada de Vincent van Oostrom, de um contra-exemplo diferente, em Take Five: a Easy Expansion Exercise (1996) [PDF] .
A base da prova é o teorema da padronização, que nos permite considerar apenas expansões beta de uma determinada forma. Intuitivamente falando, uma redução padrão é uma redução que faz todas as suas contrações da esquerda para a direita. Mais precisamente, uma redução não é padrão se houver uma etapaMi cujo redex é um resíduo de um redex à esquerda do redex da etapa anterior Mj ; “Esquerda” e “direita” para um redex são definidas pela posição de λ que é eliminada quando o redex é contratado. O teorema da padronização afirma que, se M→∗βN , há uma redução padrão de M paraN .
SejaL=(λx.bx(bc))c e R=(λx.xx)(bc) . Ambos os termos beta-reduzem para bc(bc) em uma etapa.
Suponha-se que há um antepassado comumA tal que L←∗βA→∗βR . Graças ao teorema da padronização, podemos assumir que ambas as reduções são padrão. Sem perda de generalidade, suponha que A seja o primeiro passo em que essas reduções diferem. Destas duas reduções, seja σ aquele em que o redex do primeiro passo fica à esquerda do outro e escreva A=C1[(λz.M)N] ondeC1 é o contexto dessa contração e (λz.M)N τ a outra redução. é o redex. Deixeiτ
Comoτ é padrão e seu primeiro passo é à direita do orifício em C1 , ele não pode se contrair em C1 nem à esquerda dele. Portanto, o termo final de τ tem a forma C2[(λz.M′)N′] onde as partes de C1 e C2 à esquerda de seus orifícios são idênticas, M→∗βM′ e N→∗βN′ . Como σ Scomeça por reduzir em C1 e nunca reduz mais à esquerda, seu termo final deve ser da forma C3[S] que a parte de C3 à esquerda de seu orifício é idêntica à parte esquerda de C1 e C2 , e M[z←N]→∗βS .
Observe que cada um deL e R contém um único lambda que fica à esquerda do operador do aplicativo no nível superior. Como τ preserva a lambda de λz.M , este é o lambda em qualquer um de L ou R é o termo final de τ , e em que o termo o argumento da aplicação é obtido reduzindo N . A REDEX está no nível superior, o que significa que C1=C2=C3=[] .
Seτ extremidades em R , então M→∗βzz , N→∗βbc e M[z←N]→∗β(λx.bx(bc))c . Se N tem um descendente em L então este descendente também deve reduzir para bc que é a forma normal de N, pode ser uma lambda, então σN . Em particular, nenhum descendente deN σ não pode contrair uma subtermo da forma N P onde N é um descendente de N . Como o único subtermo de L que reduz a b c é b c , o único descendente possível de N em L é a única ocorrência do próprio b c .NˇP Nˇ N L bc bc N L bc
Seτ extremidades em L , em seguida, M→∗βbz(bc) , N→∗βc , e M[z←N]→∗β(λx.xx)(bc) . Se N tiver um descendente em R , esse descendente também deverá reduzir a c por confluência.
Neste ponto, a conclusão deve seguir facilmente, de acordo com van Oostrom, mas estou perdendo alguma coisa: não vejo como o rastreamento dos descendentes deN fornece informações sobre M . Desculpas pelo post incompleto, vou pensar durante a noite.
fonte
Observe que a reduçãoβ pode fazer qualquer termo desaparecer. Assumindo que a variável x não aparece livre no termo v , você tem (λx.v)t1→βv e(λx.v)t2→βv t1 t2 β t1 t2 u u→∗βt1 u→∗βt2
fonte