| is_classtype(ty0) ⊦ r = r0, r0 -- mkfs(class, ty0, fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, ty0, fieldvar) '], ty0, addarray(r, ty, vals, st)) ↔ r0 -- mkfs(class, ty0, fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, ty0, fieldvar) '], ty0, st) |
⊦ is_classtype(ty) ↔ (∃ class. ty = mkclasstype(class))
∃ class. ty0 = mkclasstype(class) ⊦ r = r0, r0 -- mkfs(class, ty0, fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, ty0, fieldvar) '], ty0, addarray(r, ty, vals, st)) ↔ r0 -- mkfs(class, ty0, fieldvar) ' ∈ st ∧ oktype(st[r0 -- mkfs(class, ty0, fieldvar) '], ty0, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (ty0)]]