def tb.sdt_body
bend-osdev-acpi@0.1.1.0 · PROOF_tables.bend:140
import bend-osdev-acpi@0.1.1.0/PROOF_tables.bend as PROOFTables
import Base
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/checksum.bend as C
140def tb.sdt_body(+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) -> {body == B.Octets.drop(36n, H.AcpiSdt.build(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr}, body)) : B.Octets}:
141 %tb.lenchk(s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr, sig4, oem6, tid8, cid4, body) : {body == B.Octets.drop(36n, C.ck.fix.pick(Nat.is_lt(9n, _), 9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))) : B.Octets}
142 %Equal.sym(B.Octets, B.Octets.concat([B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.concat([B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))])), BL.octets_concat_cons(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), [B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))])) : {body == B.Octets.drop(36n, _) : B.Octets}
143 %Equal.sym(B.Octets, B.Octets.concat([B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.concat([B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))])), BL.octets_concat_cons(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), [B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))])) : {body == B.Octets.drop(36n, B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), _)) : B.Octets}
144 %Equal.sym(B.Octets, B.Octets.concat([B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.append(B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.concat(Nil{})), BL.octets_concat_cons(B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), Nil{})) : {body == B.Octets.drop(36n, B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), _))) : B.Octets}
145 %Equal.sym(B.Octets, B.Octets.concat(Nil{}), B.Octets.empty(), BL.octets_concat_nil()) : {body == B.Octets.drop(36n, B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.append(B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), _)))) : B.Octets}
146 %Equal.sym(B.Octets, B.Octets.append(B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.empty()), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), BL.octets_append_empty_r(B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)))) : {body == B.Octets.drop(36n, B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), _))) : B.Octets}
147 %tb.e36(s, l, r, c, o, t, orv, ci, cr, sig4, oem6, tid8, cid4, body) : {body == B.Octets.drop(_, B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))))) : B.Octets}
148 %Equal.sym(B.Octets, B.Octets.drop(Nat.add(B.Octets.len(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))), 27n), B.Octets.append(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))))), B.Octets.drop(27n, B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)))), BL.octets_drop_append_add(B.Octets.take(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), 27n, B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))))) : {body == _ : B.Octets}
149 %Equal.sym(B.Octets, B.Octets.drop(Nat.add(B.Octets.len(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))])), 26n), B.Octets.append(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)))), B.Octets.drop(26n, B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))), BL.octets_drop_append_add(B.Octets.of_list([C.AcpiChecksum.byte_for(9n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))]), 26n, B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)))) : {body == _ : B.Octets}
150 %Equal.sym(B.Octets, B.Octets.drop(26n, B.Octets.drop(10n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))), B.Octets.drop(Nat.add(10n, 26n), B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), BL.octets_drop_drop(10n, 26n, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body))) : {body == _ : B.Octets}
151 %tb.e0(s, l, r, c, o, t, orv, ci, cr, sig4, oem6, tid8, cid4, body) : {body == B.Octets.drop(_, B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)) : B.Octets}
152 %Equal.sym(B.Octets, B.Octets.drop(Nat.add(B.Octets.len(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr})), 0n), B.Octets.append(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), body)), B.Octets.drop(0n, body), BL.octets_drop_append_add(H.AcpiHeader.encode(H.AcpiHeader{s, U32.from_nat(Nat.add(36n, B.Octets.len(body))), r, 0, o, t, orv, ci, cr}), 0n, body)) : {body == _ : B.Octets}
153 %Equal.sym(B.Octets, B.Octets.drop(0n, body), body, BL.octets_drop_zero(body)) : {body == _ : B.Octets}
154 {==}