| ⊦ decode(~ n→i((n + 1) / 2)) = n, n % 2 = 0 |
⊦ i < 0 → decode(i) = 2 * i→n(i) - 1
~ n→i((n + 1) / 2) < 0 ⊦ 2 * i→n(~ n→i((n + 1) / 2)) - 1 = n, n % 2 = 0
Used simplifier rules: neg-05: ⊦ ~ i < 0 ↔ 0 < i; from specification int-abs%num-n2i-ls-02: 0 ≤ i ⊦ (* i) < n→i(n) ↔ i→n(i) < n; from specification intnat%zero: ⊦ 0 < m ↔ m ≠ 0; from specification nat-basic1%two-zero-01-01: ⊦ m / 2 = 0 ↔ ¬ ¬(m = 0 ∨ m = 1); from specification nat-div%oz: ⊦ m + 1 ≠ 0; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%one-03: ⊦ 1 = m + 1 ↔ m = 0; from specification nat-basic2 Used terms: ~ n→i((n + 1) / 2)