| prefixn(h, xs1 + ys) = prefixn(h, xs0), xs = xs1, xs_len = # xs1, # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟨xs_len := 1 + xs_len⟩ (prefixn(h, (a + xs) + ys) = prefixn(h, a ' + xs0) ∧ #(a + xs) + # ys ≤ # xs0 + 1), xs_len + 1 = h |
prefixn(h, xs1 + ys) = prefixn(h, xs0), xs = xs1, xs_len = # xs1, # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ xs_len + 1 = h, prefixn(h, (a + xs) + ys) = prefixn(h, a ' + xs0) ∧ #(a + xs) + # ys ≤ # xs0 + 1