| ⊦ r = r0, r0 -- mkfs(class, mkarraytype(ty1), fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, mkarraytype(ty1), fieldvar) '], mkarraytype(ty1), addarray(r, ty, vals, st)) ↔ r0 -- mkfs(class, mkarraytype(ty1), fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, mkarraytype(ty1), fieldvar) '], mkarraytype(ty1), st) |
⊦ oktype(val, mkarraytype(ty), st) ↔ is_referencevalue(val)
⊦ r = r0, r0 -- mkfs(class, mkarraytype(ty1), fieldvar) ' ∈ st ∧ is_referencevalue(st[r0 -- mkfs(class, mkarraytype(ty1), fieldvar) ']) ↔ r0 -- mkfs(class, mkarraytype(ty1), fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, mkarraytype(ty1), fieldvar) '], mkarraytype(ty1), st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addarray(r, ty, vals, st), ty1, st[r0 -- mkfs(class, mkarraytype(ty1), fieldvar) '])]]