| prefixn(h, xs1 + ys) = prefixn(h, xs0), # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟨caterpillar_get#(h, xs1, ys; ; x0)⟩ (prefixn(h, xs0) = x0) |
prefixn(h, xs1 + ys) = prefixn(h, xs0), xs = xs1, # xs1 < h, # xs1 + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟨x := prefixn(h, xs + ys)⟩ (prefixn(h, xs0) = x)
Used simplifier rules: caterpillar_get#(h, xs, ys; ; x){x := prefixn(h, xs + ys)};