| m0 < # ar, n < # ar, n ≤ m0 + 1, m0 + 1 < # ar, m0 + 1 ≤ n, m0 + 1 < # ar, m0 + 1 ≤ m0 + 1, ∀ n, ar, bv. n < # ar ∧ n ≤ m0 ∧ m0 < # ar → (arr2list(ar, m0)[n, bv]) = arr2list(ar[n, bv], m0) ⊦ (arr2list(ar, m0) + ar[m0 + 1] ')[n, bv] = arr2list(ar[n, bv], m0) + (ar[n, bv][m0 + 1]) ' |
⊦ n < m ∧ m < # ar → arr2list(ar[m, bv], n) = arr2list(ar, n)
m0 < # ar, 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) + ar[m0 + 1] ')[m0 + 1, bv] = arr2list(ar, m0) + bv '
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m +1 = m + 1], [CSIMPSEQ : ⊦ ¬ n < n], [CSIMPSEQ : ⊦ m < n + 1 ↔ ¬ n < m], [CSIMPSEQ : ⊦ m < # ar → (ar[m, bv][m] ↔ bv)], [CSIMPSEQ : ⊦ m + 1 ≠ 0], [CSIMPFORWARD : ⊦ m < n ∧ m = n0 → n0 < n], [CSIMPFORWARD : ⊦ n < n0 ∧ n0 < n1 → n < n1], [CSIMPFORWARD : ⊦ m < n → n ≠ 0], [CSIMPFORWARD : ⊦ m < n ∧ n < n0 → m +1 < n0], [CSIMPFORWARD : ⊦ m < n ∧ n = n0 → m < n0], [CSIMPFORWARD : ⊦ m = n + 1 ∧ n < n0 → m ≤ n0], [CSIMPSEQ : ⊦ m + n ≤ m + n0 ↔ n ≤ n0], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + 1 ≤ n ↔ m < n], [CSIMPSEQ : ⊦ m ≤ n → (n ≤ m ↔ m = n)], [CSIMPSEQ : ⊦ m + n = n + m])]]