| n0 = n ⊦ ⟪if n0 > 0 then {h := n0; rxs := null; rys := null; to_delete := []; xs_len := 0; H := ∅} else abort⟫ ⟨caterpillar_init#(n; ; h0, xs, xs_len0, ys)⟩ ∃ n0. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ h = h0 ∧ xs_len = xs_len0, n = 0 |
n0 = n ⊦ ⟪h := n0; rxs := null; rys := null; to_delete := []; xs_len := 0; H := ∅⟫ ⟨caterpillar_init#(n; ; h0, xs, xs_len0, ys)⟩ ∃ n0. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ h = h0 ∧ xs_len = xs_len0, n = 0
Used simplifier rules: ⊦ m > n ↔ n < m; (s)% ⊦ 0 < m ↔ m ≠ 0; (s)