| buf0 = mk(mkarray(i→n(2)), 2, 0, 0), j0 = (buf0 .first + buf0 .len) % buf0 .size, buf1 = buf0 ⊦ ⟪put#(j0, a; buf1 .data)⟫ ⟪buf1 := buf1 .len:= (buf1 .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) ⊦ ⟪put#(0, a; buf1 .data)⟫ ⟪buf1 := buf1 .len:= (buf1 .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
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mk(ar, i, i0, i1) .size = i], [CSIMPSEQ : ⊦ mk(ar, i, i0, i1) .first = i0], [CSIMPSEQ : ⊦ mk(ar, i, i0, i1) .len = i1])]]