| wlar[m3] = wl-entry(m, free), wlar[m0] = wl-entry(m1, free), wlar[vtblpnum] = wl-entry(below(free-ecs(wlar, m3), n).max, free), vtblpnum < # wlar, m3 < # wlar, m0 < # wlar, m1 < n ⊦ # below(free-ecs(wlar, m3), n) = 0, below(free-ecs(wlar, m3), n).max = (m < n ⊃ below(free-ecs(wlar, m3) -- m, n) ++ m;below(free-ecs(wlar, m3) -- m, n)).max, below(free-ecs(wlar, m3), n) = ∅, below(free-ecs(wlar, m3), n).max < m ∧ m < n |
wlar[m3] = wl-entry(m, free), wlar[m0] = wl-entry(m1, free), wlar[vtblpnum] = wl-entry(below(free-ecs(wlar, m3), n).max, free), vtblpnum < # wlar, m3 < # wlar, m0 < # wlar, m1 < n, m < n, m ≤ below(free-ecs(wlar, m3), n).max ⊦ # below(free-ecs(wlar, m3), n) = 0, below(free-ecs(wlar, m3), n).max = (below(free-ecs(wlar, m3), n) ++ m).max, below(free-ecs(wlar, m3), n) = ∅
Used simplifier rules: n ≤ m ⊦ below(ns -- m, n) = below(ns, n); (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ (ns -- n) ++ n = ns ++ n; (s)%n > m ⊦ below(ns -- m, n) = below(ns, n) -- m; (s)% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m > n ↔ n < m; (s)