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      {==}

Uses (11)

Used by (1)