def wn.add_lt_mono

bend-osdev-word64@0.1.1.0 · proof_value.bend:183

import bend-osdev-word64@0.1.1.0/proof_value.bend as ProofValue
import Base
import bend-osdev-u32@0.1.0.0/LAWS_order.bend as UO

183# a < b and c < d: a + c < b + d
184def wn.add_lt_mono(+a: Nat, +b: Nat, +c: Nat, +d: Nat, h1: {Nat.is_lt(a, b) == True{} : Bool}, h2: {Nat.is_lt(c, d) == True{} : Bool}) -> {Nat.is_lt(Nat.add(a, c), Nat.add(b, d)) == True{} : Bool}:
185  +s1 = Equal.trans(Bool, Nat.is_lt(Nat.add(a, c), Nat.add(b, c)), Nat.is_lt(a, b), True{}, wn.lt_add_r(a, b, c), h1)
186  +s2 = Equal.trans(Bool, Nat.is_le(Nat.add(b, c), Nat.add(b, d)), Nat.is_le(c, d), True{}, wn.le_add_l(b, c, d), wn.lt_le(c, d, h2))
187  UO.nat_lt_le_trans(Nat.add(a, c), Nat.add(b, c), Nat.add(b, d), s1, s2)

Uses (10)

Used by (1)