PROOF.inv32.core: def of bend-osdev-gf@0.1.1.0 Import: import bend-osdev-gf@0.1.1.0/PROOF.bend as PROOF Lines 7778-7783 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=7778&end_line=7783 import Base import bend-osdev-gf@0.1.1.0/gfm.bend as M def inv32.core(+a: U32) -> {M.gfm.mul.raw(M.Gfm.gf32(), fixm(M.Gfm.elt(M.Gfm.gf32(), a)), M.Gfm.elt(M.Gfm.gf32(), M.gfm.pow.start(M.Gfm.gf32(), fixm(M.Gfm.elt(M.Gfm.gf32(), a)), U32.sub(M.Gfm.mask(M.Gfm.gf32()), 1)))) == 1 : U32}: match a: case U32{WCon{+b0, WCon{+b1, WCon{+b2, WCon{+b3, WCon{+b4, +r}}}}}}: %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf32(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, r}}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, Word.zero(27n)}}}}}}, elt_bits5(b0, b1, b2, b3, b4, r)) : {M.gfm.mul.raw(M.Gfm.gf32(), fixm(_), M.Gfm.elt(M.Gfm.gf32(), M.gfm.pow.start(M.Gfm.gf32(), fixm(M.Gfm.elt(M.Gfm.gf32(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, r}}}}}})), U32.sub(M.Gfm.mask(M.Gfm.gf32()), 1)))) == 1 : U32} %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf32(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, r}}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, Word.zero(27n)}}}}}}, elt_bits5(b0, b1, b2, b3, b4, r)) : {M.gfm.mul.raw(M.Gfm.gf32(), fixm(U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, WCon{b4, Word.zero(27n)}}}}}}), M.Gfm.elt(M.Gfm.gf32(), M.gfm.pow.start(M.Gfm.gf32(), fixm(_), U32.sub(M.Gfm.mask(M.Gfm.gf32()), 1)))) == 1 : U32} inv32.bits(b0, b1, b2, b3, b4) 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_bits5 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=inv32.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.gf32 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