40 lines
918 B
Lean4
40 lines
918 B
Lean4
import BidirTT.Syntax
|
|
|
|
namespace BidirTT
|
|
|
|
mutual
|
|
inductive Val where
|
|
| var : Nat → Val
|
|
| app : Val → Val → Val
|
|
| fst : Val → Val
|
|
| snd : Val → Val
|
|
| lam : Closure → Val
|
|
| pi : Val → Closure → Val
|
|
| sig : Val → Closure → Val
|
|
| pair : Val → Val → Val
|
|
| nat : Val
|
|
| zero : Val
|
|
| succ : Val → Val
|
|
| natElim : Val → Val → Val → Val → Val
|
|
| unit : Val
|
|
| triv : Val
|
|
| unitElim : Val → Val → Val → Val
|
|
| empty : Val
|
|
| emptyElim : Val → Val → Val
|
|
| id : Val → Val → Val → Val
|
|
| refl : Val
|
|
| idElim : Val → Val → Val → Val → Val
|
|
| univ : Nat → Val
|
|
|
|
inductive Closure where
|
|
| mk : List Val → Tm → Closure
|
|
end
|
|
|
|
abbrev Env := List Val
|
|
abbrev Lvl := Nat
|
|
|
|
instance : Inhabited Val := ⟨.univ 0⟩
|
|
instance : Inhabited Closure := ⟨.mk [] (.univ 0)⟩
|
|
|
|
end BidirTT
|