def un.le_lt_trans

bend-osdev-u32@0.1.0.0 · PROOF.bend:180

import bend-osdev-u32@0.1.0.0/PROOF.bend as PROOF
import Base

180def un.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}:
181  match x y z:
182    case 0n 0n 0n:
183      Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, un.ft(h2))
184    case 0n 0n 1n+zp:
185      {==}
186    case 0n 1n+yp 0n:
187      Empty.absurd({Nat.is_lt(0n, 0n) == True{} : Bool}, un.ft(h2))
188    case 0n 1n+yp 1n+zp:
189      {==}
190    case 1n+xp 0n _:
191      Empty.absurd({Nat.is_lt(1n+xp, z) == True{} : Bool}, un.ft(h1))
192    case 1n+xp 1n+yp 0n:
193      Empty.absurd({Nat.is_lt(1n+xp, 0n) == True{} : Bool}, un.ft(h2))
194    case 1n+xp 1n+yp 1n+zp:
195      un.le_lt_trans(xp, yp, zp, h1, h2)

Uses (6)

Used by (3)