def tb.r64
bend-osdev-acpi@0.1.1.0 · PROOF_tables.bend:115
import bend-osdev-acpi@0.1.1.0/PROOF_tables.bend as PROOFTables
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-bytes@0.1.1.0/LAWS.bend as BL
import bend-osdev-acpi@0.1.1.0/header.bend as H
import bend-osdev-acpi@0.1.1.0/fields.bend as F
115def tb.r64(+s: B.Octets, +l: U32, +r: U32, +c: U32, +o: B.Octets, +t: B.Octets, +orv: U32, +ci: B.Octets, +cr: U32, +sig4: {B.Octets.len(s) == 4n : Nat}, +oem6: {B.Octets.len(o) == 6n : Nat}, +tid8: {B.Octets.len(t) == 8n : Nat}, +cid4: {B.Octets.len(ci) == 4n : Nat}, +body: B.Octets, +k: Nat) -> {F.AcpiF.u64(body, k) == F.AcpiF.u64(B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr}), body), Nat.add(36n, k)) : W.W64}:
116 %tb.elen(s, l, r, c, o, t, orv, ci, cr, sig4, oem6, tid8, cid4) : {F.AcpiF.u64(body, k) == Maybe.default(&2, W.W64, B.Octets.le64_at(B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr}), body), Nat.add(_, k)), W.W64.zero()) : W.W64}
117 %Equal.sym(Maybe<&2, W.W64>, B.Octets.le64_at(B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr}), body), Nat.add(B.Octets.len(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr})), k)), B.Octets.le64_at(body, k), BL.octets_le64_at_append_add(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr}), body, k)) : {F.AcpiF.u64(body, k) == Maybe.default(&2, W.W64, _, W.W64.zero()) : W.W64}
118 {==}