On définit:
Plus précisément, les assertions considérées sont des assertions sur
l'état du système (ici l'état des variables). En notant
le fait que
est vrai dans l'état
, on aura
(on suppose que pour tout
,
):
peut servir à spécifier et à documenter les
programmes.
Mais,
et
ne sont pas définis de façon unique.
Exemple:
On a:
Vérifions par exemple la première assertion. Soit un état
qui vérifie
, après l'affectation
la valeur de la variable
est supérieure ou égale à
et on a donc aussi
: le nouvel
état
vérifie donc
.
Remarques:
Plus généralement on a peut vérifier les propriétés suivantes:
Les autres propriétés se prouveraient de la façon similaire en se ramenant à la sémantique opérationnelle du langage de programmation.
On peut définir la substitution dans les assertions: si
est une
variable figurant dans l'assertion
,
est
dans lequel
toutes les occurrences de
ont été remplacées par
. (Attention,
il s'agit d'une définition informelle une définition complète devra
différencier entre une variable libre et une variable liée).
On a alors:
Exemple:
Vérifier que en utilisant (4) que: