def FG
lawful-bytes@0.1.1.0 · proof_fast_find.bend:23
import lawful-bytes@0.1.1.0/proof_fast_find.bend as ProofFastFind
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
23def FG(n: Nat, z: Bool, +wi: U32, +m: U32, +rc: U32, +t: P.Tree<U32>) -> U32:
24 match n z:
25 case 0n _:
26 4294967295
27 case 1n+k True{}:
28 +m2 = FA.zb((C.WD(t, (wi + 1 : U32)) .^. rc : U32))
29 FG(k, U32.is_zero(m2), (wi + 1 : U32), m2, rc, t)
30 case 1n+k False{}:
31 ((wi << 2n : U32) + FA.bidx(m) : U32)