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