| refval(r0) = vals .first ⊦ r = jvmref, r0 = jvmref, vals = [], refval(r) ∈ vals, refval(r) ∈ vals1, dups((vals .rest + refval(r) ' + vals1 + refval(r) ' + vals2) .nonnullrefs), r0 ∈ (vals .rest + refval(r) ' + vals1 + refval(r) ' + vals2) .nonnullrefs, ∃ r0, vals5, vals4, vals3. vals .rest + refval(r) ' + vals1 + refval(r) ' + vals2 = vals5 + refval(r0) ' + vals4 + refval(r0) ' + vals3 ∧ r0 ≠ jvmref ∧ ¬ refval(r0) ∈ vals5 ∧ ¬ refval(r0) ∈ vals4, ¬ 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, javavalues, c, ⊦ val + vals = val ' + vals], [CSIMPNAMEDSEQ : list, javavalues, e-01, ⊦ val ' + vals ≠ []], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : list, javavalues, in-06, ⊦ ¬ val ∈ val0 ' + vals ↔ val ≠ val0 ∧ ¬ val ∈ vals], [CSIMPNAMEDSEQ : javavalue, , inj-03, ⊦ refval(r) = refval(r0) ↔ r = r0], [CSIMPNAMEDSEQ : list-dup, references, f-01, ⊦ dups(refs + r ' + refs0) ↔ r ∈ refs ∨ r ∈ refs0 ∨ dups(refs + refs0)], [CSIMPNAMEDSEQ : list, references, in-append, ⊦ r ∈ refs + refs0 ↔ ¬ ¬ (r ∈ refs ∨ r ∈ refs0)], [CSIMPNAMEDSEQ : list, references, in-06, ⊦ ¬ r ∈ r0 ' + refs ↔ r ≠ r0 ∧ ¬ r ∈ refs], [CSIMPNAMEDSEQ : list, references, a, ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPELIM : vals ≠ [] ⊦ val = vals .first ∧ vals0 = vals .rest ↔ vals = val + vals0])], [EXTRATERMS : (vals, val, vals0)]]