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)

Uses (18)

Used by (1)