| i < 0, i < ~1, m < # int2bits(i), # int2bits(i) ≤ i→n(n→i(m) - 1) + 1, m ≤ i→n(n→i(m) - 1) ⊦ m = 0 |
⊦ 1 < i → i→n(i - 1) = i→n(i) -1
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];%int2bits-first-01: ⊦ j < 0 → int2bits(j).first;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + [] = bits;% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ # bits = 1 ↔ bits = bits.first + [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ m < n ∧ m = n0 → n0 < n; (forward)%0 ≤ i ⊦ (* i) < n→i(n) ↔ i→n(i) < n;% ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1);% ⊦ i→n(n→i(n)) = n;% ⊦ n -1 = n - 1;% ⊦ m ≠ n → (m ≤ n ↔ m < n);%n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n;% ⊦ m + n ≤ m ↔ n = 0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: n→i(m)