def fill_frame_advance

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

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

259def fill_frame_advance(-shape: Shape.Shape, -original: Core.Tensor<shape>, -written: Core.Tensor<shape>, -tensor: Core.Tensor<shape>, +cursor: Nat,
260  before: FillFrame(shape, original, cursor, written), after: FillFrame(shape, written, 1n+cursor, tensor),
261  +index: U32, +earlier: Shape.LT(U32.to_nat(index), cursor), checked: Core.ObservationChecked(Core.Packed{shape, original}, index)) ->
262  Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
263    {Core.checked_observe(shape, tensor, index) == Core.checked_observe(shape, original, index) : Maybe<&2, F32>}:
264  {\{Tuple: middle_checked => middle_equal =>
265    {\{Tuple: after_checked => after_equal =>
266      (after_checked, Equal.trans(Maybe<&2, F32>, Core.checked_observe(shape, tensor, index), Core.checked_observe(shape, written, index),
267        Core.checked_observe(shape, original, index), after_equal, middle_equal))} :
268      (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
269        {Core.checked_observe(shape, tensor, index) == Core.checked_observe(shape, written, index) : Maybe<&2, F32>}) ->
270      (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
271        {Core.checked_observe(shape, tensor, index) == Core.checked_observe(shape, original, index) : Maybe<&2, F32>})}(after(index)(lt_extend(U32.to_nat(index), cursor, earlier))(middle_checked))
272  } :
273    (Core.ObservationChecked(Core.Packed{shape, written}, index) &
274      {Core.checked_observe(shape, written, index) == Core.checked_observe(shape, original, index) : Maybe<&2, F32>}) ->
275    (Core.ObservationChecked(Core.Packed{shape, tensor}, index) &
276      {Core.checked_observe(shape, tensor, index) == Core.checked_observe(shape, original, index) : Maybe<&2, F32>})}(before(index)(earlier)(checked))

Uses (16)

Used by (1)