| boolvar ' +1 + bitsinvert(bits0) = boolvar0 + bits ∧ boolvar ' +1 + bitsinvert(bits0) ≠ [], true ∈ bits ⊦ boolvar0 ↔ boolvar, false ∈ bits0 |
boolvar ' +1 + bitsinvert(bits0) = boolvar0 ' + bits, true ∈ bits ⊦ boolvar0 ↔ boolvar, false ∈ bits0, ¬ (¬ boolvar0) ∈ bits0 ∧ ¬ boolvar0 ∈ boolvar ' +1
Used simplifier rules: inv-in: ⊦ boolvar ∈ bitsinvert(bits) ↔ (¬ boolvar) ∈ bits;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ boolvar ' + bits ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ boolvar + bits = boolvar ' + bits;