| ⊦ bits = [], bitsinvert(bits) = bitsinvert(bits.butlast) + (¬ bits.last)' |
Used simplifier rules: inv-append: ⊦ bitsinvert(bits + bits0) = bitsinvert(bits) + bitsinvert(bits0);%inv-one: ⊦ bitsinvert(boolvar ') = (¬ boolvar)';%invert-base: ⊦ bitsinvert([]) = [];%bitlist freely generated by [], +;;% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ boolvar ' + bits ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + [] = bits;% ⊦ boolvar '.butlast = [];% ⊦ boolvar '.last ↔ boolvar;% ⊦ [] + bits = bits;% ⊦ boolvar ' = boolvar0 ' ↔ boolvar ↔ boolvar0;% ⊦ bits ≠ [] → (bits0 + bits).butlast = bits0 + bits.butlast;% ⊦ bits ≠ [] → ((boolvar ' + bits).last ↔ bits.last);% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;