| ⊦ r0 ∈ vals0 .nonnullrefs, r0 = jvmref, r0 ∈ vals0 .nonnullrefs ↔ (∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1), dups(vals0 .nonnullrefs), ∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1 |
refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ⊦ r = jvmref, r0 = jvmref, refval(r) ∈ vals, refval(r) ∈ vals1, dups(vals0 .nonnullrefs), r0 ∈ vals0 .nonnullrefs, ∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1, ¬ refval(r0) ∈ vals ∧ r0 ≠ r ∧ ¬ refval(r0) ∈ vals1 ∧ ¬ refval(r0) ∈ vals2
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : javavalue, , inj-03, ⊦ refval(r) = refval(r0) ↔ r = r0], [CSIMPNAMEDSEQ : list, javavalues, in-17, ⊦ val ∈ val0 ' ↔ val = val0], [CSIMPNAMEDSEQ : list, javavalues, in-append, ⊦ val ∈ vals + vals0 ↔ ¬ ¬ ( val ∈ vals ∨ val ∈ vals0)], [CSIMPNAMEDFORWARD : list, javavalues, in-14, ⊦ val ' + vals = vals0 → val ∈ vals0], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1])]]