Tentative de preuve par contradiction
ct
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 :
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
|