| ∀ nx1, buf. is-encoded(nx + nx1, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx, buf0) ∧ is-encoded(nx1, buf1)) ⊦ is-encoded((m + nx) + nx1, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(m + nx, buf0) ∧ is-encoded(nx1, buf1)) |
∀ nx1, buf. is-encoded(nx + nx1, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx, buf0) ∧ is-encoded(nx1, buf1)) ⊦ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(rnode(m), buf0) ∧ is-encoded(nx + nx1, buf1)) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ (∃ buf2, buf1. buf0 = buf2 + buf1 ∧ is-encoded(rnode(m), buf2) ∧ is-encoded(nx, buf1)) ∧ is-encoded(nx1, buf1))
Used simplifier rules: is-encoded-rec: ⊦ is-encoded(n ' + nx, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(rnode(n), buf0) ∧ is-encoded(nx, buf1));%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ n + nx = n ' + nx; (s)