| # avol2 = # lpt1 + m10, # avol0 = # avol2, # lpt2 = # lpt1, # lpt3 = # lpt1, avol2[m6] = mapped(buf4), avol2[m7] = mapped(buf3), avol2[0] = mapped(buf2), avol0[0] = mapped(buf), avol0[m2] = mapped(buf0), avol0[m1] = mapped(buf1), err = err1, subarray(avol2, m10, # lpt1) = subarray(avol0, m10, # lpt1), disk-layout(mksb(adr2, m11, m6, m7, m8, m9, m10), # lpt1), disk-layout(mksb(adr3, m12, m1, m2, m4, m5, m10), # lpt1), ebm-vol-inv(avol0), ebm-vol-inv(subarray(avol0, m10, # lpt1)), ebm-vol-inv(avol2), is-encoded(mksb(adr2, m11, m6, m7, m8, m9, m10), buf2), is-encoded(plog, buf1), is-encoded(lpt2, lebs(avol0, m5, lptlebs(# lpt1, LEB_SIZE))), is-encoded(mksb(adr3, m12, m1, m2, m4, m5, m10), buf), is-encoded(lpt1, lebs(avol2, m9, lptlebs(# lpt1, LEB_SIZE))), is-encoded(log, buf4), is-encoded-pad(orphans1, m8, buf3), is-encoded-pad(ns, m4, buf0), mapped-full?(avol0, m5, lptlebs(# lpt1, LEB_SIZE)), mapped-full?(avol2, m9, lptlebs(# lpt1, LEB_SIZE)), err1 = ESUCCESS → adr2 = adr1 ∧ m11 = m3 ∧ buf4 = mkbuf(0) ∧ lpt1 = lpt3 ∧ orphans1 = ns0, logoff ≠ LEB_SIZE → # buf1 = logoff, err1 ≠ ESUCCESS → mksb(adr2, m11, m6, m7, m8, m9, m10) = mksb(adr3, m12, m1, m2, m4, m5, m10) ∧ avol2[m1] = mapped(buf1) ∧ avol2[m2] = mapped(buf0) ∧ lebs(avol2, m5, lptlebs(# lpt1, LEB_SIZE)) = lebs(avol0, m5, lptlebs(# lpt1, LEB_SIZE)), logoff0 ≠ LEB_SIZE → # buf4 = logoff0, err1 = ESUCCESS ∨ ⌊err1⌋ ⊦ ⟨ns0 := ?⟩ ( m12 = m11 ∧ adr3 = adr2 ∧ log = plog ∧ is-encoded(lpt2, lebs(avol2, m9, lptlebs(# lpt1, LEB_SIZE))) ∧ orphans1 = ns ∧ orphans0 = ns0 ∧ err1 = err), err = ESUCCESS |
Used simplifier rules: ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)%⊦ mksb(adr, m, m0, m1, m2, m3, m4) = mksb(adr0, m5, m6, m7, m8, m9, m10) ↔ adr = adr0 ∧ m = m5 ∧ m0 = m6 ∧ m1 = m7 ∧ m2 = m8 ∧ m3 = m9 ∧ m4 = m10; (ws)%⊦ is-encoded(lpt0, buf) ∧ # lpt0 = # lpt1 → (is-encoded(lpt1, buf) ↔ lpt0 = lpt1); (s)%m = n ⊦ disk-layout(sb, m) → disk-layout(sb, n); (s)% ⊦ mapped(buf) = mapped(buf0) ↔ buf = buf0; (s)% ⊦ is-encoded(nx0, buf) → (is-encoded(nx1, buf) ↔ nx0 = nx1); (s)%⊦ is-encoded-pad(ns0, n, buf) → (is-encoded-pad(ns1, n, buf) ↔ ns0 = ns1); (s)