def zero_result
bendtorch-core@0.1.0.0 · src/tensor/matmul_PROOF.bend:623
import bendtorch-core@0.1.0.0/src/tensor/matmul_PROOF.bend as MatmulPROOF
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/matmul.bend as Matrix
import bendtorch-core@0.1.0.0/src/tensor/matmul_LAWS.bend as Laws
623def zero_result(+left: Shape.Shape, +right: Shape.Shape, -a: Core.Tensor<left>, -b: Core.Tensor<right>, +output: Shape.Shape, -end: Nat,
624 result: Result<&2, &1, Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & Core.Tensor<output>>,
625 -source: Laws.SourceProduct<0, left, right, a, b, output, end, result>) -> Laws.ZeroResult<left, right, output, end, result>:
626 match result:
627 case Fail{error}:
628 Laws.ZeroResult{unit => Unit{}}
629 case Done{pair}:
630 (ra, rb, out) = pair
631 Laws.ZeroResult{unit =>
632 prove : @source: Laws.SourceProduct<0, left, right, a, b, output, end,
633 (Done{(ra, rb, out)} : Result<&2, &1, Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & Core.Tensor<output>>)> ->
634 Laws.ZeroPrefix<left, right, output, out, end> = \{Laws.SourceProduct: meaning =>
635 zero_prefix(left, right, a, b, output, ra, rb, out, end, meaning(Unit{}))}
636 prove(source)}