module A201605.AltArtemov.Try3.Ty where
open import A201605.AltArtemov.Try3.Tm public
data Ty : ℕ → Set where
⊥ : Ty 0
_⊃_ : ∀ {k k′} → Ty k → Ty k′ → Ty 0
_∧_ : ∀ {k k′} → Ty k → Ty k′ → Ty 0
_∶_ : ∀ {g k} → Tm g k → Ty k → Ty (suc k)
infixr 5 _⊃_
infixr 15 _∶_
lev : ∀ {k} → Ty k → ℕ
lev {k} A = k
tm : ∀ {k} → Ty (suc k) → ∃ (λ g → Tm g k)
tm (t ∶ A) = (_ , t)