Qual è il vantaggio della notazione di Krivine?


9

Ho visto alcune persone usare la notazione di Krivine per l'applicazione della funzione quando presentava la sintassi per il -calculus. Ad esempio, -term (con la normale convenzione che l'applicazione funzione associa a sinistra, quindi in realtà significa ) è scritto (con una convenzione simile che in realtà significa ). Non vedo il punto di avere un'altra coppia di parentesi attorno alla più interna . Perché le persone usano la notazione di Krivine invece della solita?λλλf.λx.λy.f x yλf.λx.λy.((f x) y)λf.λx.λy.(f) x yλf.λx.λy.((f) x) yf

Risposte:


13

Suppongo che intendi la notazione di Krivine da Lambda Calculus: Tipi e modelli .

Questa notazione, usata come rappresentazione dei dati, semplifica l'implementazione e la dimostrazione di molti algoritmi sui termini lambda. Cioè, dato un termine lambda , vuoi vederlo come head , insieme a un elenco di argomenti .fe1e2en f[e1,e2,,en]

Ad esempio, supponiamo di voler confrontare due termini con . Spesso è più naturale per confrontare le teste e prima, e nemmeno guardare i coppie, a meno che il confronto ha esito positivo. (Ciò si presenta spesso nelle implementazioni di unificazione di ordine superiore.)fe1engt1tnfg(ei,ti)

Vedi l'articolo di Cervesato e Pfenning A Linear Spine Calculus per una formalizzazione di questa idea.


0

Una differenza interessante si presenta nella sezione 2 "Funzioni rappresentabili" del capitolo 2 del libro di Krivine. Tre codificati dalla chiesa sono scritti in notazione standard come . Con la notazione di Krivine (se finalmente lo capirò correttamente!), Scriveremmo invece . λ x. λ y. x (x (x y))λx λy (x)(x)(x)y

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.