| i < st[r1 -- _length] .intval, okarray(r1, byte_type, st), 0 ≤ i, 0 < st[r1 -- _length] .intval, r1 ∈ st ⊦ r1 = jvmref, (∀ sks, sks0. ¬ fits(r, sks, st[r1 -- i ', byteval(by)]) ∨ ¬ fits(r, sks0, st[r1 -- i ', byteval(by)]) ∨ sks = sks0 ∨ sks = [] ∨ sks0 = [] ∨ (st[r1 -- i ', byteval(by)][r -- sks]) .refval = jvmref ∨ (st[r1 -- i ', byteval(by)][r -- sks]) ≠ (st[r1 -- i ', byteval(by)][r -- sks0])) ↔ ¬ hasSharing(r, st), junkref(str, r, st) |
⊦ hasSharing(r, st) ↔ (∃ sks1, sks2. fits(r, sks1, st) ∧ fits(r, sks2, st) ∧ sks1 ≠ sks2 ∧ sks1 ≠ [] ∧ sks2 ≠ [] ∧ st[r -- sks1] .refval ≠ jvmref ∧ st[r -- sks1] = st[r -- sks2])
i < st[r1 -- _length] .intval, okarray(r1, byte_type, st), 0 ≤ i, 0 < st[r1 -- _length] .intval, r1 ∈ st ⊦ r1 = jvmref, (∀ sks, sks0. ¬ fits(r, sks, st[r1 -- i ', byteval(by)]) ∨ ¬ fits(r, sks0, st[r1 -- i ', byteval(by)]) ∨ sks = sks0 ∨ sks = [] ∨ sks0 = [] ∨ (st[r1 -- i ', byteval(by)][r -- sks]) .refval = jvmref ∨ (st[r1 -- i ', byteval(by)][r -- sks]) ≠ (st[r1 -- i ', byteval(by)][r -- sks0])) ↔ ¬ (∃ sks1, sks2. fits(r, sks1, st) ∧ fits(r, sks2, st) ∧ sks1 ≠ sks2 ∧ sks1 ≠ [] ∧ sks2 ≠ [] ∧ st[r -- sks1] .refval ≠ jvmref ∧ st[r -- sks1] = st[r -- sks2]), junkref(str, r, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, r)]]