| n ≤ n0, n ≤ # x ⊦ firstn(n, x) + (n0 ≤ # (n ≤ # x ⊃ restn(n, x);[]) + n ⊃ firstn(n0 - n, (n ≤ # x ⊃ restn(n, x);[]));(n ≤ # x ⊃ restn(n, x);[])) = (n0 ≤ # x ⊃ firstn(n0, x);x) |
n ≤ # x, n ≤ n0 ⊦ firstn(n, x) + (n0 ≤ (# x - n) + n ⊃ firstn(n0 - n, restn(n, x));restn(n, x)) = (n0 ≤ # x ⊃ firstn(n0, x);x)
Used simplifier rules: n ≤ # x ⊦ # restn(n, x) = # x - n; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)