Chuangjie Xu, 2012
\begin{code}
module Set-interpretation-of-T where
open import Mini-library
open import System-T
set : Ty → Set
set ② = ₂
set Ⓝ = ℕ
set (A ↣ B) = (set A) → (set B)
⟦_⟧ : {A : Ty} → Tm A → set A
⟦ ⊤ ⟧ = ₁
⟦ ⊥ ⟧ = ₀
⟦ If ⟧ = if
⟦ Zero ⟧ = 0
⟦ Succ ⟧ = succ
⟦ Rec ⟧ = rec
⟦ K ⟧ = λ x y → x
⟦ S ⟧ = λ x y z → x z (y z)
⟦ t · u ⟧ = ⟦ t ⟧ ⟦ u ⟧
T-definable : {A : Ty} → (x : set A) → Set₁
T-definable {A} x = Σ \(t : Tm A) → ⟦ t ⟧ ≡ x
\end{code}