def below_true

bendtorch-core@0.1.0.0 · src/autograd/reduce_replayed_proof.bend:183

import bendtorch-core@0.1.0.0/src/autograd/reduce_replayed_proof.bend as ReduceReplayedProof
import Base
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith

183# 1 + b <= k gives b < k.
184def below_true(+b: Nat, +k: Nat, h: {Nat.is_le(1n+b, k) == True{} : Bool}) -> {Nat.is_lt(b, k) == True{} : Bool}:
185  match b k:
186    case 0n 0n:
187      Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, Arith.clash(h))
188    case 0n 1n+q:
189      {==}
190    case 1n+p 0n:
191      Empty.absurd({Nat.is_lt(1n+p, 0n) == True{} : Bool}, Arith.clash(h))
192    case 1n+p 1n+q:
193      below_true(p, q, h)

Uses (6)

Used by (1)