def FG2

lawful-bytes@0.1.1.0 · proof_fast_find2.bend:31

import lawful-bytes@0.1.1.0/proof_fast_find2.bend as ProofFastFind2
import Base
import lawful-bytes@0.1.1.0/fast.bend as FA
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-arrays@0.1.0.0/proof_tree.bend as P

31def FG2(n: Nat, z: Bool, +wi: U32, +m: U32, +r1: U32, +r2: U32, +t: P.Tree<U32>) -> U32:
32  match n z:
33    case 0n _:
34      4294967295
35    case 1n+k True{}:
36      +m2 = (FA.zb((C.WD(t, (wi + 1 : U32)) .^. r1 : U32)) .|. FA.zb((C.WD(t, (wi + 1 : U32)) .^. r2 : U32)) : U32)
37      FG2(k, U32.is_zero(m2), (wi + 1 : U32), m2, r1, r2, t)
38    case 1n+k False{}:
39      ((wi << 2n : U32) + FA.bidx(m) : U32)

Uses (12)

Used by (7)