| # buf1 = # buf, avol[0] = mapped(buf0), buf = mkbuf(LEB_SIZE), err = err0, m2 = LEB_SIZE, n0 = 0, ebm-vol-inv(avol), is-encoded(sb0, buf0), range=(buf, 0, buf1, 0, n0), range=(buf, n0 + m2, buf1, n0 + m2, # buf - n0 + m2), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪skip⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → sb = sb0)), # avol = 0, err = ESUCCESS |
Used simplifier rules: ⊦ # mkbuf(n) = n; (s)% ⊦ range=(buf, n0, buf0, n1, 0) ↔ n0 ≤ # buf ∧ n1 ≤ # buf0; (s)% ⊦ 0 ≤ m; (s)% ⊦ n + 0 = n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m - m = 0; (s)% ⊦ m ≤ m; (s)% ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)