def position_inside
bendtorch-core@0.1.0.0 · src/tensor/contracts/sum_proof.bend:42
import bendtorch-core@0.1.0.0/src/tensor/contracts/sum_proof.bend as SumProof
import Base
import bendtorch-core@0.1.0.0/src/tensor/word_conversion.bend as Conversion
import bendtorch-core@0.1.0.0/src/tensor/contracts/pointwise.bend as Pointwise
import bendtorch-core@0.1.0.0/src/tensor/contracts/sum.bend as Sum
42def position_inside(+count: Nat, +bound: Nat, +room: {Nat.is_le(count, bound) == True{} : Bool}) ->
43 {Pointwise.inside(~Unit, ~Sum.position, Unit{}, count, bound) == True{} : Bool}:
44 match count:
45 case 0n:
46 {==}
47 case 1n+previous:
48 %Equal.sym(Bool, Pointwise.inside(~Unit, ~Sum.position, Unit{}, previous, bound), True{},
49 position_inside(previous, bound, Conversion.le_predecessor(previous, bound, room))) :
50 {Bool.and(_, Nat.is_lt(previous, bound)) == True{} : Bool}
51 %Equal.sym(Bool, Nat.is_lt(previous, bound), True{}, Conversion.le_successor_lt(previous, bound, room)) :
52 {Bool.and(True{}, _) == True{} : Bool}
53 {==}