Hoare-Inferenzregeln (Sequenz, If, Konsequenz)

Regeln zum Zusammensetzen von Programmteilen:

  1. Sequenzregel:{P}S1{R},{R}S2{Q}{P}S1;S2{Q}Die Nachbedingung des ersten Teils ist Vorbedingung des zweiten.
  2. Rule of Consequence (Konsequenzregel):P→P′,{P′}S{Q′},Q′→Q{P}S{Q}Erlaubt Verschärfung der Vorbedingung (P→P′) und Abschwächung der Nachbedingung (Q′→Q).
  3. If-Regel:{P∧B}S1{Q},{P∧¬B}S2{Q}{P} if B then S1 else S2 fi {Q}Beweist beide Zweige unter der Annahme der Bedingung bzw. deren Negation.