def copy_mapped_success

bendtorch-core@0.1.0.0 · src/tensor/transform_PROOF.bend:1835

import bendtorch-core@0.1.0.0/src/tensor/transform_PROOF.bend as TransformPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/layout.bend as Layout
import bendtorch-core@0.1.0.0/src/tensor/transform_LAWS.bend as Laws
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/transforms.bend as Transforms
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith
import bendtorch-core@0.1.0.0/src/tensor/transform_totality.bend as Totality

1835def copy_mapped_success(+input: Shape.Shape, +axes: List<&2, U32>, +plan: Layout.Plan<input, axes>, +index: U32,
1836  mapped: Result<&2, &2, Layout.Error, Layout.Mapping<input, axes, plan, index>>,
1837  source: Core.Tensor<input>, target: Core.Tensor<Layout.output(input, axes, plan)>,
1838  +successful: {Result.is_done(&2, &2, Layout.Error, Layout.Mapping<input, axes, plan, index>, mapped) == True{} : Bool},
1839  +inside: {True{} == U32.is_lt(index, Shape.count(Layout.output(input, axes, plan))) : Bool}) ->
1840  Totality.CopySuccess<input, axes, plan, Transforms.copy_mapped(input, axes, plan, index,
1841    source => target => (source, Done{target}), source, target, mapped)>:
1842  match mapped:
1843    case Fail{error}:
1844      Totality.CopySuccess{Empty.absurd({False{} == True{} : Bool}, Arith.clash(successful))}
1845    case Done{+mapping}:
1846      copy_read_success(input, axes, plan, index, Layout.source_index(input, axes, plan, index, mapping), source, target,
1847        read_success(input, source, Layout.source_index(input, axes, plan, index, mapping),
1848          Laws.mapped_mathematical_bounded(input, axes, plan, index, mapping)), inside)

Uses (22)

Used by (1)