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