| # sks = # refs0, st[refs0 .last -- fs '] = refval(r), st[refs0 .last -- _type] .type = mkclasstype(class), st[r -- sks] = refval(refs0 .last), fits(r, sks, st), validrefs(`docs2store', r ' + refs0, mkclasstype(`java.lang.Object' .class), st), fs ' ∈ instfields(class), ∀ n. n ≠ 0 ∧ ¬ # refs0 < n → st[r -- firstn(n, sks)] .refval = (r ' + refs0)[n] ⊦ refs0 = [], refs0 .last = jvmref, ∃ sks1, sks2. fits(refs0 .last, sks1, st) ∧ fits(refs0 .last, sks2, st) ∧ sks1 ≠ sks2 ∧ sks1 ≠ [] ∧ sks2 ≠ [] ∧ st[refs0 .last -- sks1] .refval ≠ jvmref ∧ st[refs0 .last -- sks1] = st[refs0 .last -- sks2] |
# sks = # refs0, st[refs0 .last -- fs '] = refval(r), st[refs0 .last -- _type] .type = mkclasstype(class), st[r -- sks] = refval(refs0 .last), fits(r, sks, st), validrefs(`docs2store', r ' + refs0, mkclasstype(`java.lang.Object' .class), st), fs ' ∈ instfields(class), ∀ n. n ≠ 0 ∧ ¬ # refs0 < n → st[r -- firstn(n, sks)] .refval = (r ' + refs0)[n] ⊦ refs0 = [], refs0 .last = jvmref, fits(refs0 .last, fs ' + sks, st) ∧ fits(refs0 .last, fs ' + (sks + (fs ' + sks)), st) ∧ fs ' + sks ≠ fs ' + (sks + (fs ' + sks)) ∧ fs ' + sks ≠ [] ∧ fs ' + (sks + (fs ' + sks)) ≠ [] ∧ st[refs0 .last -- (fs ' + sks)] .refval ≠ jvmref ∧ st[refs0 .last -- (fs ' + sks)] = st[refs0 .last -- (fs ' + (sks + (fs ' + sks)))]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (fs ' + sks, fs ' + (sks + (fs ' + sks)))]]