def le_trans.k

minebender-game@1.0.0.0 · proof_gen.bend:836

import minebender-game@1.0.0.0/proof_gen.bend as ProofGen
import Base
import minebender-game@1.0.0.0/proof_base.bend as P

836def le_trans.k(+a: Nat, +b: Nat, +c: Nat, r1: P.LeW(a, b), r2: P.LeW(b, c)) -> {Nat.is_le(a, c) == True{} : Bool}:
837  match r1:
838    case (+k1, e1):
839      match r2:
840        case (+k2, e2):
841          %Equal.sym(Nat, c, Nat.add(b, k2), e2) : {Nat.is_le(a, _) == True{} : Bool}
842          %Equal.sym(Nat, b, Nat.add(a, k1), e1) : {Nat.is_le(a, Nat.add(_, k2)) == True{} : Bool}
843          %Equal.sym(Nat, Nat.add(Nat.add(a, k1), k2), Nat.add(a, Nat.add(k1, k2)), P.add_assoc(a, k1, k2)) :
844            {Nat.is_le(a, _) == True{} : Bool}
845          P.le_of_add(a, Nat.add(k1, k2))

Uses (9)

Used by (1)