| vals0[m1] = refval(r), (val ' + vals0)[n] = refval(r), m1 < # vals0, n ≤ # vals0, ¬ is_referencevalue(val) ∨ val .refval = jvmref ⊦ r = jvmref, m1 + 1 = n, vals0 = [], dups(vals0 .nonnullrefs), ∃ r0, m0, n0. vals0[m0] = refval(r0) ∧ vals0[n0] = refval(r0) ∧ r0 ≠ jvmref ∧ m0 ≠ n0 ∧ ¬ # vals0 ≤ m0 ∧ ¬ # vals0 ≤ n0 |
⊦ vals ≠ [] ∧ n ≠ 0 → vals[n] = (vals .rest)[n - 1]
val ' + vals0 ≠ [] ∧ n ≠ 0, vals0[m1] = refval(r), ((val ' + vals0) .rest)[n - 1] = refval(r), m1 < # vals0, n ≤ # vals0, ¬ is_referencevalue(val) ∨ val .refval = jvmref ⊦ r = jvmref, m1 + 1 = n, vals0 = [], dups(vals0 .nonnullrefs), ∃ r0, m0, n0. vals0[m0] = refval(r0) ∧ vals0[n0] = refval(r0) ∧ r0 ≠ jvmref ∧ m0 ≠ n0 ∧ ¬ # vals0 ≤ m0 ∧ ¬ # vals0 ≤ n0
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, javavalues, app-02-ant, ⊦ ¬ vals + vals0 ≠ [] ↔ vals = [] ∧ vals0 = []], [CSIMPNAMEDSEQ : list, javavalues, e, ⊦ val ' ≠ []], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : nat-basic2, , a, ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPNAMEDSEQ : nat-basic2, , c, ⊦ m + n = n + m], [CSIMPNAMEDSEQ : list-del, javavalues, get-zero-01, ⊦ (val ' + vals)[0] = val], [CSIMPNAMEDSEQ : nat-basic2, , oz, ⊦ m + 1 ≠ 0], [CSIMPNAMEDSEQ : nat, , lez, ⊦ 0 ≤ m], [CSIMPNAMEDSEQ : javavalue, , test-19, ⊦ is_referencevalue(refval(r))], [CSIMPNAMEDSEQ : javavalue, , sel-09, ⊦ refval(r) .refval = r])], [EXTRATERMS : (n, val ' + vals0)]]