| (st[jvmref -- sk, val][jvmref -- sks]) = refval(r0), (st[jvmref -- sk, val][jvmref -- sks0]) = refval(r0), fits(jvmref, sks0, st), fits(jvmref, sks, st), st[jvmref -- sks] .refval = jvmref ∨ st[jvmref -- sks] ≠ st[jvmref -- sks0] ⊦ sks0 = sks, sks0 = [], sks = [], r0 = jvmref |
∀ st, sk, val, sks, r0. (st[jvmref -- sk, val][jvmref -- sks]) = refval(r0) ∧ (st[jvmref -- sk, val][jvmref -- sks1]) = refval(r0) ∧ fits(jvmref, sks1, st) ∧ fits(jvmref, sks, st) ∧ (st[jvmref -- sks] .refval = jvmref ∨ st[jvmref -- sks] ≠ st[jvmref -- sks1]) → sks1 = sks ∨ sks1 = [] ∨ sks = [] ∨ r0 = jvmref, (st[jvmref -- sk, val][jvmref -- sks]) = refval(r0), (st[jvmref -- sk, val][jvmref -- (sk0 + sks1)]) = refval(r0), fits(jvmref, sk0 + sks1, st), fits(jvmref, sks, st), st[jvmref -- sks] .refval = jvmref ∨ st[jvmref -- sks] ≠ st[jvmref -- (sk0 + sks1)] ⊦ sk0 + sks1 = sks, sk0 + sks1 = [], sks = [], r0 = jvmref
[[CONCRETESIMPRULES : ([CSIMPGEN : storekeys generated by [], +;])]]