Cadre logique vs théorie des types

11

Quelle est la différence entre le cadre logique et la théorie des types? Les deux ont des types, des termes et sont basés sur un calcul lambda typé de manière dépendante.

Nous avons Edinburg LF qui est basé sur le calcul lambda-pi, cependant, il me semble qu'il y a là une différence subtile.

Konstantin Solomatov
la source

Réponses:

12

Résumé. Un cadre logique est un méta-langage pour la formalisation des systèmes déductifs, où les déductions deviennent des objets syntaxiques.

Bien sûr, ce qui compte comme méta-langage est assez vague, et il est utile de comprendre le développement historique des cadres logiques. Le premier cadre logique a été l'Automath de Bruijn (1), qui est basé sur λ -calculus. De nombreuses idées de la famille de langages Automath ont trouvé leur chemin dans les cadres logiques modernes. Les travaux de Martin-Löf sur les théories constructives des types, également basés sur λ -calculi, ont également eu une influence.

λABΠxA.BABΠxA.B

ΓM:ABΓN:AΓMN:BΓM:ΠxA.BΓN:AΓMN:B{N/x}

À gauche, nous avons la règle pour le -calculus simplement tapé , à droite la règle qui généralise la gauche avec la dépendance de type. Nous voyons qu'une valeur «coule» dans le type dans la conclusion de droite.λ

Je pense que l'assistante de preuve interactive Isabelle utilise une logique intuitive du second ordre basée sur -calculus, sans aucun nombre ni type de données récursif comme cadre logique. Divers autres ont été proposés.λ

Un avantage de l'utilisation de -calculi comme cadre logique est que les constructions de liaison comme les quantificateurs universels peuvent être implémentées en utilisant le -binder du cadre. Notez que la plupart des cadres logiques sont expressivement faibles: les cadres prennent en charge le raisonnement au niveau objet, mais sont insuffisants pour effectuer beaucoup de raisonnement méta-théorique au-delà du fait qu'une déclaration particulière au niveau objet est un théorème. En fait, la logique métallique est généralement si faible qu'il est impossible de prouver le théorème de déduction pour une logique d'objet de style Hilbert. Bien sûr, rien ne vous empêche d'utiliser des théories de type plus puissantes comme cadre logique.λλ

Pour ces raisons pratiques et historiques, la plupart des cadres logiques utilisés aujourd'hui sont typés -calculi, c'est-à-dire les théories des types. Voir (3, 4) pour des discussions plus approfondies sur les cadres logiques.λ

  1. N. de Bruijn: Le langage mathématique AUTOMATH, son utilisation et certaines de ses extensions.

  2. RF Harper, F. Honsell, G. Plotkin: Un cadre pour définir la logique .

  3. F. Pfenning: cadres logiques.

  4. F. Pfenning: cadres logiques - brève introduction .

Martin Berger
la source
Connaissez-vous des livres d'introduction sur les assistants de preuve (cadres logiques) adaptés à quelqu'un qui connaît déjà les bases du calcul lambda simplement tapé et de la logique du premier ordre?
Trismegistos
1
@Trismegistos J'ai bien peur que non. Je suggère d'apprendre un assistant spécifique. Agda est le plus facile à utiliser car il s'agit essentiellement de Haskell, mais avec des types dépendants. D'après mon expérience, le cadre logique n'est pas aussi important que les autres dimensions des assistants de preuve. Par exemple, Isabelle est un prouveur générique que vous pouvez instancier avec différentes logiques, donc expose vraiment le cadre logique. Mais Isabelle / HOL est la seule instanciation utilisée en pratique. En effet, toutes les tactiques de preuve, tout le support du prouveur ont été écrits pour la logique d'objet HOL. Et l'utilisabilité d'un prouveur dépend de ceux-ci.
Martin Berger