def le_lt_trans
stelliferous@0.0.2.0 · proofs/nat_order.bend:281
import stelliferous@0.0.2.0/proofs/nat_order.bend as NatOrder
import Base
import stelliferous@0.0.2.0/proofs/word_encoding.bend as WordEncoding
281def le_lt_trans(+a: Nat,+b: Nat,+c: Nat,ab: {Nat.is_le(a,b) == True{} : Bool},bc: {Nat.is_lt(b,c) == True{} : Bool}) -> {Nat.is_lt(a,
282 c) == True{} : Bool}:
283 match a b c:
284 case 0n 0n 0n:
285 Empty.absurd({Nat.is_lt(0n,0n) == True{} : Bool},WordEncoding.false_true(bc))
286 case 0n 1n+b 0n:
287 Empty.absurd({Nat.is_lt(0n,0n) == True{} : Bool},WordEncoding.false_true(bc))
288 case 0n b 1n+c:
289 {==}
290 case 1n+a 0n c:
291 Empty.absurd({Nat.is_lt(1n+a,c) == True{} : Bool},WordEncoding.false_true(ab))
292 case 1n+a 1n+b 0n:
293 Empty.absurd({Nat.is_lt(1n+a,0n) == True{} : Bool},WordEncoding.false_true(bc))
294 case 1n+a 1n+b 1n+c:
295 le_lt_trans(a,b,c,ab,bc)