| (refval(r1) ' + vals0)[m] = refval(r), m ≤ # vals0, ∀ r0. r0 ∈ vals0 .nonnullrefs ↔ r0 ≠ jvmref ∧ (∃ m. vals0[m] = refval(r0) ∧ m < # vals0) ⊦ r = r1, r1 = jvmref, r = jvmref, r ∈ vals0 .nonnullrefs |
⊦ vals ≠ [] ∧ n ≠ 0 → vals[n] = (vals .rest)[n - 1]
refval(r1) ' + vals0 ≠ [] ∧ m ≠ 0, ((refval(r1) ' + vals0) .rest)[m - 1] = refval(r), m ≤ # vals0, ∀ r0. r0 ∈ vals0 .nonnullrefs ↔ r0 ≠ jvmref ∧ (∃ m. vals0[m] = refval(r0) ∧ m < # vals0) ⊦ r = r1, r1 = jvmref, r = jvmref, r ∈ vals0 .nonnullrefs
[[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 : list-del, javavalues, get-zero-01, ⊦ (val ' + vals)[0] = val], [CSIMPNAMEDSEQ : javavalue, , inj-03, ⊦ refval(r) = refval(r0) ↔ r = r0])], [EXTRATERMS : (m, refval(r1) ' + vals0)]]