| ¬ vals ≠ [], 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 |
⊦ (vals + vals0) .nonnullrefs = vals .nonnullrefs + vals0 .nonnullrefs
⊦ r ≠ jvmref → refval(r) ' .nonnullrefs = r '
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, references, a, ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPNAMEDSEQ : list, references, in-06, ⊦ ¬ r ∈ r0 ' + refs ↔ r ≠ r0 ∧ ¬ r ∈ refs], [CSIMPNAMEDSEQ : list, references, in-append, ⊦ r ∈ refs + refs0 ↔ ¬ ¬ (r ∈ refs ∨ r ∈ refs0)], [CSIMPNAMEDSEQ : list, javavalues, in-empty, ⊦ ¬ val ∈ []], [CSIMPNAMEDSEQ : javavalue, , inj-03, ⊦ refval(r) = refval(r0) ↔ r = r0], [CSIMPNAMEDSEQ : list, javavalues, c-06, ⊦ val ' + vals = val0 ' + vals0 ↔ val = val0 ∧ vals = vals0], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : list, javavalues, Nil, ⊦ [] + vals = vals])]]