| ⊦ disjoint(str, vals .nonnullrefs, st) ∧ ¬ hasSharing(vals .nonnullrefs, st) ∧ ¬ dups(vals .nonnullrefs) ∧ validreflist(str, vals, ty, st) ∧ newref(r, st) → ¬ hasSharing(r, addarray(r, ty, vals, st)) |
hasSharing(r, addarray(r, ty, vals, st)), disjoint(str, vals .nonnullrefs, st), validreflist(str, vals, ty, st), newref(r, st) ⊦ r = jvmref, dups(vals .nonnullrefs), hasSharing(vals .nonnullrefs, st)
[[CONCRETESIMPRULES : ([CSIMPNAMEDFORWARD : storefuns, , newref-01, ⊦ newref(r, st) → r ≠ jvmref])]]