def gc.aes.log.bits
bend-osdev-gf@0.1.1.0 · proof_tab_cases.bend:3132
import bend-osdev-gf@0.1.1.0/proof_tab_cases.bend as ProofTabCases
import Base
import bend-osdev-array@0.1.0.1/array.bend as A
import bend-osdev-gf@0.1.1.0/gf.bend as G
3132def gc.aes.log.bits(+b0: Bool, +b1: Bool, +b2: Bool, +b3: Bool, +b4: Bool, +b5: Bool, +b6: Bool, +b7: Bool) -> {A.Arrays.nth(U32, gc.aes.llist(), A.Arrays.index(8n, G.Gf8Bits.to(G.Gf8Bits{b0, b1, b2, b3, b4, b5, b6, b7})), 0) == U32.from_nat(G.Gf8.log(G.Gf8.aes(), G.Gf8Bits.to(G.Gf8Bits{b0, b1, b2, b3, b4, b5, b6, b7}))) : U32}:
3133 match b5 b6 b7:
3134 case True{} True{} True{}:
3135 gc.aes.log.bits.s111(b0, b1, b2, b3, b4)
3136 case True{} True{} False{}:
3137 gc.aes.log.bits.s011(b0, b1, b2, b3, b4)
3138 case True{} False{} True{}:
3139 gc.aes.log.bits.s101(b0, b1, b2, b3, b4)
3140 case True{} False{} False{}:
3141 gc.aes.log.bits.s001(b0, b1, b2, b3, b4)
3142 case False{} True{} True{}:
3143 gc.aes.log.bits.s110(b0, b1, b2, b3, b4)
3144 case False{} True{} False{}:
3145 gc.aes.log.bits.s010(b0, b1, b2, b3, b4)
3146 case False{} False{} True{}:
3147 gc.aes.log.bits.s100(b0, b1, b2, b3, b4)
3148 case False{} False{} False{}:
3149 gc.aes.log.bits.s000(b0, b1, b2, b3, b4)