Cours 1: Algèbre initiale
Algèbre intiale (pour un foncteur)
Soit
- Une
-algèbre: -
est une paire
où et - Un morphisme de
-algèbres : -
est un morphisme
tq le diagramme suivant commute:
On note
- Algèbre initiale pour
: -
un objet initial de
: , avec tel que -algèbre
Prop: Soit
une -alg initiale. Alors
NB: en un certain sens, c’est le plus petit point fixe de
Structures libres
- Structure libre:
-
est un
-uplet où pour des foncteurs donnés
tq
est la -algèbre initiale - Co-pairing de
: -
(définition par cas, fonction donnée par la propriété universelle du coproduit)
Donc
En théorie des types:
Que signifie le caractère initial?
Point fixe:
Donc tout
Ex:
Algèbre initiale: l’ensemble
est le constructeur zéro est le constructeur successeur
Clôture par
Les entiers dans le système F
Lemme: les termes normaux de type
-
c’est-à-dire les entiers de Church!
- ou l’identité
- Rappel:
-équivalence: -
Système T
où
i.e.
Système T dans le système F
c’est clair car tous les entiers de Church sont de type
Vérifions que
Puis: règle du “if zero”
Donc système F contient le système T.
Par un argument diagonal: un langage de programmation total ne peut pas exprimer toutes les fonctions récursives totales.
- Système de réécriture (faiblement) normalisant:
-
ssi pour tout
, il existe normal (plus de réduction possible) tq (mais: il se pourrait qu’il existe une stratégie de réduction qui ne termine pas)
Ex:
Gödel a introduit le système T pour réduire la cohérence de l’arithmétique de Peano à la normalisation de ce système
Gödel: Normalisation du système T ⟹ cohérence de PA
- Fortement normalisant:
-
ssi il n’existe pas de chemin de réécriture infini partant de
(le graphe de réduction de tout terme est fini) - Confluence:
-
il existe au plus une forme normale.
Girard: Normalisation (faible) du système F ⟹ cohérence de
En fait: systèmes T et F sont fortement normalisants, mais on ne va montrer que leur normalisation faible.
Système de réécriture du système F
La deuxième règle ne “fait rien”, on peut la vérifier sans à l’extérieur du système F.
Réductibilité (Tait)
-calcul simplement typé ⟶ logique propositionelle
- Types pour le
-calcul simplement typé: -
Candidats de réductibilité
On définit un prédicat sur les types: l’ensemble des termes réductibles de type
- Un terme est neutre:
-
s’il n’est pas une abstraction (soit une variable, soit une application)
NB: on ne crée pas de nouveaux rédex quand on remplace les termes neutres par une variable
Lemme 1: Pour tout type
,
Lemme 2 (Adéquation):
Si
est dérivable, alors pour tout , , on a
Attention: pour démontrer l’adéquation, on fait une induction qui dépend de types arbitrairement complexes ⟶ pas de borne sur les formules sur lesquelles on applique l’induction ⟹ ne marchera pas pour le système T à l’intérieur du système T (mais fonctionne dans le système F, au second ordre).
Conséquence: le
Pour le système F
MAIS: définition circulaire !!! Pas bien fondée ⟶
Leave a comment