Add definitional transport and congruence combinators derived from Id so equality programming isnt all raw idElim

This commit is contained in:
2026-04-19 18:06:54 +00:00
parent 03eedd855d
commit 114747bb3d
3 changed files with 50 additions and 0 deletions
+8
View File
@@ -62,6 +62,14 @@ def cases : List TestCase := [
.okTyNorm (.id .nat .zero .zero) .refl,
"idElim computes on refl", Examples.idElimNat,
.okTyNorm .nat .zero,
"transport combinator typechecks", Examples.transportNat,
.okTy (.pi .nat (.pi .nat (.pi (.id .nat (.var 1) (.var 0)) (.pi .nat .nat)))),
"transport computes on refl", Examples.transportNatRefl,
.okTyNorm .nat (.succ (.succ .zero)),
"congruence combinator typechecks", Examples.congSucc,
.okTy (.pi .nat (.pi .nat (.pi (.id .nat (.var 1) (.var 0)) (.id .nat (.succ (.var 2)) (.succ (.var 1)))))),
"congruence computes on refl", Examples.congSuccRefl,
.okTyNorm (.id .nat (.succ .zero) (.succ .zero)) .refl,
"fst infers the first projection", Examples.fstDepPair,
.okTy (.univ 2),
"snd infers the dependent second projection", Examples.sndDepPair,