| buf1 = mk(mkarray(2), 2, 0, 0), ar0 = buf1 .data ∧ a2 = a ∧ i0 = 0 ⊦ ⟪buf1 := buf1 .data:= ar0[i→n(i0), a2] .len:= ((buf1 .data:= ar0[i→n(i0), a2]) .len + 1)⟫ ⟪push#(b; buf1) ; 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), 2, 0, 0), ar0 = buf1 .data ∧ a2 = a ∧ i0 = 0, buf = buf1 .data:= ar0[i→n(i0), a2] .len:= ((buf1 .data:= ar0[i→n(i0), a2]) .len + 1) ⊦ ⟪push#(b; buf)⟫ ⟪pop#(; buf, a0) ; assert#(a0 = a) ; push#(c; buf) ; pop#(; buf, a0) ; assert#(a0 = b) ; pop#(; buf, a0) ; assert#(a0 = c)⟫ true
[[CONCRETESIMPRULES : ()]]