def inv16.lift
bend-osdev-gf@0.1.1.0 · PROOF.bend:7637
import bend-osdev-gf@0.1.1.0/PROOF.bend as PROOF
import Base
import bend-osdev-gf@0.1.1.0/gfm.bend as M
7637def inv16.lift(+a: U32, +nz: {U32.is_eq(M.Gfm.elt(M.Gfm.gf16(), a), 0) == False{} : Bool}) -> {M.gfm.mul.raw(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), a), M.Gfm.elt(M.Gfm.gf16(), M.gfm.pow.start(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), a), U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32}:
7638 %fixm_nz(M.Gfm.elt(M.Gfm.gf16(), a), nz) : {M.gfm.mul.raw(M.Gfm.gf16(), _, M.Gfm.elt(M.Gfm.gf16(), M.gfm.pow.start(M.Gfm.gf16(), M.Gfm.elt(M.Gfm.gf16(), a), U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32}
7639 %fixm_nz(M.Gfm.elt(M.Gfm.gf16(), a), nz) : {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(), _, U32.sub(M.Gfm.mask(M.Gfm.gf16()), 1)))) == 1 : U32}
7640 inv16.core(a)