| m < # x ⊦ restn(m, x).head = x[m], x = [] |
m0 +1 < # x, ∀ x. m0 < # x → restn(m0, x).head = x[m0] ∨ x = [] ⊦ restn(m0 +1, x).head = x[m0 +1], x = []
Used simplifier rules: restN-zero: ⊦ restn(0, x) = x;%get-zero: ⊦ x ≠ [] → x[0] = x.head;%nat freely generated by 0, +1;;