| # wlar = # apebs, v0 × m6 ∈ recs ∧ m11 = m5 ↔ stat0 = used ∧ m5 < m ∧ avhdr0.vol = v0 ∧ avhdr0.leb = m6, apebs[m5] = mkpeb(aehdr1, avhdr0, buf1, m13, boolvar1), subarray(wlar[m, wl-entry(m3, used)], 0, m + 1)[m5] = wl-entry(m10, stat), recs[v × n, recovery-entry(m, m0)][v0 × m6] = recovery-entry(m5, m8), apebs[m] = mkpeb(aehdr, avidhdr(v, n, m0, m1, m4), buf, m2, boolvar), subarray(apebs, 0, m + 1)[m5] = mkpeb(aehdr0, avhdr, buf0, m9, boolvar0), recs[v0 × m6] = recovery-entry(m11, m12), wlar[m5] = wl-entry(m14, stat0), m < # apebs, v0 × m6 = v × n ∨ v0 × m6 ∈ recs ⊦ v × n ∈ recs, v0 × m6 ∈ recs, stat = used ∧ ¬ m < m5 ∧ avhdr.vol = v0 ∧ avhdr.leb = m6 |
# wlar = # apebs, subarray(wlar[m5, wl-entry(m3, used)], 0, m5 + 1)[m5] = wl-entry(m10, stat), apebs[m5] = mkpeb(aehdr1, avidhdr(v, n, m0, m1, m4), buf1, m13, boolvar1), subarray(apebs, 0, m5 + 1)[m5] = mkpeb(aehdr0, avhdr, buf0, m9, boolvar0), (∅)[v × n] = recovery-entry(m11, m12), wlar[m5] = wl-entry(m14, stat0), m5 < # apebs ⊦ v × n ∈ recs, stat = used ∧ avhdr.vol = v ∧ avhdr.leb = n
Used simplifier rules: ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar) = mkpeb(aehdr0, avhdr0, buf0, m0, boolvar0) ↔ aehdr = aehdr0 ∧ avhdr = avhdr0 ∧ buf = buf0 ∧ m = m0 ∧ (boolvar ↔ boolvar0); (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ ¬ n < n; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ v × m = v0 × m0 ↔ v = v0 ∧ m = m0; (ws)% ⊦ recovery-entry(m, m0) = recovery-entry(m1, m2) ↔ m = m1 ∧ m0 = m2; (ws)% ⊦ ladr = ladr0 → recs[ladr0, rec][ladr] = rec; (s)% ⊦ ¬ ladr ∈ recs → recs[ladr] = (∅)[ladr]; (s)