2.9 Qu’est ce qu’un bouclage du prouveur ?

Par exemple, on utilise la règle :

        a*a == a*a*a/a

sur le but à prouver

        cc(vv) = vv*vv

On obtiendra successivement les buts suivant :

        cc(vv) = vv*vv*vv/vv  
        cc(vv) = (vv*vv*vv/vv)*vv/vv  
        ...

Le noyau de preuve produit les messages suivants :


 
krt: sequence  memory short  
krt: asking for 1500000 int, waiting for system reply...  
krt: OK, memory obtained, we continue.  
 
krt: sequence  memory short  
krt: asking for 2249997 int, waiting for system reply...  
krt: OK, memory obtained, we continue.  
 
krt: sequence  memory short  
krt: asking for 3374992 int, waiting for system reply...  
krt: OK, memory obtained, we continue.  
 
...  


Les messages krt : sequence memory short sont générés par le kernel qui alloue dynamiquement la mémoire qui lui fait défaut.

Cet exemple est simple. Des bouclages peuvent se produire pour des groupes de règles et peuvent être plus difficiles à détecter a priori.