def digit_lt

stelliferous@0.0.2.0 · proofs/nat_order.bend:251

import stelliferous@0.0.2.0/proofs/nat_order.bend as NatOrder
import Base
import stelliferous@0.0.2.0/proofs/u32_comparison.bend as Comparison
import stelliferous@0.0.2.0/proofs/word_encoding.bend as WordEncoding

251def digit_lt(+a: Nat,+b: Nat,+bit: Bool,h: {Nat.is_lt(a,b) == True{} : Bool}) -> {Nat.is_lt(Comparison.digit(bit,a),
252    Nat.double(b)) == True{} : Bool}:
253  match a b bit:
254    case 0n 0n bit:
255      Empty.absurd({Nat.is_lt(Comparison.digit(bit,0n),0n) == True{} : Bool},WordEncoding.false_true(h))
256    case 0n 1n+b False{}:
257      {==}
258    case 0n 1n+b True{}:
259      {==}
260    case 1n+a 0n bit:
261      Empty.absurd({Nat.is_lt(Comparison.digit(bit,1n+a),0n) == True{} : Bool},WordEncoding.false_true(h))
262    case 1n+a 1n+b False{}:
263      digit_lt(a,b,False{},h)
264    case 1n+a 1n+b True{}:
265      digit_lt(a,b,True{},h)

Uses (7)

Used by (2)