namespace latin:/❚
fixmeta ur:?LF❚
theory Subtyping =
  include ?Types❙
  include ?Logic❙
  subtype : tp ⟶ tp ⟶ prop❘# 1 ⪽ 2 prec 30❙
  
  structure subtype_preorder : ?Preorder =
    carrier = tp❙
    rel = [A,B] ⊦ A⪽B❙
  ❚
❚
theory SubtypeInjections =
  include ?TypedTerms❙
  include ?Subtyping❙
  include ?TypedEquality❙
  
  inject : {A,B} ⊦ A ⪽ B ⟶ tm A ⟶ tm B❘# 4 ↑ 3 prec 50❙
  
  inject_refl : {A,x: tm A} ⊦ x ↑ subtype_preorder/refl ≐ x❙
  inject_trans : {A,B,C,x: tm A,P:⊦A⪽B, Q:⊦B⪽C} ⊦ x↑(P subtype_preorder/trans Q) ≐ (x↑P)↑Q❙
❚