| wlar[m].status = used, ¬ boolvar ↔ used-ecs(wlar, m) = ∅, boolvar0 ↔ false, m = m0, m1 = 0, vtblpnum0 = n, m < # wlar, m ≤ # wlar, wlar[m].status = used → boolvar → m < # wlar ∧ vtblpnum < # wlar, boolvar → vtblpnum < m ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m).min, ¬ boolvar ∨ wlar[m].ec < wlar[vtblpnum].ec ⊦ ⟪boolvar := true; vtblpnum := m; m := m + 1⟫ ( ( m ≤ # wlar ∧ (boolvar → vtblpnum < m ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m).min) ∧ (¬ boolvar ↔ used-ecs(wlar, m) = ∅)) ∧ # wlar - m < # wlar - m0) |
wlar[m].status = used, boolvar0 ↔ false, ¬ boolvar ↔ used-ecs(wlar, m) = ∅, m = m0, m1 = 0, vtblpnum0 = n, m < # wlar, m ≤ # wlar, boolvar → vtblpnum < m ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m).min, wlar[m].status = used → boolvar → m < # wlar ∧ vtblpnum < # wlar, ¬ boolvar ∨ wlar[m].ec < wlar[vtblpnum].ec ⊦ ⟪vtblpnum := m; m := m + 1⟫ ( ( m ≤ # wlar ∧ (true → vtblpnum < m ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m).min) ∧ (¬ true ↔ used-ecs(wlar, m) = ∅)) ∧ # wlar - m < # wlar - m0)