| n ≤ # vals0, ∀ n, bv. n < # vals0 → (booleanvalues(vals0)[n, bv]) = booleanvalues(vals0[n, boolval(bv)]) ⊦ (val .boolval ' + booleanvalues(vals0))[n, bv] = booleanvalues((val ' + vals0)[n, boolval(bv)]) |
⊦ n ≠ 0 ∧ vals ≠ [] → vals[n, val] = vals .first ' + (vals .rest)[n -1, val]
⊦ booleanvalues(val ' + vals) = val .boolval + booleanvalues(vals)
n ≠ 0 ∧ val ' + vals0 ≠ [], n ≤ # vals0, ∀ n, bv. n < # vals0 → (booleanvalues(vals0)[n, bv]) = booleanvalues(vals0[n, boolval(bv)]) ⊦ (val .boolval ' + booleanvalues(vals0))[n, bv] = booleanvalues((val ' + vals0) .first ' + ((val ' + vals0) .rest)[n -1, boolval(bv)])
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, javavalues, e-01, ⊦ val ' + vals ≠ []], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : list-del, bitlista, put-zero, ⊦ (boolvar ' + bits)[0, boolvar0] = boolvar0 + bits], [CSIMPNAMEDSEQ : list, bitlista, c, ⊦ boolvar + bits = boolvar ' + bits], [CSIMPNAMEDSEQ : list, bitlista, a, ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1], [CSIMPNAMEDSEQ : list-del, javavalues, put-zero, ⊦ (val ' + vals)[0, val0] = val0 + vals], [CSIMPNAMEDSEQ : list, javavalues, c, ⊦ val + vals = val ' + vals], [CSIMPNAMEDSEQ : javavalue, , sel-05, ⊦ boolval(boolvar) .boolval ↔ boolvar], [CSIMPNAMEDSEQ : list, bitlista, app-01, ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1])], [EXTRATERMS : (boolval(bv), n, val ' + vals0)]]