20 lines
497 B
Text
20 lines
497 B
Text
import data.sigma
|
|
open function
|
|
|
|
namespace Lob
|
|
|
|
inductive TypeExpr : Type₁ :=
|
|
| Arrow : TypeExpr → TypeExpr → TypeExpr
|
|
| QuotedTermExpr : TypeExpr → TypeExpr
|
|
|
|
open TypeExpr
|
|
|
|
inductive TermExpr : TypeExpr → Type :=
|
|
| Lob : ∀ { LT : TypeExpr }, TermExpr (Arrow (QuotedTermExpr LT) LT) → TermExpr LT
|
|
|
|
open TermExpr
|
|
|
|
definition denoteTermExpr : Π {typeExpr : TypeExpr}, TermExpr typeExpr → Type₁
|
|
| _ (@Lob typeExpr1 termExpr1) := (denoteTermExpr termExpr1) (Lob termExpr1)
|
|
|
|
end Lob
|