| # buf1 = # vtbl0 * (ENCODED_VOLID_SIZE + ENCODED_NAT_SIZE), # buf2 = ENCODED_NAT_SIZE, is-encoded(# vtbl0, buf2), is-encoded(vtbl1, buf2 + buf1 + buf0), is-encoded-rec(vtbl0, buf1) ⊦ vtbl0 = vtbl1 |
⊦ is-encoded(vtbl, buf) ↔ (∃ buf0, buf1, buf2. buf = buf0 + buf1 + buf2 ∧ is-encoded(# vtbl, buf0) ∧ is-encoded-rec(vtbl, buf1))
# buf2 = ENCODED_NAT_SIZE, # buf1 = # vtbl0 * (ENCODED_VOLID_SIZE + ENCODED_NAT_SIZE), is-encoded(# vtbl0, buf2), is-encoded-rec(vtbl0, buf1), ∃ buf5, buf4, buf3. buf2 + buf1 + buf0 = buf5 + buf4 + buf3 ∧ is-encoded(# vtbl1, buf5) ∧ is-encoded-rec(vtbl1, buf4) ⊦ vtbl0 = vtbl1
Used terms: buf2 + buf1 + buf0, vtbl1