| (5 + 2 * lptlebs(# lpt0, LEB_SIZE)) + # lpt0 = # avol1, m7 + lptlebs(# lpt0, LEB_SIZE) = # avol1, avol1[m10] = mapped(buf1), avol1[m5] = mapped(buf0), avol1[0] = mapped(buf2), m10 < # avol2, ebm-vol-inv(avol1), is-encoded(lpt0, lebs(avol1, m7, lptlebs(# lpt0, LEB_SIZE))), is-encoded(log0, buf1), is-encoded(mksb(adr0, m9, m10, m5, m6, m7, 5 + 2 * lptlebs(# lpt0, LEB_SIZE)), buf2), is-encoded-pad(orphans0, m6, buf0), mapped-full?(avol1, m7, lptlebs(# lpt0, LEB_SIZE)), 5 + 2 * lptlebs(# lpt0, LEB_SIZE) ≤ # avol1, avol1 ⊆ avol2, m3 ≠ LEB_SIZE → # buf1 = m3, m10 = 1 ∧ m5 = 3 ∧ m7 = 5 ∨ m10 = 2 ∧ m5 = 4 ∧ m7 = 5 + lptlebs(# lpt0, LEB_SIZE) ⊦ # lebs(avol1, m7, lptlebs(# lpt0, LEB_SIZE)) = lptsize(# lpt0, LEB_SIZE) |
Used simplifier rules: avol-down-size: ⊦ m = # avol0 ∧ avol0 ⊆ avol1 → (n = # avol1 ↔ n = m);% ⊦ m + m = 2 * m; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m = m + n ↔ n = 0; (s)% ⊦ m ≤ m; (s)% ⊦ lptlebs(0, LEB_SIZE) = 0; (s)%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult%mult-c: ⊦ m * n = n * m; from specification nat-mult% ⊦ lebs(avol, n, 0) = mkbuf(0); (s)% ⊦ # mkbuf(n) = n; (s)% ⊦ lptsize(0, LEB_SIZE) = 0; (s)% ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s)%n < n0 ⊦ (* n) ≠ m0 + (* n0); (s)%eqs: ⊦ m = n + n0 ∧ m = n + n1 → n0 = n1; (forward) from specification nat-basic%m1 ≠ 0 ⊦ m = (* m1) * m + n0 ↔ 0 = (m1 - 1) * m + n0; (s)% ⊦ m0 * 1 = m0; (s)% ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; (ws)