def side_inside
bendtorch-core@0.1.0.0 · src/tensor/elementwise_parallel_proof.bend:438
import bendtorch-core@0.1.0.0/src/tensor/elementwise_parallel_proof.bend as ElementwiseParallelProof
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/elementwise_totality.bend as Totality
import bendtorch-core@0.1.0.0/src/tensor/word_conversion.bend as WordConversion
438
439def side_inside(-input: Core.Dynamic, +side: Shape.Shape, +walk: Nat,
440 fits: {Totality.dimensions(input) == Shape.dimensions(side) : List<&2, U32>},
441 +bound: {True{} == Nat.is_lt(walk, Shape.elements(side)) : Bool}) ->
442 {Nat.is_lt(U32.to_nat(U32.from_nat(walk)), Shape.logical_numel(Totality.dimensions(input))) == True{} : Bool}:
443 %Equal.sym(Nat, U32.to_nat(U32.from_nat(walk)), walk,
444 word_exact(side, walk, WordConversion.lt_le(walk, Shape.elements(side), Equal.sym(Bool, True{}, Nat.is_lt(walk, Shape.elements(side)), bound)))) :
445 {Nat.is_lt(_, Shape.logical_numel(Totality.dimensions(input))) == True{} : Bool}
446 %Equal.sym(List<&2, U32>, Totality.dimensions(input), Shape.dimensions(side), fits) :
447 {Nat.is_lt(walk, Shape.logical_numel(_)) == True{} : Bool}
448 %Shape.elements_exact(side) : {Nat.is_lt(walk, _) == True{} : Bool}
449 Equal.sym(Bool, True{}, Nat.is_lt(walk, Shape.elements(side)), bound)