def agreed_mapping

bendtorch-core@0.1.0.0 · src/autograd/gradient_PROOF.bend:566

import bendtorch-core@0.1.0.0/src/autograd/gradient_PROOF.bend as GradientPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/elementwise_totality.bend as Totality
import bendtorch-core@0.1.0.0/src/autograd/gradient.bend as Gradient
import bendtorch-core@0.1.0.0/src/autograd/gradient_LAWS.bend as Laws

566def agreed_mapping(+shape: Shape.Shape, slot: Gradient.Slot, contribution: Core.Dynamic,
567  -agrees: {Totality.dimensions(contribution) == Shape.dimensions(shape) : List<&2, U32>}) ->
568  Holds<Laws.Mapping(slot, contribution, shape, Gradient.agreed(shape, slot, contribution))>:
569  match slot:
570    case Gradient.Unset{}:
571      Holds{(
572        %agrees : {Some{Totality.dimensions(contribution)} == Some{_} : Maybe<&2, List<&2, U32>>}
573        {==},
574        index => inside => {==})}
575    case Gradient.Held{gradient}:
576      held_mapping(shape, contribution, gradient)

Uses (13)

Used by (1)