| i→n(i0) ≠ 0, (false ' + mklist(false, i→n(i0) -1)) + false ' + false ' + true ' = false ' + true ' + bits1, (false ' + mklist(false, i→n(i0) -1)) + false ' = false ' + bits, 0 ≤ i0 ⊦ |
mklist(false, i→n(i0) - 1) + false ' + false ' + true ' = true ' + bits1, 0 < i0 ⊦ i0 = 0
Used simplifier rules: ⊦ ¬ true ∈ mklist(false, n);% ⊦ boolvar ∈ boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ boolvar ∈ mklist(boolvar, m) ↔ m ≠ 0;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward)% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ bits + boolvar ' = bits0 → boolvar ∈ bits0; (forward)% ⊦ i ≠ j → (i ≤ j ↔ i < j);% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ n -1 = n - 1;