| prefixn(h, xs1 + ys) = prefixn(h, xs0), xs = xs0, # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟪x := prefixn(h, xs)⟫ ⟨caterpillar_get#(h, xs1, ys; ; x0)⟩ (x = x0) |
prefixn(h, xs1 + ys) = prefixn(h, xs0), xs = xs0, # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟨caterpillar_get#(h, xs1, ys; ; x0)⟩ (prefixn(h, xs) = x0)