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)