| validref(str, r, ty, st), okbytearray(r0, st), ∀ str, r, ty, st, r0, i. validref(str, r, ty, st) ∧ okbytearray(r0, st) → r = r0 ∨ validref(str, r, ty, putByteArray(bytes0, r0, i, st)) ⊦ is_boolvalue(byteval(by)) ∧ st[r0 -- _type] .type .type = boolean_type ∨ is_integervalue(byteval(by)) ∧ st[r0 -- _type] .type .type = int_type ∨ is_shortvalue(byteval(by)) ∧ st[r0 -- _type] .type .type = short_type ∨ is_bytevalue(byteval(by)) ∧ st[r0 -- _type] .type .type = byte_type ∨ is_longvalue(byteval(by)) ∧ st[r0 -- _type] .type .type = long_type ∨ is_floatvalue(byteval(by)) ∧ st[r0 -- _type] .type .type = float_type ∨ is_doublevalue(byteval(by)) ∧ st[r0 -- _type] .type .type = double_type ∨ is_charvalue(byteval(by)) ∧ st[r0 -- _type] .type .type = char_type ∨ is_referencevalue(byteval(by)) ∧ (is_classtype(st[r0 -- _type] .type .type) ∨ is_arraytype(st[r0 -- _type] .type .type) ∨ st[r0 -- _type] .type .type = void_type), r = r0, validref(str, r, ty, putByteArray(bytes0, r0, i + 1, st)[r0 -- i ', byteval(by)]) |
validref(str, r, ty, st), okbytearray(r0, st), ∀ str, r, ty, st, r0, i. validref(str, r, ty, st) ∧ okbytearray(r0, st) → r = r0 ∨ validref(str, r, ty, putByteArray(bytes0, r0, i, st)) ⊦ r = r0, st[r0 -- _type] .type .type = byte_type, validref(str, r, ty, putByteArray(bytes0, r0, i + 1, st)[r0 -- i ', byteval(by)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_referencevalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_charvalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_doublevalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_floatvalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_longvalue(byteval(by))], [CSIMPSEQ : ⊦ is_bytevalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_shortvalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_integervalue(byteval(by))], [CSIMPSEQ : ⊦ ¬ is_boolvalue(byteval(by))])]]