| 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)]) |
⊦ booleanvalues(val ' + vals) = val .boolval + booleanvalues(vals)
n ≤ # vals0, ∀ n, bv. n < # vals0 → (booleanvalues(vals0)[n, bv]) = booleanvalues(vals0[n, boolval(bv)]) ⊦ n = 0, (val .boolval ' + booleanvalues(vals0))[n, bv] = val .boolval ' + booleanvalues(vals0[n - 1, boolval(bv)])
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, javavalues, e-01, ⊦ val ' + vals ≠ []], [CSIMPNAMEDSEQ : list, bitlista, c, ⊦ boolvar + bits = boolvar ' + bits], [CSIMPNAMEDSEQ : nat, , pred-03, ⊦ n -1 = n - 1], [CSIMPNAMEDSEQ : list, javavalues, c-07, ⊦ (val ' + vals) .rest = vals], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : list, javavalues, c-08, ⊦ (val ' + vals) .first = val])]]