misc
{-# OPTIONS --cubical #-} module agda.intrinsical where open import Agda.Primitive open import Cubical.Foundations.Prelude open import Cubical.Data.List
data Ty : Type where bool : Ty _β_ : Ty β Ty β Ty variable S T : Ty Ctx = List Ty _,,_ : Ctx β Ty β Ctx Ξ ,, T = T β· Ξ infix 10 _,,_ variable Ξ : Ctx
Intrinsically-scoped de Brujin indices
data _β_ : Ctx β Ty β Type where zero : Ξ ,, T β T suc : Ξ β T β Ξ ,, S β T infix 5 _β_ variable x : Ξ β T
Intrinsically-typed terms
data _β’_ : Ctx β Ty β Type where true false : Ξ β’ bool var : Ξ β T β Ξ β’ T lam_ : Ξ ,, S β’ T β Ξ β’ S β T _Β·_ : Ξ β’ S β T β Ξ β’ S β Ξ β’ T if_then_else_ : Ξ β’ bool β Ξ β’ T β Ξ β’ T β Ξ β’ T infix 9 _β’_