Sie sind insofern gleichwertig, als Sie jedes Mal, wenn Sie die Lehrbuchregel anwenden können, auch Ihre eigene Regel anwenden können und umgekehrt. Die Invariante für die beiden Regeln ist ähnlich, aber nicht gleich.
Konvertieren einer Lehrbuchregelinstanz in eine Instanz Ihrer Regel
Angenommen, wir haben eine Anwendung oder Ihre Lehrbuchregel. wir haben einige für die:I
I⇒V≥0 zusammen mit[I∧C∧V=v0]S[I∧V<v0]
Dann haben wir dank der obigen Implikation auch . Mit der Regel PrePost können wir die Invariante in ihre Entsprechung umschreiben und erhalten eine Anwendung Ihrer Regel:I⟺I∧V≥0
[I∧C∧V≥0∧V=v0]S[I∧V≥0∧V<v0]
Hier verwenden wir dieselbe Invariante wie in der Lehrbuchregel.
Konvertieren einer Instanz Ihrer Regel in eine Lehrbuchregelinstanz
Nun zur umgekehrten Richtung. Angenommen, wir haben für Ihre Regel gefunden:I
[I∧C∧V≥0∧V=v0]S[I∧V≥0∧V<v0]
Jetzt können wir nicht annehmen , daher können wir für die Lehrbuchregel verwenden. Wir können jedoch als neue Invariante . Wir haben trivialerweise durch Konstruktion (*). Weiter aus der HypotheseI⇒V≥0II′:=I∧V≥0I′⇒V≥0
[I∧C∧V≥0∧V=v0]S[I∧V≥0∧V<v0]
wir können erhalten (durch PrePost)
[I′∧C∧V=v0]S[I′∧V<v0] (**)
Die Eigenschaften (*) und (**) sind genau das, was wir brauchen, um die Lehrbuchregel anzuwenden.