def tb.elen

bend-osdev-acpi@0.1.1.0 · PROOF_tables.bend:78

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

78def tb.elen(+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}) -> {B.Octets.len(H.AcpiHeader.encode(H.AcpiHeader{s, l, r, c, o, t, orv, ci, cr})) == 36n : Nat}:
79  %tb.la(s, B.Octets.append(B.Octets.le32(l), B.Octets.append(H.hd.byte(r), B.Octets.append(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr))))))))) : {_ == 36n : Nat}
80  %Equal.sym(Nat, B.Octets.len(s), 4n, sig4) : {Nat.add(_, B.Octets.len(B.Octets.append(B.Octets.le32(l), B.Octets.append(H.hd.byte(r), B.Octets.append(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))))))))) == 36n : Nat}
81  %tb.la(B.Octets.le32(l), B.Octets.append(H.hd.byte(r), B.Octets.append(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))))))) : {Nat.add(4n, _) == 36n : Nat}
82  %Equal.sym(Nat, B.Octets.len(B.Octets.le32(l)), 4n, BL.octets_len_le32(l)) : {Nat.add(4n, Nat.add(_, B.Octets.len(B.Octets.append(H.hd.byte(r), B.Octets.append(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))))))))) == 36n : Nat}
83  %tb.la(H.hd.byte(r), B.Octets.append(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr))))))) : {Nat.add(8n, _) == 36n : Nat}
84  %tb.la(H.hd.byte(c), B.Octets.append(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))))) : {Nat.add(9n, _) == 36n : Nat}
85  %tb.la(o, B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr))))) : {Nat.add(10n, _) == 36n : Nat}
86  %Equal.sym(Nat, B.Octets.len(o), 6n, oem6) : {Nat.add(10n, Nat.add(_, B.Octets.len(B.Octets.append(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr))))))) == 36n : Nat}
87  %tb.la(t, B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))) : {Nat.add(16n, _) == 36n : Nat}
88  %Equal.sym(Nat, B.Octets.len(t), 8n, tid8) : {Nat.add(16n, Nat.add(_, B.Octets.len(B.Octets.append(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr)))))) == 36n : Nat}
89  %tb.la(B.Octets.le32(orv), B.Octets.append(ci, B.Octets.le32(cr))) : {Nat.add(24n, _) == 36n : Nat}
90  %Equal.sym(Nat, B.Octets.len(B.Octets.le32(orv)), 4n, BL.octets_len_le32(orv)) : {Nat.add(24n, Nat.add(_, B.Octets.len(B.Octets.append(ci, B.Octets.le32(cr))))) == 36n : Nat}
91  %tb.la(ci, B.Octets.le32(cr)) : {Nat.add(28n, _) == 36n : Nat}
92  %Equal.sym(Nat, B.Octets.len(ci), 4n, cid4) : {Nat.add(28n, Nat.add(_, B.Octets.len(B.Octets.le32(cr)))) == 36n : Nat}
93  %Equal.sym(Nat, B.Octets.len(B.Octets.le32(cr)), 4n, BL.octets_len_le32(cr)) : {Nat.add(32n, _) == 36n : Nat}
94  {==}

Uses (13)

Used by (6)