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))