| buf = mk(mkarray(2)[0, a][1, b], 2, 1, 1) ⊦ ⟪let j = (buf .first + buf .len) % buf .size in { buf0 := buf ; put#(j, c; buf0 .data) }⟫ ⟪buf0 := buf0 .len:= (buf0 .len + 1)⟫ ⟪a2 := a ; pop#(; buf0, a2) ; assert#(a2 = b) ; pop#(; buf0, a2) ; assert#(a2 = c)⟫ true |
buf = mk(mkarray(2)[0, a][1, b], 2, 1, 1), j0 = (buf .first + buf .len) % buf .size ⊦ ⟪buf0 := buf⟫ ⟪put#(j0, c; buf0 .data)⟫ ⟪buf0 := buf0 .len:= (buf0 .len + 1)⟫ ⟪a2 := a ; pop#(; buf0, a2) ; assert#(a2 = b) ; pop#(; buf0, a2) ; assert#(a2 = c)⟫ true
[[CONCRETESIMPRULES : ()]]