L'equivalenza è solo equivalenza nella teoria equazionale in discussione. In questo caso, è la teoria delineata nella Tabella 1. Nota che questa teoria non include : fare ciò renderebbe la teoria estensiva, e il punto è che infine rispetta l' intensionalità di , mentre renderebbe CL parzialmente estensivo. Non sono sicuro del motivo per cui l'altra risposta menziona .ληξλη
Nota che in :λ
(M=βN)⟹(λx.M=βλx.N)(1)
Ciò dovrebbe essere intuitivamente ovvio: se è convertibile in quando si trova da solo, allora è anche convertibile in quando si tratta di un sottoterma di .MβNβNλx.M
La -rule, definita come
rende direttamente possibile questa inferenza quando fa parte di una teoria . Il suo analogo CL sarebbe:
ξ
M(λx.M)=N=(λx.N)(ξλ)
λM(λ∗x.M)=N=(λ∗x.N)(ξCL)
Ora, il punto è che in CL non vale :
(M=wN)⟹(λ∗x.M=wλ∗x.N)(2)
In altre parole, se due termini sono debolmente uguali, ciò non è necessariamente vero per le loro versioni pseudo-astratte.
Di conseguenza, se aggiungiamo a una teoria CL, allora iniziamo a equiparare i termini che hanno forme normali diverse.ξCL
Nota. Qui, indica uguaglianza debole. Significa che può essere convertito in (e viceversa) da una serie di e (possibilmente anche , se fa parte della teoria). Come probabilmente saprai, è l'analogo CL di .M=wNMNSKI=w=β
λ∗ è lo pseudoastrattore come definito a pagina 5 del documento. Ha la seguente proprietà:
(λ∗x.M)N⊳w[N/x]M(3)
Questa proprietà semplifica la ricerca di un analogo CL per qualsiasi -term: basta cambiare in e applicare le traduzioni secondo la definizione di .λλλ∗λ∗
Per essere chiari, il "contro-esempio" in questa risposta non è un contro-esempio per (2). Perché se abbiamo:
M=x(4)
N=(λ∗z.z)x(5)
Quindi indica davvero (applicando le traduzioni della pagina 5 e il fatto che è definito come alla fine della pagina 4):NISKK
N=(λ∗z.z)x=Ix=SKKx(6)
Dal momento che , abbiamo infatti ha che . Tuttavia, se si tratta di un contro-esempio, dovremmo avere quello . Ma se traduciamo, effettivamente otteniamo:SKKx⊳wKx(Kx)⊳wxM=wN(λ∗y.M)≠w(λ∗y.N)
(λ∗y.M)=(λ∗y.x)=Kx(7)
(λ∗y.N)=(λ∗y.SKKx)=K(SKKx)(8)
Ed è facile verificare che (7) e (8) siano ancora debolmente uguali, per:
K(SKKx)⊳wK(Kx(Kx))⊳wKx(9)
Ora, un contro-esempio corretto per (2) sarebbe:
M=Kxy
N=x
Dal momento che , abbiamo sicuramente che . Tuttavia, se traduci attentamente per le versioni astratte, vedrai che entrambe sono forme normali distinte - e queste non possono essere convertibili secondo il teorema di Church-Rosser.Kxy⊳wxM=wN
Per prima cosa controlliamo :M′
M′=λ∗x.Kxy=S(λ∗x.Kx)(λ∗x.y)=S(λ∗x.Kx)(Ky)=S(S(λ∗x.K)(λ∗x.x))(Ky)=S(S(λ∗x.K)(I))(Ky)=S(S(λ∗x.K)(SKK))(Ky)=S(S(KK)(SKK))(Ky)
Qui puoi verificare che sia un modulo normale.
Qui puoi controllare che , come dovresti aspettarti se si suppone che si comporti come un abstractor per CL.
M′(λ∗x.Kxy)P⊳wPλ∗
Ora controlliamo :
N′
N′=λ∗x.x=I=SKK
Che è ovviamente una forma normale diversa da , quindi dal teorema di Church-Rosser. Si noti inoltre che , cioè e 'producono lo stesso risultato' per ingressi arbitrari .M′M′≠wN′N′P⊳wPM′N′P
Abbiamo ora dimostrato che (2) non è valido in CL e che una teoria di CL che incorpora equiparerebbe quindi termini che non sono debolmente uguali. Ma perché ci importa?ξ
Bene, prima di tutto, rende imperfetta l'interpretazione combinatoria di : apparentemente non tutte le proprietà metateoretiche continuano.λ
Inoltre, e forse ancora più importante, mentre esistono teorie estensive di e CL, esse sono originariamente e comunemente mantenute intensionali. L'intensionalità è una bella proprietà perché e il calcolo del modello CL come processo, e da questa prospettiva due programmi diversi (in particolare, termini che hanno una forma normale diversa) che producono sempre gli stessi risultati (dati input uguali) non devono essere equiparati. rispetta questo principio in , e se vogliamo rendere estensione , potremmo semplicemente aggiungere ad esempio . Ma l'introduzione diλλξλληξin CL non lo renderebbe più completamente intenzionale (in effetti, solo parzialmente). E questa è la ragione della "notorietà" di , come afferma l'articolo.ξ