def get_low

bendtorch-core@0.1.0.0 · src/storage/refinement.bend:33

import bendtorch-core@0.1.0.0/src/storage/refinement.bend as Refinement
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model

33def get_low(-T: Data, -p: Nat, -original: Array<T>, -n: U32, -i: U32,
34  ys: Array<T>,
35  child: Get<T, p, original, U32.shr(n), i, U32.is_lt(i, U32.shr(U32.shr(n)))>,
36  ey: Model.Balanced(T, p, ys)) -> Get<T, 1n+p, ANode{original, ys}, n, i, True{}>:
37  match child:
38    case Get{xs, value, equal, kept, observed, ex}:
39      Get{ANode{xs, ys}, value,
40        Equal.cong(Array<T> & T, Array<T> & T, r => Array.swap.lo(T, ys, r),
41          (xs, value), Array.get.go(T, original, U32.shr(n), i,
42            U32.is_lt(i, U32.shr(U32.shr(n)))), equal),
43        Equal.cong(Array<T>, Array<T>, x => ANode{x, ys}, xs, original, kept),
44        observed, (ex, ey)}

Uses (13)

Used by (1)