Expansion ETA dans le modèle lambda calcul


12

Klop, van Oostrom et de Vrijer ont un article sur le calcul lambda avec des motifs.

http://www.sciencedirect.com/science/article/pii/S0304397508000571

Dans un certain sens, un modèle est un arbre de variables - bien que je ne le considère que comme un tuple imbriqué de variables, par exemple, ((x, y), z), (t, s)).

Dans l'article, ils ont montré que si les motifs sont linéaires, en ce sens qu'aucune variable dans un motif ne se répète, alors la règle

(\p . m) n = m [n/p]

où p est un motif variable et n est un tuple de termes ayant exactement la même forme que p, est confluent.

Je suis curieux de savoir s'il existe des développements similaires dans la littérature pour le calcul lambda avec des modèles et la règle ETA supplémentaire (expansion, réduction ou simplement égalité).

En particulier, par eta, je veux dire

m = \lambda p . m p

Plus directement, je suis curieux de connaître les propriétés d'un tel calcul lambda. Par exemple, est-il confluent?

Il force la catégorie de classification à être fermée car il force la propriété

m p = n p implies m = n 

En utilisant la règle \ xi entre les deux. Mais peut-être que quelque chose pourrait mal tourner?


Pouvez-vous écrire quelle règle ETA vous voulez dire? Sauf si c'est très étrange, vous devriez pouvoir l'encoder en utilisant des sommes et faire un argument de simulation.
Max Nouveau

2
@MaxNew: on dirait qu'il pose des questions sur le calcul non typé. Tout sur les modèles fonctionne parfaitement avec les types (je suggère si modestement mon propre Focusing on Pattern Matching ), mais le calcul lambda non typé est suffisamment différent du LC typé (en particulier wrt eta) auquel je n'ose pas répondre sans faire les preuves .
Neel Krishnaswami

@MaxNew: Que comporterait l'encodage par sommes?
Jonathan Gallagher

@NeelKrishnaswami: Je m'intéresse en fait aux deux. Je pense que je suis nerveux à l'idée d'avoir des variables d'un type de produit avec la règle ETA. Je pense que cela se fait, par exemple, dicosmo.org/Articles/JFP96.pdf . Mais si je me trompe, veuillez me corriger. Vous avez alors des égalités comme \ lambda x .mx = m = \ lambda (p, q). m (p, q), par exemple. Merci pour le lien vers votre article!
Jonathan Gallagher

Réponses:


7

Ce n'est pas une réponse complète; c'est un commentaire qui est devenu trop grand.

Si vous étendez le lambda calcul typé avec des produits avec des éliminateurs projectifs (c'est-à-dire des éliminateurs de produits fst(e)et snd(e)), il n'y a aucun problème fondamental. La raison pour laquelle il a fallu si longtemps pour le comprendre est qu'il s'avère plus naturel de faire des extensions eta plutôt que des réductions eta . Voir Les vertus de l'Eta Expansion de Barry Jay .

Si vous voulez que les produits aient un éliminateur de style de motif

let (a,b) = e in t 

Ensuite, les choses sont plus complexes. La principale difficulté avec la correspondance de motifs est les conversions de navettage . Autrement dit, ces calculs ont l'équation

C[let (a,b) = e in t] === let (a,b) = e in C[t]

et déterminer (a) quel contexte C[-]utiliser et (b) comment orienter cette équation devient délicat. L'OMI, l'état de l'art pour les approches de style réécriture, est l' extension réécriture avec des sommes de Sam Lindley et l' équivalence décisive de Gabriel Scherer avec les sommes et le type vide , qui tiennent toutes deux compte du calcul lambda typé avec les produits et les sommes.

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.