5.2 Normalisation des formules P   Q et ¬P

Ressource : ATB*PR*Keep_Non_Simplified_Hypothesis.
Valeur : TRUE ou FALSE.
Signification : On conserve les prédicats non simplifés seulement si cette ressource vaut TRUE.
Valeur par défaut : TRUE.

Le principe de simplification de prédicats de la forme P   Q et ¬P consiste à transformer ces formules en P P   Q et ¬(P P) (où Pest la forme simplifiée de P). ce fonctionnement correspond à la valeur TRUE pour cette ressource.
A contrario, la valeur FALSE permet de ne conserver que les prédicats simplifiés i.e. de transformer les formules initiales en P   Q et ¬P.
Dans certains cas la présence simultanée du prédicat non simplifié et du prédicat simplifié peut empêcher l’application de mécanismes du prouveur. Par exemple, le prouveur ne peut effectuer un Modus Ponens sur les hypothèses P, Pet (P P)   Q alors qu’il le fait sur les hypothèses Pet P   Q.

Exemple :
Soit l’obligation de preuve suivante :


 
    Goal  
    x1<=3-y1 => x1<=2+ii &  
    x1+y1<=3 &  
    =>  
    5+z1 = y1  
 
 


Nous sommes dans le cas où la ressource est positionnée à la valeur TRUE. En effectuant successivement un dd(0) (pour faire monter dans la pile des hypothèses les deux hypothèses locales) puis sh(x1) pour visualiser les hypothèses contenant le terme x1, on obtient :


 
    Found hypothesis List is  
        x1+y1<=3 &  
        0<=3-x1-y1 &  
        0<=3-x1-y1 & x1+y1<=3 => x1<=2+ii  
    End of found hypothesis  
 
 


Remarquons que l’hypothèse 0 <= 3 - x1 - y1 (respectivement 0 <= 3 - x1 - y1 x1 <= 3 - y1   x1 <= 2 + ii) est la version simplifiée de la formule x1 + y1 <= 3 (respectivement x1 <= 3 - y1 => x1 <= 2 + ii), on a donc conservé comme prévu les versions non simplifées.
Puisque nous disposons des deux hypothèses x1 + y1 <= 3 et 0 <= 3 -x1 -y1, le modus ponens sur l’hypothèse 0 <= 3 - x1 - y1 x1 <= 3 - y1   x1 <= 2 + ii devrait être possible :


 
    Invalid argument / Inexistent a=>b Hypothesis in  
    mh(0<=3-x1-y1 & x1<=3-y => x1<=2+ii)  
 
 


Le prouveur ne parvient pas effectuer le Modus Ponens.
On positionne la ressource à la valeur FALSE. En effectuant les mêmes commandes interactives sur la même obligation de preuve, on obtient :


 
    Found hypothesis List is  
        x1<=2+ii &  
        0<=3-x1-y1 &  
        0<=3-x1-y1 => x1<=2+ii  
    End of found hypothesis  
 
 


Cette fois nous avons conservé uniquement les versions simplifiées des formules. Remarquons que l’on dispose aussi de l’hypothèse x1 <= 2 + ii obtenue par un modus ponens déclenché automatiquement sur 0 <= 3 -x1 -y1   x1 <= 2 + ii. Le prouveur n’a pas été géné par la présence d’hypothèses non simplifiées.