Existem vários aspectos para essa pergunta muito legal, portanto estruturarei esta resposta de acordo.
1. A resposta para a pergunta em caixa é não . Os termo sugerido pelo seu amigo é realmente um contra-exemplo.Ω3=(λx.xxx)(λx.xxx)
Foi observado anteriormente nos comentários que se tem contra-exemplos como o "ogro" , até que a questão seja restrita a termos sem forma normal de cabeça fraca. Tais termos são conhecidos comotermos zero. Estes são termos que nunca se reduzem a um lambda, sob qualquer substituição.K∞=YK
Para qualquer combinador de ponto fixo (fpc) ,Y é o chamadotermomudo(AKA "root-active"): cada redução do mesmo reduz-se ainda mais a um redex.YI
não é mudo; nem é Ω 3 - como é manifestado pela inspeção de seu conjunto de redutos, que é
{ Ω 3 ( λ x . x x x ) ⋯ ( λ x . x x x ) ⏟ k ∣K∞Ω3 -
{ Ω3( λ x . x x x ) ⋯ ( λ x . x x x )k| K ∈ N }
Em vez de apresentar um argumento preciso por que é mudo para todos os fpcs YYEuY (de fato, para qualquer combinador de loop) que pode ser trabalhoso, mas esperançosamente claro o suficiente - , tratarei a generalização óbvia de sua pergunta, restringindo também os termos mudos.--
Termos mudos são uma subclasse de termos zero que são uma subclasse de termos insolúveis. Juntas, essas são talvez as escolhas mais populares para o conceito de "sem sentido" ou "indefinido" no cálculo lambda, correspondendo às árvores triviais de Berarducci, Levy-Longo e B \ ohm, respectivamente. A estrutura de noções de termos sem sentido foi analisada em detalhes por Paula Severi e Fer-Jan de Vries. [1] Os termos mudos constituem o elemento inferior dessa treliça, ou seja, a noção mais restritiva de "indefinido".
2. Seja um termo mudo e Y seja um combinador de loop com a propriedade que YMY .YEu= M
Primeiro, argumentamos que, para uma variável nova , Y z se parece muito com o Y M que você descreveu, obtido por "aspersão zzYzYMz em torno de" alguns reduct de .M
Por Church-Rosser, e M têm um reduto comum, M ′ . Faça uma redução padrão R : Y I ' s M ' . Todo subtermo de M ′ corresponde a um subtermo único de Y I ≡ Y z [ z : = I ] sob esta redução. Para qualquer subtermo C [ N ] = M ′ , fatores R como N 0 ] ↠ wYEuMM′R : YEu↠sM′M′YEu≡ Yz[ z: = I]C[ N] = M′R, em que a perna do meio é uma redução de cabeça fraca (e etapa final é interna). Né "guardado" por umzse esta segunda etapa contrair algum redexIP, comIum descendente da substituição[z:=I].YEu↠ C[ N0 0] ↠w hC[ N1] ↠EuC[ N]NzEuPEu[ z: = I]
Obviamente, tem que guardar alguns subtermos de M , caso contrário seria mudo também. Por outro lado, deve-se ter cuidado para não guardar os subtermos necessários para a não terminação, pois, caso contrário, não poderá desenvolver a árvore B \ "ohm infinita de um combinador em loop.YM
Assim, basta encontrar um termo mudo no qual todo subtermo, de cada redução, é necessário para a não normalização, no sentido de que colocar uma variável na frente desse subtermo produz um termo normalizador.
Considere , onde W = λ w . w eu w w . É como Ω , mas a cada iteração, verificamos que a ocorrência de W na posição do argumento não é "bloqueada" por uma variável head, alimentando-a com uma identidade. Colocar um z na frente de qualquer subtermo resultará em uma forma normal de forma z P 1 ⋯ P k , onde cada P i é I , W ou a " zΨ = WWW= λ w . w Iw wΩWzzP1⋯ PkPEuEuWz borrão " deles. Então Ψ é um contra-exemplo para a questão generalizada.
TEOREMA. Não existe um combinador de loop tal que Y I =Y .YEu= Ψ
PROVA. O conjunto de todas as redutos de é { W W , W I W W , I I I I W W , I I I W W , I I W W , I W W } . Para ser conversível com Ψ , Y devo reduzir a um deles. O argumento é idêntico em todos os casos; para concreção, suponhamos que Y I ↠ I I W W .Ψ{ WW, WEuWW,IIIIWW,IIIWW,IIWW,IWW}ΨYIYEu↠ euEuWW
Qualquer redução padrão pode ser tomada como
Y I ↠ w P N 4 , P ↠ W Q N 3 , Q ↠ w N 1 N 2 , assim Y I ↠ w N 1 N 2 N 3 N 4 N 1 ↠ I , N 2 ↠ I , N 3YEu↠sEuEuWW
YEu↠WPN4, P↠WQ N3, Q ↠WN1N2, assim , YEu↠WN1N2N3N4N1↠ eu, N2↠ eu, N3↠ W, N4↠ W
Vamos nos referir à redução como R 0 , e as reduções a partir de N i como R iYEu↠WN1N2N3N4R0 0NEuREu .
Estas reduções podem ser levantado através da substituição para produzir
R z 0 : Y z ↠ z k ( M 1 M 2 M 3 M 4 ) N i ≡ H i [ z : = I ]
de modo a que R 0 é a composição Y I R z 0 [ z : = I ] ↠ I[ z: = I]
Rz0 0: Yz↠ zk( M1M2M3M4)NEu≡ MEu[ z: = I]
R0 0YEu↠Rz0 0[ z: = I]Euk( N1⋯ N4) ↠kWN1⋯ N4
REu: NEu↠ N∈ { I, W}
RzEu: MEu↠ NzEuREu: NEu↠RzEu[ z: = I]NzEu[ z: = I] ↠EuN
REuEuNzEu[ z: = I]NNzEu
NzEuzNzNN∈ { I, W}NzEu
zk1( λ x . zk2( x ) )zk1( λ w . zk2( zk3( zk5( zk7( w ) zk8( λ x . zk9( x ) ) ) zk6( w ) ) zk4( w ) ) )
M1M2M3M4↠ Nz1Nz2Nz3Nz4NzEuzEui = 1 , 2Wi = 3 , 4
Ao mesmo tempo, o termo Nz1Nz2Nz3Nz4 ainda deve reduzir para produzir a infinita fpc Bohm tree z( z( z( ⋯ ) ) ). Portanto, deve haver uma "aspersão"zkj em um dos NzEu que chega infinitamente frequentemente à cabeça do termo, mas não bloqueia reduções adicionais dele.
E agora terminamos. Inspecionando cadaNzEu, para i ≤ 4e cada valor possível de kj, para j ≤ 2 + 7 ⌊ i - 12⌋, descobrimos que não existe tal aspersão.
Por exemplo, se modificarmos o último W dentro EuEuWW Como Wz= λ w . z( W Iw w ), obtemos a redução de normalização
EuEuWWz→ euWWz→ WWz→ WzEuWzWz→ z( EuEuEuEu) WzWz↠ zEuWzWz
(Notar que Ωadmite tal aspersão precisamente porque um certo subtermo dele pode ser "protegido" sem afetar a não normalização. A variável vem na posição principal, mas redexes suficientes permanecem abaixo.)
3. A "transformação por aspersão" tem outros usos. Por exemplo, colocandoz na frente de cada redex em M, obtemos um termo N= λ z. Mz que é uma forma normal, mas satisfaz a equação NEu= M. Isso foi usado por Statman em [2], por exemplo.
4. Como alternativa, se você relaxar o requisito de que YEu= M, você pode encontrar vários fpcs (fracos) Y que simulam a redução de M, enquanto produz uma cadeia de zs ao longo do caminho. Não tenho certeza se isso responderia à sua pergunta geral, mas certamente há várias transformações (computáveis)M↦ YM que produzem combinadores de loop para cada mudo M, de tal maneira que o gráfico de redução de YM é estruturalmente semelhante ao de M. Por exemplo, pode-se escrever
Y⌈ M⌉ z= { z( Y⌈ P[ X : = Q ] ⌉ z)Y⌈ N⌉ zM≡ ( λ x . P) QM não é um redex e M→w hN
[1] Severi P., de Vries FJ. (2011) Decompondo a Malha de Conjuntos Sem Significado no Cálculo Infinitário de Lambda. In: Beklemishev LD, de Queiroz R. (eds) Lógica, Linguagem, Informação e Computação. WoLLIC 2011. Notas de aula em Ciência da Computação, vol 6642.
[2] Richard Statman. Não há combinador hiper-recorrente S, K. Relatório de Pesquisa 91–133, Departamento de Matemática, Universidade Carnegie Mellon, Pittsburgh, PA, 1991.