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

Uses (12)

Used by (1)