def step_target_info
bendtorch-core@0.1.0.0 · src/tensor/transform_PROOF.bend:569
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/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/tensor/core_PROOF.bend as CoreProof
569def step_target_info(+input: Shape.Shape, +axes: List<&2, U32>, +plan: Layout.Plan<input, axes>, +index: U32,
570 -original_source: Core.Tensor<input>, -original_target: Core.Tensor<Layout.output(input, axes, plan)>,
571 +mapping: Layout.Mapping<input, axes, plan, index>, +value: F32,
572 -map_exact: {Done{mapping} == Layout.map_index(input, axes, plan, index) : Result<&2, &2, Layout.Error, Layout.Mapping<input, axes, plan, index>>},
573 target_info: TargetInfo<Layout.output(input, axes, plan), original_target, index, value>, retained: Core.Tensor<input>,
574 lift: @-pair: Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>> ->
575 {pair == Transforms.copy_written(input, axes, plan, source => target => (source, Done{target}), retained,
576 Core.write_flat(Layout.output(input, axes, plan), original_target, index, value)) :
577 Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>>} ->
578 {pair == Transforms.copy_step(input, axes, plan, original_source, original_target, index) :
579 Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>>},
580 -read_exact: {(retained, Done{value}) == Core.read_flat(input, original_source, Layout.source_index(input, axes, plan, index, mapping)) :
581 Core.Tensor<input> & Result<&2, &2, Core.Error, F32>}) -> Transforms.StepCertificate<input, axes, plan, index, original_source, original_target>:
582 TargetInfo{owner, same, model} = target_info
583 step_write_certificate(input, axes, plan, index, original_source, original_target, mapping, value, map_exact,
584 CoreProof.write_original(Layout.output(input, axes, plan), original_target, owner, index, value, same,
585 Core.write_certificate(Layout.output(input, axes, plan), owner, index, value)), retained, lift, read_exact,
586 Core.source_read_model(input, original_source, Layout.source_index(input, axes, plan, index, mapping)),
587 Core.source_read_keeps(input, original_source, Layout.source_index(input, axes, plan, index, mapping)), model)