| # pebs0 = n0 + m1, # pebs = n0 + m1, err = ESUCCESS, err = err0, m = m1, m1 < # pebs, mtd-cons(pebs0), mtd-cons(pebs), ubi-io-initial(subarray(pebs, 0, m1)), err = ESUCCESS → m1 < # pebs, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪m := m + 1⟫ ( m ≤ # pebs0 ∧ # pebs0 = # pebs ∧ mtd-cons(pebs) ∧ (err = ESUCCESS → ubi-io-initial(subarray(pebs, 0, m))) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # pebs0 < n0 + m), n0 = 0, err = ESUCCESS ∧ ¬ pebs[m1].bad |
# pebs = n0 + m1, # pebs0 = n0 + m1, err = err0, err = ESUCCESS, m = m1, m1 < # pebs, mtd-cons(pebs), mtd-cons(pebs0), ubi-io-initial(subarray(pebs, 0, m1)), err = ESUCCESS → m1 < # pebs, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ n0 = 0, err = ESUCCESS ∧ ¬ pebs[m1].bad, m + 1 ≤ # pebs0 ∧ # pebs0 = # pebs ∧ mtd-cons(pebs) ∧ (err = ESUCCESS → ubi-io-initial(subarray(pebs, 0, m + 1))) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # pebs0 < n0 + m + 1