PROOF.inv16.core: def of bend-osdev-gf@0.1.1.0 Import: import bend-osdev-gf@0.1.1.0/PROOF.bend as PROOF Lines 7630-7635 of bend-osdev-gf@0.1.1.0/PROOF.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-gf@0.1.1.0/PROOF.bend&start_line=7630&end_line=7635 import Base import bend-osdev-gf@0.1.1.0/gfm.bend as M def inv16.core(+a: U32) -> {M.gfm.mul.raw(M.Gfm.gf16(), fixm(M.Gfm.elt(M.Gfm.gf16(), a)), M.Gfm.elt(M.Gfm.gf16(), M.gfm.pow.start(M.Gfm.gf16(), fixm(M.Gfm.elt(M.Gfm.gf16(), a)), U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32}: match a: case U32{WCon{+b0, WCon{+b1, WCon{+b2, WCon{+b3, +r}}}}}: %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, r}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}, elt_bits4(b0, b1, b2, b3, r)) : {M.gfm.mul.raw(M.Gfm.gf16(), fixm(_), M.Gfm.elt(M.Gfm.gf16(), M.gfm.pow.start(M.Gfm.gf16(), fixm(M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, r}}}}})), U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32} %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, r}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}, elt_bits4(b0, b1, b2, b3, r)) : {M.gfm.mul.raw(M.Gfm.gf16(), fixm(U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}), M.Gfm.elt(M.Gfm.gf16(), M.gfm.pow.start(M.Gfm.gf16(), fixm(_), U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32} inv16.bits(b0, b1, b2, b3) Uses (13): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub 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.zero https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/PROOF.bend&name=elt_bits4 https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/PROOF.bend&name=fixm https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/PROOF.bend&name=inv16.bits https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gfm.bend&name=Gfm.elt https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gfm.bend&name=Gfm.gf16 https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gfm.bend&name=Gfm.mask https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gfm.bend&name=gfm.mul.raw https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.1.0/gfm.bend&name=gfm.pow.start