| buf = mk(mkarray(2)[0, a][1, b], 2, 1, 1), j0 = (buf .first + buf .len) % buf .size, buf1 = buf ⊦ ⟪put#(j0, c; buf1 .data)⟫ ⟪buf1 := buf1 .len:= (buf1 .len + 1)⟫ ⟪a2 := a ; pop#(; buf1, a2) ; assert#(a2 = b) ; pop#(; buf1, a2) ; assert#(a2 = c)⟫ true |
buf1 = mk(mkarray(2)[0, a][1, b], 2, 1, 1) ⊦ ⟪put#(0, c; buf1 .data)⟫ ⟪buf1 := buf1 .len:= (buf1 .len + 1)⟫ ⟪a2 := a ; pop#(; buf1, a2) ; assert#(a2 = b) ; pop#(; buf1, a2) ; assert#(a2 = 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])]]