Changement de la force courante du prouveur
ff(n)
avec :
Cette commande permet de changer la force courante du prouveur et de rejouer toute la ligne de
commande existante (voir chapitre 2.7 page §) avec la nouvelle force.
Si la force demandée est égale à la force courante, alors rien ne se passe.
La force Rapide privilégie au maximum la rapidité des traitements.
Une preuve en force 0 demande en moyenne jusqu’à 10 secondes par obligation de preuve. Pour
certaines PO complexes, la preuve peut demander plusieurs minutes. Les forces supérieures
mettent en oeuvre des mécanismes plus gourmands en ressources mémoire et CPU. Le temps de
traitement par PO peut devenir très important.
Étant donné qu’environ 90 % des PO prouvées le sont en force 0, il est conseillé de tenter la
preuve d’une PO d’abord en force 0.
Pour plus de précisions sur les forces de preuve, on se reportera au chapitre “Le choix d’une
force supérieure” du Manuel utilisateur du prouveur interactif .
La commande ba (voir chapitre 4.6 page §), qui effectue le recul de la preuve, ne s’applique pas
sur une commande ff.
Soit la situation suivante :
Hypothesis xx: 1..10 & yy: 1..10 & zz: 1..100 & xx+yy: 2..20 Goal xx+yy-1: 1..100
|
pour laquelle un travail de preuve interactive existe, en force(0) :
Force(0) & ah(xx+yy: 2..20) & pr & dd & Next
|
L’opérateur change la force courante du prouveur :
PRI> ff(1) Switching to Force 1
|
La ligne de commande déjà exécutée va être rejouée dans la nouvelle force (ah(xx + yy ∈ 2..20) &
pr & dd).
Starting Add Hypothesis Starting Prover Call dd not applicable: Goal is not p => q
|
Le rejeu en force différente est difficile puisque le cheminement de la preuve est a
priori différent. On remarque en particulier que la commande dd ne s’applique pas.
La nouvelle ligne de commande est :
Force(0) & ah(xx+yy: 2..20) & pr & Next
|