| by ' + bytevalues(vals0) = bytevalues(vals1), by ∈ bytevalues(vals1), ∀ val0. val0 ∈ vals0 ∨ val0 ∈ vals1 → is_bytevalue(val0), bytevalues(vals0) = bytevalues(vals1 .rest) ∧ (val ∈ vals0 ∨ val ∈ vals1 .rest → is_bytevalue(val)) → vals0 = vals1 .rest ⊦ byteval(by) ' + vals0 = vals1 |
⊦ bytevalues([]) = []
vals1 = val1 + vals ∧ vals1 ≠ [], by ' + bytevalues(vals0) = bytevalues(vals1), by ∈ bytevalues(vals1), ∀ val0. val0 ∈ vals0 ∨ val0 ∈ vals1 → is_bytevalue(val0), bytevalues(vals0) = bytevalues(vals) ∧ (val ∈ vals0 ∨ val ∈ vals → is_bytevalue(val)) → vals0 = vals ⊦ byteval(by) ' + vals0 = vals1
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = []], [CSIMPSEQ : ⊦ by ' ≠ []], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPELIM : vals ≠ [] ⊦ val = vals .first ∧ vals0 = vals .rest ↔ vals = val + vals0])], [EXTRATERMS : (vals1, val1, vals)]]