| ⊦ sublist(0, n, x) = a ' + y ↔ n = # y + 1 ∧ x.first = a ∧ sublist(0, n -1, x.rest) = y |
⊦ firstn(n, x) = a ' + y ↔ n = (n - 1) + 1 ∧ x.first = a ∧ firstn(n - 1, x.rest) = y
Used simplifier rules: sublist-def: ⊦ sublist(m, n, x) = firstn(n, restn(m, x));%restN-zero: ⊦ restn(0, x) = x;%first-length: ⊦ # firstn(n, x) = n;%pred-03: ⊦ n -1 = n - 1; from specification nat