def ckw.at9
bend-osdev-acpi@0.1.2.0 · PROOF_whole.bend:172
import bend-osdev-acpi@0.1.2.0/PROOF_whole.bend as PROOFWhole
import Base
import bend-osdev-bytes@0.1.1.1/bytes.bend as B
import bend-osdev-bytes@0.1.1.1/LAWS.bend as BL
import bend-osdev-acpi@0.1.2.0/header.bend as H
import bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend as CP
172def ckw.at9(+s: B.Octets, +l: U32, +r: U32, +zz: U32, +o: B.Octets, +t: B.Octets, +orv: U32, +ci: B.Octets, +cr: U32, +sig4: {B.Octets.len(s) == 4n : Nat}, +body: B.Octets) -> {B.Octets.at(B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, U32.and(255, zz), o, t, orv, ci, cr}), body), 9n) == Some{U32.and(255, zz)} : Maybe<&2, U32>}:
173 %Equal.sym(B.Octets, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, U32.and(255, zz), o, t, orv, ci, cr}), body), B.Octets.append(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r))), B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body))))))), ckw.enc(s, l, r, U32.and(255, zz), o, t, orv, ci, cr, body)) : {B.Octets.at(_, 9n) == Some{U32.and(255, zz)} : Maybe<&2, U32>}
174 %Equal.cong(Nat, Nat, z => Nat.add(z, 0n), B.Octets.len(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r)))), 9n, ckw.plen(s, l, r, sig4)) : {B.Octets.at(B.Octets.append(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r))), B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body))))))), _) == Some{U32.and(255, zz)} : Maybe<&2, U32>}
175 %Equal.sym(Maybe<&2, U32>, B.Octets.at(B.Octets.append(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r))), B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body))))))), Nat.add(B.Octets.len(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r)))), 0n)), B.Octets.at(B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body)))))), 0n), BL.octets_at_append_add(B.Octets.append(s, B.Octets.append(B.Octets.le32(l), H.hd.byte(r))), B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body)))))), 0n)) : {_ == Some{U32.and(255, zz)} : Maybe<&2, U32>}
176 %Equal.sym(Maybe<&2, U32>, B.Octets.at(B.Octets.append(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body)))))), 0n), B.Octets.at(H.hd.byte(U32.and(255, zz)), 0n), BL.octets_at_append_lt(H.hd.byte(U32.and(255, zz)), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.append(B.Octets.le32(cr), body))))), 0n, ckw.lt01(U32.and(255, zz)))) : {_ == Some{U32.and(255, zz)} : Maybe<&2, U32>}
177 %Equal.sym(Maybe<&2, U32>, B.Octets.at(B.Octets.of_list([U32.and(255, zz)]), 0n), B.at(B.Octets.to_list(B.Octets.of_list([U32.and(255, zz)])), 0n), BL.octets_at_list(B.Octets.of_list([U32.and(255, zz)]), 0n)) : {_ == Some{U32.and(255, zz)} : Maybe<&2, U32>}
178 %Equal.sym(List<&2, U32>, B.Octets.to_list(B.Octets.of_list([U32.and(255, zz)])), B.mask([U32.and(255, zz)]), BL.octets_to_of([U32.and(255, zz)])) : {B.at(_, 0n) == Some{U32.and(255, zz)} : Maybe<&2, U32>}
179 %Equal.sym(U32, B.byte(U32.and(255, zz)), U32.and(255, zz), CP.ckp.bb2(zz)) : {Some{B.byte(_)} == Some{U32.and(255, zz)} : Maybe<&2, U32>}
180 %Equal.sym(U32, B.byte(U32.and(255, zz)), U32.and(255, zz), CP.ckp.bb2(zz)) : {Some{_} == Some{U32.and(255, zz)} : Maybe<&2, U32>}
181 {==}