def uq.le_lt_trans
bend-osdev-algo@0.1.0.0 · proof_u32.bend:170
import bend-osdev-algo@0.1.0.0/proof_u32.bend as ProofU32
import Base
170def uq.le_lt_trans(x: Nat, y: Nat, z: Nat, h1: {Nat.is_le(x, y) == True{} : Bool}, h2: {Nat.is_lt(y, z) == True{} : Bool}) -> {Nat.is_lt(x, z) == True{} : Bool}:
171 match x y z:
172 case 0n 0n 0n:
173 Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, uq.ft(h2))
174 case 0n 0n 1n+zp:
175 {==}
176 case 0n 1n+yp 0n:
177 Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, uq.ft(h2))
178 case 0n 1n+yp 1n+zp:
179 {==}
180 case 1n+xp 0n _:
181 Empty.absurd({Nat.is_lt(1n+xp, z) == True{} : Bool}, uq.ft(h1))
182 case 1n+xp 1n+yp 0n:
183 Empty.absurd({Nat.is_lt(1n+xp, 0n) == True{} : Bool}, uq.ft(h2))
184 case 1n+xp 1n+yp 1n+zp:
185 uq.le_lt_trans(xp, yp, zp, h1, h2)