ホーア論理の代入の規則
わりとわかりにくくて混乱しやすい気がするホーア論理の代入の規則ですが,見方を少し変えるとわかりやすくなります。
普通の規則。
同値変形してこうする。
要するに「代入後の x の値を x' とすれば A[x'/x] である」が事前条件です。Hoare triple の意味を考えればそれが事前条件になるのは当たり前ですね。
こっちのほうがわかりやすいし,この形で認識しておくと x' の条件を変えることでいろいろできます。例えば乱数。
上限を指定したり。
配列。
配列への同時代入(構文は適当)。