| jvmref = (putByteArray(bytes, r1, i, st)[r1 -- i0 ']) .refval, 0 < st[r1 -- _length] .intval, 0 ≤ i0, is_referencevalue(putByteArray(bytes, r1, i, st)[r1 -- i0 ']), i0 < st[r1 -- _length] .intval, mkarraytype(byte_type) ≤ ty, is_array(`docs2store', r1, putByteArray(bytes, r1, i, st)), okbytearray(r1, st), ∀ r1, st, ty, bytes, i. okbytearray(r1, st) ∧ validrefs(`docs2store', jvmref ', ty, putByteArray(bytes, r1, i, st)) → validrefs(`docs2store', jvmref ', ty, st) ⊦ r1 = jvmref, ∃ i1. ¬ i1 < 0 ∧ ¬ st[r1 -- _length] .intval ≤ i1 ∧ is_referencevalue(st[r1 -- i1 ']) ∧ jvmref = st[r1 -- i1 '] .refval |
(putByteArray(bytes, r1, i, st)[r1 -- i0 ']) = refval(r), jvmref = r, 0 < st[r1 -- _length] .intval, 0 ≤ i0, is_referencevalue(putByteArray(bytes, r1, i, st)[r1 -- i0 ']), i0 < st[r1 -- _length] .intval, mkarraytype(byte_type) ≤ ty, is_array(`docs2store', r1, putByteArray(bytes, r1, i, st)), okbytearray(r1, st), ∀ r1, st, ty, bytes, i. okbytearray(r1, st) ∧ validrefs(`docs2store', jvmref ', ty, putByteArray(bytes, r1, i, st)) → validrefs(`docs2store', jvmref ', ty, st) ⊦ r1 = jvmref, ∃ i1. ¬ i1 < 0 ∧ ¬ st[r1 -- _length] .intval ≤ i1 ∧ is_referencevalue(st[r1 -- i1 ']) ∧ jvmref = st[r1 -- i1 '] .refval
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_referencevalue(val) → ( r = val .refval ↔ val = refval(r))])], [EXTRATERMS : (putByteArray(bytes, r1, i, st)[r1 -- i0 '], r)]]