2026-04-19 15:50:59 +00:00
|
|
|
import BidirTT.Level
|
|
|
|
|
|
2026-04-19 04:17:45 +00:00
|
|
|
namespace BidirTT
|
|
|
|
|
|
|
|
|
|
abbrev Name := String
|
|
|
|
|
|
|
|
|
|
inductive Raw where
|
|
|
|
|
| var : Name → Raw
|
|
|
|
|
| lam : Name → Raw → Raw
|
|
|
|
|
| app : Raw → Raw → Raw
|
|
|
|
|
| pi : Name → Raw → Raw → Raw
|
|
|
|
|
| sig : Name → Raw → Raw → Raw
|
|
|
|
|
| pair : Raw → Raw → Raw
|
|
|
|
|
| fst : Raw → Raw
|
|
|
|
|
| snd : Raw → Raw
|
2026-04-19 13:55:05 +00:00
|
|
|
| nat : Raw
|
|
|
|
|
| zero : Raw
|
|
|
|
|
| succ : Raw → Raw
|
|
|
|
|
| natElim : Name → Raw → Raw → Name → Name → Raw → Raw → Raw
|
|
|
|
|
| unit : Raw
|
|
|
|
|
| triv : Raw
|
|
|
|
|
| unitElim : Name → Raw → Raw → Raw → Raw
|
|
|
|
|
| empty : Raw
|
|
|
|
|
| emptyElim : Name → Raw → Raw → Raw
|
|
|
|
|
| id : Raw → Raw → Raw → Raw
|
|
|
|
|
| refl : Raw
|
|
|
|
|
| idElim : Name → Name → Raw → Raw → Raw → Raw → Raw
|
2026-04-19 15:50:59 +00:00
|
|
|
| univ : Level → Raw
|
2026-04-19 04:17:45 +00:00
|
|
|
| letE : Name → Raw → Raw → Raw → Raw
|
|
|
|
|
| ann : Raw → Raw → Raw
|
|
|
|
|
deriving Repr, Inhabited, BEq, DecidableEq
|
|
|
|
|
|
|
|
|
|
inductive Tm where
|
|
|
|
|
| var : Nat → Tm
|
|
|
|
|
| lam : Tm → Tm
|
|
|
|
|
| app : Tm → Tm → Tm
|
|
|
|
|
| pi : Tm → Tm → Tm
|
|
|
|
|
| sig : Tm → Tm → Tm
|
|
|
|
|
| pair : Tm → Tm → Tm
|
|
|
|
|
| fst : Tm → Tm
|
|
|
|
|
| snd : Tm → Tm
|
2026-04-19 13:55:05 +00:00
|
|
|
| nat : Tm
|
|
|
|
|
| zero : Tm
|
|
|
|
|
| succ : Tm → Tm
|
|
|
|
|
| natElim : Tm → Tm → Tm → Tm → Tm
|
|
|
|
|
| unit : Tm
|
|
|
|
|
| triv : Tm
|
|
|
|
|
| unitElim : Tm → Tm → Tm → Tm
|
|
|
|
|
| empty : Tm
|
|
|
|
|
| emptyElim : Tm → Tm → Tm
|
|
|
|
|
| id : Tm → Tm → Tm → Tm
|
|
|
|
|
| refl : Tm
|
|
|
|
|
| idElim : Tm → Tm → Tm → Tm → Tm
|
2026-04-19 15:50:59 +00:00
|
|
|
| univ : Level → Tm
|
2026-04-19 04:17:45 +00:00
|
|
|
| letE : Tm → Tm → Tm → Tm
|
|
|
|
|
deriving Repr, Inhabited, BEq, DecidableEq
|
|
|
|
|
|
|
|
|
|
end BidirTT
|