def restored_contract
bendtorch-core@0.1.0.0 · src/autograd/tensor_backward_PROOF.bend:473
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward_PROOF.bend as TensorBackwardPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward_LAWS.bend as Laws
473
474def restored_contract(-a: Nat, -target: Shape.Shape, -cell: Nat -> F32, +shape: Shape.Shape, pass: Backward.Pass,
475 contract: Laws.SoleContract<a, target, cell, pass>) -> Laws.SoleContract<a, target, cell, Backward.restored(shape, pass)>:
476 match pass:
477 case Backward.Pass{saved, g, Fail{error}}:
478 Laws.SoleContract{target_id, dimensions, value} = contract
479 Laws.SoleContract{target_id, dimensions, value}
480 case Backward.Pass{saved, g, Done{Nil{}}}:
481 Laws.SoleContract{target_id, dimensions, value} = contract
482 Laws.SoleContract{target_id, dimensions, value}
483 case Backward.Pass{saved, g, Done{Con{contribution, Nil{}}}}:
484 Laws.SoleContract{target_id, dimensions, value} = contract
485 Laws.SoleContract{target_id, dimensions, value}
486 case Backward.Pass{saved, g, Done{Con{contribution, Con{other, rest}}}}:
487 Laws.SoleContract{target_id, dimensions, value} = contract
488 Laws.SoleContract{target_id, dimensions, value}