| buf0 = mkbuf(align↑(# orphans2 * ENCODED_NAT_SIZE, m2)), err = ESUCCESS, err0 = ESUCCESS, m1 = LEB_SIZE, m2 = EB_PAGE_SIZE, m4 = 0, orphans = orphans1, orphans0 = orphans2, is-aligned(# buf, m2), # buf ≤ m1, orphans ⊆ orphans2, err = ESUCCESS → m0 + # orphans * ENCODED_NAT_SIZE ≤ # buf ∧ is-encoded(orphans2 \ orphans, subarray(buf, 0, m0)), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪choose n with n ∈ orphans in {encode_nat#(n, m0; buf, m; err); m0 := m0 + ENCODED_NAT_SIZE; orphans := orphans -- n}⟫ ( ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ is-aligned(# buf, m2) ∧ orphans ⊆ orphans2 ∧ # buf ≤ m1 ∧ (err = ESUCCESS → m0 + # orphans * ENCODED_NAT_SIZE ≤ # buf ∧ is-encoded(orphans2 \ orphans, subarray(buf, 0, m0)))) ∧ # orphans < # orphans1), orphans = ∅, # orphans2 * ENCODED_NAT_SIZE > m1 |
buf0 = mkbuf(align↑(# orphans2 * ENCODED_NAT_SIZE, m2)), err = ESUCCESS, err0 = ESUCCESS, m1 = LEB_SIZE, m2 = EB_PAGE_SIZE, m4 = 0, orphans = orphans1, orphans0 = orphans2, is-aligned(# buf, m2), n ∈ orphans, # buf ≤ m1, orphans ⊆ orphans2, err = ESUCCESS → m0 + # orphans * ENCODED_NAT_SIZE ≤ # buf ∧ is-encoded(orphans2 \ orphans, subarray(buf, 0, m0)), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪encode_nat#(n, m0; buf, m; err); m0 := m0 + ENCODED_NAT_SIZE; orphans := orphans -- n⟫ ( ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ is-aligned(# buf, m2) ∧ orphans ⊆ orphans2 ∧ # buf ≤ m1 ∧ (err = ESUCCESS → m0 + # orphans * ENCODED_NAT_SIZE ≤ # buf ∧ is-encoded(orphans2 \ orphans, subarray(buf, 0, m0)))) ∧ # orphans < # orphans1), orphans = ∅, # orphans2 * ENCODED_NAT_SIZE > m1
buf0 = mkbuf(align↑(# orphans2 * ENCODED_NAT_SIZE, m2)), err = ESUCCESS, err0 = ESUCCESS, m1 = LEB_SIZE, m2 = EB_PAGE_SIZE, m4 = 0, orphans = orphans1, orphans0 = orphans2, is-aligned(# buf, m2), # buf ≤ m1, orphans ⊆ orphans2, err = ESUCCESS → m0 + # orphans * ENCODED_NAT_SIZE ≤ # buf ∧ is-encoded(orphans2 \ orphans, subarray(buf, 0, m0)), err = ESUCCESS ∨ ⌊err⌋ ⊦ orphans = ∅, # orphans2 * ENCODED_NAT_SIZE > m1, ∃ n. n ∈ orphans