def nodes_merge
bendtorch-core@0.1.0.0 · src/autograd/backward_PROOF.bend:509
import bendtorch-core@0.1.0.0/src/autograd/backward_PROOF.bend as BackwardPROOF
import Base
import bendtorch-core@0.1.0.0/src/autograd/backward.bend as Backward
509def nodes_merge(+entries: List<&2, Backward.Entry>, +gradients: List<&2, Maybe<&2, F32>>) ->
510 {Backward.nodes(entries) == Backward.nodes(Backward.merge(entries, gradients)) : List<&2, Backward.Node>}:
511 match entries gradients:
512 case Nil{} gradients:
513 {==}
514 case Con{Backward.Entry{node, value, slot}, rest} Nil{}:
515 {==}
516 case Con{Backward.Entry{node, value, slot}, rest} Con{gradient, more}:
517 Equal.cong(List<&2, Backward.Node>, List<&2, Backward.Node>, xs => node <> xs,
518 Backward.nodes(rest), Backward.nodes(Backward.merge(rest, more)), nodes_merge(rest, more))