Précédent Index Suivant

1.5   Exemple 3. Deux représentations des entiers

Il existe plusieurs codages des entiers dans le l-calcul. Le premier, du à Church,fut présenté dans les années 1931-32.

1.5.1   Les numéraux de Church

Un nombre est représenté comme un terme qui représente n applications successives d'une fonction à un argument (si le nombre en question est n). Le nombre n sera représenté par l fx.fnx La fonction successeur, s , doit prendre un numéral n de la forme l fx.fnx et rendre l fx.f(fnx). On peut ``ouvrir'' le numéral n en l'appliquant à deux arguments quelconques, par exemple à f et à x :
(l fx.fnxf  x ® fnx
Pour obtenir le successeur de n il faut donc ``capturer'' n, l'ouvrir,lui ajouter un f en tête, et ``laisser'', à la tête de tout ca un nouveau l fx.

Ceci est fait par la fonction: Nous pouvons à l'aide de s définir des simples fonctions comme la somme .

D'autres fonctions, comme la fonction prédécesseur sont toutefois difficiles à définir avec les numéraux de Church. La récursion est aussi assez laborieuse.

1.5.2   Une autre représentation des entiers

Cette représentation des entiers, qui vient de Barendregt, nous permettra d'utiliser le calcul sur les booléens que nous avons déja défini.

Soient: Si nous appliquons un numéral n (n = sn 0) à T (i.e. l x y. x) nous obtenons de façon triviale T ou F, selon que n est 0 ou un autre numéral:

0
 
  T
= (l x.x l xy.x)
  ® l xy.x
  = T
Par contre

n
 
  T
=
(l f.((f F)

n-1
 
)  (l xy.x)
  ®
((l xy.x   F)

n-1
 
)
  ®
(l y.F  

n-1
 
)
  ® F

Définissons en outre:
Précédent Index Suivant