| pos(a, x0) < n, n < # x0, a ∈ x0, ∀ a1, n0. a1 ∈ x0 ∧ n0 + 1 < # x0 → (x0 \ a1 ')[n0] = (n0 < pos(a1, x0) ⊃ x0[n0];x0[n0 + 1]) ⊦ x0 = [], (a0 ' + (x0 \ a '))[n] = (¬ pos(a, x0) < n ⊃ (a0 ' + x0)[n];x0[n]), dups(x0), a0 ∈ x0 |
a ∈ x0, n < # x0, pos(a, x0) < n, pos(a, x0) + 1 < # x0, ∀ a1, n0. a1 ∈ x0 ∧ n0 + 1 < # x0 → (x0 \ a1 ')[n0] = (n0 < pos(a1, x0) ⊃ x0[n0];x0[n0 + 1]) ⊦ n = 0, (a0 ' + (x0 \ a '))[n] = x0[n], x0 = [], a0 ∈ x0, dups(x0)
Used simplifier rules: inl: ⊦ a ∈ x → pos(a, x) < # x; from specification list-del%succ: ⊦ m +1 = m + 1; from specification nat-basic2%trans-1: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification nat-basic1%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic1%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1