| ⊦ ⟪ubi_wl_get_free_min#(wlar; n; boolvar)⟫ ((boolvar → n = free-ecs(wlar).min) ∧ (¬ boolvar ↔ free-ecs(wlar) = ∅)) |
⊦ ⟪boolvar := false; let m = 0 in while m < # wlar do {/* (prepost-wl-get-free-min : invariant m ≤ # wlar ∧ (boolvar → n = free-ecs(wlar, m).min) ∧ (¬ boolvar ↔ free-ecs(wlar, m) = ∅) wfbound # wlar - m) */; if wlar[m].status = free ∧ (¬ boolvar ∨ wlar[m].ec < n) then {boolvar := true; n := wlar[m].ec}; m := m + 1}⟫ ((boolvar → n = free-ecs(wlar).min) ∧ (¬ boolvar ↔ free-ecs(wlar) = ∅))
Used simplifier rules: get-free-min: ⊦ ;