PROOFTables.tb.sdt_body: def of bend-osdev-acpi@0.1.1.0 Import: import bend-osdev-acpi@0.1.1.0/PROOF_tables.bend as PROOFTables Lines 140-154 of bend-osdev-acpi@0.1.1.0/PROOF_tables.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-acpi@0.1.1.0/PROOF_tables.bend&start_line=140&end_line=154 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 def 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}: %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} %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} %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} %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} %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} %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} %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} %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} %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} %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} %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} %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} %Equal.sym(B.Octets, B.Octets.drop(0n, body), body, BL.octets_drop_zero(body)) : {body == _ : B.Octets} {==} Uses (29): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List 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.from_nat https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/PROOF_tables.bend&name=tb.e0 https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/PROOF_tables.bend&name=tb.e36 https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/PROOF_tables.bend&name=tb.lenchk https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/checksum.bend&name=AcpiChecksum.byte_for https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/checksum.bend&name=ck.fix.pick https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/header.bend&name=AcpiHeader https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/header.bend&name=AcpiHeader.encode https://jend.leeeet.dev/definition.txt?path=bend-osdev-acpi@0.1.1.0/header.bend&name=AcpiSdt.build https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_append_empty_r https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_concat_cons https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_concat_nil https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_drop_append_add https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_drop_drop https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/LAWS.bend&name=octets_drop_zero https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.append https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.concat https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.drop https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.empty https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.len https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.of_list https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.take