def nt.lt_le_trans
bend-osdev-u32@0.1.0.0 · PROOF_order.bend:425
import bend-osdev-u32@0.1.0.0/PROOF_order.bend as PROOFOrder
import Base
425def nt.lt_le_trans(x: Nat, y: Nat, z: Nat, h1: {Nat.is_lt(x, y) == True{} : Bool}, h2: {Nat.is_le(y, z) == True{} : Bool}) -> {Nat.is_lt(x, z) == True{} : Bool}:
426 match x y z:
427 case 0n 0n _:
428 Empty.absurd({Nat.is_lt(0n, z) == True{} : Bool}, ab.ft(h1))
429 case 0n 1n+yp 0n:
430 Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, ab.ft(h2))
431 case 0n 1n+yp 1n+zp:
432 {==}
433 case 1n+xp 0n _:
434 Empty.absurd({Nat.is_lt(1n+xp, z) == True{} : Bool}, ab.ft(h1))
435 case 1n+xp 1n+yp 0n:
436 Empty.absurd({Nat.is_lt(1n+xp, 0n) == True{} : Bool}, ab.ft(h2))
437 case 1n+xp 1n+yp 1n+zp:
438 nt.lt_le_trans(xp, yp, zp, h1, h2)