État de la preuve pour les PO du composant courant
gs
gs(k)
gs(o,e)
gs(o,e,f)
avec :
Cette commande permet de sélectionner et d’afficher l’état de preuve (prouvée, non prouvée) et
le but (sans les hypothèses) des obligations de preuve.
L’argument o permet de sélectionner les obligations de preuves correspondantes à la clause
spécifiée (si elle existe), e identifie l’état des obligations de preuve et enfin, f la forme de leur
but.
L’argument k permet de sélectionner toutes les obligations de preuve du composant courant qui
sont dans l’état de preuve spécifié, si k vaut Proved ou Unproved, toutes les obligations de
preuve du composant courant dont le but coïncide avec g, si k est de la forme Patt(g) et toutes
les obligations de preuve correspondantes à la clause k, si k est un nom de clause du composant
courant.
Par défaut, gs, gs(o,e) représentent respectivement gs(_all,_all,_all) et gs(o,e,_all).
Si k vaut Proved ou Unproved, gs(k) signifie gs(_all,k,_all), si k est de la forme Patt(g), gs(k)
désigne gs(_all,_all,(g)) et dans tout les autres cas, gs(k) signifie gs(k,_all,_all).
Pour le composant ci-dessous, on note la présence de la clause Initialisation et de
l’opération op0. La forme du but de chaque obligation de preuve est donnée en fin de
ligne.
PRI> gs State of all PO Initialisation PO1 Unproved xx = 3 PO2 Unproved {0|->TRUE}: NAT +-> BOOL PO3 Unproved xx+1: INTEGER PO4 Proved 0<=xx+1 PO5 Unproved xx+1<=2147483647 op0 PO1 Unproved zz+2: INTEGER PO2 Unproved 0<=zz+2 PO3 Proved zz+2<=2147483647 PO4 Unproved zz+2 = 3 End
|
On ne sélectionne maintenant que les obligations de preuve de l’opération op0 :
PRI> gs(op0) State of All PO of operation op0 PO1 Unproved zz+2: INTEGER PO2 Unproved 0<=zz+2 PO3 Proved zz+2<=2147483647 PO4 Unproved zz+2 = 3 End
|
On choisit d’afficher seulement les obligations de preuve non prouvées de l’opération
op0 :
PRI> gs(op0,Unproved) Unproved PO of operation op0 PO1 Unproved zz+2: INTEGER PO2 Unproved 0<=zz+2 PO4 Unproved zz+2 = 3 End
|
On recherche les obligations de preuve non prouvées de la clause Initialisation dont le but
coïncide avec {x} : y BOOL :
PRI> gs(Initialisation,Unproved,({x}: y +-> BOOL)) Unproved PO of operation Initialisation Matching with {x}: y +-> BOOL PO2 Unproved {0|->TRUE}: NAT +-> BOOL End
|
On recherche les obligations de preuve prouvées parmi toutes les obligations de preuve du
composant courant :
PRI> gs(Proved) All Proved PO Initialisation PO4 Proved 0<=xx+1 op0 PO3 Proved zz+2<=2147483647 End
|
On recherche parmi toutes les obligations de preuve du composant courant, celles dont le but
coïncide avec la formule x = y :
PRI> gs(Patt(x = y)) State of all PO Matching with x = y Initialisation PO1 Unproved xx = 3 op0 PO4 Unproved zz+2 = 3 End
|