4.10 Contradiction

Tentative de preuve par contradiction

Syntaxe

  ct

Utilisation

Cette commande permet de tenter une preuve par contradiction.
Si le but courant est B, alors il est transformé en :
  ¬B bfalse
Il faut alors que les hypothèses, complétées par ¬B, permettent de générer bfalse.
Dans ce cas, on obtient :
  bfalse bfalse
ce qui est vrai.

La preuve par contradiction peut s’utiliser notamment :

Exemple

Soit l’obligation de preuve suivante :


 
    Hypothesis  
        ENS = {e1,e2,e3,e4,e5} &  
        tt: ENS &  
        uu: ENS &  
        not(uu = tt) &  
        uu: {e1,e2,e3,e4} => tt = e5 &  
        uu = e5 => tt = e1  
    Goal  
        not(e2 = e5)  
 


On tente une preuve par contradiction, vu la forme du but.


 
PRI> ct  
Starting Contradiction  
 


¬¬e2 = e5 est simplifié en e2 = e5 puis passe en hypothèse. Le but devient bfalse.


 
    New Hypothesis since last command  
        e2 = e5  
    Goal  
        bfalse  
 


Un appel au prouveur automatique est effectué ensuite.


 
PRI> pr  
Starting Prover Call  
 
 


La ligne de commande devient alors :


 
        Force(0) &  
          dd &  
            ct &  
              pr &  
          Next