| # buf3 = ENCODED_NAT_SIZE, ENCODED_NAT_SIZE * m2 = # buf, # buf0 + ENCODED_NAT_SIZE + ENCODED_NAT_SIZE * m2 = # orphans1 * ENCODED_NAT_SIZE, orphans ∩ orphans0 = ∅, is-encoded(n0, buf3), is-encoded(orphans1, buf0 + buf3 + buf), is-encoded(orphans0, buf0), is-encoded(orphans -- n0, buf), n0 ∈ orphans ⊦ # orphans = 0, orphans = ∅, is-encoded(orphans0 ++ n0, buf0 + buf3) |
⊦ is-encoded(ns, buf0) ∧ is-encoded(n, buf1) ∧ ¬ n ∈ ns → (is-encoded(ns1, buf0 + buf1) ↔ ns1 = ns ++ n)
Used simplifier rules: ⊦ is-encoded(ns0, buf) → (is-encoded(ns1, buf) ↔ ns0 = ns1); (s)% ⊦ is-encoded(n, buf) → (is-encoded(n0, buf) ↔ n = n0); (s)%int-a: ⊦ (ns ∩ ns0) ∩ ns1 = ns ∩ ns0 ∩ ns1; from specification set-union[nat-set]%int-c: ⊦ ns ∩ ns0 = ns0 ∩ ns; from specification set-union[nat-set]% ⊦ ns ∩ ns0 = ∅ ∧ n ∈ ns → (n ∈ ns0 ↔ false); (as) Used terms: orphans0, n0, buf3, buf0, orphans0 ++ n0