| m0 = checksum(buf, m1), aehdr.valid?, m1 ≤ datasize(buf) ⊦ ∃ v0, m4, m5, m2, m3. avidhdr(v, m, n, m1, m0) = avidhdr(v0, m4, m5, m2, m3) ∧ (m2 ≠ 0 → m2 ≤ datasize(buf) ∧ m3 = checksum(buf, m2)) |
aehdr.valid?, m1 ≤ datasize(buf), m1 ≤ # buf ⊦ ∃ v0, m4, m5, m2, m3. avidhdr(v, m, n, m1, checksum(buf, m1)) = avidhdr(v0, m4, m5, m2, m3) ∧ (m2 ≠ 0 → m2 ≤ datasize(buf) ∧ m3 = checksum(buf, m2))
Used simplifier rules: datasize-le-fwd: ⊦ m ≤ datasize(buf) → m ≤ # buf; (forward) from specification datasize