| # 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 |
# buf1 = # vtbl0 * (ENCODED_VOLID_SIZE + ENCODED_NAT_SIZE), # buf2 = ENCODED_NAT_SIZE, # buf3 = # vtbl1 * (ENCODED_VOLID_SIZE + ENCODED_NAT_SIZE), # buf4 = ENCODED_NAT_SIZE, buf2 + buf1 + buf0 = buf4 + buf3 + buf, is-encoded(# vtbl1, buf4), is-encoded(# vtbl0, buf2), is-encoded-rec(vtbl1, buf3), is-encoded-rec(vtbl0, buf1) ⊦ vtbl0 = vtbl1
Used simplifier rules: is-encoded-rec-size: ⊦ is-encoded-rec(vtbl, buf) → # buf = # vtbl * (ENCODED_VOLID_SIZE + ENCODED_NAT_SIZE);%is-encoded-size: ⊦ is-encoded(n, buf) → # buf = ENCODED_NAT_SIZE; (forward) from specification encoding-fixed-size[encoding-nat]