Write Nat/Unit/Empty/Id Eliminators Through NbE and Bidir Elaboration
This commit is contained in:
@@ -46,6 +46,32 @@ def fstDepPair : Raw := .fst depPairAnn
|
||||
|
||||
def sndDepPair : Raw := .snd depPairAnn
|
||||
|
||||
def natTwo : Raw :=
|
||||
.succ (.succ .zero)
|
||||
|
||||
def natFoldId : Raw :=
|
||||
.ann
|
||||
(.natElim "n" .nat .zero "k" "ih" (.succ (.var "ih")) natTwo)
|
||||
.nat
|
||||
|
||||
def unitToNat : Raw :=
|
||||
.ann
|
||||
(.unitElim "u" .nat natTwo .triv)
|
||||
.nat
|
||||
|
||||
def absurdNat : Raw :=
|
||||
.ann
|
||||
(.lam "e" (.emptyElim "x" .nat (.var "e")))
|
||||
(.pi "e" .empty .nat)
|
||||
|
||||
def reflZero : Raw :=
|
||||
.ann .refl (.id .nat .zero .zero)
|
||||
|
||||
def idElimNat : Raw :=
|
||||
.ann
|
||||
(.idElim "y" "p" .nat .zero .zero reflZero)
|
||||
.nat
|
||||
|
||||
def omegaTy : Raw :=
|
||||
.pi "A" (.univ 0) (.var "A")
|
||||
|
||||
@@ -67,6 +93,11 @@ def letUniverse : Raw :=
|
||||
(.letE "A" (.univ 1) (.pi "_" (.univ 0) (.univ 0)) (.var "A"))
|
||||
(.univ 1)
|
||||
|
||||
def badSucc : Raw := .succ (.univ 0)
|
||||
|
||||
def badRefl : Raw :=
|
||||
.ann .refl (.id .nat .zero (.succ .zero))
|
||||
|
||||
def univ0 : Raw := .univ 0
|
||||
|
||||
end BidirTT.Examples
|
||||
|
||||
Reference in New Issue
Block a user