| n < n0 + n1, n < # fill(mkarray(n0), empty) + # fill(mkarray(n1), empty) ⊦ (n < # fill(mkarray(n0), empty) ⊃ fill(mkarray(n0), empty)[n];fill(mkarray(n1), empty)[n - # fill(mkarray(n0), empty)]) = empty |
n < n0 + n1, n0 ≤ n ⊦ empty = fill(mkarray(n1), empty)[n - n0], n1 = 0
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m < m + n ↔ n ≠ 0; (s)%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → fill(mkarray(n), a)[m] = a; (s)% ⊦ # mkarray(n) = n; (s)% ⊦ # fill(ar, a) = # ar; (s)