| buf1 = mk(mkarray(2)[0, a], 2, 0, 1) ⊦ ⟪ar := buf1 .data, a1 := b, i := 1⟫ ⟪if 0 ≤ i ∧ i < n→i(# ar) then ar := ar[i→n(i), a1] else abort⟫ ⟪buf1 := buf1 .data:= ar .len:= ((buf1 .data:= ar) .len + 1)⟫ ⟪pop#(; buf1, a0) ; assert#(a0 = a) ; push#(c; buf1) ; pop#(; buf1, a0) ; assert#(a0 = b) ; pop#(; buf1, a0) ; assert#(a0 = c)⟫ true |
buf1 = mk(mkarray(2)[0, a], 2, 0, 1), ar0 = buf1 .data ∧ a2 = b ∧ i0 = 1 ⊦ ⟪if 0 ≤ i0 ∧ i0 < n→i(# ar0) then ar0 := ar0[i→n(i0), a2] else abort⟫ ⟪buf1 := buf1 .data:= ar0 .len:= ((buf1 .data:= ar0) .len + 1)⟫ ⟪pop#(; buf1, a0) ; assert#(a0 = a) ; push#(c; buf1) ; pop#(; buf1, a0) ; assert#(a0 = b) ; pop#(; buf1, a0) ; assert#(a0 = c)⟫ true
[[CONCRETESIMPRULES : ()]]