4.13 Special do cases

Tentative de preuve par cas sur formule disjonctive

Syntaxe

  dcs(A or B)
avec :

Utilisation

Cette commande permet le déclenchement d’une preuve par cas.
Si le but à prouver est B :

Exemple

Considérons la preuve par cas, dans le cas d’un prédicat disjonctif.
Soit la situation suivante :


 
    Hypothesis  
        xx: INTEGER &  
        0<=xx &  
        xx = 1 or xx = 10 or xx = 4 &  
        btrue &  
        0<=20 &  
        20: INTEGER  
    Goal  
        xx<=20  
 
 


L’utilisateur lance une preuve par cas pour pouvoir pleinement utiliser l’hypothèse
xx = 1 or xx = 10 or xx = 4.


 
PRI> dcs(xx = 1 or xx = 10 or xx = 4)  
Starting Do Cases  
 
 


Puisque le prédicat disjonctif provient des hypothèses, aucune vérification à son sujet n’est nécessaire. Le prouveur va déclencher 3 preuves successives :


 
    Goal  
        xx = 4 &  
        not(xx = 10) &  
        not(xx = 1)  
        =>  
        xx<=20  
 
    Goal  
        xx = 10 &  
        not(xx = 4) &  
        not(xx = 1)  
        =>  
        xx<=20  
 
    Goal  
        xx = 1 &  
        not(xx = 4) &  
        not(xx = 10)  
        =>  
        xx<=20  
 
 


Chacun de ces but est facilement déchargé par le commande pr (voir chapitre 4.38 page §).