Write Nat/Unit/Empty/Id Eliminators Through NbE and Bidir Elaboration

This commit is contained in:
2026-04-19 13:55:05 +00:00
parent a154e2b98c
commit 85be37b1d6
8 changed files with 374 additions and 2 deletions
+16
View File
@@ -12,6 +12,22 @@ mutual
| .pair t u => s!"({prettyTm t}, {prettyTm u})"
| .fst t => s!"({prettyTm t}.1)"
| .snd t => s!"({prettyTm t}.2)"
| .nat => "Nat"
| .zero => "zero"
| .succ t => s!"(succ {prettyTm t})"
| .natElim m z s n =>
s!"(natElim {prettyTm m} {prettyTm z} {prettyTm s} {prettyTm n})"
| .unit => "Unit"
| .triv => "tt"
| .unitElim m t u =>
s!"(unitElim {prettyTm m} {prettyTm t} {prettyTm u})"
| .empty => "Empty"
| .emptyElim m e =>
s!"(emptyElim {prettyTm m} {prettyTm e})"
| .id a t u => s!"(Id {prettyTm a} {prettyTm t} {prettyTm u})"
| .refl => "refl"
| .idElim m r y p =>
s!"(idElim {prettyTm m} {prettyTm r} {prettyTm y} {prettyTm p})"
| .univ i => s!"U{i}"
| .letE a t u => s!"(let : {prettyTm a} := {prettyTm t}; {prettyTm u})"
end