| n < # x, x[n] ∈ x, ∃ n0. n0 < # firstn(n, x) ∧ firstn(n, x)[n0] = x[n] ⊦ x = [], ∃ m, n. m < # x ∧ n < # x ∧ m ≠ n ∧ x[m] = x[n] |
firstn(n, x)[n0] = x[n], n0 < # x, n0 < n, n < # x, n0 + 1 < # x, x[n] ∈ x ⊦ x = [], ∃ m, n. m < # x ∧ n < # x ∧ m ≠ n ∧ x[m] = x[n]
Used simplifier rules: first-length: ⊦ # firstn(n, x) = n;% ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%trans: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification nat-basic%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic