def ckr.u16

bend-osdev-acpi@0.1.2.0 · PROOF_rsdp.bend:92

import bend-osdev-acpi@0.1.2.0/PROOF_rsdp.bend as PROOFRsdp
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/rsdp.bend as P

92def ckr.u16(+k: U32, +oem: B.Octets, +oem6: {B.Octets.len(oem) == 6n : Nat}, +rev: U32, +rsdt: U32) -> {B.Octets.le32_at(B.Octets.append(P.AcpiRsdp.signature(), B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))))), 16n) == Some{rsdt} : Maybe<&2, U32>}:
93  %Equal.sym(Maybe<&2, U32>, B.Octets.le32_at(B.Octets.append(P.AcpiRsdp.signature(), B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))))), Nat.add(B.Octets.len(P.AcpiRsdp.signature()), 8n)), B.Octets.le32_at(B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)))), 8n), BL.octets_le32_at_append_add(P.AcpiRsdp.signature(), B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)))), 8n)) : {_ == Some{rsdt} : Maybe<&2, U32>}
94  %Equal.cong(Nat, Nat, z => Nat.add(z, 7n), B.Octets.len(B.Octets.of_list([k])), B.len([k]), BL.octets_len_of_list([k])) : {B.Octets.le32_at(B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)))), _) == Some{rsdt} : Maybe<&2, U32>}
95  %Equal.sym(Maybe<&2, U32>, B.Octets.le32_at(B.Octets.append(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)))), Nat.add(B.Octets.len(B.Octets.of_list([k])), 7n)), B.Octets.le32_at(B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))), 7n), BL.octets_le32_at_append_add(B.Octets.of_list([k]), B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))), 7n)) : {_ == Some{rsdt} : Maybe<&2, U32>}
96  %Equal.cong(Nat, Nat, z => Nat.add(z, 1n), B.Octets.len(oem), 6n, oem6) : {B.Octets.le32_at(B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))), _) == Some{rsdt} : Maybe<&2, U32>}
97  %Equal.sym(Maybe<&2, U32>, B.Octets.le32_at(B.Octets.append(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt))), Nat.add(B.Octets.len(oem), 1n)), B.Octets.le32_at(B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)), 1n), BL.octets_le32_at_append_add(oem, B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)), 1n)) : {_ == Some{rsdt} : Maybe<&2, U32>}
98  %Equal.cong(Nat, Nat, z => Nat.add(z, 0n), B.Octets.len(B.Octets.of_list([rev])), B.len([rev]), BL.octets_len_of_list([rev])) : {B.Octets.le32_at(B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)), _) == Some{rsdt} : Maybe<&2, U32>}
99  %Equal.sym(Maybe<&2, U32>, B.Octets.le32_at(B.Octets.append(B.Octets.of_list([rev]), B.Octets.le32(rsdt)), Nat.add(B.Octets.len(B.Octets.of_list([rev])), 0n)), B.Octets.le32_at(B.Octets.le32(rsdt), 0n), BL.octets_le32_at_append_add(B.Octets.of_list([rev]), B.Octets.le32(rsdt), 0n)) : {_ == Some{rsdt} : Maybe<&2, U32>}
100  BL.octets_le32_round_trip(rsdt)

Uses (18)

Used by (2)