def merge_split

bendtorch-core@0.1.0.0 · src/shape/index_proofs.bend:39

import bendtorch-core@0.1.0.0/src/shape/index_proofs.bend as IndexProofs
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape

39def merge_split(+a: Nat, +b: Nat, +index: Shape.Fin(Nat.add(a, b))) -> {Shape.Fin.merge(a, b, Shape.Fin.split(a, b, index)) == index : Shape.Fin(Nat.add(a, b))}:
40  match a:
41    case 0n:
42      {==}
43    case 1n+p:
44      match index:
45        case Shape.FZero{}:
46          {==}
47        case Shape.FNext{+previous}:
48          %merge_split(p, b, previous) : {Shape.Fin.merge(1n+p, b, Shape.Fin.split.step(p, b, Shape.Fin.split(p, b, previous))) == Shape.FNext{_} : Shape.Fin(1n+Nat.add(p, b))}
49          merge_step(p, b, Shape.Fin.split(p, b, previous))

Uses (8)

Used by (1)