PROOFChecksum.ckp.fixzero: def of bend-osdev-acpi@0.1.2.0 Import: import bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend as PROOFChecksum Lines 264-267 of bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&start_line=264&end_line=267 import Base import bend-osdev-bytes@0.1.1.1/bytes.bend as B import bend-osdev-u32@0.1.0.0/u32.bend as U import bend-osdev-acpi@0.1.2.0/checksum.bend as C def ckp.fixzero(+i: Nat, +o: B.Octets, +h: {Nat.is_lt(i, B.Octets.len(o)) == True{} : Bool}) -> {U32.to_nat(C.AcpiChecksum.sum(C.AcpiChecksum.fix(i, o))) == 0n : Nat}: %Equal.sym(Nat, U32.to_nat(C.AcpiChecksum.sum(C.AcpiChecksum.fix(i, o))), U.U32Nat.low(8n, ckp.ns(B.Octets.to_list(C.AcpiChecksum.fix(i, o)))), ckp.sumv(C.AcpiChecksum.fix(i, o))) : {_ == 0n : Nat} %Equal.sym(Nat, ckp.ns(B.Octets.to_list(C.AcpiChecksum.fix(i, o))), Nat.add(ckp.ns(B.Octets.to_list(B.Octets.take(i, o))), Nat.add(U32.to_nat(C.AcpiChecksum.byte_for(i, o)), ckp.ns(B.Octets.to_list(B.Octets.drop(1n+i, o))))), ckp.fixsum(i, o, h)) : {U.U32Nat.low(8n, _) == 0n : Nat} ckp.zero(ckp.ns(B.Octets.to_list(B.Octets.take(i, o))), ckp.ns(B.Octets.to_list(B.Octets.drop(1n+i, o))), U32.to_nat(U32.and(255, Maybe.default(&2, U32, B.Octets.at(o, i), 0))), U32.to_nat(C.AcpiChecksum.byte_for(i, o)), U32.to_nat(U32.and(255, U32.sub(C.AcpiChecksum.sum(o), U32.and(255, Maybe.default(&2, U32, B.Octets.at(o, i), 0))))), ckp.e1(i, o, h), ckp.e2g(U32.and(255, U32.sub(C.AcpiChecksum.sum(o), U32.and(255, Maybe.default(&2, U32, B.Octets.at(o, i), 0)))))) Uses (26): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe.default https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_lt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.e1 https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.e2g https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.fixsum https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.ns https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.sumv https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/PROOF_checksum.bend&name=ckp.zero https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/checksum.bend&name=AcpiChecksum.byte_for https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/checksum.bend&name=AcpiChecksum.fix https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.2.0/checksum.bend&name=AcpiChecksum.sum https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets.at https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets.drop https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets.len https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets.take https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.1/bytes.bend&name=Octets.to_list https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/u32.bend&name=U32Nat.low