4.6 Back

Recul dun pas de preuve

Syntaxe

  ba
  ba(n)

avec :

Utilisation

Cette commande provoque le recul d’un pas de preuve : l’effet de la dernière commande est annulé. Le but courant, les hypothèses et la ligne de commande reprennent leur état précédent. Il se peut que la commande ba ne produise pas de déplacement, si l’on est en début de ligne de commande (aucune commande exécutée).
Cette commande a un effet sur l’état de l’obligation de preuve : si celle-ci vient d’être prouvée et que l’on applique la commande ba, on va se replacer juste avant la dernière commande qui finit la démonstration et l’obligation de preuve redevient non prouvée.

La commande Back peut reculer du nombre de pas spécifié lors de l’appel de la commande.

Le paramètre Node fait reculer l’état de l’obligation de preuve, jusqu’au précédent niveau d’indentation dans la ligne de commande. Ce paramètre donne un Back très rapide car aucune commande n’est rejouée.

ba ne s’applique pas sur une commande ff (voir chapitre 4.17 page §).

Exemple 1

Soit l’obligation de preuve dont la ligne de commande est la suivante :


 
        Force(0) &  
          ar(test.1,Fwd) &  
            dd &  
              dd &  
                ar(test.2,Once) &  
                  pr &  
                  pr &  
          Next  
 
 


Si l’on applique la commande ba, on vérifie que la dernière commande (pr) a été supprimée :


 
        Force(0) &  
          ar(test.1,Fwd) &  
            dd &  
              dd &  
                ar(test.2,Once) &  
                  pr &  
                  Next  
 


En recommençant la même opération, on vérifie que la dernière commande (pr) a été supprimée :


 
        Force(0) &  
          ar(test.1,Fwd) &  
            dd &  
              dd &  
                ar(test.2,Once) &  
                  Next  
 


On peut aussi reculer de plusieurs pas en une seule commande :


 
PRI> ba(3)  
 


Dans ce cas, la ligne de commande devient :


 
        Force(0) &  
          ar(test.1,Fwd) &  
            Next  
 


Exemple 2

Si la ligne de commande est :


 
  ah(not(xx = e1)) &  
    dc(zz,ENUM) &  
      pr &  
      pr &  
        ah(ww = 5) &  
          pr &  
          pr &  
      Next  
 


Après application de la commande ba(Node), la ligne de commande devient :


 
  ah(not(xx = e1)) &  
    Next