def dot_left_status
bendtorch-core@0.1.0.0 · src/tensor/matmul_PROOF.bend:739
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/math_totality.bend as Totality
import bendtorch-core@0.1.0.0/src/tensor/transform_totality.bend as TransformTotality
import bendtorch-core@0.1.0.0/src/shape/coordinate_proofs.bend as Coordinates
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith
739def dot_left_status(+fuel: Nat, +left: Shape.Shape, +right: Shape.Shape, +row: U32, +column: U32, +cursor: Nat, +accumulator: F32,
740 pair: Core.Tensor<left> & Result<&2, &2, Core.Error, F32>, b: Core.Tensor<right>,
741 -successful: {TransformTotality.read_succeeded(left, pair) == True{} : Bool},
742 -right_fits: Coordinates.Fits(Shape.extents(right), [U32.to_nat(U32.from_nat(cursor)), U32.to_nat(column)]),
743 -rec: @a: Core.Tensor<left> -> @b: Core.Tensor<right> -> @+value: F32 -> Totality.Status<Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32,
744 Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, value)>) ->
745 Totality.Status<Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32, Matrix.left_read(left, right,
746 a => b => value => Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, value), b, [U32.from_nat(cursor), column], accumulator, pair)>:
747 (a, result) = pair
748 match result:
749 case Fail{error}:
750 Totality.Status{Empty.absurd({False{} == True{} : Bool}, Arith.clash(successful))}
751 case Done{+value}:
752 dot_right_status(fuel, left, right, row, column, cursor, value, accumulator,
753 Core.read_coordinate(right, b, [U32.from_nat(cursor), column]), a,
754 {\{Totality.ReadStatus: successful => successful} : Totality.ReadStatus<right, Core.read_coordinate(right, b, [U32.from_nat(cursor), column])> ->
755 {TransformTotality.read_succeeded(right, Core.read_coordinate(right, b, [U32.from_nat(cursor), column])) == True{} : Bool}}(
756 coordinate_read_status(right, b, [U32.from_nat(cursor), column], right_fits)), rec)