| ¬ # int2bits((i - 1) / 2) ≤ n - 1, i < ~1, # int2bits(i) ≤ n, i < 0, 1 < j, 0 < j ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + fillsgn(n, int2bits(i)))) = bits2int(firstn(# fillsgn(n - 1, int2bits((i - 1) / 2)), mklist(false, i→n(j) - 1) + fillsgn(n - 1, int2bits((i - 1) / 2)))) |
i < ~1, # int2bits(i) ≤ n, i < 0, 1 < j, 0 < j, n ≤ # int2bits((i - 1) / 2), # int2bits(i) ≤ # int2bits((i - 1) / 2) ⊦ bits2int(firstn(n, mklist(false, i→n(j)) + fillsgn(n, int2bits(i)))) = bits2int(firstn(# fillsgn(n - 1, int2bits((i - 1) / 2)), mklist(false, i→n(j) - 1) + fillsgn(n - 1, int2bits((i - 1) / 2))))
Used simplifier rules: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m + 1 ≤ n ↔ m < n;%n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < 1 ↔ m = 0;% ⊦ firstn(0, bits) = [];% ⊦ fillsgn(0, bits) = bits;% ⊦ m ≤ 0 ↔ m = 0;% ⊦ # bits = 0 ↔ bits = [];% ⊦ int2bits(j) ≠ [];