Quel est l'avantage de la notation de Krivine?

9

J'ai vu certaines personnes utiliser la notation de Krivine pour l'application de fonctions lors de la présentation de la syntaxe du -calculus. Par exemple, le -term (avec la convention normale que l'application de fonction associe à gauche, donc cela signifie en fait ) est écrit (avec une convention similaire qui signifie en fait ). Je ne vois pas l'intérêt d'avoir une autre paire de parenthèses autour du plus intime . Pourquoi les gens utilisent-ils la notation de Krivine au lieu de la notation habituelle?λλλF.λX.λy.F X yλF.λX.λy.((F X) y)λF.λX.λy.(F) X yλF.λX.λy.((F) X) yF

journée
la source

Réponses:

13

Je suppose que vous voulez dire la notation de Krivine de Lambda Calculus: Types and Models .

Cette notation, utilisée comme représentation de données, rend de nombreux algorithmes en termes lambda plus simples à mettre en œuvre et à prouver. Autrement dit, étant donné un terme lambda , vous voulez le voir comme unetête f , avec unelisted'arguments [ e 1 , e 2 , , e n ] .Fe1e2en F[e1,e2,,en]

Par exemple, supposons que vous vouliez comparer deux termes avec gFe1en . Il est souvent plus naturel de comparer d'abord les têtes f et g , et même de ne pas regarder les paires ( e i , t i ) à moins que cette comparaison ne réussisse. (Cela se produit souvent dans les implémentations d'unification d'ordre supérieur.)gt1tnFg(eje,tje)

Voir l'article de Cervesato et Pfenning A Linear Spine Calculus pour une formalisation de cette idée.

Neel Krishnaswami
la source
0

Une différence intéressante apparaît dans la section 2 «Fonctions représentables» du chapitre 2 du livre de Krivine. Trois codés par l'église est écrit en notation standard comme λ X. λ y. X (X (X y)) . Avec la notation de Krivine (si je comprends enfin bien!), Nous écririons plutôt λX λy (X)(X)(X)y .

Aaron Stump
la source