| n ≠ m0, n < # ar, n ≤ m0, ∀ n, ar, a. n < m0 ∧ n < # ar → fill(ar, a, 0, m0)[n] = a ∨ m0 = 0 ∨ # ar = 0 ⊦ # ar = 0, fill(ar, a, 0, m0)[n] = a |
n < m0, n < # ar, ∀ n0, ar0, a0. n0 < m0 ∧ n0 < # ar0 → fill(ar0, a0, 0, m0)[n0] = a0 ∨ # ar0 = 0 ⊦ m0 = 0, n = m0, fill(ar, a, 0, m0)[n] = a, # ar = 0
Used simplifier rules: f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%lels-02: ⊦ m ≠ n → (m ≤ n ↔ m < n); from specification nat