| ∀ n, buf. is-encoded(nx0 + n ', buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx0, buf0) ∧ is-encoded(rnode(n), buf1)) ⊦ is-encoded((m + nx0) + n ', buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(m + nx0, buf0) ∧ is-encoded(rnode(n), buf1)) |
∀ n, buf. is-encoded(nx0 + n ', buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx0, buf0) ∧ is-encoded(rnode(n), buf1)) ⊦ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(rnode(m), buf0) ∧ is-encoded(nx0 + n ', buf1)) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ (∃ buf2, buf1. buf0 = buf2 + buf1 ∧ is-encoded(rnode(m), buf2) ∧ is-encoded(nx0, buf1)) ∧ is-encoded(rnode(n), 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)