| # avol = # lpt0 + m4, avol[0] = mapped(buf), avol[m1] = mapped(buf0), avol[m0] = mapped(buf1), m = LEB_SIZE, disk-layout(mksb(adr, m5, m0, m1, m2, m3, m4), # lpt0), ebm-vol-inv(subarray(avol, m4, # lpt0)), ebm-vol-inv(avol), is-encoded(log, buf1), is-encoded(lpt0, lebs(avol, m3, lptlebs(# lpt0, LEB_SIZE))), is-encoded(mksb(adr, m5, m0, m1, m2, m3, m4), buf), is-encoded-pad(orphans, m2, buf0), mapped-full?(avol, m3, lptlebs(# lpt0, LEB_SIZE)), m4 ≤ # avol, logoff ≠ LEB_SIZE → # buf1 = logoff ⊦ ⟨apersistence_io_requires_commit#(adr, m5, log, subarray(avol, m4, # lpt0), lpt0, orphans; ; boolvar0)⟩ (logoff = m ↔ boolvar0) |
# avol0 = # lpt0 + m4, avol0[m0] = mapped(buf1), avol0[m1] = mapped(buf0), avol0[0] = mapped(buf), avol = subarray(avol0, m4, # lpt0), lpt = lpt0, m = m5, m6 = LEB_SIZE, ns = orphans, plog = log, disk-layout(mksb(adr, m5, m0, m1, m2, m3, m4), # lpt0), ebm-vol-inv(avol0), ebm-vol-inv(subarray(avol0, m4, # lpt0)), is-encoded(mksb(adr, m5, m0, m1, m2, m3, m4), buf), is-encoded(lpt0, lebs(avol0, m3, lptlebs(# lpt0, LEB_SIZE))), is-encoded(log, buf1), is-encoded-pad(orphans, m2, buf0), mapped-full?(avol0, m3, lptlebs(# lpt0, LEB_SIZE)), m4 + # lpt0 ≤ # avol0, m4 ≤ # avol0, logoff ≠ LEB_SIZE → # buf1 = logoff ⊦ ⟨boolvar := ?⟩ (logoff = m6 ↔ boolvar)
Used simplifier rules: apersistence_io_requires_commit# (PROOTADR, PMAXINO, PLOG, PVOL, PLPT, PORPHANS; ; COMMIT?) {COMMIT? := ?};% ⊦ m ≤ n ↔ ¬ n < m; (ss)%c: ⊦ m + n = n + m; from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ mksb(adr, m, m0, m1, m2, m3, m4).main = m4; (s)%# avol = sb.main + mainareasize ⊦ disk-layout(sb, mainareasize) → # avol ≠ 0; (s)% ⊦ m < n → ¬ n < m; (s)