ProofFastW1.zbk_byte: law of lawful-bytes@0.1.1.0 Import: import lawful-bytes@0.1.1.0/proof_fast_w1.bend as ProofFastW1 Lines 62-72 of lawful-bytes@0.1.1.0/proof_fast_w1.bend: https://jend.leeeet.dev/read.txt?path=lawful-bytes@0.1.1.0/proof_fast_w1.bend&start_line=62&end_line=72 import Base import lawful-words@0.1.0.0/proof_zb.bend as Z # With no borrow in and the byte's flag kept by the mask, the masked flags are # all clear exactly when the byte is not zero and the rest are clear. law zbk_byte: for +n: Nat for +x: Word(8n) for +r: Word(n) for +kr: Word(n) for +hr: Word(n) for +mr: Word(n) {Z.allz(Nat.add(8n, n), Word.and(Nat.add(8n, n), Z.zf(Nat.add(8n, n), Z.app8(n, x, r), Z.app8(n, Z.one8(), kr), Z.app8(n, Z.h8(), hr), True{}), Z.app8(n, Z.h8(), mr))) == Bool.and(Bool.not(Z.allz(8n, x)), Z.allz(n, Word.and(n, Z.zf(n, r, kr, hr, True{}), mr))) : Bool} Uses (14): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.not 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=Word https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Con https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Nil https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.and https://jend.leeeet.dev/definition.txt?path=lawful-words@0.1.0.0/proof_zb.bend&name=allz https://jend.leeeet.dev/definition.txt?path=lawful-words@0.1.0.0/proof_zb.bend&name=app8 https://jend.leeeet.dev/definition.txt?path=lawful-words@0.1.0.0/proof_zb.bend&name=h8 https://jend.leeeet.dev/definition.txt?path=lawful-words@0.1.0.0/proof_zb.bend&name=one8 https://jend.leeeet.dev/definition.txt?path=lawful-words@0.1.0.0/proof_zb.bend&name=zf