| n < # arr2list(ar, m0), n < # ar, n ≤ m0 + 1, m0 + 1 < # ar, ∀ n, ar, bv. n < # ar ∧ n ≤ m0 ∧ m0 < # ar → (arr2list(ar, m0)[n, bv]) = arr2list(ar[n, bv], m0) ⊦ (arr2list(ar, m0)[n, bv]) + ar[m0 + 1] ' = arr2list(ar[n, bv], m0) + (ar[n, bv][m0 + 1]) ' |
m0 + 1 < # ar, n ≤ m0 + 1, n < # ar, n < # arr2list(ar, m0), ∀ n, ar, bv. n < # ar ∧ n ≤ m0 ∧ m0 < # ar → (arr2list(ar, m0)[n, bv]) = arr2list(ar[n, bv], m0) ⊦ (arr2list(ar, m0)[n, bv]) + ar[m0 + 1] ' = arr2list(ar[n, bv], m0) + (ar[n, bv][m0 + 1]) ', arr2list(ar, m0) = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # x = 0 ↔ x = []], [CSIMPFORWARD : ⊦ m < n → n ≠ 0], [CSIMPSEQ : ⊦ m + n = n + m])]]