Logique et théorie du calcul

Master de Mathématiques et Applications, spécialité Mathématiques Générales, parcours Mathématiques Discrètes et Fondements de l'Informatique
Université d'Aix-Marseille - Institut de Mathématiques de Luminy
Emmanuel Beffara et Yves Lafont

Actualités


Plan du cours


Machines 1


Machines 2

  1. correction de l'exercice 1 : construire une machine à registres pour calculer le reste modulo 3 (et plus généralement, le reste modulo un entier k > 0 fixé)
1 seul registre suffit, mais pour k > 0 fixé, la taille du programme est quadratique.
Avec 2 registres, on obtient une taille du programme linéaire, mais le temps de calcul est plus long !
  1. correction de l'exercice 2 : construire une machine à registres pour calculer le division euclidienne n, p -> q, r tels que n = p q + r
On utilise 4 registres N, P, Q, R. Au départ, N = n, P = p, Q = 0, R = 0, et à l'arrivée, N = 0, P = p - r -1, Q = q, R = r (mais on peut aussi remettre P à 0).
Dans le cas où p = 0, la machine boucle, et le registre Q contient des valeurs de plus en plus grandes. On peut éviter cela en commençant par un test sur P.
  1. correction de l'exercice 3 : que peut calculer une machine à 1 registre ?
Une machine à 1 registre peut calculer :
En étudiant le comportement de la machine lorsque le contenu n du registre est infini (c'est-à-dire n suffisamment grand), on arrive à démontrer que ce sont les seules possibilités.
  1. Formalisation
Une machine à k registres et n instructions est une suite de n instructions de l'une des 3 formes suivantes, où l'entier i est dans l'ensemble {0, …, k - 1} et les entiers p, q sont dans l'ensemble {0, …, n -1} :
  1. Codage
On définit l'entier naturel <p, q> qui code le couple (p, q) d'entiers naturels, par exemple <p, q> = 2p 3q.
On définit de même le code <p, q, r> d'un triplet (p, q, r), et celui d'un quadruplet.
On définit aussi le code [p1, …, pk] d'une suite finie d'entiers naturels.
  1. Machine à registres universelle
On associe à toute machine à registres un entier naturel p qui code la liste des instructions de la machine.
Une machine à registre universelle pour les machines à k registres est une machine à k + 1 + k' registres telle que, si on commence avec :
alors :

Fonctions récursives

  1. correction de l'exercice : construire une machine à registres universelle pour les machines à 2 registres
  1. Fonctions récursives primitives
La classe des fonctions récursives primitives est la plus petite classe de fonctions (totales) f : Np -> N qui contient :
et qui est fermée par les constructions suivantes :
  1. exemples : somme x + y, prédécesseur P x, soustraction tronquée max(x - y, 0), multiplication x x y, factorielle x!, … 
  1. contre-exemple : la fonction d'Ackermann, définie par Ack (0, x) = S x, Ack (S x, 0) = Ack (x, 1), et Ack (S x, S y) = Ack (x, Ack (S x, y))
Remarque : Cette fonction est obtenue par un argument de diagonalisation. Elle est récursive et prouvablement totale dans l'arithmétique de Peano.
  1. Fonctions récursives
La classe des fonctions récursives est la plus petite classe de fonctions (partielles) f : Np -> N qui contient les mêmes fonctions et qui est fermée par les mêmes constructions, avec une construction supplémentaire :
Remarques :
  1. Fonctions récursives et fonctions calculables
Théorème : une fonction est récursive si et seulement si elle est calculable par une machine (à registres, à piles, ou de Turing).

Arithmétique de Peano 1

Peano


Réécriture

Réécriture et problème du mot
  1. Cadre général pour la réécriture de mots
  1. Problème des mots : étant donnés une présentation finie (S, R) et deux mots u, v dans S*, a-t-on u <->*R v ?
Dans le cas des groupes, on parle de problème du mot, car on peut toujours se ramener à u <->*R 1

Ce problème est indécidable, même si on se limite au problème du mot pour les groupes (Théorème de Novikov-Boone)
Idée : on code le problème de l'arrêt pour les machines à 2 registres
  1. Réécriture convergente
Remarques :
Proposition : réciproquement, la confluence locale implique la confluence dans le cas noetherien

Démonstration : par récurrence noetherienne.
  1. Confluence des pic critiques
Remarques :
Proposition : la confluence des pics critiques implique la confluence locale

Remarque : pour montrer qu'une présentation est convergente, il suffit donc de vérifier le terminaison (en utilisant un ordre de terminaison) et la confluence des pics critiques
  1. Réécriture de termes du premier ordre et du second ordre (lambda-calcul) : à voir …