| ubi-cons(apebs, vols, wlar, q, bflipset, vtblpnum, sqnum), vtblpnum0 = LEB_SIZE, vtblpnum1 = EB_PAGE_SIZE, ubi-io-inv(apebs), vols0 = vols, apebs0 = apebs, q0 = q ⊦ ⟪ubi_wear_leveling_worker#(vtblpnum0, vtblpnum1; vols, wlar, q, bflipset, vtblpnum, sqnum, apebs; err)⟫ ( ubi-cons(apebs, vols, wlar, q, bflipset, vtblpnum, sqnum) ∧ ubi-io-inv(apebs) ∧ ( vols0 = vols ∧ id(apebs, apebs0, mapped-pebs(vols)) ∧ q.lebrefs ⊆ q0.lebrefs ++ (VTBL_VOLID × VTBL_LNUM) ∨ (∃ v, m, n. v ∈ vols0 ∧ m < # vols0[v] ∧ vols0[v][m] ≠ unmapped ∧ vols = vols0[v, vols0[v][m, ⌜n⌝ ]] ∧ id(apebs, apebs0, mapped-pebs(vols0) -- vols0[v][m].pnum) ∧ apebs[n].data = apebs0[vols0[v][m].pnum].data ∧ apebs[n].fill ≤ apebs0[vols0[v][m].pnum].fill ∧ q.lebrefs ⊆ q0.lebrefs ++ (v × m)))) |