| # xs = xs_len, # xs < h, # ys = 0 ∨ # ys = h ⊦ ⟪if xs_len + 1 = h then {ys := a + xs; xs_len := 0; xs := []} else {xs := a + xs; xs_len := 1 + xs_len}⟫ (# xs < h ∧ # xs = xs_len ∧ (# ys = 0 ∨ # ys = h)) |
# xs = xs_len, xs_len + 1 = h, # xs < h, # ys = 0 ∨ # ys = h ⊦ ⟪ys := a + xs; xs_len := 0; xs := []⟫ (# xs < h ∧ # xs = xs_len ∧ (# ys = 0 ∨ # ys = h))
# xs = xs_len, # xs < h, # ys = 0 ∨ # ys = h ⊦ ⟪xs := a + xs; xs_len := 1 + xs_len⟫ (# xs < h ∧ # xs = xs_len ∧ (# ys = 0 ∨ # ys = h)), xs_len + 1 = h