def fill_head

bendtorch-core@0.1.0.0 · src/tensor/construction_PROOF.bend:219

import bendtorch-core@0.1.0.0/src/tensor/construction_PROOF.bend as ConstructionPROOF
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

219def fill_head(-shape: Shape.Shape, -written: Core.Tensor<shape>, -tensor: Core.Tensor<shape>, +cursor: Nat, +value: F32,
220  point: @+index: U32 -> @at: {U32.to_nat(index) == cursor : Nat} ->
221    Core.ObservationChecked(Core.Packed{shape, written}, index) &
222      {Core.checked_observe(shape, written, index) == Some{value} : Maybe<&2, F32>},
223  frame: FillFrame(shape, written, 1n+cursor, tensor), +index: U32, +at: {U32.to_nat(index) == cursor : Nat}) ->
224  Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
225    {Core.checked_observe(shape, tensor, index) == Some{value} : Maybe<&2, F32>}:
226  {\{Tuple: checked => observed =>
227    {\{Tuple: after_checked => retained =>
228      (after_checked, Equal.trans(Maybe<&2, F32>, Core.checked_observe(shape, tensor, index), Core.checked_observe(shape, written, index),
229        Some{value}, retained, observed))} :
230      (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
231        {Core.checked_observe(shape, tensor, index) == Core.checked_observe(shape, written, index) : Maybe<&2, F32>}) ->
232      (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
233        {Core.checked_observe(shape, tensor, index) == Some{value} : Maybe<&2, F32>})}(frame(index)(
234          %Equal.sym(Nat, U32.to_nat(index), cursor, at) : Shape.LT(_, 1n+cursor)
235          lt_self_successor(cursor))(checked))
236  } :
237    (Core.ObservationChecked(Core.Packed{shape, written}, index) &
238      {Core.checked_observe(shape, written, index) == Some{value} : Maybe<&2, F32>}) ->
239    (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
240      {Core.checked_observe(shape, tensor, index) == Some{value} : Maybe<&2, F32>})}(point(index)(at))

Uses (17)

Used by (1)