Conversion η vs extensionnalité dans les extensions de lambda-calcul


14

Je suis souvent confus par la relation entre la conversion η et l'extensionnalité.

Edit: Selon les commentaires, il semble que je sois également confus quant à la relation entre l'équivalence extensionnelle et l'équivalence observationnelle. Mais au moins dans Agda avec l'égalité d'extension pour les fonctions (comme postulat) et pour un calcul lambda simplement tapé (qui a une sémantique entièrement abstraite, si je ne me trompe pas), l'équivalence dénotationnelle est la même que l'équivalence observationnelle. N'hésitez pas à me corriger dans les commentaires ou réponses; Je n'ai jamais reçu d'éducation systématique sur ces questions.

Dans le lambda-calcul non typé, la règle eta donne le même système de preuve que la règle d'extensionnalité, comme l'a prouvé Barendregt (cité dans une réponse à cette question ). Je comprends que cela signifie que le système de preuve avec la règle eta est complet pour l'équivalence d'observation (à partir d'autres réponses, cela pourrait nécessiter la règle de la règle,, c'est-à-dire la réduction sous les classeurs IIUC; je n'ai aucun problème à ajouter cette règle aussi) .

Cependant, que se passe-t-il si nous passons à un calcul typé et ajoutons à l'extension de ce calcul avec des types de base supplémentaires et des formulaires d'introduction et d'élimination correspondants? Peut-on encore écrire un système de preuve complet pour l'équivalence observationnelle? Je parlerai des systèmes de preuve sous la forme d'une sémantique axiomatique, à la suite des fondations de Mitchell des langages de programmation (FPL); le système de preuve / sémantique axiomatique définit l'équivalence du programme.

Question 1 : le théorème de Barendregt s'étend-il au STLC? L'équivalence η est-elle équivalente à l'extensionnalité dans ce contexte?

Je surfe la discussion de FPL du PCF (mais n'a pas terminé la partie encore), et il semble qu'une fois que vous ajoutez des paires, extensionnalité nécessite une règle supplémentaire, à savoir l' appariement surjective: pair (Proj1 P, Proj2 P) = P. Il est intéressant de noter que cette règle concerne l'introduction et l'élimination de paires exactement comme la règle η concerne l'introduction et l'élimination de fonctions.

Question 2 : Est-il suffisant d'ajouter l'axiome d'appariement surjectif pour prouver l'extensionnalité dans un λ-calcul simplement typé avec des paires? modifier : Question 2b : l'appariement surjectif est-il une loi η, comme les lois η mentionnées dans cet article , en raison de la similitude structurelle que je mentionne?

Allons jusqu'au PCF maintenant. Les descriptions de l'égalité extensionnelle que j'ai vues prouvent alors que l'extensionnalité implique une règle de preuve par induction, mais elles ne disent pas si cela suffit. Puisque PCF est Turing-complete, l' égalité d'extension est indécidable . Mais cela n'implique pas qu'il n'y ait pas de système de preuve complet, car la longueur des preuves n'est pas limitée. Plus pertinent, un tel système de preuve contredirait peut-être les théorèmes d'incomplétude de Gödel. Et cet argument pourrait s'appliquer même à PCF sans fix, et au système T. de Gödel

Question 3 : Existe-t-il un système de preuve complet pour l'équivalence d'observation dans le PCF? Et PCF sans fix?

Mise à jour: abstraction complète

Je réponds ici au commentaire sur l'abstraction complète. Je pense que PCF souffre de deux types de problèmes différents: il a une non-terminaison (via un correctif), ce qui provoque la perte de l'abstraction complète, mais il a également des nombres naturels. Les deux problèmes rendent l'équivalence d'observation difficile à traiter, mais je crois indépendamment l'un de l'autre.

D'une part, le PCF perd son abstraction totale car parallèle ou vivant dans le domaine sémantique (Plotkin 1977), et cela semble avoir à voir avec la non-terminaison. Ralph Loader (2000, "Le PCF finitaire n'est pas décidable") montre que le PCF finitaire (sans naturel, mais avec non-terminaison) est déjà indécidable; par conséquent, (si je résume correctement), une sémantique entièrement abstraite ne peut pas se limiter aux domaines avec des opérations calculables.

D'autre part, prenez le système T de Gödel, qui n'a pas de non-terminaison. (Je ne suis pas sûr qu'il ait une sémantique entièrement abstraite, mais je suppose que oui, car le problème n'est mentionné que pour PCF; le domaine doit contenir des fonctions récursives primitives d'ordre supérieur). Les fondements pratiques de Harper pour les langages de programmation discutent de l'équivalence observationnelle pour ce langage; Seconde. 47.4 est intitulé "Quelques lois d'égalité" et montre quelques règles de preuve admissibles pour l'équivalence observationnelle. Nulle part il ne dit si le système de preuve est complet, donc je suppose que ce n'est pas le cas, mais il n'est également nulle part discuté s'il peut être complété. Ma meilleure supposition renvoie au théorème d'incomplétude de Gödel.


1
Je pense que je pourrais répondre à certaines de ces questions, mais je suis confus quant à ce que vous demandez. La question à laquelle vous faites référence ne concerne pas l'équivalence des programmes. Voulez-vous dire l'équivalence d'observation? Pour quelle sémantique opérationnelle? Donc, essentiellement, si vous expliquez exactement à quoi se réfère "la preuve" dans la question 1, je pense que je peux deviner ce qui se passe. Ma meilleure supposition jusqu'à présent: vous aimeriez une théorie équationnelle complète pour l'équivalence observationnelle, et vous nous demandez si les règles suffisent. Est-ce que c'est ça? η
Andrej Bauer

@AndrejBauer: votre supposition est correcte, je vais commencer à mettre à jour la question.
Blaisorblade

Je ne suis pas sûr de la sémantique opérationnelle - cela fait-il une différence pour les théorèmes originaux?
Blaisorblade

J'ai essayé d'affiner davantage la question. Mais je pense toujours que votre meilleure estimation est correcte.
Blaisorblade

Il y a un petit problème ici: ce n'est vraiment pas clair ce que est pour les nombres naturels! Si vous n'avez que des types de fonction et de produit, alors vous êtes clair: les termes sont équivalents du point de vue observationnel s'ils sont β η égaux. Plus généralement, je pense que cela est lié au problème de l'abstraction complète . ηβη
cody

Réponses:


7

Je ne suis pas sûr de pouvoir répondre complètement à votre question, mais je vais tenter le coup et poser moi-même quelques questions qui pourraient stimuler la discussion sur ce sujet.

Mon premier point est le suivant: deux termes dans le λ -calculus non typé sont censés être observablement égaux ssi pour chaque terme M : M t se  termine M t ′ se  termine  Où se termine signifie «a une forme normale β »t,t λM

M t se termine M t se termine 
β

Je trouve plus naturel de considérer des termes avec des "trous" ou des contextes au lieu de simplement des termes M et d'écrire E [ t ] au lieu de M t . Les deux vues sont certainement équivalentes (si les variables ne sont pas liées par le contexte), car l'abstraction permet de transformer le contexte E [ _ ] en terme λ x . E [ x ] .E[_]ME[t]M tE[_]λX.E[X]

Maintenant, c'est un fait que l'égalité d'observation dans le calcul non typé n'est pas capturée par l' égalité ! En effet, il existe toute une classe de termes, qui tous deux ne se terminent pas et n'ont pas de formes normales de tête et sont donc tous de façon observable égaux. On les appelle parfois les termes perpétuels ou les termes insolubles , et voici deux de ces termes: ( λ x . X x ) ( λ x . X x ) et ( λ x . X x x ) ( λ x .βη

(λX.X X)(λX.X X)
Il est assez facile de montrer que ces termes ne sont paségaux à β η .
(λX.X X X)(λX.X X X)
βη

Si tous les termes perpétuels sont identifiés, alors l'égalité d'observation est complètement saisie, par un résultat classique (voir le théorème de Barendregt 16.2.7).


Maintenant pour les calculs dactylographiés. Considérons d'abord le -calculus simplement tapé sans nombres naturels. La définition ci-dessus de l'égalité d'observation devient triviale, car chaque terme se normalise! Nous avons besoin d'une distinction plus fine. Nous utiliserons l'égalité des valeurs t 1t 2 pour les termes fermés, définis par induction sur le type de t 1 et t 2 . Ajoutons d'abord pour chaque type A , un nombre infini de constantes c A , c A , c A , . Nous choisirons une constante c xλt1t2t1t2UNEcA,cA,cA,cxdu type approprié pour correspondre à chaque variable .x

  1. Au type de base , t 1t 2 si la forme normale à tête β de t 1 est c u 1u n et celle de t 2 est d v 1v n et c = d et u 1v 1 , , U nv n à leurs types respectifs.Bt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. Au type de flèche, ssi les deux termes β se réduisent à une λ -abstraction.t1t2βλ

Notez que j'utilise uniquement conversion β dans cette définition.β

Maintenant, je définis les contextes comme: avec respectivement le contexte de la tête, l'application, l'abstraction et la substitution (en termes fermés).

[_]E[_] ut E[_]λX. E[_]E[_]θ

On peut alors définir et t ' , bien typé de type T pour être équivalent sur le plan d'observation si et seulement si pour chaque contexte E [ _ ] tel que E [ t ] , E [ t ] sont bien typés et fermés . E [ t ] E [ t ] nous écrirons t = o b s t dans ce casttTE[_]E[t],E[t]

E[t]E[t]
t=obst

Il est maintenant facile d'observer que si alors t = o b s t . L'autre direction est moins triviale, mais vaut également: en effet, si t = o b s t , alors on peut montrer que les termes sont égaux pour β η par récurrence sur le type:t=βηtt=obstt=obstβη

  1. Au type de base, prenez simplement pour être [ _ ] θ , avec θ la substitution qui envoie x à c x . Nous avons E [ t ] = t θ et E [ t ] = t θ . On a t θ β c x u 1 θ u n θ et t θ E[_][_]θθXcxE[t]=tθE[t]=tθtθβcx u1θunθ . On a alors c x = c x et donc x = x . Maintenant, nous ne pouvons pas immédiatement conclure que u i θ = β η v i θ . En effet, si u i et v i sont des λ -abstractions, alors trivialement u i θ v i θ ! L'astuce ici est d'envoyer xtθβcx v1θvnθcx=cxx=xuiθ=βηviθuiviλuiθviθxà et répéter autant de fois que nécessaire. Je suis un peu flou sur les détails ici, mais l'idée est similaire au théorème de Böhm ( Barendregt encore 10.4.2).

    λy.cx~ (y1c1)(yncn)
  2. Au type de flèche, prendre pour être [ _ ] c y , c'est-à-dire application à c y avec c y et y pas en t ou t . Par l'hypothèse d'induction on a: t c y = β η t c y et donc t y = β η t y Ce qui donne λ y . t y = βE[_][_] cycycyytt

    t cy =βη t cy
    t y =βη t y
    et enfin parη-égal: t = β η t λy.t y =βη λ.t yη
    t =βη t

C'était plus difficile que prévu!


Bon, abordons le système T. Ajoutons un type au mélange, les constructeurs 0 et S , et un récurseur r e c T pour chaque type T , avec les " β -rules" r e c T u v 0 β u r e c T u v ( S n ) β v n ( r e c T u v n )N0SrecTTβ

recT u v 0βu
recT u v (S n)βv n (recT u v n)

η

λX.X =βη recN 0 (λk m.S m)
m

F (S X) =βη h X (F X)F t =βηrecT (F 0) h t
Xηh

MtMTtM (S S 0)n S1Mn0

M

tM =λX.0
βηM
0 =βη S 0
TtM=λX.0

Merci pour votre réponse! Ma première question est: est-il habituel d'avoir des substitutions dans des contextes d'équivalence observationnelle? Du moins, l'article LCF de Plotkin (1997) ne fait pas cela (même si je peux imaginer quelque chose comme ça aurait du sens dans certains calculs de fermeture, où quelque chose comme les substitutions fait partie de la syntaxe). Mais je peux facilement voir pour chaque contexte de "substitution", on peut définir un contexte plus (pour moi) "standard" qui utilise juste lambda-abstraction et application, disons (λx. []) C_x; donc je suppose que l'équivalence d'observation ci-dessus est équivalente à la définition à laquelle je suis habitué.
Blaisorblade

t=λX.00=βηS0M0=βηS00βηS 0

Dites plutôt que Mt=λX.0parce que l'arithmétique est cohérente, mais par le deuxième théorème d'incomplétude, prouver que cela nécessite plus de puissance métathéorétique que l'arithmétique de Peano (ou que les règles dont nous avons discuté), donc nos règles simples ne pourront pas prouver cette équivalence d'observation. Est-ce que ça a du sens? J'ai consulté Wikipedia, mais ce n'est pas très spécifique sur la variante de Kleene du résultat de Gödel; peut-être que si je connaissais mieux cette preuve, je comprendrais aussi votre preuve. (Pendant ce temps, vous voter de toute façon).
Blaisorblade

1
3. Notez que PUNE peut prouver 01, mais pas "PUNE0=1", vous pouvez donc essayer de chercher cette preuve pour toujours. J'ai utilisé le même genre d'astuce ci-dessus pour trouver une égalité d'observation dans Tqui ne peut pas être capturé par une règle d'égalité "raisonnable". Vous pouvez toujours ajouter la règle
F 0=g 0F (S 0)=g (S 0)F=g
mais ce serait inefficace (et complet!). J'ai le sentiment que ce n'est pas ce que vous recherchez.
cody

1
C'est vrai! Bien qu'il soit parfois judicieux d'envisager de tels systèmes "infinitaires" à des fins de preuve théorique (par exemple l'analyse ordinale).
cody
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.