| disjoint(str, refs, st), r ∈ refs, r1 ∈ refs, i < st[r1 -- _length] .intval, is_arraytype(st[r1 -- _type] .type), 0 ≤ i, 0 < st[r1 -- _length] .intval ⊦ r1 = jvmref, r = r1, junkref(str, r1, st), ∀ r, r0, r2. ¬ ( r ∈ (refs -l r1) + st[r1 -- i '] .refval ' ∧ r0 ∈ (refs -l r1) + st[r1 -- i '] .refval ' ∧ r ≠ r0 ∧ r2 ≠ jvmref ∧ path∃(str, r, r2, st) ∧ path∃(str, r0, r2, st)) |
path∃(str, r3, r0, st), path∃(str, r2, r0, st), disjoint(str, refs, st), r ∈ refs, r1 ∈ refs, i < st[r1 -- _length] .intval, is_arraytype(st[r1 -- _type] .type), 0 ≤ i, 0 < st[r1 -- _length] .intval ⊦ r1 = jvmref, r = r1, r0 = jvmref, r3 = r2, junkref(str, r1, st), ¬ r3 ∈ refs -l r1 ∧ r3 ≠ st[r1 -- i '] .refval, ¬ r2 ∈ refs -l r1 ∧ r2 ≠ st[r1 -- i '] .refval
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, references, a, ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPNAMEDSEQ : list, references, in-17, ⊦ r ∈ r0 ' ↔ r = r0], [CSIMPNAMEDSEQ : list, references, in-append, ⊦ r ∈ refs + refs0 ↔ ¬ ¬ (r ∈ refs ∨ r ∈ refs0)])]]