Existem teorias eta intermediárias para o cálculo lambda?

15

Existem duas teorias estudadas principais do cálculo lambda, a teoria beta e sua extensão pós-completa, a teoria beta-eta.

Essas duas teorias têm um meio termo, uma regra eta intermediária que fornece uma teoria de reescrita confluente? Existe alguma noção interessante de extensionalidade parcial a que corresponde?

Esta é a segunda pergunta que eu fiz na busca do eta intermediário, sendo as Extensões da teoria beta do cálculo lambda , que levaram a questionar sobre uma noção ortogonal de extensão. Caracterizando equivalências invisíveis por regras de reescrita confluentes , que procuravam responda a essa pergunta anterior.

Charles Stewart
fonte

Respostas:

10

Para cálculos digitados, se você considerar os tipos negativos ( , × , ), poderá ativar ou desativar as regras eta basicamente à vontade, sem afetar a confluência.1 1×

Para tipos positivos (somas e pares com a eliminação da correspondência de padrões), a situação é muito mais confusa. Basicamente, a questão é se o termo possui uma forma de eliminação em escopo fechado, que permite que os contextos interajam de maneiras complicadas com as eta-expansões. Por exemplo, se tem o tipo A × B , sua eta-expansão é l e teUMA×B . Mas, para obter a teoria equational um teórico categoria seria de esperar, é preciso considerar contextos C [ - ] , e generalizar a equação a ser C [ e ] l e teuet(uma,b)=eEun(uma,b)C[-] (com as restrições de escopo esperadas).C[e]euet(uma,b)=eEunC[(uma,b)]

Acho que você ainda pode provar um resultado de confluência se não permitir as conversões pendulares. Mas isso é boato - nunca tentei eu mesmo, nem vi documentos documentando.

Eu realmente não sei nada sobre cálculo lambda sem tipo, no entanto.

EDIT: Charles pergunta sobre eta-reduções. Isso é promissor para o tipo de exemplo que ele procura, porque acho que em geral eles não serão fortes o suficiente para modelar a teoria da igualdade completa, que ilustrarei com um exemplo simples envolvendo booleanos. A eta-expansão para booleanos é . (A eta-redução é, obviamente, a outra direção.)C[e]Euf(e,C[trvocêe],C[fumaeuse])

Agora, considere o termo . Mostrando que esse termo é equivalente a i f ( e , fEuf(e,f,g)Euf(e,x,y) tem de passar por uma eta-expansão, porque temos de substituir o e em uma do-se, em seguida,-tinha o com t r u e e f um l s e , a fim de conduzir uma β -redução. Euf(e,fx,gy)etrvocêefumaeuseβ

Neel Krishnaswami
fonte
Eu deveria ter deixado claro que se tratava do cálculo lambda não tipado: a lógica à parte pode deixar isso claro. No caso digitado, espero que a integridade do Post seja válida para a teoria 〈→, ×〉, mas não tenho certeza de outros tipos. contextos interagem de maneiras complicadas com eta-expansões - esse é um caso para considerar a redução de eta, não é, porque você não precisa restringir as reescritas?
Charles Stewart
4

De acordo com John C. Mitchell, em Foundations of Programming Languages, tanto no STLC quanto no cálculo lambda não tipado, a regra de redução pair (proj₁ P, proj₂ P) → Pquebra a confluência quando combinada com a fixredução (ou, presumo, olhando a prova), sem essas condições para o caso não tipado. Esse é o teorema 4.4.19 (página 272).

Blaisorblade
fonte
2
Acho que esse é um comentário prolongado sobre a resposta de Neel. Klop e De Vrijer (1989) pesquisam a teoria do cálculo lambda não tipado com emparelhamento surjetivo: o caso com reduções eta é realmente não confluente, mas a teoria é consistente (ela tem um modelo na construção D_inf de Scott) e fornece resultados sugerindo uma teoria conservadora e confluente de reescrita para pares surjetivos (ainda é um problema em aberto, AFAIK).
Charles Stewart