PROOF.comm16.core: def of bend-osdev-gf@0.1.1.0 Import: import bend-osdev-gf@0.1.1.0/PROOF.bend as PROOF Lines 7544-7551 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=7544&end_line=7551 import Base import bend-osdev-gf@0.1.1.0/gfm.bend as M def comm16.core(+a: U32, +b: U32) -> {M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), a), M.Gfm.elt(M.Gfm.gf16(), b)) == M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), b), M.Gfm.elt(M.Gfm.gf16(), a)) : U32}: match a b: case U32{WCon{+a0, WCon{+a1, WCon{+a2, WCon{+a3, +ra}}}}} U32{WCon{+b0, WCon{+b1, WCon{+b2, WCon{+b3, +rb}}}}}: %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, ra}}}}}), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}, elt_bits4(a0, a1, a2, a3, ra)) : {M.gfm.mul.raw(M.Gfm.gf16(), _, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}})) == M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}}), M.Gfm.elt(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, ra}}}}})) : U32} %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, ra}}}}}), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}, elt_bits4(a0, a1, a2, a3, ra)) : {M.gfm.mul.raw(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}})) == M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}}), _) : U32} %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}, elt_bits4(b0, b1, b2, b3, rb)) : {M.gfm.mul.raw(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}, _) == M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}}), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}) : U32} %Equal.sym(U32, M.Gfm.elt(M.Gfm.gf16(), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, rb}}}}}), U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}, elt_bits4(b0, b1, b2, b3, rb)) : {M.gfm.mul.raw(M.Gfm.gf16(), U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}, U32{WCon{b0, WCon{b1, WCon{b2, WCon{b3, Word.zero(28n)}}}}}) == M.gfm.mul.raw(M.Gfm.gf16(), _, U32{WCon{a0, WCon{a1, WCon{a2, WCon{a3, Word.zero(28n)}}}}}) : U32} comm16.bits(a0, a1, a2, a3, b0, b1, b2, b3) Uses (9): 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=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=comm16.bits 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/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.mul.raw