Qu'est-ce que l'analogue de Curry-Howard pour les logiques linéaires?


8

Comme défini par Wikipedia,

(La correspondance Curry-Howard) est une généralisation d'une analogie syntaxique entre les systèmes de logique formelle et les calculs computationnels qui a été découverte pour la première fois par le mathématicien américain Haskell Curry et le logicien William Alvin Howard.

Le λ-cube qui lui est associé est une représentation graphique des axes de raffinement possibles des types simples au calcul des constructions, qui a une interprétation logique:

https://upload.wikimedia.org/wikipedia/commons/1/19/Lambda_cube.png

Pour autant que je sache, la correspondance Curry-Howard est un lien entre la théorie des types et les logiques classiques. Ma question est: existe-t-il une correspondance analogique entre les systèmes de types et les logiques linéaires ?


Pouvez-vous définir ce que vous entendez par «logiques légères»?
jmite

Je suis désolé @jmite, je veux dire la logique linéaire .
MaiaVictor

Réponses:


8

Vous pouvez imposer des exigences similaires dans votre système de type, ce qui revient à exiger que les objets ne soient jamais détruits ni dupliqués. Pour un exemple d'application pratique, voir Les types linéaires peuvent changer le monde! par Philip Wadler, qui spécifie les règles de frappe pour cela. Il montre également comment un système de types peut combiner des types linéaires et non linéaires.

Pour une application pratique de cela, jetez un œil à std::unique_ptrC ++. Ici, la linéarité garantit que la désallocation se produit toujours une seule fois.

Dans un langage fonctionnel, la linéarité donne également la possibilité de mises à jour destructrices (qui paraissent pures au programmeur). Cependant, dans la pratique, il semble que les monades soient une approche plus courante pour résoudre ce problème.

Mise à jour : j'ai remarqué que dans le tableau NLab Computational Trinitarianism, l'absence de contraction dans une logique (c'est-à-dire l'impossibilité de reproduire une hypothèse) correspond au théorème de non-clonage de la mécanique quantique. Je ne comprends malheureusement pas les implications de cela, mais j'ai pensé que vous pourriez trouver cela intéressant.


1
Il y a des expériences par exemple dans Idris incorporant des types d'unicité (qui seraient mieux nommés linéaires ou affines: ils peuvent avoir plus d'un habitant!).
gallais

1
Pour en savoir plus sur votre dernier paragraphe, voir dx.doi.org/10.1088/1742-6596/67/1/012045 Le document a un joli résumé dans sa section de conclusion.
Fizz

8

La logique linéaire correspond à un système de types pour un calcul de processus (une variante du π-calcul interne ), où:

  • les preuves correspondent aux processus ;
  • les propositions correspondent aux types de sessions (protocoles de communication).

Il s'agit d'un domaine de recherche assez actif. Alors que les gens s'attendaient à une correspondance entre la logique linéaire et un modèle de concurrence depuis le début de la logique linéaire par Girard [1987] , trouver quelque chose de satisfaisant à la fois du point de vue de la logique et de la modélisation de la concurrence a été quelque peu difficile à atteindre.

Voici un résumé des principaux développements à ce jour.

  • Abramsky [1994] et Bellin et Scott [1994] ont proposé la première correspondance "Proofs as Processes", où les propositions linéaires sont des types de canaux linéaires dans un calcul de processus. Par exemple, la propositionUNEB est interprété comme le type de canal "envoyer UNE et B"; il est utilisé pour taper un processus qui utilise un canal pour sortir un message comprenant quelque chose de type UNE et B(une paire, si vous le souhaitez), respectivement, puis le canal ne doit plus être utilisé. L'idée clé est que la règle de coupure de la logique linéaire peut être utilisée pour taper l'exécution parallèle de deux processus qui communiquent sur un canal privé. Le contrôle de dualité effectué par la règle de coupe en logique linéaire correspond à la vérification que les deux processus utilisent le canal privé partagé de manière compatible.
  • L'idée de dualité a également inspiré plusieurs disciplines de typage pour les calculs de processus, notamment les types linéaires et les types de session, mais le lien direct avec la logique linéaire a été perdu. Les types de sessions en particulier, par Honda [1993] , décrivent les protocoles de communication et leur applicabilité est devenue évidente très rapidement: l'idée a engendré un domaine de recherche.
  • Sept ans plus tard, après que Honda a développé des types de session, Caires et Pfenning [2010] ont découvert que les propositions en logique linéaire intuitionniste peuvent être interprétées comme des types de session. Par exemple, la propositionUNEB est interprété comme le protocole "envoyer UNE puis procédez comme B". Cette découverte a rajeuni la ligne de recherche" Preuves comme processus ": il y a beaucoup d'articles sur ce sujet publiés au cours de la dernière décennie. Grâce aux fondements logiques, nous pouvons importer des idées de la logique pour étendre la discipline de frappe des types de session .
  • Wadler [2014] a reformulé la correspondance avec les types de session pour la logique linéaire classique et a officialisé la première connexion entre une présentation standard des types de session pour un langage fonctionnel et la logique linéaire.
  • Il y a un "problème" partagé par tous les travaux cités ci-dessus: alors que le côté logique linéaire est celui attendu, le côté calcul de processus ne l'est pas, à la fois syntaxiquement et sémantiquement. Par exemple, une différence notable est que la composition parallèle (P|Q) n'est pas un constructeur de termes autonome, car il lui manque une règle correspondante pour en raisonner directement en logique linéaire. Ce problème a été résolu dans [Kokke et al., 2019] (avertissement: je suis l'un des auteurs), en reformulant de façon conservatrice les règles de, couper et mélanger. Cela donne lieu à de nouvelles transformations de preuve, qui s'avèrent correspondre à la sémantique observationnelle attendue du π-calcul.

Si vous cherchez quelques articles pour commencer, je commencerais par [Wadler, 2014] puis [Kokke et al., 2019] (pour voir le dernier système).

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.