| ⊦ dropn(n, x) = (x = [] ⊃ [];dropn(n - 1, x.tail)), n = 0 |
⊦ dropn(n, x) = (n ≤ # x ⊃ restn(n, x);[])
⊦ (n ≤ # x ⊃ restn(n, x);[]) = (x = [] ⊃ [];(n ≤ (# x - 1) + 1 ⊃ restn(n - 1, x.tail);[])), n = 0
Used simplifier rules: dropn: ⊦ dropn(n, x) = (n ≤ # x ⊃ restn(n, x);[]);%n0 ≤ n ⊦ n - n0 ≤ m ↔ n ≤ m + n0; (s)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ n -1 = n - 1; (s)% ⊦ x ≠ [] → # x.tail = (# x)-1; (s)