| m0 + # buf0 = LEB_SIZE, aehdr.valid?, ubi-io-peb-inv(mkpeb(aehdr, avidhdr(v, m2, m3, m4, m5), buf, m, false)), m ≤ m0, m4 ≠ 0 → m4 ≤ datasize(buf) ∧ m5 = checksum(buf, m4) ⊦ avidhdr(v, m2, m3, m4, m5) = avidhdr(v, m2, m3, m4, m5) ∧ (m4 ≠ 0 → m4 ≤ datasize(subarray(buf, 0, m0) + buf0) ∧ m5 = checksum(subarray(buf, 0, m0) + buf0, m4)) |
m0 + # buf0 = LEB_SIZE, aehdr.valid?, ubi-io-peb-inv(mkpeb(aehdr, avidhdr(v, m2, m3, m4, checksum(buf, m4)), buf, m, false)), m4 ≤ datasize(buf), m ≤ m0, m4 ≤ LEB_SIZE ⊦ m4 = 0, m4 ≤ datasize(subarray(buf, 0, m0) + buf0) ∧ checksum(buf, m4) = checksum(subarray(buf, 0, m0) + buf0, m4)
Used simplifier rules: ⊦ ubi-io-peb-inv(mkpeb(aehdr, avhdr, buf, n, boolvar)) → # buf = LEB_SIZE; (s)%datasize-le-fwd: ⊦ m ≤ datasize(buf) → m ≤ # buf; (forward) from specification datasize