def bq.half_lt_pw
bend-osdev-algo@0.1.0.0 · proof_bsearch.bend:361
import bend-osdev-algo@0.1.0.0/proof_bsearch.bend as ProofBsearch
import Base
import bend-osdev-algo@0.1.0.0/proof_u32.bend as U
361
362def bq.half_lt_pw(s: Nat, p: Nat, h: {Nat.is_lt(s, Nat.double(p)) == True{} : Bool}) -> {Nat.is_lt(U.uq.half(s), p) == True{} : Bool}:
363 match s:
364 case 0n:
365 match p:
366 case 0n:
367 Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, bq.ft(h))
368 case 1n+pp:
369 {==}
370 case 1n+sp:
371 match sp:
372 case 0n:
373 match p:
374 case 0n:
375 Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, bq.ft(h))
376 case 1n+pp:
377 {==}
378 case 1n+q:
379 match p:
380 case 0n:
381 Empty.absurd({Nat.is_lt(1n+U.uq.half(q), 0n) == True{} : Bool}, bq.ft(h))
382 case 1n+pp:
383 bq.half_lt_pw(q, pp, h)