| # bits < n ⊦ boolvar ∈ fillsgn(n, bits) ↔ boolvar ∈ bits, bits = [] |
⊦ # bits ≤ n ∧ bits ≠ [] → fillsgn(n, bits) = mklist(bits.first, n - # bits) + bits
Used simplifier rules: ⊦ m < n → ¬ n < m;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ boolvar ∈ bits → boolvar ∈ bits0 + bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ m < n → m ≤ n;% ⊦ boolvar ∈ mklist(boolvar0, n) → (boolvar ↔ boolvar0); (forward)% ⊦ boolvar ∈ mklist(boolvar, m) ↔ m ≠ 0;% ⊦ n < m → m - n ≠ 0;% ⊦ bits.first ∈ bits ↔ bits ≠ []; Used terms: bits, n