Chuangjie Xu, 2012 \begin{code} module System-T where open import Mini-library infixr 3 _↣_ data Ty : Set where ② : Ty Ⓝ : Ty _↣_ : Ty → Ty → Ty infixl 3 _·_ data Tm : Ty → Set₁ where ⊤ : Tm ② ⊥ : Tm ② If : {A : Ty} → Tm (A ↣ A ↣ ② ↣ A) Zero : Tm Ⓝ Succ : Tm (Ⓝ ↣ Ⓝ) Rec : {A : Ty} → Tm ((A ↣ A) ↣ A ↣ Ⓝ ↣ A) K : {A B : Ty} → Tm (A ↣ B ↣ A) S : {A B C : Ty} → Tm ((A ↣ B ↣ C) ↣ (A ↣ B) ↣ A ↣ C) _·_ : {A B : Ty} → Tm (A ↣ B) → Tm A → Tm B \end{code}