| ¬ boolvar ↔ below(free-ecs(wlar, m3), n) = ∅, wlar[m3] = wl-entry(m, stat), wlar[m0] = wl-entry(m1, free), wlar[vtblpnum] = wl-entry(m2, stat0), boolvar, m3 < # wlar, m0 < # wlar, m1 < n, boolvar → vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below(free-ecs(wlar, m3), n).max, stat = free → m < n → boolvar → vtblpnum < # wlar ⊦ stat = free ∧ m < n ∧ (¬ boolvar ∨ m2 < m), vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below((stat = free ⊃ free-ecs(wlar, m3) ++ m;free-ecs(wlar, m3)), n).max |
wlar[vtblpnum] = wl-entry(below(free-ecs(wlar, m3), n).max, free), wlar[m0] = wl-entry(m1, free), wlar[m3] = wl-entry(m, free), m1 < n, m0 < # wlar, m3 < # wlar, vtblpnum < # wlar ⊦ # below(free-ecs(wlar, m3), n) = 0, below(free-ecs(wlar, m3), n).max = below(free-ecs(wlar, m3) ++ m, n).max, below(free-ecs(wlar, m3), n) = ∅, below(free-ecs(wlar, m3), n).max < m ∧ m < n
Used simplifier rules: size-zero: ⊦ # ns ≠ 0 → ns ≠ ∅; (forward) from specification set-basic[nat-set]%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]