def h.gp_other.br
bend-kit-collections@0.1.4.1 · PROOF.bend:3174
import bend-kit-collections@0.1.4.1/PROOF.bend as PROOF
import Base
import bend-kit-collections@0.1.4.1/hmap.bend as M
3174def h.gp_other.br(
3175 ~K: Data, ~V: Data, ~eq: K -> K -> Bool, +p: Nat, +mask: U32, +lo: M.HMap<K, V>,
3176 +hi: M.HMap<K, V>, +h2: U32, +k2: K, +hk: U32, +k: K, +v: V, b: Bool,
3177 il: {h.G(~K, ~V, ~eq, p, (mask << 1n : U32), h.P(~K, ~V, ~eq, p, (mask << 1n : U32), lo, h2, k2, v), hk, k)
3178 == h.G(~K, ~V, ~eq, p, (mask << 1n : U32), lo, hk, k) : Maybe<&2, V>},
3179 ih: {h.G(~K, ~V, ~eq, p, (mask << 1n : U32), h.P(~K, ~V, ~eq, p, (mask << 1n : U32), hi, h2, k2, v), hk, k)
3180 == h.G(~K, ~V, ~eq, p, (mask << 1n : U32), hi, hk, k) : Maybe<&2, V>}
3181) -> {h.G(~K, ~V, ~eq, 1n+p, mask, h.pb(~K, ~V, ~eq, b, p, mask, lo, hi, h2, k2, v), hk, k)
3182 == h.G(~K, ~V, ~eq, 1n+p, mask, M.HBranch{lo, hi}, hk, k) : Maybe<&2, V>}:
3183 match b:
3184 case True{}:
3185 h.bool_l(Maybe<&2, V>, U32.is_eq((hk .&. mask : U32), 0),
3186 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), h.P(~K, ~V, ~eq, p, (mask << 1n : U32), lo, h2, k2, v), hk, k),
3187 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), lo, hk, k),
3188 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), hi, hk, k), il)
3189 case False{}:
3190 h.bool_r(Maybe<&2, V>, U32.is_eq((hk .&. mask : U32), 0),
3191 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), lo, hk, k),
3192 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), h.P(~K, ~V, ~eq, p, (mask << 1n : U32), hi, h2, k2, v), hk, k),
3193 h.G(~K, ~V, ~eq, p, (mask << 1n : U32), hi, hk, k), ih)