| prefixn(h, xs + ys) = prefixn(h, xs0), # xs < h, # xs + # ys ≤ # xs0, ys = [] ∨ # ys = h ⊦ ⟪tree_buffer_get#(h, xs0; ; x)⟫ ⟨caterpillar_get#(h, xs, ys; ; x0)⟩ (x = x0) |
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)
Used simplifier rules: tree_buffer_get#(h, xs; ; x){x := prefixn(h, xs)};