La définition de la condition la plus faible pour une langue non déterministe
-
05-11-2019 - |
Question
Dans le langage IMP classique, la définition de la condition la plus faible est:
definition "wp c Q s ≡ ∃t. (c,s) ⇒ t ∧ Q t"
Cela indique que de l'état S, après l'exécution de C, nous arrivons à un état satisfaisant Q. Ma question vient lorsque Wikipédia). Je suppose que dans ce cas, il faut définir:
definition "wp c Q s ≡ ∃t. (c,s) ⇒ t ∧ (∀ t'. (c,s) ⇒ t' ⟶ Q t')"
Je me demande si c'est correct et si c'est la façon standard de l'écrire dans la littérature.
Actuellement, j'ai des problèmes à prouver la définition de précondition la plus faible pour la composition séquentielle des commandes:
"wp (c1;;c2) Q s = wp c1 (wp c2 Q) s"
Donc, je commence à penser que ma définition est fausse. Citant Wikipedia:
Le résultat de cette fonction, indiqué WP (S, R), est la condition préalable "la plus faible" sur l'état initial garantissant que l'exécution de S se termine dans un état final satisfaisant R.
La terminaison est donc requise dans la définition, et cela n'est pas correctement imposé jusqu'à présent. Il pourrait y avoir des branches non terminantes.
Pas de solution correcte