| okbytearray(r2, st), path∃(`docs2store', r, r1, putByteArray(bytes, r2, i, st)), ∀ st, i, r2, r1, r, bytes0. # bytes0 < # bytes → (path∃(`docs2store', r, r1, putByteArray(bytes0, r2, i, st)) ∧ okbytearray(r2, st) → junkref(`docs2store', r, st) ∨ path∃(`docs2store', r, r1, st)) ⊦ path∃(`docs2store', r, r1, st), junkref(`docs2store', r, st) |
⊦ bytes ≠ [] → putByteArray(bytes, r, i, st) = (putByteArray(bytes .rest, r, i + 1, st)[r -- i ', byteval(bytes .first)])
bytes ≠ [], okbytearray(r2, st), path∃(`docs2store', r, r1, putByteArray(bytes .rest, r2, i + 1, st)[r2 -- i ', byteval(bytes .first)]), ∀ st, i, r2, r1, r, bytes0. # bytes0 < # bytes → (path∃(`docs2store', r, r1, putByteArray(bytes0, r2, i, st)) ∧ okbytearray(r2, st) → junkref(`docs2store', r, st) ∨ path∃(`docs2store', r, r1, st)) ⊦ path∃(`docs2store', r, r1, st), junkref(`docs2store', r, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ putByteArray([], r, i, st) = st])], [EXTRATERMS : (st, i, r2, bytes)]]