Tentative de preuve par cas sur formule disjonctive
dcs(A or B)
avec :
Cette commande permet le déclenchement d’une preuve par cas.
Si le but à prouver est B :
Par exemple si X est A ∨ not(B) ∨ C et que le but est But, les nouveaux but deviennent :
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 §).