Lambda calculs et catégoriesPaul-André MellièsMaster Parisien de Recherche en InformatiqueParis, Octobre 20101Plan de la séance1 – Lambda-calcul typé du second ordre2 – Une sémantique opérationnelle3 – Une topologie4 – Les variétés comme type sémantique5 – Théorème fondamental6 – Application: théorème de normalisation2Part ISecond order lambda calculusPolymorphism3Curry 1958: the simply typed-calculusIt is possible to type the-terms by simple typesA;B constructed by the grammar:A;B::=j A) B:A typing context is a finite list = (x : A ;:::;x : A ) where x is a variable and A1 1 n n i iis a simple type, for all1 i n.A sequent is a triple:x : A ;:::;x : A ‘ P: Bn n1 1where x : A ;:::;x : A is a typing context, P is a-term and B is a simple type.1 1 n n4Curry 1958: the simply-typed-calculusVariablex: A‘ x: A;x: A‘ P: BAbstraction‘x:P: A) B‘ P: A) B ‘ Q: AApplication; ‘ PQ: B‘ P: BWeakening;x: A‘ P: B;x: A;y:A‘ P: BContraction;z: A‘ P[x;y z]: B;x: A;y: B; ‘ P: CPermutation;y: B;x: A; ‘ P: C5Girard 1972: second-order-calculusThe idea is to extend the usual simply typed lambda-calculus with second-orderquantification on type variables.Types are simple types extended with second-order variables:A;B::=j A) Bj8 : AA typing context is a finite list constructed by the grammar= nil j ;x: A j ;where:o nil is the empty listo x is a term variable and A is a type,o is a type variable.6Girard 1972: ...
Voir