4.3 Arithmetic Proof

Appel du prouveur arithmétique

Syntaxe

  ap
  ap(n)

avec :

Syntaxe

Le prouveur arithmétique est un mécanisme destiné à rechercher une contradiction dans un ensemble d’inéquations. Cette contradiction est recherchée en créant de nouvelles inéquations par combinaison linéaire. Le nombre d’inéquations est limité afin d’éviter un bouclage du mécanisme.

La commande ap permet d’appeler le mécanisme sur l’obligation de preuve courante. Le mécanisme va travailler sur les inéquations que comporte la pile des hypothèses. Si le but courant est une inéquation de la forme a b, alors l’inéquation a > b est ajoutée à la liste des inéquations sur lesquelles va travailler le mécanisme.

Exemple 1

Soit l’obligation de preuve suivante :


 
    Hypothesis  
        xx: INTEGER &  
        0<=xx &  
        xx<=10 &  
        yy: INTEGER &  
        0 = 1+yy-xx &  
        xx-1 = yy &  
        btrue &  
        0<=9 &  
        9: INTEGER  
    Goal  
        xx-1<=9  
 
 


Etant donné la forme du but et le nombre d’inéquations en hypothèses, l’utilisation de la commande ap est recommandé.


 
PRI> ap  
Begin Arithmetic Proof  
 
 


Le but courant est alors déchargé.

Exemple 2

Cet exemple montre le comportement de la commande lorsque le mécanisme échoue dans son travail. Soit l’obligation de preuve suivante :


 
    Hypothesis  
        xx: INTEGER &  
        0<=xx &  
        xx<=10 &  
        btrue &  
        0<=9 &  
        9: INTEGER  
    Goal  
        xx<=9  
 
 


L’obligation de preuve étant fausse, la commande ne décharge pas le but.


 
PRI> ap  
Begin Arithmetic Proof  
This Command gives nothing new  
 
 


La commande ap n’est pas enregistrée, le but courant n’est pas modifié.