| ¬ 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), m0 < # wlar, m1 < n, m3 < # wlar, boolvar → vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below(free-ecs(wlar, m3), n).max, stat = free → m < n → boolvar → vtblpnum < # wlar ⊦ (boolvar → vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below(free-ecs(wlar, m3 + 1), n).max) ∧ (¬ boolvar ↔ below(free-ecs(wlar, m3 + 1), n) = ∅), stat = free ∧ m < n ∧ (¬ boolvar ∨ m2 < m) |
⊦ n < # wlar → free-ecs(wlar, n + 1) = (wlar[n].status = free ⊃ free-ecs(wlar, n) ++ wlar[n].ec;free-ecs(wlar, n))
¬ boolvar ↔ below(free-ecs(wlar, m3), n) = ∅, wlar[vtblpnum] = wl-entry(m2, stat0), wlar[m0] = wl-entry(m1, free), wlar[m3] = wl-entry(m, stat), m1 < n, m0 < # wlar, m3 < # wlar, stat = free → m < n → boolvar → vtblpnum < # wlar, boolvar → vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below(free-ecs(wlar, m3), n).max ⊦ stat = free ∧ m < n ∧ (¬ boolvar ∨ m2 < m), ( boolvar → vtblpnum < # wlar ∧ stat0 = free ∧ m2 = below((wlar[m3].status = free ⊃ free-ecs(wlar, m3) ++ wlar[m3].ec;free-ecs(wlar, m3)), n).max) ∧ (¬ boolvar ↔ below((wlar[m3].status = free ⊃ free-ecs(wlar, m3) ++ wlar[m3].ec;free-ecs(wlar, m3)), n) = ∅)
Used terms: m3, wlar