def SGT

lawful-bytes@0.1.1.0 · proof_shift.bend:119

import lawful-bytes@0.1.1.0/proof_shift.bend as ProofShift
import Base
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-words@0.1.0.0/defs.bend as W
import lawful-arrays@0.1.0.0/proof_tree.bend as P
import lawful-arrays@0.1.0.0/proof_index.bend as I

119def SGT(+len: U32, m: Nat, +tb: P.Tree<U32>, +j: U32, +p: U32, +k: U32) -> P.Tree<U32>:
120  match m:
121    case 0n:
122      tb
123    case 1n+n:
124      +x = C.AT(len, tb, p)
125      +j1 = (j + 1 : U32)
126      SGT(len, n, I.set_tree(U32, tb, (j >> 2n : U32), W.put_byte(C.WD(tb, (j >> 2n : U32)), U32.to_nat((j .&. 3 : U32)), x)), j1, (j1 + k : U32), k)

Uses (11)

Used by (5)