Quelqu'un peut-il expliquer brièvement (si c'est possible!) Ou me renvoyer à une référence, résumant les différences entre le calcul lambda non typé et les calculs lambda typés plus courants?
Je recherche en particulier des énoncés de leur puissance expressive, des équivalences avec des systèmes logiques / arithmétiques ou des méthodes de calcul, et des analogies avec les langages de programmation, le cas échéant.
Bien que j'aie certainement l'intention de lire, quelque chose comme un tableau de référence décrivant les calculs et leurs équivalences / différences / place dans la hiérarchie serait une référence ÉNORME pour m'aider à les trier.
Ne pas dire que ce qui suit est correct, juste essayer d'esquisser ensemble certaines des impressions que je dois voir si elles servent au moins de point de départ (ou quelque chose à corriger!)
Calcul lambda non typé - éq. à la logique du premier ordre - ne peut pas faire X
Calcul lambda simplement tapé - égal à ... logique, lié à Lisp?
Calc lambda 'polymorphe' - etc.
Calcul des constructions - logique intutionniste?
Logique combinatoire - comparable à ??? calcul lambda typé, lié aux types de langages APL / J
Si cela rejoint le cube lambda et ses trois axes, tant mieux.
Bien que je sois familier avec les bases du calcul lambda et de la programmation avec des langages fonctionnels, je n'ai jamais tourné la tête ou établi de liens significatifs avec les systèmes de types impliqués et les différentes saveurs des calculs lambda (et peut-être pi?).
Lorsque j'essaie de rechercher cela, je ne peux pas aider, mais je me retrouve distrait, ouvrant de nombreux onglets de navigateur et se ramifiant dans tant de directions que je n'entre jamais dans aucun d'entre eux avec une profondeur!
Je ne sais pas si ce que je demande est raisonnable, mais j'espère au moins avoir suffisamment peint une image pour suggérer une lecture qui peut expliquer ce que je cherche?
la source
lo.logic
tag a été ajouté. probablement une question stupide, mais qu'est-ce que cela signifie exactement?Réponses:
Votre table est un peu confuse; en voici une meilleure.
La dépendance de type est plus générale que la quantification de premier ordre, car elle transforme les preuves en objets sur lesquels vous pouvez quantifier. Il existe des calculs lambda correspondant aux FOL intuitionnistes ordinaires, mais ils ne sont pas assez largement utilisés pour avoir un nom spécial - les gens ont tendance à aller directement aux types dépendants.
Vous pouvez également associer la forme syntaxique d'un calcul à des systèmes logiques.
la source
nat
U
lambda : U -> (U -> U)
gamma : (U -> U) -> U
Les références:
Dana S. Scott: « Lambda Calculus: Some Models, Some Philosophy », Studies in Logic and the Foundations of Mathematics, Volume 101, 1980, Pages 223-265, The Kleene Symposium
Hendrik Pieter Barendregt: " Le lambda calcul: sa syntaxe et sa sémantique ", Elsevier, 1984.
la source
Une discussion assez complète de ce genre de choses peut être trouvée dans ce livre: Lectures on the Curry-Howard Isomorphism . Ceci est basé sur l'ancienne version disponible gratuitement: Lectures on the Curry-Howard Isomorphism .
la source