| ⊦ ∃ n. boolvar ' + bits0 = mklist(boolvar, n) + sgn(boolvar ' + bits0) |
∀ boolvar. ∃ n. boolvar ' + bits = mklist(boolvar, n) + sgn(boolvar ' + bits) ⊦ ∃ n. boolvar0 ' + (boolvar + bits) = mklist(boolvar0, n) + sgn(boolvar0 ' + (boolvar + bits))
Used simplifier rules: sgn-one: ⊦ sgn(boolvar ') = boolvar ';%bitlist freely generated by [], +;;% ⊦ bits + [] = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ mklist(boolvar, n) + boolvar ' = boolvar ' + mklist(boolvar, n);% ⊦ bits = bits + bits0 ↔ bits0 = [];% ⊦ mklist(boolvar, m) = [] ↔ m = 0;