Idris2/tests/idris2/perf2202/Church.idr
Jason Dagit 1d7207fe05
[ fix #2202 ] Use SnocList in parser state to avoid quadratic slowdown (#2203)
Co-authored-by: Guillaume Allais <guillaume.allais@ens-lyon.org>
2022-01-11 16:06:19 +00:00

3196 lines
106 KiB
Idris

Ty : Type
Ty = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty : Ty
empty = \ _, empty, _ => empty
arr : Ty -> Ty -> Ty
arr = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con : Type
Con = (Con : Type)
->(nil : Con)
->(snoc : Con -> Ty -> Con)
-> Con
nil : Con
nil = \ con, nil, snoc => nil
snoc : Con -> Ty -> Con
snoc = \ g, a, con, nil, snoc => snoc (g con nil snoc) a
Var : Con -> Ty -> Type
Var = \ g, a =>
(Var : Con -> Ty -> Type)
-> (vz : (g : _)-> (a : _) -> Var (snoc g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var g a -> Var (snoc g b) a)
-> Var g a
vz : {g : _}-> {a : _} -> Var (snoc g a) a
vz = \ var, vz, vs => vz _ _
vs : {g : _} -> {B : _} -> {a : _} -> Var g a -> Var (snoc g B) a
vs = \ x, var, vz, vs => vs _ _ _ (x var vz vs)
Tm : Con -> Ty -> Type
Tm = \ g, a =>
(Tm : Con -> Ty -> Type)
-> (var : (g : _) -> (a : _) -> Var g a -> Tm g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm (snoc g a) B -> Tm g (arr a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm g (arr a B) -> Tm g a -> Tm g B)
-> Tm g a
var : {g : _} -> {a : _} -> Var g a -> Tm g a
var = \ x, tm, var, lam, app => var _ _ x
lam : {g : _} -> {a : _} -> {B : _} -> Tm (snoc g a) B -> Tm g (arr a B)
lam = \ t, tm, var, lam, app => lam _ _ _ (t tm var lam app)
app : {g:_}->{a:_}->{B:_} -> Tm g (arr a B) -> Tm g a -> Tm g B
app = \ t, u, tm, var, lam, app => app _ _ _ (t tm var lam app) (u tm var lam app)
v0 : {g:_}->{a:_} -> Tm (snoc g a) a
v0 = var vz
v1 : {g:_}->{a:_}-> {B:_}-> Tm (snoc (snoc g a) B) a
v1 = var (vs vz)
v2 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm (snoc (snoc (snoc g a) B) C) a
v2 = var (vs (vs vz))
v3 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm (snoc (snoc (snoc (snoc g a) B) C) D) a
v3 = var (vs (vs (vs vz)))
v4 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm (snoc (snoc (snoc (snoc (snoc g a) B) C) D) E) a
v4 = var (vs (vs (vs (vs vz))))
test : {g:_}-> {a:_} -> Tm g (arr (arr a a) (arr a a))
test = lam (lam (app v1 (app v1 (app v1 (app v1 (app v1 (app v1 v0)))))))
Ty1 : Type
Ty1 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty1 : Ty1
empty1 = \ _, empty, _ => empty
arr1 : Ty1 -> Ty1 -> Ty1
arr1 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con1 : Type
Con1 = (Con1 : Type)
->(nil : Con1)
->(snoc : Con1 -> Ty1 -> Con1)
-> Con1
nil1 : Con1
nil1 = \ con, nil1, snoc => nil1
snoc1 : Con1 -> Ty1 -> Con1
snoc1 = \ g, a, con, nil1, snoc1 => snoc1 (g con nil1 snoc1) a
Var1 : Con1 -> Ty1 -> Type
Var1 = \ g, a =>
(Var1 : Con1 -> Ty1 -> Type)
-> (vz : (g : _)-> (a : _) -> Var1 (snoc1 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var1 g a -> Var1 (snoc1 g b) a)
-> Var1 g a
vz1 : {g : _}-> {a : _} -> Var1 (snoc1 g a) a
vz1 = \ var, vz1, vs => vz1 _ _
vs1 : {g : _} -> {B : _} -> {a : _} -> Var1 g a -> Var1 (snoc1 g B) a
vs1 = \ x, var, vz1, vs1 => vs1 _ _ _ (x var vz1 vs1)
Tm1 : Con1 -> Ty1 -> Type
Tm1 = \ g, a =>
(Tm1 : Con1 -> Ty1 -> Type)
-> (var : (g : _) -> (a : _) -> Var1 g a -> Tm1 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm1 (snoc1 g a) B -> Tm1 g (arr1 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm1 g (arr1 a B) -> Tm1 g a -> Tm1 g B)
-> Tm1 g a
var1 : {g : _} -> {a : _} -> Var1 g a -> Tm1 g a
var1 = \ x, tm, var1, lam, app => var1 _ _ x
lam1 : {g : _} -> {a : _} -> {B : _} -> Tm1 (snoc1 g a) B -> Tm1 g (arr1 a B)
lam1 = \ t, tm, var1, lam1, app => lam1 _ _ _ (t tm var1 lam1 app)
app1 : {g:_}->{a:_}->{B:_} -> Tm1 g (arr1 a B) -> Tm1 g a -> Tm1 g B
app1 = \ t, u, tm, var1, lam1, app1 => app1 _ _ _ (t tm var1 lam1 app1) (u tm var1 lam1 app1)
v01 : {g:_}->{a:_} -> Tm1 (snoc1 g a) a
v01 = var1 vz1
v11 : {g:_}->{a:_}-> {B:_}-> Tm1 (snoc1 (snoc1 g a) B) a
v11 = var1 (vs1 vz1)
v21 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm1 (snoc1 (snoc1 (snoc1 g a) B) C) a
v21 = var1 (vs1 (vs1 vz1))
v31 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm1 (snoc1 (snoc1 (snoc1 (snoc1 g a) B) C) D) a
v31 = var1 (vs1 (vs1 (vs1 vz1)))
v41 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm1 (snoc1 (snoc1 (snoc1 (snoc1 (snoc1 g a) B) C) D) E) a
v41 = var1 (vs1 (vs1 (vs1 (vs1 vz1))))
test1 : {g:_}-> {a:_} -> Tm1 g (arr1 (arr1 a a) (arr1 a a))
test1 = lam1 (lam1 (app1 v11 (app1 v11 (app1 v11 (app1 v11 (app1 v11 (app1 v11 v01)))))))
Ty2 : Type
Ty2 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty2 : Ty2
empty2 = \ _, empty, _ => empty
arr2 : Ty2 -> Ty2 -> Ty2
arr2 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con2 : Type
Con2 = (Con2 : Type)
->(nil : Con2)
->(snoc : Con2 -> Ty2 -> Con2)
-> Con2
nil2 : Con2
nil2 = \ con, nil2, snoc => nil2
snoc2 : Con2 -> Ty2 -> Con2
snoc2 = \ g, a, con, nil2, snoc2 => snoc2 (g con nil2 snoc2) a
Var2 : Con2 -> Ty2 -> Type
Var2 = \ g, a =>
(Var2 : Con2 -> Ty2 -> Type)
-> (vz : (g : _)-> (a : _) -> Var2 (snoc2 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var2 g a -> Var2 (snoc2 g b) a)
-> Var2 g a
vz2 : {g : _}-> {a : _} -> Var2 (snoc2 g a) a
vz2 = \ var, vz2, vs => vz2 _ _
vs2 : {g : _} -> {B : _} -> {a : _} -> Var2 g a -> Var2 (snoc2 g B) a
vs2 = \ x, var, vz2, vs2 => vs2 _ _ _ (x var vz2 vs2)
Tm2 : Con2 -> Ty2 -> Type
Tm2 = \ g, a =>
(Tm2 : Con2 -> Ty2 -> Type)
-> (var : (g : _) -> (a : _) -> Var2 g a -> Tm2 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm2 (snoc2 g a) B -> Tm2 g (arr2 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm2 g (arr2 a B) -> Tm2 g a -> Tm2 g B)
-> Tm2 g a
var2 : {g : _} -> {a : _} -> Var2 g a -> Tm2 g a
var2 = \ x, tm, var2, lam, app => var2 _ _ x
lam2 : {g : _} -> {a : _} -> {B : _} -> Tm2 (snoc2 g a) B -> Tm2 g (arr2 a B)
lam2 = \ t, tm, var2, lam2, app => lam2 _ _ _ (t tm var2 lam2 app)
app2 : {g:_}->{a:_}->{B:_} -> Tm2 g (arr2 a B) -> Tm2 g a -> Tm2 g B
app2 = \ t, u, tm, var2, lam2, app2 => app2 _ _ _ (t tm var2 lam2 app2) (u tm var2 lam2 app2)
v02 : {g:_}->{a:_} -> Tm2 (snoc2 g a) a
v02 = var2 vz2
v12 : {g:_}->{a:_}-> {B:_}-> Tm2 (snoc2 (snoc2 g a) B) a
v12 = var2 (vs2 vz2)
v22 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm2 (snoc2 (snoc2 (snoc2 g a) B) C) a
v22 = var2 (vs2 (vs2 vz2))
v32 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm2 (snoc2 (snoc2 (snoc2 (snoc2 g a) B) C) D) a
v32 = var2 (vs2 (vs2 (vs2 vz2)))
v42 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm2 (snoc2 (snoc2 (snoc2 (snoc2 (snoc2 g a) B) C) D) E) a
v42 = var2 (vs2 (vs2 (vs2 (vs2 vz2))))
test2 : {g:_}-> {a:_} -> Tm2 g (arr2 (arr2 a a) (arr2 a a))
test2 = lam2 (lam2 (app2 v12 (app2 v12 (app2 v12 (app2 v12 (app2 v12 (app2 v12 v02)))))))
Ty3 : Type
Ty3 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty3 : Ty3
empty3 = \ _, empty, _ => empty
arr3 : Ty3 -> Ty3 -> Ty3
arr3 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con3 : Type
Con3 = (Con3 : Type)
->(nil : Con3)
->(snoc : Con3 -> Ty3 -> Con3)
-> Con3
nil3 : Con3
nil3 = \ con, nil3, snoc => nil3
snoc3 : Con3 -> Ty3 -> Con3
snoc3 = \ g, a, con, nil3, snoc3 => snoc3 (g con nil3 snoc3) a
Var3 : Con3 -> Ty3 -> Type
Var3 = \ g, a =>
(Var3 : Con3 -> Ty3 -> Type)
-> (vz : (g : _)-> (a : _) -> Var3 (snoc3 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var3 g a -> Var3 (snoc3 g b) a)
-> Var3 g a
vz3 : {g : _}-> {a : _} -> Var3 (snoc3 g a) a
vz3 = \ var, vz3, vs => vz3 _ _
vs3 : {g : _} -> {B : _} -> {a : _} -> Var3 g a -> Var3 (snoc3 g B) a
vs3 = \ x, var, vz3, vs3 => vs3 _ _ _ (x var vz3 vs3)
Tm3 : Con3 -> Ty3 -> Type
Tm3 = \ g, a =>
(Tm3 : Con3 -> Ty3 -> Type)
-> (var : (g : _) -> (a : _) -> Var3 g a -> Tm3 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm3 (snoc3 g a) B -> Tm3 g (arr3 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm3 g (arr3 a B) -> Tm3 g a -> Tm3 g B)
-> Tm3 g a
var3 : {g : _} -> {a : _} -> Var3 g a -> Tm3 g a
var3 = \ x, tm, var3, lam, app => var3 _ _ x
lam3 : {g : _} -> {a : _} -> {B : _} -> Tm3 (snoc3 g a) B -> Tm3 g (arr3 a B)
lam3 = \ t, tm, var3, lam3, app => lam3 _ _ _ (t tm var3 lam3 app)
app3 : {g:_}->{a:_}->{B:_} -> Tm3 g (arr3 a B) -> Tm3 g a -> Tm3 g B
app3 = \ t, u, tm, var3, lam3, app3 => app3 _ _ _ (t tm var3 lam3 app3) (u tm var3 lam3 app3)
v03 : {g:_}->{a:_} -> Tm3 (snoc3 g a) a
v03 = var3 vz3
v13 : {g:_}->{a:_}-> {B:_}-> Tm3 (snoc3 (snoc3 g a) B) a
v13 = var3 (vs3 vz3)
v23 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm3 (snoc3 (snoc3 (snoc3 g a) B) C) a
v23 = var3 (vs3 (vs3 vz3))
v33 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm3 (snoc3 (snoc3 (snoc3 (snoc3 g a) B) C) D) a
v33 = var3 (vs3 (vs3 (vs3 vz3)))
v43 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm3 (snoc3 (snoc3 (snoc3 (snoc3 (snoc3 g a) B) C) D) E) a
v43 = var3 (vs3 (vs3 (vs3 (vs3 vz3))))
test3 : {g:_}-> {a:_} -> Tm3 g (arr3 (arr3 a a) (arr3 a a))
test3 = lam3 (lam3 (app3 v13 (app3 v13 (app3 v13 (app3 v13 (app3 v13 (app3 v13 v03)))))))
Ty4 : Type
Ty4 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty4 : Ty4
empty4 = \ _, empty, _ => empty
arr4 : Ty4 -> Ty4 -> Ty4
arr4 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con4 : Type
Con4 = (Con4 : Type)
->(nil : Con4)
->(snoc : Con4 -> Ty4 -> Con4)
-> Con4
nil4 : Con4
nil4 = \ con, nil4, snoc => nil4
snoc4 : Con4 -> Ty4 -> Con4
snoc4 = \ g, a, con, nil4, snoc4 => snoc4 (g con nil4 snoc4) a
Var4 : Con4 -> Ty4 -> Type
Var4 = \ g, a =>
(Var4 : Con4 -> Ty4 -> Type)
-> (vz : (g : _)-> (a : _) -> Var4 (snoc4 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var4 g a -> Var4 (snoc4 g b) a)
-> Var4 g a
vz4 : {g : _}-> {a : _} -> Var4 (snoc4 g a) a
vz4 = \ var, vz4, vs => vz4 _ _
vs4 : {g : _} -> {B : _} -> {a : _} -> Var4 g a -> Var4 (snoc4 g B) a
vs4 = \ x, var, vz4, vs4 => vs4 _ _ _ (x var vz4 vs4)
Tm4 : Con4 -> Ty4 -> Type
Tm4 = \ g, a =>
(Tm4 : Con4 -> Ty4 -> Type)
-> (var : (g : _) -> (a : _) -> Var4 g a -> Tm4 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm4 (snoc4 g a) B -> Tm4 g (arr4 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm4 g (arr4 a B) -> Tm4 g a -> Tm4 g B)
-> Tm4 g a
var4 : {g : _} -> {a : _} -> Var4 g a -> Tm4 g a
var4 = \ x, tm, var4, lam, app => var4 _ _ x
lam4 : {g : _} -> {a : _} -> {B : _} -> Tm4 (snoc4 g a) B -> Tm4 g (arr4 a B)
lam4 = \ t, tm, var4, lam4, app => lam4 _ _ _ (t tm var4 lam4 app)
app4 : {g:_}->{a:_}->{B:_} -> Tm4 g (arr4 a B) -> Tm4 g a -> Tm4 g B
app4 = \ t, u, tm, var4, lam4, app4 => app4 _ _ _ (t tm var4 lam4 app4) (u tm var4 lam4 app4)
v04 : {g:_}->{a:_} -> Tm4 (snoc4 g a) a
v04 = var4 vz4
v14 : {g:_}->{a:_}-> {B:_}-> Tm4 (snoc4 (snoc4 g a) B) a
v14 = var4 (vs4 vz4)
v24 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm4 (snoc4 (snoc4 (snoc4 g a) B) C) a
v24 = var4 (vs4 (vs4 vz4))
v34 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm4 (snoc4 (snoc4 (snoc4 (snoc4 g a) B) C) D) a
v34 = var4 (vs4 (vs4 (vs4 vz4)))
v44 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm4 (snoc4 (snoc4 (snoc4 (snoc4 (snoc4 g a) B) C) D) E) a
v44 = var4 (vs4 (vs4 (vs4 (vs4 vz4))))
test4 : {g:_}-> {a:_} -> Tm4 g (arr4 (arr4 a a) (arr4 a a))
test4 = lam4 (lam4 (app4 v14 (app4 v14 (app4 v14 (app4 v14 (app4 v14 (app4 v14 v04)))))))
Ty5 : Type
Ty5 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty5 : Ty5
empty5 = \ _, empty, _ => empty
arr5 : Ty5 -> Ty5 -> Ty5
arr5 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con5 : Type
Con5 = (Con5 : Type)
->(nil : Con5)
->(snoc : Con5 -> Ty5 -> Con5)
-> Con5
nil5 : Con5
nil5 = \ con, nil5, snoc => nil5
snoc5 : Con5 -> Ty5 -> Con5
snoc5 = \ g, a, con, nil5, snoc5 => snoc5 (g con nil5 snoc5) a
Var5 : Con5 -> Ty5 -> Type
Var5 = \ g, a =>
(Var5 : Con5 -> Ty5 -> Type)
-> (vz : (g : _)-> (a : _) -> Var5 (snoc5 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var5 g a -> Var5 (snoc5 g b) a)
-> Var5 g a
vz5 : {g : _}-> {a : _} -> Var5 (snoc5 g a) a
vz5 = \ var, vz5, vs => vz5 _ _
vs5 : {g : _} -> {B : _} -> {a : _} -> Var5 g a -> Var5 (snoc5 g B) a
vs5 = \ x, var, vz5, vs5 => vs5 _ _ _ (x var vz5 vs5)
Tm5 : Con5 -> Ty5 -> Type
Tm5 = \ g, a =>
(Tm5 : Con5 -> Ty5 -> Type)
-> (var : (g : _) -> (a : _) -> Var5 g a -> Tm5 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm5 (snoc5 g a) B -> Tm5 g (arr5 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm5 g (arr5 a B) -> Tm5 g a -> Tm5 g B)
-> Tm5 g a
var5 : {g : _} -> {a : _} -> Var5 g a -> Tm5 g a
var5 = \ x, tm, var5, lam, app => var5 _ _ x
lam5 : {g : _} -> {a : _} -> {B : _} -> Tm5 (snoc5 g a) B -> Tm5 g (arr5 a B)
lam5 = \ t, tm, var5, lam5, app => lam5 _ _ _ (t tm var5 lam5 app)
app5 : {g:_}->{a:_}->{B:_} -> Tm5 g (arr5 a B) -> Tm5 g a -> Tm5 g B
app5 = \ t, u, tm, var5, lam5, app5 => app5 _ _ _ (t tm var5 lam5 app5) (u tm var5 lam5 app5)
v05 : {g:_}->{a:_} -> Tm5 (snoc5 g a) a
v05 = var5 vz5
v15 : {g:_}->{a:_}-> {B:_}-> Tm5 (snoc5 (snoc5 g a) B) a
v15 = var5 (vs5 vz5)
v25 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm5 (snoc5 (snoc5 (snoc5 g a) B) C) a
v25 = var5 (vs5 (vs5 vz5))
v35 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm5 (snoc5 (snoc5 (snoc5 (snoc5 g a) B) C) D) a
v35 = var5 (vs5 (vs5 (vs5 vz5)))
v45 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm5 (snoc5 (snoc5 (snoc5 (snoc5 (snoc5 g a) B) C) D) E) a
v45 = var5 (vs5 (vs5 (vs5 (vs5 vz5))))
test5 : {g:_}-> {a:_} -> Tm5 g (arr5 (arr5 a a) (arr5 a a))
test5 = lam5 (lam5 (app5 v15 (app5 v15 (app5 v15 (app5 v15 (app5 v15 (app5 v15 v05)))))))
Ty6 : Type
Ty6 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty6 : Ty6
empty6 = \ _, empty, _ => empty
arr6 : Ty6 -> Ty6 -> Ty6
arr6 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con6 : Type
Con6 = (Con6 : Type)
->(nil : Con6)
->(snoc : Con6 -> Ty6 -> Con6)
-> Con6
nil6 : Con6
nil6 = \ con, nil6, snoc => nil6
snoc6 : Con6 -> Ty6 -> Con6
snoc6 = \ g, a, con, nil6, snoc6 => snoc6 (g con nil6 snoc6) a
Var6 : Con6 -> Ty6 -> Type
Var6 = \ g, a =>
(Var6 : Con6 -> Ty6 -> Type)
-> (vz : (g : _)-> (a : _) -> Var6 (snoc6 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var6 g a -> Var6 (snoc6 g b) a)
-> Var6 g a
vz6 : {g : _}-> {a : _} -> Var6 (snoc6 g a) a
vz6 = \ var, vz6, vs => vz6 _ _
vs6 : {g : _} -> {B : _} -> {a : _} -> Var6 g a -> Var6 (snoc6 g B) a
vs6 = \ x, var, vz6, vs6 => vs6 _ _ _ (x var vz6 vs6)
Tm6 : Con6 -> Ty6 -> Type
Tm6 = \ g, a =>
(Tm6 : Con6 -> Ty6 -> Type)
-> (var : (g : _) -> (a : _) -> Var6 g a -> Tm6 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm6 (snoc6 g a) B -> Tm6 g (arr6 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm6 g (arr6 a B) -> Tm6 g a -> Tm6 g B)
-> Tm6 g a
var6 : {g : _} -> {a : _} -> Var6 g a -> Tm6 g a
var6 = \ x, tm, var6, lam, app => var6 _ _ x
lam6 : {g : _} -> {a : _} -> {B : _} -> Tm6 (snoc6 g a) B -> Tm6 g (arr6 a B)
lam6 = \ t, tm, var6, lam6, app => lam6 _ _ _ (t tm var6 lam6 app)
app6 : {g:_}->{a:_}->{B:_} -> Tm6 g (arr6 a B) -> Tm6 g a -> Tm6 g B
app6 = \ t, u, tm, var6, lam6, app6 => app6 _ _ _ (t tm var6 lam6 app6) (u tm var6 lam6 app6)
v06 : {g:_}->{a:_} -> Tm6 (snoc6 g a) a
v06 = var6 vz6
v16 : {g:_}->{a:_}-> {B:_}-> Tm6 (snoc6 (snoc6 g a) B) a
v16 = var6 (vs6 vz6)
v26 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm6 (snoc6 (snoc6 (snoc6 g a) B) C) a
v26 = var6 (vs6 (vs6 vz6))
v36 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm6 (snoc6 (snoc6 (snoc6 (snoc6 g a) B) C) D) a
v36 = var6 (vs6 (vs6 (vs6 vz6)))
v46 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm6 (snoc6 (snoc6 (snoc6 (snoc6 (snoc6 g a) B) C) D) E) a
v46 = var6 (vs6 (vs6 (vs6 (vs6 vz6))))
test6 : {g:_}-> {a:_} -> Tm6 g (arr6 (arr6 a a) (arr6 a a))
test6 = lam6 (lam6 (app6 v16 (app6 v16 (app6 v16 (app6 v16 (app6 v16 (app6 v16 v06)))))))
Ty7 : Type
Ty7 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty7 : Ty7
empty7 = \ _, empty, _ => empty
arr7 : Ty7 -> Ty7 -> Ty7
arr7 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con7 : Type
Con7 = (Con7 : Type)
->(nil : Con7)
->(snoc : Con7 -> Ty7 -> Con7)
-> Con7
nil7 : Con7
nil7 = \ con, nil7, snoc => nil7
snoc7 : Con7 -> Ty7 -> Con7
snoc7 = \ g, a, con, nil7, snoc7 => snoc7 (g con nil7 snoc7) a
Var7 : Con7 -> Ty7 -> Type
Var7 = \ g, a =>
(Var7 : Con7 -> Ty7 -> Type)
-> (vz : (g : _)-> (a : _) -> Var7 (snoc7 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var7 g a -> Var7 (snoc7 g b) a)
-> Var7 g a
vz7 : {g : _}-> {a : _} -> Var7 (snoc7 g a) a
vz7 = \ var, vz7, vs => vz7 _ _
vs7 : {g : _} -> {B : _} -> {a : _} -> Var7 g a -> Var7 (snoc7 g B) a
vs7 = \ x, var, vz7, vs7 => vs7 _ _ _ (x var vz7 vs7)
Tm7 : Con7 -> Ty7 -> Type
Tm7 = \ g, a =>
(Tm7 : Con7 -> Ty7 -> Type)
-> (var : (g : _) -> (a : _) -> Var7 g a -> Tm7 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm7 (snoc7 g a) B -> Tm7 g (arr7 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm7 g (arr7 a B) -> Tm7 g a -> Tm7 g B)
-> Tm7 g a
var7 : {g : _} -> {a : _} -> Var7 g a -> Tm7 g a
var7 = \ x, tm, var7, lam, app => var7 _ _ x
lam7 : {g : _} -> {a : _} -> {B : _} -> Tm7 (snoc7 g a) B -> Tm7 g (arr7 a B)
lam7 = \ t, tm, var7, lam7, app => lam7 _ _ _ (t tm var7 lam7 app)
app7 : {g:_}->{a:_}->{B:_} -> Tm7 g (arr7 a B) -> Tm7 g a -> Tm7 g B
app7 = \ t, u, tm, var7, lam7, app7 => app7 _ _ _ (t tm var7 lam7 app7) (u tm var7 lam7 app7)
v07 : {g:_}->{a:_} -> Tm7 (snoc7 g a) a
v07 = var7 vz7
v17 : {g:_}->{a:_}-> {B:_}-> Tm7 (snoc7 (snoc7 g a) B) a
v17 = var7 (vs7 vz7)
v27 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm7 (snoc7 (snoc7 (snoc7 g a) B) C) a
v27 = var7 (vs7 (vs7 vz7))
v37 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm7 (snoc7 (snoc7 (snoc7 (snoc7 g a) B) C) D) a
v37 = var7 (vs7 (vs7 (vs7 vz7)))
v47 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm7 (snoc7 (snoc7 (snoc7 (snoc7 (snoc7 g a) B) C) D) E) a
v47 = var7 (vs7 (vs7 (vs7 (vs7 vz7))))
test7 : {g:_}-> {a:_} -> Tm7 g (arr7 (arr7 a a) (arr7 a a))
test7 = lam7 (lam7 (app7 v17 (app7 v17 (app7 v17 (app7 v17 (app7 v17 (app7 v17 v07)))))))
Ty8 : Type
Ty8 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty8 : Ty8
empty8 = \ _, empty, _ => empty
arr8 : Ty8 -> Ty8 -> Ty8
arr8 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con8 : Type
Con8 = (Con8 : Type)
->(nil : Con8)
->(snoc : Con8 -> Ty8 -> Con8)
-> Con8
nil8 : Con8
nil8 = \ con, nil8, snoc => nil8
snoc8 : Con8 -> Ty8 -> Con8
snoc8 = \ g, a, con, nil8, snoc8 => snoc8 (g con nil8 snoc8) a
Var8 : Con8 -> Ty8 -> Type
Var8 = \ g, a =>
(Var8 : Con8 -> Ty8 -> Type)
-> (vz : (g : _)-> (a : _) -> Var8 (snoc8 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var8 g a -> Var8 (snoc8 g b) a)
-> Var8 g a
vz8 : {g : _}-> {a : _} -> Var8 (snoc8 g a) a
vz8 = \ var, vz8, vs => vz8 _ _
vs8 : {g : _} -> {B : _} -> {a : _} -> Var8 g a -> Var8 (snoc8 g B) a
vs8 = \ x, var, vz8, vs8 => vs8 _ _ _ (x var vz8 vs8)
Tm8 : Con8 -> Ty8 -> Type
Tm8 = \ g, a =>
(Tm8 : Con8 -> Ty8 -> Type)
-> (var : (g : _) -> (a : _) -> Var8 g a -> Tm8 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm8 (snoc8 g a) B -> Tm8 g (arr8 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm8 g (arr8 a B) -> Tm8 g a -> Tm8 g B)
-> Tm8 g a
var8 : {g : _} -> {a : _} -> Var8 g a -> Tm8 g a
var8 = \ x, tm, var8, lam, app => var8 _ _ x
lam8 : {g : _} -> {a : _} -> {B : _} -> Tm8 (snoc8 g a) B -> Tm8 g (arr8 a B)
lam8 = \ t, tm, var8, lam8, app => lam8 _ _ _ (t tm var8 lam8 app)
app8 : {g:_}->{a:_}->{B:_} -> Tm8 g (arr8 a B) -> Tm8 g a -> Tm8 g B
app8 = \ t, u, tm, var8, lam8, app8 => app8 _ _ _ (t tm var8 lam8 app8) (u tm var8 lam8 app8)
v08 : {g:_}->{a:_} -> Tm8 (snoc8 g a) a
v08 = var8 vz8
v18 : {g:_}->{a:_}-> {B:_}-> Tm8 (snoc8 (snoc8 g a) B) a
v18 = var8 (vs8 vz8)
v28 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm8 (snoc8 (snoc8 (snoc8 g a) B) C) a
v28 = var8 (vs8 (vs8 vz8))
v38 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm8 (snoc8 (snoc8 (snoc8 (snoc8 g a) B) C) D) a
v38 = var8 (vs8 (vs8 (vs8 vz8)))
v48 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm8 (snoc8 (snoc8 (snoc8 (snoc8 (snoc8 g a) B) C) D) E) a
v48 = var8 (vs8 (vs8 (vs8 (vs8 vz8))))
test8 : {g:_}-> {a:_} -> Tm8 g (arr8 (arr8 a a) (arr8 a a))
test8 = lam8 (lam8 (app8 v18 (app8 v18 (app8 v18 (app8 v18 (app8 v18 (app8 v18 v08)))))))
Ty9 : Type
Ty9 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty9 : Ty9
empty9 = \ _, empty, _ => empty
arr9 : Ty9 -> Ty9 -> Ty9
arr9 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con9 : Type
Con9 = (Con9 : Type)
->(nil : Con9)
->(snoc : Con9 -> Ty9 -> Con9)
-> Con9
nil9 : Con9
nil9 = \ con, nil9, snoc => nil9
snoc9 : Con9 -> Ty9 -> Con9
snoc9 = \ g, a, con, nil9, snoc9 => snoc9 (g con nil9 snoc9) a
Var9 : Con9 -> Ty9 -> Type
Var9 = \ g, a =>
(Var9 : Con9 -> Ty9 -> Type)
-> (vz : (g : _)-> (a : _) -> Var9 (snoc9 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var9 g a -> Var9 (snoc9 g b) a)
-> Var9 g a
vz9 : {g : _}-> {a : _} -> Var9 (snoc9 g a) a
vz9 = \ var, vz9, vs => vz9 _ _
vs9 : {g : _} -> {B : _} -> {a : _} -> Var9 g a -> Var9 (snoc9 g B) a
vs9 = \ x, var, vz9, vs9 => vs9 _ _ _ (x var vz9 vs9)
Tm9 : Con9 -> Ty9 -> Type
Tm9 = \ g, a =>
(Tm9 : Con9 -> Ty9 -> Type)
-> (var : (g : _) -> (a : _) -> Var9 g a -> Tm9 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm9 (snoc9 g a) B -> Tm9 g (arr9 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm9 g (arr9 a B) -> Tm9 g a -> Tm9 g B)
-> Tm9 g a
var9 : {g : _} -> {a : _} -> Var9 g a -> Tm9 g a
var9 = \ x, tm, var9, lam, app => var9 _ _ x
lam9 : {g : _} -> {a : _} -> {B : _} -> Tm9 (snoc9 g a) B -> Tm9 g (arr9 a B)
lam9 = \ t, tm, var9, lam9, app => lam9 _ _ _ (t tm var9 lam9 app)
app9 : {g:_}->{a:_}->{B:_} -> Tm9 g (arr9 a B) -> Tm9 g a -> Tm9 g B
app9 = \ t, u, tm, var9, lam9, app9 => app9 _ _ _ (t tm var9 lam9 app9) (u tm var9 lam9 app9)
v09 : {g:_}->{a:_} -> Tm9 (snoc9 g a) a
v09 = var9 vz9
v19 : {g:_}->{a:_}-> {B:_}-> Tm9 (snoc9 (snoc9 g a) B) a
v19 = var9 (vs9 vz9)
v29 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm9 (snoc9 (snoc9 (snoc9 g a) B) C) a
v29 = var9 (vs9 (vs9 vz9))
v39 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm9 (snoc9 (snoc9 (snoc9 (snoc9 g a) B) C) D) a
v39 = var9 (vs9 (vs9 (vs9 vz9)))
v49 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm9 (snoc9 (snoc9 (snoc9 (snoc9 (snoc9 g a) B) C) D) E) a
v49 = var9 (vs9 (vs9 (vs9 (vs9 vz9))))
test9 : {g:_}-> {a:_} -> Tm9 g (arr9 (arr9 a a) (arr9 a a))
test9 = lam9 (lam9 (app9 v19 (app9 v19 (app9 v19 (app9 v19 (app9 v19 (app9 v19 v09)))))))
Ty10 : Type
Ty10 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty10 : Ty10
empty10 = \ _, empty, _ => empty
arr10 : Ty10 -> Ty10 -> Ty10
arr10 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con10 : Type
Con10 = (Con10 : Type)
->(nil : Con10)
->(snoc : Con10 -> Ty10 -> Con10)
-> Con10
nil10 : Con10
nil10 = \ con, nil10, snoc => nil10
snoc10 : Con10 -> Ty10 -> Con10
snoc10 = \ g, a, con, nil10, snoc10 => snoc10 (g con nil10 snoc10) a
Var10 : Con10 -> Ty10 -> Type
Var10 = \ g, a =>
(Var10 : Con10 -> Ty10 -> Type)
-> (vz : (g : _)-> (a : _) -> Var10 (snoc10 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var10 g a -> Var10 (snoc10 g b) a)
-> Var10 g a
vz10 : {g : _}-> {a : _} -> Var10 (snoc10 g a) a
vz10 = \ var, vz10, vs => vz10 _ _
vs10 : {g : _} -> {B : _} -> {a : _} -> Var10 g a -> Var10 (snoc10 g B) a
vs10 = \ x, var, vz10, vs10 => vs10 _ _ _ (x var vz10 vs10)
Tm10 : Con10 -> Ty10 -> Type
Tm10 = \ g, a =>
(Tm10 : Con10 -> Ty10 -> Type)
-> (var : (g : _) -> (a : _) -> Var10 g a -> Tm10 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm10 (snoc10 g a) B -> Tm10 g (arr10 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm10 g (arr10 a B) -> Tm10 g a -> Tm10 g B)
-> Tm10 g a
var10 : {g : _} -> {a : _} -> Var10 g a -> Tm10 g a
var10 = \ x, tm, var10, lam, app => var10 _ _ x
lam10 : {g : _} -> {a : _} -> {B : _} -> Tm10 (snoc10 g a) B -> Tm10 g (arr10 a B)
lam10 = \ t, tm, var10, lam10, app => lam10 _ _ _ (t tm var10 lam10 app)
app10 : {g:_}->{a:_}->{B:_} -> Tm10 g (arr10 a B) -> Tm10 g a -> Tm10 g B
app10 = \ t, u, tm, var10, lam10, app10 => app10 _ _ _ (t tm var10 lam10 app10) (u tm var10 lam10 app10)
v010 : {g:_}->{a:_} -> Tm10 (snoc10 g a) a
v010 = var10 vz10
v110 : {g:_}->{a:_}-> {B:_}-> Tm10 (snoc10 (snoc10 g a) B) a
v110 = var10 (vs10 vz10)
v210 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm10 (snoc10 (snoc10 (snoc10 g a) B) C) a
v210 = var10 (vs10 (vs10 vz10))
v310 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm10 (snoc10 (snoc10 (snoc10 (snoc10 g a) B) C) D) a
v310 = var10 (vs10 (vs10 (vs10 vz10)))
v410 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm10 (snoc10 (snoc10 (snoc10 (snoc10 (snoc10 g a) B) C) D) E) a
v410 = var10 (vs10 (vs10 (vs10 (vs10 vz10))))
test10 : {g:_}-> {a:_} -> Tm10 g (arr10 (arr10 a a) (arr10 a a))
test10 = lam10 (lam10 (app10 v110 (app10 v110 (app10 v110 (app10 v110 (app10 v110 (app10 v110 v010)))))))
Ty11 : Type
Ty11 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty11 : Ty11
empty11 = \ _, empty, _ => empty
arr11 : Ty11 -> Ty11 -> Ty11
arr11 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con11 : Type
Con11 = (Con11 : Type)
->(nil : Con11)
->(snoc : Con11 -> Ty11 -> Con11)
-> Con11
nil11 : Con11
nil11 = \ con, nil11, snoc => nil11
snoc11 : Con11 -> Ty11 -> Con11
snoc11 = \ g, a, con, nil11, snoc11 => snoc11 (g con nil11 snoc11) a
Var11 : Con11 -> Ty11 -> Type
Var11 = \ g, a =>
(Var11 : Con11 -> Ty11 -> Type)
-> (vz : (g : _)-> (a : _) -> Var11 (snoc11 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var11 g a -> Var11 (snoc11 g b) a)
-> Var11 g a
vz11 : {g : _}-> {a : _} -> Var11 (snoc11 g a) a
vz11 = \ var, vz11, vs => vz11 _ _
vs11 : {g : _} -> {B : _} -> {a : _} -> Var11 g a -> Var11 (snoc11 g B) a
vs11 = \ x, var, vz11, vs11 => vs11 _ _ _ (x var vz11 vs11)
Tm11 : Con11 -> Ty11 -> Type
Tm11 = \ g, a =>
(Tm11 : Con11 -> Ty11 -> Type)
-> (var : (g : _) -> (a : _) -> Var11 g a -> Tm11 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm11 (snoc11 g a) B -> Tm11 g (arr11 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm11 g (arr11 a B) -> Tm11 g a -> Tm11 g B)
-> Tm11 g a
var11 : {g : _} -> {a : _} -> Var11 g a -> Tm11 g a
var11 = \ x, tm, var11, lam, app => var11 _ _ x
lam11 : {g : _} -> {a : _} -> {B : _} -> Tm11 (snoc11 g a) B -> Tm11 g (arr11 a B)
lam11 = \ t, tm, var11, lam11, app => lam11 _ _ _ (t tm var11 lam11 app)
app11 : {g:_}->{a:_}->{B:_} -> Tm11 g (arr11 a B) -> Tm11 g a -> Tm11 g B
app11 = \ t, u, tm, var11, lam11, app11 => app11 _ _ _ (t tm var11 lam11 app11) (u tm var11 lam11 app11)
v011 : {g:_}->{a:_} -> Tm11 (snoc11 g a) a
v011 = var11 vz11
v111 : {g:_}->{a:_}-> {B:_}-> Tm11 (snoc11 (snoc11 g a) B) a
v111 = var11 (vs11 vz11)
v211 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm11 (snoc11 (snoc11 (snoc11 g a) B) C) a
v211 = var11 (vs11 (vs11 vz11))
v311 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm11 (snoc11 (snoc11 (snoc11 (snoc11 g a) B) C) D) a
v311 = var11 (vs11 (vs11 (vs11 vz11)))
v411 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm11 (snoc11 (snoc11 (snoc11 (snoc11 (snoc11 g a) B) C) D) E) a
v411 = var11 (vs11 (vs11 (vs11 (vs11 vz11))))
test11 : {g:_}-> {a:_} -> Tm11 g (arr11 (arr11 a a) (arr11 a a))
test11 = lam11 (lam11 (app11 v111 (app11 v111 (app11 v111 (app11 v111 (app11 v111 (app11 v111 v011)))))))
Ty12 : Type
Ty12 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty12 : Ty12
empty12 = \ _, empty, _ => empty
arr12 : Ty12 -> Ty12 -> Ty12
arr12 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con12 : Type
Con12 = (Con12 : Type)
->(nil : Con12)
->(snoc : Con12 -> Ty12 -> Con12)
-> Con12
nil12 : Con12
nil12 = \ con, nil12, snoc => nil12
snoc12 : Con12 -> Ty12 -> Con12
snoc12 = \ g, a, con, nil12, snoc12 => snoc12 (g con nil12 snoc12) a
Var12 : Con12 -> Ty12 -> Type
Var12 = \ g, a =>
(Var12 : Con12 -> Ty12 -> Type)
-> (vz : (g : _)-> (a : _) -> Var12 (snoc12 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var12 g a -> Var12 (snoc12 g b) a)
-> Var12 g a
vz12 : {g : _}-> {a : _} -> Var12 (snoc12 g a) a
vz12 = \ var, vz12, vs => vz12 _ _
vs12 : {g : _} -> {B : _} -> {a : _} -> Var12 g a -> Var12 (snoc12 g B) a
vs12 = \ x, var, vz12, vs12 => vs12 _ _ _ (x var vz12 vs12)
Tm12 : Con12 -> Ty12 -> Type
Tm12 = \ g, a =>
(Tm12 : Con12 -> Ty12 -> Type)
-> (var : (g : _) -> (a : _) -> Var12 g a -> Tm12 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm12 (snoc12 g a) B -> Tm12 g (arr12 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm12 g (arr12 a B) -> Tm12 g a -> Tm12 g B)
-> Tm12 g a
var12 : {g : _} -> {a : _} -> Var12 g a -> Tm12 g a
var12 = \ x, tm, var12, lam, app => var12 _ _ x
lam12 : {g : _} -> {a : _} -> {B : _} -> Tm12 (snoc12 g a) B -> Tm12 g (arr12 a B)
lam12 = \ t, tm, var12, lam12, app => lam12 _ _ _ (t tm var12 lam12 app)
app12 : {g:_}->{a:_}->{B:_} -> Tm12 g (arr12 a B) -> Tm12 g a -> Tm12 g B
app12 = \ t, u, tm, var12, lam12, app12 => app12 _ _ _ (t tm var12 lam12 app12) (u tm var12 lam12 app12)
v012 : {g:_}->{a:_} -> Tm12 (snoc12 g a) a
v012 = var12 vz12
v112 : {g:_}->{a:_}-> {B:_}-> Tm12 (snoc12 (snoc12 g a) B) a
v112 = var12 (vs12 vz12)
v212 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm12 (snoc12 (snoc12 (snoc12 g a) B) C) a
v212 = var12 (vs12 (vs12 vz12))
v312 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm12 (snoc12 (snoc12 (snoc12 (snoc12 g a) B) C) D) a
v312 = var12 (vs12 (vs12 (vs12 vz12)))
v412 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm12 (snoc12 (snoc12 (snoc12 (snoc12 (snoc12 g a) B) C) D) E) a
v412 = var12 (vs12 (vs12 (vs12 (vs12 vz12))))
test12 : {g:_}-> {a:_} -> Tm12 g (arr12 (arr12 a a) (arr12 a a))
test12 = lam12 (lam12 (app12 v112 (app12 v112 (app12 v112 (app12 v112 (app12 v112 (app12 v112 v012)))))))
Ty13 : Type
Ty13 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty13 : Ty13
empty13 = \ _, empty, _ => empty
arr13 : Ty13 -> Ty13 -> Ty13
arr13 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con13 : Type
Con13 = (Con13 : Type)
->(nil : Con13)
->(snoc : Con13 -> Ty13 -> Con13)
-> Con13
nil13 : Con13
nil13 = \ con, nil13, snoc => nil13
snoc13 : Con13 -> Ty13 -> Con13
snoc13 = \ g, a, con, nil13, snoc13 => snoc13 (g con nil13 snoc13) a
Var13 : Con13 -> Ty13 -> Type
Var13 = \ g, a =>
(Var13 : Con13 -> Ty13 -> Type)
-> (vz : (g : _)-> (a : _) -> Var13 (snoc13 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var13 g a -> Var13 (snoc13 g b) a)
-> Var13 g a
vz13 : {g : _}-> {a : _} -> Var13 (snoc13 g a) a
vz13 = \ var, vz13, vs => vz13 _ _
vs13 : {g : _} -> {B : _} -> {a : _} -> Var13 g a -> Var13 (snoc13 g B) a
vs13 = \ x, var, vz13, vs13 => vs13 _ _ _ (x var vz13 vs13)
Tm13 : Con13 -> Ty13 -> Type
Tm13 = \ g, a =>
(Tm13 : Con13 -> Ty13 -> Type)
-> (var : (g : _) -> (a : _) -> Var13 g a -> Tm13 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm13 (snoc13 g a) B -> Tm13 g (arr13 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm13 g (arr13 a B) -> Tm13 g a -> Tm13 g B)
-> Tm13 g a
var13 : {g : _} -> {a : _} -> Var13 g a -> Tm13 g a
var13 = \ x, tm, var13, lam, app => var13 _ _ x
lam13 : {g : _} -> {a : _} -> {B : _} -> Tm13 (snoc13 g a) B -> Tm13 g (arr13 a B)
lam13 = \ t, tm, var13, lam13, app => lam13 _ _ _ (t tm var13 lam13 app)
app13 : {g:_}->{a:_}->{B:_} -> Tm13 g (arr13 a B) -> Tm13 g a -> Tm13 g B
app13 = \ t, u, tm, var13, lam13, app13 => app13 _ _ _ (t tm var13 lam13 app13) (u tm var13 lam13 app13)
v013 : {g:_}->{a:_} -> Tm13 (snoc13 g a) a
v013 = var13 vz13
v113 : {g:_}->{a:_}-> {B:_}-> Tm13 (snoc13 (snoc13 g a) B) a
v113 = var13 (vs13 vz13)
v213 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm13 (snoc13 (snoc13 (snoc13 g a) B) C) a
v213 = var13 (vs13 (vs13 vz13))
v313 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm13 (snoc13 (snoc13 (snoc13 (snoc13 g a) B) C) D) a
v313 = var13 (vs13 (vs13 (vs13 vz13)))
v413 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm13 (snoc13 (snoc13 (snoc13 (snoc13 (snoc13 g a) B) C) D) E) a
v413 = var13 (vs13 (vs13 (vs13 (vs13 vz13))))
test13 : {g:_}-> {a:_} -> Tm13 g (arr13 (arr13 a a) (arr13 a a))
test13 = lam13 (lam13 (app13 v113 (app13 v113 (app13 v113 (app13 v113 (app13 v113 (app13 v113 v013)))))))
Ty14 : Type
Ty14 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty14 : Ty14
empty14 = \ _, empty, _ => empty
arr14 : Ty14 -> Ty14 -> Ty14
arr14 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con14 : Type
Con14 = (Con14 : Type)
->(nil : Con14)
->(snoc : Con14 -> Ty14 -> Con14)
-> Con14
nil14 : Con14
nil14 = \ con, nil14, snoc => nil14
snoc14 : Con14 -> Ty14 -> Con14
snoc14 = \ g, a, con, nil14, snoc14 => snoc14 (g con nil14 snoc14) a
Var14 : Con14 -> Ty14 -> Type
Var14 = \ g, a =>
(Var14 : Con14 -> Ty14 -> Type)
-> (vz : (g : _)-> (a : _) -> Var14 (snoc14 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var14 g a -> Var14 (snoc14 g b) a)
-> Var14 g a
vz14 : {g : _}-> {a : _} -> Var14 (snoc14 g a) a
vz14 = \ var, vz14, vs => vz14 _ _
vs14 : {g : _} -> {B : _} -> {a : _} -> Var14 g a -> Var14 (snoc14 g B) a
vs14 = \ x, var, vz14, vs14 => vs14 _ _ _ (x var vz14 vs14)
Tm14 : Con14 -> Ty14 -> Type
Tm14 = \ g, a =>
(Tm14 : Con14 -> Ty14 -> Type)
-> (var : (g : _) -> (a : _) -> Var14 g a -> Tm14 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm14 (snoc14 g a) B -> Tm14 g (arr14 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm14 g (arr14 a B) -> Tm14 g a -> Tm14 g B)
-> Tm14 g a
var14 : {g : _} -> {a : _} -> Var14 g a -> Tm14 g a
var14 = \ x, tm, var14, lam, app => var14 _ _ x
lam14 : {g : _} -> {a : _} -> {B : _} -> Tm14 (snoc14 g a) B -> Tm14 g (arr14 a B)
lam14 = \ t, tm, var14, lam14, app => lam14 _ _ _ (t tm var14 lam14 app)
app14 : {g:_}->{a:_}->{B:_} -> Tm14 g (arr14 a B) -> Tm14 g a -> Tm14 g B
app14 = \ t, u, tm, var14, lam14, app14 => app14 _ _ _ (t tm var14 lam14 app14) (u tm var14 lam14 app14)
v014 : {g:_}->{a:_} -> Tm14 (snoc14 g a) a
v014 = var14 vz14
v114 : {g:_}->{a:_}-> {B:_}-> Tm14 (snoc14 (snoc14 g a) B) a
v114 = var14 (vs14 vz14)
v214 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm14 (snoc14 (snoc14 (snoc14 g a) B) C) a
v214 = var14 (vs14 (vs14 vz14))
v314 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm14 (snoc14 (snoc14 (snoc14 (snoc14 g a) B) C) D) a
v314 = var14 (vs14 (vs14 (vs14 vz14)))
v414 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm14 (snoc14 (snoc14 (snoc14 (snoc14 (snoc14 g a) B) C) D) E) a
v414 = var14 (vs14 (vs14 (vs14 (vs14 vz14))))
test14 : {g:_}-> {a:_} -> Tm14 g (arr14 (arr14 a a) (arr14 a a))
test14 = lam14 (lam14 (app14 v114 (app14 v114 (app14 v114 (app14 v114 (app14 v114 (app14 v114 v014)))))))
Ty15 : Type
Ty15 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty15 : Ty15
empty15 = \ _, empty, _ => empty
arr15 : Ty15 -> Ty15 -> Ty15
arr15 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con15 : Type
Con15 = (Con15 : Type)
->(nil : Con15)
->(snoc : Con15 -> Ty15 -> Con15)
-> Con15
nil15 : Con15
nil15 = \ con, nil15, snoc => nil15
snoc15 : Con15 -> Ty15 -> Con15
snoc15 = \ g, a, con, nil15, snoc15 => snoc15 (g con nil15 snoc15) a
Var15 : Con15 -> Ty15 -> Type
Var15 = \ g, a =>
(Var15 : Con15 -> Ty15 -> Type)
-> (vz : (g : _)-> (a : _) -> Var15 (snoc15 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var15 g a -> Var15 (snoc15 g b) a)
-> Var15 g a
vz15 : {g : _}-> {a : _} -> Var15 (snoc15 g a) a
vz15 = \ var, vz15, vs => vz15 _ _
vs15 : {g : _} -> {B : _} -> {a : _} -> Var15 g a -> Var15 (snoc15 g B) a
vs15 = \ x, var, vz15, vs15 => vs15 _ _ _ (x var vz15 vs15)
Tm15 : Con15 -> Ty15 -> Type
Tm15 = \ g, a =>
(Tm15 : Con15 -> Ty15 -> Type)
-> (var : (g : _) -> (a : _) -> Var15 g a -> Tm15 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm15 (snoc15 g a) B -> Tm15 g (arr15 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm15 g (arr15 a B) -> Tm15 g a -> Tm15 g B)
-> Tm15 g a
var15 : {g : _} -> {a : _} -> Var15 g a -> Tm15 g a
var15 = \ x, tm, var15, lam, app => var15 _ _ x
lam15 : {g : _} -> {a : _} -> {B : _} -> Tm15 (snoc15 g a) B -> Tm15 g (arr15 a B)
lam15 = \ t, tm, var15, lam15, app => lam15 _ _ _ (t tm var15 lam15 app)
app15 : {g:_}->{a:_}->{B:_} -> Tm15 g (arr15 a B) -> Tm15 g a -> Tm15 g B
app15 = \ t, u, tm, var15, lam15, app15 => app15 _ _ _ (t tm var15 lam15 app15) (u tm var15 lam15 app15)
v015 : {g:_}->{a:_} -> Tm15 (snoc15 g a) a
v015 = var15 vz15
v115 : {g:_}->{a:_}-> {B:_}-> Tm15 (snoc15 (snoc15 g a) B) a
v115 = var15 (vs15 vz15)
v215 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm15 (snoc15 (snoc15 (snoc15 g a) B) C) a
v215 = var15 (vs15 (vs15 vz15))
v315 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm15 (snoc15 (snoc15 (snoc15 (snoc15 g a) B) C) D) a
v315 = var15 (vs15 (vs15 (vs15 vz15)))
v415 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm15 (snoc15 (snoc15 (snoc15 (snoc15 (snoc15 g a) B) C) D) E) a
v415 = var15 (vs15 (vs15 (vs15 (vs15 vz15))))
test15 : {g:_}-> {a:_} -> Tm15 g (arr15 (arr15 a a) (arr15 a a))
test15 = lam15 (lam15 (app15 v115 (app15 v115 (app15 v115 (app15 v115 (app15 v115 (app15 v115 v015)))))))
Ty16 : Type
Ty16 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty16 : Ty16
empty16 = \ _, empty, _ => empty
arr16 : Ty16 -> Ty16 -> Ty16
arr16 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con16 : Type
Con16 = (Con16 : Type)
->(nil : Con16)
->(snoc : Con16 -> Ty16 -> Con16)
-> Con16
nil16 : Con16
nil16 = \ con, nil16, snoc => nil16
snoc16 : Con16 -> Ty16 -> Con16
snoc16 = \ g, a, con, nil16, snoc16 => snoc16 (g con nil16 snoc16) a
Var16 : Con16 -> Ty16 -> Type
Var16 = \ g, a =>
(Var16 : Con16 -> Ty16 -> Type)
-> (vz : (g : _)-> (a : _) -> Var16 (snoc16 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var16 g a -> Var16 (snoc16 g b) a)
-> Var16 g a
vz16 : {g : _}-> {a : _} -> Var16 (snoc16 g a) a
vz16 = \ var, vz16, vs => vz16 _ _
vs16 : {g : _} -> {B : _} -> {a : _} -> Var16 g a -> Var16 (snoc16 g B) a
vs16 = \ x, var, vz16, vs16 => vs16 _ _ _ (x var vz16 vs16)
Tm16 : Con16 -> Ty16 -> Type
Tm16 = \ g, a =>
(Tm16 : Con16 -> Ty16 -> Type)
-> (var : (g : _) -> (a : _) -> Var16 g a -> Tm16 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm16 (snoc16 g a) B -> Tm16 g (arr16 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm16 g (arr16 a B) -> Tm16 g a -> Tm16 g B)
-> Tm16 g a
var16 : {g : _} -> {a : _} -> Var16 g a -> Tm16 g a
var16 = \ x, tm, var16, lam, app => var16 _ _ x
lam16 : {g : _} -> {a : _} -> {B : _} -> Tm16 (snoc16 g a) B -> Tm16 g (arr16 a B)
lam16 = \ t, tm, var16, lam16, app => lam16 _ _ _ (t tm var16 lam16 app)
app16 : {g:_}->{a:_}->{B:_} -> Tm16 g (arr16 a B) -> Tm16 g a -> Tm16 g B
app16 = \ t, u, tm, var16, lam16, app16 => app16 _ _ _ (t tm var16 lam16 app16) (u tm var16 lam16 app16)
v016 : {g:_}->{a:_} -> Tm16 (snoc16 g a) a
v016 = var16 vz16
v116 : {g:_}->{a:_}-> {B:_}-> Tm16 (snoc16 (snoc16 g a) B) a
v116 = var16 (vs16 vz16)
v216 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm16 (snoc16 (snoc16 (snoc16 g a) B) C) a
v216 = var16 (vs16 (vs16 vz16))
v316 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm16 (snoc16 (snoc16 (snoc16 (snoc16 g a) B) C) D) a
v316 = var16 (vs16 (vs16 (vs16 vz16)))
v416 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm16 (snoc16 (snoc16 (snoc16 (snoc16 (snoc16 g a) B) C) D) E) a
v416 = var16 (vs16 (vs16 (vs16 (vs16 vz16))))
test16 : {g:_}-> {a:_} -> Tm16 g (arr16 (arr16 a a) (arr16 a a))
test16 = lam16 (lam16 (app16 v116 (app16 v116 (app16 v116 (app16 v116 (app16 v116 (app16 v116 v016)))))))
Ty17 : Type
Ty17 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty17 : Ty17
empty17 = \ _, empty, _ => empty
arr17 : Ty17 -> Ty17 -> Ty17
arr17 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con17 : Type
Con17 = (Con17 : Type)
->(nil : Con17)
->(snoc : Con17 -> Ty17 -> Con17)
-> Con17
nil17 : Con17
nil17 = \ con, nil17, snoc => nil17
snoc17 : Con17 -> Ty17 -> Con17
snoc17 = \ g, a, con, nil17, snoc17 => snoc17 (g con nil17 snoc17) a
Var17 : Con17 -> Ty17 -> Type
Var17 = \ g, a =>
(Var17 : Con17 -> Ty17 -> Type)
-> (vz : (g : _)-> (a : _) -> Var17 (snoc17 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var17 g a -> Var17 (snoc17 g b) a)
-> Var17 g a
vz17 : {g : _}-> {a : _} -> Var17 (snoc17 g a) a
vz17 = \ var, vz17, vs => vz17 _ _
vs17 : {g : _} -> {B : _} -> {a : _} -> Var17 g a -> Var17 (snoc17 g B) a
vs17 = \ x, var, vz17, vs17 => vs17 _ _ _ (x var vz17 vs17)
Tm17 : Con17 -> Ty17 -> Type
Tm17 = \ g, a =>
(Tm17 : Con17 -> Ty17 -> Type)
-> (var : (g : _) -> (a : _) -> Var17 g a -> Tm17 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm17 (snoc17 g a) B -> Tm17 g (arr17 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm17 g (arr17 a B) -> Tm17 g a -> Tm17 g B)
-> Tm17 g a
var17 : {g : _} -> {a : _} -> Var17 g a -> Tm17 g a
var17 = \ x, tm, var17, lam, app => var17 _ _ x
lam17 : {g : _} -> {a : _} -> {B : _} -> Tm17 (snoc17 g a) B -> Tm17 g (arr17 a B)
lam17 = \ t, tm, var17, lam17, app => lam17 _ _ _ (t tm var17 lam17 app)
app17 : {g:_}->{a:_}->{B:_} -> Tm17 g (arr17 a B) -> Tm17 g a -> Tm17 g B
app17 = \ t, u, tm, var17, lam17, app17 => app17 _ _ _ (t tm var17 lam17 app17) (u tm var17 lam17 app17)
v017 : {g:_}->{a:_} -> Tm17 (snoc17 g a) a
v017 = var17 vz17
v117 : {g:_}->{a:_}-> {B:_}-> Tm17 (snoc17 (snoc17 g a) B) a
v117 = var17 (vs17 vz17)
v217 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm17 (snoc17 (snoc17 (snoc17 g a) B) C) a
v217 = var17 (vs17 (vs17 vz17))
v317 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm17 (snoc17 (snoc17 (snoc17 (snoc17 g a) B) C) D) a
v317 = var17 (vs17 (vs17 (vs17 vz17)))
v417 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm17 (snoc17 (snoc17 (snoc17 (snoc17 (snoc17 g a) B) C) D) E) a
v417 = var17 (vs17 (vs17 (vs17 (vs17 vz17))))
test17 : {g:_}-> {a:_} -> Tm17 g (arr17 (arr17 a a) (arr17 a a))
test17 = lam17 (lam17 (app17 v117 (app17 v117 (app17 v117 (app17 v117 (app17 v117 (app17 v117 v017)))))))
Ty18 : Type
Ty18 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty18 : Ty18
empty18 = \ _, empty, _ => empty
arr18 : Ty18 -> Ty18 -> Ty18
arr18 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con18 : Type
Con18 = (Con18 : Type)
->(nil : Con18)
->(snoc : Con18 -> Ty18 -> Con18)
-> Con18
nil18 : Con18
nil18 = \ con, nil18, snoc => nil18
snoc18 : Con18 -> Ty18 -> Con18
snoc18 = \ g, a, con, nil18, snoc18 => snoc18 (g con nil18 snoc18) a
Var18 : Con18 -> Ty18 -> Type
Var18 = \ g, a =>
(Var18 : Con18 -> Ty18 -> Type)
-> (vz : (g : _)-> (a : _) -> Var18 (snoc18 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var18 g a -> Var18 (snoc18 g b) a)
-> Var18 g a
vz18 : {g : _}-> {a : _} -> Var18 (snoc18 g a) a
vz18 = \ var, vz18, vs => vz18 _ _
vs18 : {g : _} -> {B : _} -> {a : _} -> Var18 g a -> Var18 (snoc18 g B) a
vs18 = \ x, var, vz18, vs18 => vs18 _ _ _ (x var vz18 vs18)
Tm18 : Con18 -> Ty18 -> Type
Tm18 = \ g, a =>
(Tm18 : Con18 -> Ty18 -> Type)
-> (var : (g : _) -> (a : _) -> Var18 g a -> Tm18 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm18 (snoc18 g a) B -> Tm18 g (arr18 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm18 g (arr18 a B) -> Tm18 g a -> Tm18 g B)
-> Tm18 g a
var18 : {g : _} -> {a : _} -> Var18 g a -> Tm18 g a
var18 = \ x, tm, var18, lam, app => var18 _ _ x
lam18 : {g : _} -> {a : _} -> {B : _} -> Tm18 (snoc18 g a) B -> Tm18 g (arr18 a B)
lam18 = \ t, tm, var18, lam18, app => lam18 _ _ _ (t tm var18 lam18 app)
app18 : {g:_}->{a:_}->{B:_} -> Tm18 g (arr18 a B) -> Tm18 g a -> Tm18 g B
app18 = \ t, u, tm, var18, lam18, app18 => app18 _ _ _ (t tm var18 lam18 app18) (u tm var18 lam18 app18)
v018 : {g:_}->{a:_} -> Tm18 (snoc18 g a) a
v018 = var18 vz18
v118 : {g:_}->{a:_}-> {B:_}-> Tm18 (snoc18 (snoc18 g a) B) a
v118 = var18 (vs18 vz18)
v218 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm18 (snoc18 (snoc18 (snoc18 g a) B) C) a
v218 = var18 (vs18 (vs18 vz18))
v318 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm18 (snoc18 (snoc18 (snoc18 (snoc18 g a) B) C) D) a
v318 = var18 (vs18 (vs18 (vs18 vz18)))
v418 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm18 (snoc18 (snoc18 (snoc18 (snoc18 (snoc18 g a) B) C) D) E) a
v418 = var18 (vs18 (vs18 (vs18 (vs18 vz18))))
test18 : {g:_}-> {a:_} -> Tm18 g (arr18 (arr18 a a) (arr18 a a))
test18 = lam18 (lam18 (app18 v118 (app18 v118 (app18 v118 (app18 v118 (app18 v118 (app18 v118 v018)))))))
Ty19 : Type
Ty19 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty19 : Ty19
empty19 = \ _, empty, _ => empty
arr19 : Ty19 -> Ty19 -> Ty19
arr19 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con19 : Type
Con19 = (Con19 : Type)
->(nil : Con19)
->(snoc : Con19 -> Ty19 -> Con19)
-> Con19
nil19 : Con19
nil19 = \ con, nil19, snoc => nil19
snoc19 : Con19 -> Ty19 -> Con19
snoc19 = \ g, a, con, nil19, snoc19 => snoc19 (g con nil19 snoc19) a
Var19 : Con19 -> Ty19 -> Type
Var19 = \ g, a =>
(Var19 : Con19 -> Ty19 -> Type)
-> (vz : (g : _)-> (a : _) -> Var19 (snoc19 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var19 g a -> Var19 (snoc19 g b) a)
-> Var19 g a
vz19 : {g : _}-> {a : _} -> Var19 (snoc19 g a) a
vz19 = \ var, vz19, vs => vz19 _ _
vs19 : {g : _} -> {B : _} -> {a : _} -> Var19 g a -> Var19 (snoc19 g B) a
vs19 = \ x, var, vz19, vs19 => vs19 _ _ _ (x var vz19 vs19)
Tm19 : Con19 -> Ty19 -> Type
Tm19 = \ g, a =>
(Tm19 : Con19 -> Ty19 -> Type)
-> (var : (g : _) -> (a : _) -> Var19 g a -> Tm19 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm19 (snoc19 g a) B -> Tm19 g (arr19 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm19 g (arr19 a B) -> Tm19 g a -> Tm19 g B)
-> Tm19 g a
var19 : {g : _} -> {a : _} -> Var19 g a -> Tm19 g a
var19 = \ x, tm, var19, lam, app => var19 _ _ x
lam19 : {g : _} -> {a : _} -> {B : _} -> Tm19 (snoc19 g a) B -> Tm19 g (arr19 a B)
lam19 = \ t, tm, var19, lam19, app => lam19 _ _ _ (t tm var19 lam19 app)
app19 : {g:_}->{a:_}->{B:_} -> Tm19 g (arr19 a B) -> Tm19 g a -> Tm19 g B
app19 = \ t, u, tm, var19, lam19, app19 => app19 _ _ _ (t tm var19 lam19 app19) (u tm var19 lam19 app19)
v019 : {g:_}->{a:_} -> Tm19 (snoc19 g a) a
v019 = var19 vz19
v119 : {g:_}->{a:_}-> {B:_}-> Tm19 (snoc19 (snoc19 g a) B) a
v119 = var19 (vs19 vz19)
v219 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm19 (snoc19 (snoc19 (snoc19 g a) B) C) a
v219 = var19 (vs19 (vs19 vz19))
v319 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm19 (snoc19 (snoc19 (snoc19 (snoc19 g a) B) C) D) a
v319 = var19 (vs19 (vs19 (vs19 vz19)))
v419 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm19 (snoc19 (snoc19 (snoc19 (snoc19 (snoc19 g a) B) C) D) E) a
v419 = var19 (vs19 (vs19 (vs19 (vs19 vz19))))
test19 : {g:_}-> {a:_} -> Tm19 g (arr19 (arr19 a a) (arr19 a a))
test19 = lam19 (lam19 (app19 v119 (app19 v119 (app19 v119 (app19 v119 (app19 v119 (app19 v119 v019)))))))
Ty20 : Type
Ty20 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty20 : Ty20
empty20 = \ _, empty, _ => empty
arr20 : Ty20 -> Ty20 -> Ty20
arr20 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con20 : Type
Con20 = (Con20 : Type)
->(nil : Con20)
->(snoc : Con20 -> Ty20 -> Con20)
-> Con20
nil20 : Con20
nil20 = \ con, nil20, snoc => nil20
snoc20 : Con20 -> Ty20 -> Con20
snoc20 = \ g, a, con, nil20, snoc20 => snoc20 (g con nil20 snoc20) a
Var20 : Con20 -> Ty20 -> Type
Var20 = \ g, a =>
(Var20 : Con20 -> Ty20 -> Type)
-> (vz : (g : _)-> (a : _) -> Var20 (snoc20 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var20 g a -> Var20 (snoc20 g b) a)
-> Var20 g a
vz20 : {g : _}-> {a : _} -> Var20 (snoc20 g a) a
vz20 = \ var, vz20, vs => vz20 _ _
vs20 : {g : _} -> {B : _} -> {a : _} -> Var20 g a -> Var20 (snoc20 g B) a
vs20 = \ x, var, vz20, vs20 => vs20 _ _ _ (x var vz20 vs20)
Tm20 : Con20 -> Ty20 -> Type
Tm20 = \ g, a =>
(Tm20 : Con20 -> Ty20 -> Type)
-> (var : (g : _) -> (a : _) -> Var20 g a -> Tm20 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm20 (snoc20 g a) B -> Tm20 g (arr20 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm20 g (arr20 a B) -> Tm20 g a -> Tm20 g B)
-> Tm20 g a
var20 : {g : _} -> {a : _} -> Var20 g a -> Tm20 g a
var20 = \ x, tm, var20, lam, app => var20 _ _ x
lam20 : {g : _} -> {a : _} -> {B : _} -> Tm20 (snoc20 g a) B -> Tm20 g (arr20 a B)
lam20 = \ t, tm, var20, lam20, app => lam20 _ _ _ (t tm var20 lam20 app)
app20 : {g:_}->{a:_}->{B:_} -> Tm20 g (arr20 a B) -> Tm20 g a -> Tm20 g B
app20 = \ t, u, tm, var20, lam20, app20 => app20 _ _ _ (t tm var20 lam20 app20) (u tm var20 lam20 app20)
v020 : {g:_}->{a:_} -> Tm20 (snoc20 g a) a
v020 = var20 vz20
v120 : {g:_}->{a:_}-> {B:_}-> Tm20 (snoc20 (snoc20 g a) B) a
v120 = var20 (vs20 vz20)
v220 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm20 (snoc20 (snoc20 (snoc20 g a) B) C) a
v220 = var20 (vs20 (vs20 vz20))
v320 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm20 (snoc20 (snoc20 (snoc20 (snoc20 g a) B) C) D) a
v320 = var20 (vs20 (vs20 (vs20 vz20)))
v420 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm20 (snoc20 (snoc20 (snoc20 (snoc20 (snoc20 g a) B) C) D) E) a
v420 = var20 (vs20 (vs20 (vs20 (vs20 vz20))))
test20 : {g:_}-> {a:_} -> Tm20 g (arr20 (arr20 a a) (arr20 a a))
test20 = lam20 (lam20 (app20 v120 (app20 v120 (app20 v120 (app20 v120 (app20 v120 (app20 v120 v020)))))))
Ty21 : Type
Ty21 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty21 : Ty21
empty21 = \ _, empty, _ => empty
arr21 : Ty21 -> Ty21 -> Ty21
arr21 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con21 : Type
Con21 = (Con21 : Type)
->(nil : Con21)
->(snoc : Con21 -> Ty21 -> Con21)
-> Con21
nil21 : Con21
nil21 = \ con, nil21, snoc => nil21
snoc21 : Con21 -> Ty21 -> Con21
snoc21 = \ g, a, con, nil21, snoc21 => snoc21 (g con nil21 snoc21) a
Var21 : Con21 -> Ty21 -> Type
Var21 = \ g, a =>
(Var21 : Con21 -> Ty21 -> Type)
-> (vz : (g : _)-> (a : _) -> Var21 (snoc21 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var21 g a -> Var21 (snoc21 g b) a)
-> Var21 g a
vz21 : {g : _}-> {a : _} -> Var21 (snoc21 g a) a
vz21 = \ var, vz21, vs => vz21 _ _
vs21 : {g : _} -> {B : _} -> {a : _} -> Var21 g a -> Var21 (snoc21 g B) a
vs21 = \ x, var, vz21, vs21 => vs21 _ _ _ (x var vz21 vs21)
Tm21 : Con21 -> Ty21 -> Type
Tm21 = \ g, a =>
(Tm21 : Con21 -> Ty21 -> Type)
-> (var : (g : _) -> (a : _) -> Var21 g a -> Tm21 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm21 (snoc21 g a) B -> Tm21 g (arr21 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm21 g (arr21 a B) -> Tm21 g a -> Tm21 g B)
-> Tm21 g a
var21 : {g : _} -> {a : _} -> Var21 g a -> Tm21 g a
var21 = \ x, tm, var21, lam, app => var21 _ _ x
lam21 : {g : _} -> {a : _} -> {B : _} -> Tm21 (snoc21 g a) B -> Tm21 g (arr21 a B)
lam21 = \ t, tm, var21, lam21, app => lam21 _ _ _ (t tm var21 lam21 app)
app21 : {g:_}->{a:_}->{B:_} -> Tm21 g (arr21 a B) -> Tm21 g a -> Tm21 g B
app21 = \ t, u, tm, var21, lam21, app21 => app21 _ _ _ (t tm var21 lam21 app21) (u tm var21 lam21 app21)
v021 : {g:_}->{a:_} -> Tm21 (snoc21 g a) a
v021 = var21 vz21
v121 : {g:_}->{a:_}-> {B:_}-> Tm21 (snoc21 (snoc21 g a) B) a
v121 = var21 (vs21 vz21)
v221 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm21 (snoc21 (snoc21 (snoc21 g a) B) C) a
v221 = var21 (vs21 (vs21 vz21))
v321 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm21 (snoc21 (snoc21 (snoc21 (snoc21 g a) B) C) D) a
v321 = var21 (vs21 (vs21 (vs21 vz21)))
v421 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm21 (snoc21 (snoc21 (snoc21 (snoc21 (snoc21 g a) B) C) D) E) a
v421 = var21 (vs21 (vs21 (vs21 (vs21 vz21))))
test21 : {g:_}-> {a:_} -> Tm21 g (arr21 (arr21 a a) (arr21 a a))
test21 = lam21 (lam21 (app21 v121 (app21 v121 (app21 v121 (app21 v121 (app21 v121 (app21 v121 v021)))))))
Ty22 : Type
Ty22 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty22 : Ty22
empty22 = \ _, empty, _ => empty
arr22 : Ty22 -> Ty22 -> Ty22
arr22 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con22 : Type
Con22 = (Con22 : Type)
->(nil : Con22)
->(snoc : Con22 -> Ty22 -> Con22)
-> Con22
nil22 : Con22
nil22 = \ con, nil22, snoc => nil22
snoc22 : Con22 -> Ty22 -> Con22
snoc22 = \ g, a, con, nil22, snoc22 => snoc22 (g con nil22 snoc22) a
Var22 : Con22 -> Ty22 -> Type
Var22 = \ g, a =>
(Var22 : Con22 -> Ty22 -> Type)
-> (vz : (g : _)-> (a : _) -> Var22 (snoc22 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var22 g a -> Var22 (snoc22 g b) a)
-> Var22 g a
vz22 : {g : _}-> {a : _} -> Var22 (snoc22 g a) a
vz22 = \ var, vz22, vs => vz22 _ _
vs22 : {g : _} -> {B : _} -> {a : _} -> Var22 g a -> Var22 (snoc22 g B) a
vs22 = \ x, var, vz22, vs22 => vs22 _ _ _ (x var vz22 vs22)
Tm22 : Con22 -> Ty22 -> Type
Tm22 = \ g, a =>
(Tm22 : Con22 -> Ty22 -> Type)
-> (var : (g : _) -> (a : _) -> Var22 g a -> Tm22 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm22 (snoc22 g a) B -> Tm22 g (arr22 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm22 g (arr22 a B) -> Tm22 g a -> Tm22 g B)
-> Tm22 g a
var22 : {g : _} -> {a : _} -> Var22 g a -> Tm22 g a
var22 = \ x, tm, var22, lam, app => var22 _ _ x
lam22 : {g : _} -> {a : _} -> {B : _} -> Tm22 (snoc22 g a) B -> Tm22 g (arr22 a B)
lam22 = \ t, tm, var22, lam22, app => lam22 _ _ _ (t tm var22 lam22 app)
app22 : {g:_}->{a:_}->{B:_} -> Tm22 g (arr22 a B) -> Tm22 g a -> Tm22 g B
app22 = \ t, u, tm, var22, lam22, app22 => app22 _ _ _ (t tm var22 lam22 app22) (u tm var22 lam22 app22)
v022 : {g:_}->{a:_} -> Tm22 (snoc22 g a) a
v022 = var22 vz22
v122 : {g:_}->{a:_}-> {B:_}-> Tm22 (snoc22 (snoc22 g a) B) a
v122 = var22 (vs22 vz22)
v222 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm22 (snoc22 (snoc22 (snoc22 g a) B) C) a
v222 = var22 (vs22 (vs22 vz22))
v322 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm22 (snoc22 (snoc22 (snoc22 (snoc22 g a) B) C) D) a
v322 = var22 (vs22 (vs22 (vs22 vz22)))
v422 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm22 (snoc22 (snoc22 (snoc22 (snoc22 (snoc22 g a) B) C) D) E) a
v422 = var22 (vs22 (vs22 (vs22 (vs22 vz22))))
test22 : {g:_}-> {a:_} -> Tm22 g (arr22 (arr22 a a) (arr22 a a))
test22 = lam22 (lam22 (app22 v122 (app22 v122 (app22 v122 (app22 v122 (app22 v122 (app22 v122 v022)))))))
Ty23 : Type
Ty23 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty23 : Ty23
empty23 = \ _, empty, _ => empty
arr23 : Ty23 -> Ty23 -> Ty23
arr23 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con23 : Type
Con23 = (Con23 : Type)
->(nil : Con23)
->(snoc : Con23 -> Ty23 -> Con23)
-> Con23
nil23 : Con23
nil23 = \ con, nil23, snoc => nil23
snoc23 : Con23 -> Ty23 -> Con23
snoc23 = \ g, a, con, nil23, snoc23 => snoc23 (g con nil23 snoc23) a
Var23 : Con23 -> Ty23 -> Type
Var23 = \ g, a =>
(Var23 : Con23 -> Ty23 -> Type)
-> (vz : (g : _)-> (a : _) -> Var23 (snoc23 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var23 g a -> Var23 (snoc23 g b) a)
-> Var23 g a
vz23 : {g : _}-> {a : _} -> Var23 (snoc23 g a) a
vz23 = \ var, vz23, vs => vz23 _ _
vs23 : {g : _} -> {B : _} -> {a : _} -> Var23 g a -> Var23 (snoc23 g B) a
vs23 = \ x, var, vz23, vs23 => vs23 _ _ _ (x var vz23 vs23)
Tm23 : Con23 -> Ty23 -> Type
Tm23 = \ g, a =>
(Tm23 : Con23 -> Ty23 -> Type)
-> (var : (g : _) -> (a : _) -> Var23 g a -> Tm23 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm23 (snoc23 g a) B -> Tm23 g (arr23 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm23 g (arr23 a B) -> Tm23 g a -> Tm23 g B)
-> Tm23 g a
var23 : {g : _} -> {a : _} -> Var23 g a -> Tm23 g a
var23 = \ x, tm, var23, lam, app => var23 _ _ x
lam23 : {g : _} -> {a : _} -> {B : _} -> Tm23 (snoc23 g a) B -> Tm23 g (arr23 a B)
lam23 = \ t, tm, var23, lam23, app => lam23 _ _ _ (t tm var23 lam23 app)
app23 : {g:_}->{a:_}->{B:_} -> Tm23 g (arr23 a B) -> Tm23 g a -> Tm23 g B
app23 = \ t, u, tm, var23, lam23, app23 => app23 _ _ _ (t tm var23 lam23 app23) (u tm var23 lam23 app23)
v023 : {g:_}->{a:_} -> Tm23 (snoc23 g a) a
v023 = var23 vz23
v123 : {g:_}->{a:_}-> {B:_}-> Tm23 (snoc23 (snoc23 g a) B) a
v123 = var23 (vs23 vz23)
v223 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm23 (snoc23 (snoc23 (snoc23 g a) B) C) a
v223 = var23 (vs23 (vs23 vz23))
v323 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm23 (snoc23 (snoc23 (snoc23 (snoc23 g a) B) C) D) a
v323 = var23 (vs23 (vs23 (vs23 vz23)))
v423 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm23 (snoc23 (snoc23 (snoc23 (snoc23 (snoc23 g a) B) C) D) E) a
v423 = var23 (vs23 (vs23 (vs23 (vs23 vz23))))
test23 : {g:_}-> {a:_} -> Tm23 g (arr23 (arr23 a a) (arr23 a a))
test23 = lam23 (lam23 (app23 v123 (app23 v123 (app23 v123 (app23 v123 (app23 v123 (app23 v123 v023)))))))
Ty24 : Type
Ty24 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty24 : Ty24
empty24 = \ _, empty, _ => empty
arr24 : Ty24 -> Ty24 -> Ty24
arr24 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con24 : Type
Con24 = (Con24 : Type)
->(nil : Con24)
->(snoc : Con24 -> Ty24 -> Con24)
-> Con24
nil24 : Con24
nil24 = \ con, nil24, snoc => nil24
snoc24 : Con24 -> Ty24 -> Con24
snoc24 = \ g, a, con, nil24, snoc24 => snoc24 (g con nil24 snoc24) a
Var24 : Con24 -> Ty24 -> Type
Var24 = \ g, a =>
(Var24 : Con24 -> Ty24 -> Type)
-> (vz : (g : _)-> (a : _) -> Var24 (snoc24 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var24 g a -> Var24 (snoc24 g b) a)
-> Var24 g a
vz24 : {g : _}-> {a : _} -> Var24 (snoc24 g a) a
vz24 = \ var, vz24, vs => vz24 _ _
vs24 : {g : _} -> {B : _} -> {a : _} -> Var24 g a -> Var24 (snoc24 g B) a
vs24 = \ x, var, vz24, vs24 => vs24 _ _ _ (x var vz24 vs24)
Tm24 : Con24 -> Ty24 -> Type
Tm24 = \ g, a =>
(Tm24 : Con24 -> Ty24 -> Type)
-> (var : (g : _) -> (a : _) -> Var24 g a -> Tm24 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm24 (snoc24 g a) B -> Tm24 g (arr24 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm24 g (arr24 a B) -> Tm24 g a -> Tm24 g B)
-> Tm24 g a
var24 : {g : _} -> {a : _} -> Var24 g a -> Tm24 g a
var24 = \ x, tm, var24, lam, app => var24 _ _ x
lam24 : {g : _} -> {a : _} -> {B : _} -> Tm24 (snoc24 g a) B -> Tm24 g (arr24 a B)
lam24 = \ t, tm, var24, lam24, app => lam24 _ _ _ (t tm var24 lam24 app)
app24 : {g:_}->{a:_}->{B:_} -> Tm24 g (arr24 a B) -> Tm24 g a -> Tm24 g B
app24 = \ t, u, tm, var24, lam24, app24 => app24 _ _ _ (t tm var24 lam24 app24) (u tm var24 lam24 app24)
v024 : {g:_}->{a:_} -> Tm24 (snoc24 g a) a
v024 = var24 vz24
v124 : {g:_}->{a:_}-> {B:_}-> Tm24 (snoc24 (snoc24 g a) B) a
v124 = var24 (vs24 vz24)
v224 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm24 (snoc24 (snoc24 (snoc24 g a) B) C) a
v224 = var24 (vs24 (vs24 vz24))
v324 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm24 (snoc24 (snoc24 (snoc24 (snoc24 g a) B) C) D) a
v324 = var24 (vs24 (vs24 (vs24 vz24)))
v424 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm24 (snoc24 (snoc24 (snoc24 (snoc24 (snoc24 g a) B) C) D) E) a
v424 = var24 (vs24 (vs24 (vs24 (vs24 vz24))))
test24 : {g:_}-> {a:_} -> Tm24 g (arr24 (arr24 a a) (arr24 a a))
test24 = lam24 (lam24 (app24 v124 (app24 v124 (app24 v124 (app24 v124 (app24 v124 (app24 v124 v024)))))))
Ty25 : Type
Ty25 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty25 : Ty25
empty25 = \ _, empty, _ => empty
arr25 : Ty25 -> Ty25 -> Ty25
arr25 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con25 : Type
Con25 = (Con25 : Type)
->(nil : Con25)
->(snoc : Con25 -> Ty25 -> Con25)
-> Con25
nil25 : Con25
nil25 = \ con, nil25, snoc => nil25
snoc25 : Con25 -> Ty25 -> Con25
snoc25 = \ g, a, con, nil25, snoc25 => snoc25 (g con nil25 snoc25) a
Var25 : Con25 -> Ty25 -> Type
Var25 = \ g, a =>
(Var25 : Con25 -> Ty25 -> Type)
-> (vz : (g : _)-> (a : _) -> Var25 (snoc25 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var25 g a -> Var25 (snoc25 g b) a)
-> Var25 g a
vz25 : {g : _}-> {a : _} -> Var25 (snoc25 g a) a
vz25 = \ var, vz25, vs => vz25 _ _
vs25 : {g : _} -> {B : _} -> {a : _} -> Var25 g a -> Var25 (snoc25 g B) a
vs25 = \ x, var, vz25, vs25 => vs25 _ _ _ (x var vz25 vs25)
Tm25 : Con25 -> Ty25 -> Type
Tm25 = \ g, a =>
(Tm25 : Con25 -> Ty25 -> Type)
-> (var : (g : _) -> (a : _) -> Var25 g a -> Tm25 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm25 (snoc25 g a) B -> Tm25 g (arr25 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm25 g (arr25 a B) -> Tm25 g a -> Tm25 g B)
-> Tm25 g a
var25 : {g : _} -> {a : _} -> Var25 g a -> Tm25 g a
var25 = \ x, tm, var25, lam, app => var25 _ _ x
lam25 : {g : _} -> {a : _} -> {B : _} -> Tm25 (snoc25 g a) B -> Tm25 g (arr25 a B)
lam25 = \ t, tm, var25, lam25, app => lam25 _ _ _ (t tm var25 lam25 app)
app25 : {g:_}->{a:_}->{B:_} -> Tm25 g (arr25 a B) -> Tm25 g a -> Tm25 g B
app25 = \ t, u, tm, var25, lam25, app25 => app25 _ _ _ (t tm var25 lam25 app25) (u tm var25 lam25 app25)
v025 : {g:_}->{a:_} -> Tm25 (snoc25 g a) a
v025 = var25 vz25
v125 : {g:_}->{a:_}-> {B:_}-> Tm25 (snoc25 (snoc25 g a) B) a
v125 = var25 (vs25 vz25)
v225 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm25 (snoc25 (snoc25 (snoc25 g a) B) C) a
v225 = var25 (vs25 (vs25 vz25))
v325 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm25 (snoc25 (snoc25 (snoc25 (snoc25 g a) B) C) D) a
v325 = var25 (vs25 (vs25 (vs25 vz25)))
v425 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm25 (snoc25 (snoc25 (snoc25 (snoc25 (snoc25 g a) B) C) D) E) a
v425 = var25 (vs25 (vs25 (vs25 (vs25 vz25))))
test25 : {g:_}-> {a:_} -> Tm25 g (arr25 (arr25 a a) (arr25 a a))
test25 = lam25 (lam25 (app25 v125 (app25 v125 (app25 v125 (app25 v125 (app25 v125 (app25 v125 v025)))))))
Ty26 : Type
Ty26 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty26 : Ty26
empty26 = \ _, empty, _ => empty
arr26 : Ty26 -> Ty26 -> Ty26
arr26 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con26 : Type
Con26 = (Con26 : Type)
->(nil : Con26)
->(snoc : Con26 -> Ty26 -> Con26)
-> Con26
nil26 : Con26
nil26 = \ con, nil26, snoc => nil26
snoc26 : Con26 -> Ty26 -> Con26
snoc26 = \ g, a, con, nil26, snoc26 => snoc26 (g con nil26 snoc26) a
Var26 : Con26 -> Ty26 -> Type
Var26 = \ g, a =>
(Var26 : Con26 -> Ty26 -> Type)
-> (vz : (g : _)-> (a : _) -> Var26 (snoc26 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var26 g a -> Var26 (snoc26 g b) a)
-> Var26 g a
vz26 : {g : _}-> {a : _} -> Var26 (snoc26 g a) a
vz26 = \ var, vz26, vs => vz26 _ _
vs26 : {g : _} -> {B : _} -> {a : _} -> Var26 g a -> Var26 (snoc26 g B) a
vs26 = \ x, var, vz26, vs26 => vs26 _ _ _ (x var vz26 vs26)
Tm26 : Con26 -> Ty26 -> Type
Tm26 = \ g, a =>
(Tm26 : Con26 -> Ty26 -> Type)
-> (var : (g : _) -> (a : _) -> Var26 g a -> Tm26 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm26 (snoc26 g a) B -> Tm26 g (arr26 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm26 g (arr26 a B) -> Tm26 g a -> Tm26 g B)
-> Tm26 g a
var26 : {g : _} -> {a : _} -> Var26 g a -> Tm26 g a
var26 = \ x, tm, var26, lam, app => var26 _ _ x
lam26 : {g : _} -> {a : _} -> {B : _} -> Tm26 (snoc26 g a) B -> Tm26 g (arr26 a B)
lam26 = \ t, tm, var26, lam26, app => lam26 _ _ _ (t tm var26 lam26 app)
app26 : {g:_}->{a:_}->{B:_} -> Tm26 g (arr26 a B) -> Tm26 g a -> Tm26 g B
app26 = \ t, u, tm, var26, lam26, app26 => app26 _ _ _ (t tm var26 lam26 app26) (u tm var26 lam26 app26)
v026 : {g:_}->{a:_} -> Tm26 (snoc26 g a) a
v026 = var26 vz26
v126 : {g:_}->{a:_}-> {B:_}-> Tm26 (snoc26 (snoc26 g a) B) a
v126 = var26 (vs26 vz26)
v226 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm26 (snoc26 (snoc26 (snoc26 g a) B) C) a
v226 = var26 (vs26 (vs26 vz26))
v326 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm26 (snoc26 (snoc26 (snoc26 (snoc26 g a) B) C) D) a
v326 = var26 (vs26 (vs26 (vs26 vz26)))
v426 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm26 (snoc26 (snoc26 (snoc26 (snoc26 (snoc26 g a) B) C) D) E) a
v426 = var26 (vs26 (vs26 (vs26 (vs26 vz26))))
test26 : {g:_}-> {a:_} -> Tm26 g (arr26 (arr26 a a) (arr26 a a))
test26 = lam26 (lam26 (app26 v126 (app26 v126 (app26 v126 (app26 v126 (app26 v126 (app26 v126 v026)))))))
Ty27 : Type
Ty27 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty27 : Ty27
empty27 = \ _, empty, _ => empty
arr27 : Ty27 -> Ty27 -> Ty27
arr27 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con27 : Type
Con27 = (Con27 : Type)
->(nil : Con27)
->(snoc : Con27 -> Ty27 -> Con27)
-> Con27
nil27 : Con27
nil27 = \ con, nil27, snoc => nil27
snoc27 : Con27 -> Ty27 -> Con27
snoc27 = \ g, a, con, nil27, snoc27 => snoc27 (g con nil27 snoc27) a
Var27 : Con27 -> Ty27 -> Type
Var27 = \ g, a =>
(Var27 : Con27 -> Ty27 -> Type)
-> (vz : (g : _)-> (a : _) -> Var27 (snoc27 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var27 g a -> Var27 (snoc27 g b) a)
-> Var27 g a
vz27 : {g : _}-> {a : _} -> Var27 (snoc27 g a) a
vz27 = \ var, vz27, vs => vz27 _ _
vs27 : {g : _} -> {B : _} -> {a : _} -> Var27 g a -> Var27 (snoc27 g B) a
vs27 = \ x, var, vz27, vs27 => vs27 _ _ _ (x var vz27 vs27)
Tm27 : Con27 -> Ty27 -> Type
Tm27 = \ g, a =>
(Tm27 : Con27 -> Ty27 -> Type)
-> (var : (g : _) -> (a : _) -> Var27 g a -> Tm27 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm27 (snoc27 g a) B -> Tm27 g (arr27 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm27 g (arr27 a B) -> Tm27 g a -> Tm27 g B)
-> Tm27 g a
var27 : {g : _} -> {a : _} -> Var27 g a -> Tm27 g a
var27 = \ x, tm, var27, lam, app => var27 _ _ x
lam27 : {g : _} -> {a : _} -> {B : _} -> Tm27 (snoc27 g a) B -> Tm27 g (arr27 a B)
lam27 = \ t, tm, var27, lam27, app => lam27 _ _ _ (t tm var27 lam27 app)
app27 : {g:_}->{a:_}->{B:_} -> Tm27 g (arr27 a B) -> Tm27 g a -> Tm27 g B
app27 = \ t, u, tm, var27, lam27, app27 => app27 _ _ _ (t tm var27 lam27 app27) (u tm var27 lam27 app27)
v027 : {g:_}->{a:_} -> Tm27 (snoc27 g a) a
v027 = var27 vz27
v127 : {g:_}->{a:_}-> {B:_}-> Tm27 (snoc27 (snoc27 g a) B) a
v127 = var27 (vs27 vz27)
v227 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm27 (snoc27 (snoc27 (snoc27 g a) B) C) a
v227 = var27 (vs27 (vs27 vz27))
v327 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm27 (snoc27 (snoc27 (snoc27 (snoc27 g a) B) C) D) a
v327 = var27 (vs27 (vs27 (vs27 vz27)))
v427 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm27 (snoc27 (snoc27 (snoc27 (snoc27 (snoc27 g a) B) C) D) E) a
v427 = var27 (vs27 (vs27 (vs27 (vs27 vz27))))
test27 : {g:_}-> {a:_} -> Tm27 g (arr27 (arr27 a a) (arr27 a a))
test27 = lam27 (lam27 (app27 v127 (app27 v127 (app27 v127 (app27 v127 (app27 v127 (app27 v127 v027)))))))
Ty28 : Type
Ty28 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty28 : Ty28
empty28 = \ _, empty, _ => empty
arr28 : Ty28 -> Ty28 -> Ty28
arr28 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con28 : Type
Con28 = (Con28 : Type)
->(nil : Con28)
->(snoc : Con28 -> Ty28 -> Con28)
-> Con28
nil28 : Con28
nil28 = \ con, nil28, snoc => nil28
snoc28 : Con28 -> Ty28 -> Con28
snoc28 = \ g, a, con, nil28, snoc28 => snoc28 (g con nil28 snoc28) a
Var28 : Con28 -> Ty28 -> Type
Var28 = \ g, a =>
(Var28 : Con28 -> Ty28 -> Type)
-> (vz : (g : _)-> (a : _) -> Var28 (snoc28 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var28 g a -> Var28 (snoc28 g b) a)
-> Var28 g a
vz28 : {g : _}-> {a : _} -> Var28 (snoc28 g a) a
vz28 = \ var, vz28, vs => vz28 _ _
vs28 : {g : _} -> {B : _} -> {a : _} -> Var28 g a -> Var28 (snoc28 g B) a
vs28 = \ x, var, vz28, vs28 => vs28 _ _ _ (x var vz28 vs28)
Tm28 : Con28 -> Ty28 -> Type
Tm28 = \ g, a =>
(Tm28 : Con28 -> Ty28 -> Type)
-> (var : (g : _) -> (a : _) -> Var28 g a -> Tm28 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm28 (snoc28 g a) B -> Tm28 g (arr28 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm28 g (arr28 a B) -> Tm28 g a -> Tm28 g B)
-> Tm28 g a
var28 : {g : _} -> {a : _} -> Var28 g a -> Tm28 g a
var28 = \ x, tm, var28, lam, app => var28 _ _ x
lam28 : {g : _} -> {a : _} -> {B : _} -> Tm28 (snoc28 g a) B -> Tm28 g (arr28 a B)
lam28 = \ t, tm, var28, lam28, app => lam28 _ _ _ (t tm var28 lam28 app)
app28 : {g:_}->{a:_}->{B:_} -> Tm28 g (arr28 a B) -> Tm28 g a -> Tm28 g B
app28 = \ t, u, tm, var28, lam28, app28 => app28 _ _ _ (t tm var28 lam28 app28) (u tm var28 lam28 app28)
v028 : {g:_}->{a:_} -> Tm28 (snoc28 g a) a
v028 = var28 vz28
v128 : {g:_}->{a:_}-> {B:_}-> Tm28 (snoc28 (snoc28 g a) B) a
v128 = var28 (vs28 vz28)
v228 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm28 (snoc28 (snoc28 (snoc28 g a) B) C) a
v228 = var28 (vs28 (vs28 vz28))
v328 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm28 (snoc28 (snoc28 (snoc28 (snoc28 g a) B) C) D) a
v328 = var28 (vs28 (vs28 (vs28 vz28)))
v428 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm28 (snoc28 (snoc28 (snoc28 (snoc28 (snoc28 g a) B) C) D) E) a
v428 = var28 (vs28 (vs28 (vs28 (vs28 vz28))))
test28 : {g:_}-> {a:_} -> Tm28 g (arr28 (arr28 a a) (arr28 a a))
test28 = lam28 (lam28 (app28 v128 (app28 v128 (app28 v128 (app28 v128 (app28 v128 (app28 v128 v028)))))))
Ty29 : Type
Ty29 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty29 : Ty29
empty29 = \ _, empty, _ => empty
arr29 : Ty29 -> Ty29 -> Ty29
arr29 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con29 : Type
Con29 = (Con29 : Type)
->(nil : Con29)
->(snoc : Con29 -> Ty29 -> Con29)
-> Con29
nil29 : Con29
nil29 = \ con, nil29, snoc => nil29
snoc29 : Con29 -> Ty29 -> Con29
snoc29 = \ g, a, con, nil29, snoc29 => snoc29 (g con nil29 snoc29) a
Var29 : Con29 -> Ty29 -> Type
Var29 = \ g, a =>
(Var29 : Con29 -> Ty29 -> Type)
-> (vz : (g : _)-> (a : _) -> Var29 (snoc29 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var29 g a -> Var29 (snoc29 g b) a)
-> Var29 g a
vz29 : {g : _}-> {a : _} -> Var29 (snoc29 g a) a
vz29 = \ var, vz29, vs => vz29 _ _
vs29 : {g : _} -> {B : _} -> {a : _} -> Var29 g a -> Var29 (snoc29 g B) a
vs29 = \ x, var, vz29, vs29 => vs29 _ _ _ (x var vz29 vs29)
Tm29 : Con29 -> Ty29 -> Type
Tm29 = \ g, a =>
(Tm29 : Con29 -> Ty29 -> Type)
-> (var : (g : _) -> (a : _) -> Var29 g a -> Tm29 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm29 (snoc29 g a) B -> Tm29 g (arr29 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm29 g (arr29 a B) -> Tm29 g a -> Tm29 g B)
-> Tm29 g a
var29 : {g : _} -> {a : _} -> Var29 g a -> Tm29 g a
var29 = \ x, tm, var29, lam, app => var29 _ _ x
lam29 : {g : _} -> {a : _} -> {B : _} -> Tm29 (snoc29 g a) B -> Tm29 g (arr29 a B)
lam29 = \ t, tm, var29, lam29, app => lam29 _ _ _ (t tm var29 lam29 app)
app29 : {g:_}->{a:_}->{B:_} -> Tm29 g (arr29 a B) -> Tm29 g a -> Tm29 g B
app29 = \ t, u, tm, var29, lam29, app29 => app29 _ _ _ (t tm var29 lam29 app29) (u tm var29 lam29 app29)
v029 : {g:_}->{a:_} -> Tm29 (snoc29 g a) a
v029 = var29 vz29
v129 : {g:_}->{a:_}-> {B:_}-> Tm29 (snoc29 (snoc29 g a) B) a
v129 = var29 (vs29 vz29)
v229 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm29 (snoc29 (snoc29 (snoc29 g a) B) C) a
v229 = var29 (vs29 (vs29 vz29))
v329 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm29 (snoc29 (snoc29 (snoc29 (snoc29 g a) B) C) D) a
v329 = var29 (vs29 (vs29 (vs29 vz29)))
v429 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm29 (snoc29 (snoc29 (snoc29 (snoc29 (snoc29 g a) B) C) D) E) a
v429 = var29 (vs29 (vs29 (vs29 (vs29 vz29))))
test29 : {g:_}-> {a:_} -> Tm29 g (arr29 (arr29 a a) (arr29 a a))
test29 = lam29 (lam29 (app29 v129 (app29 v129 (app29 v129 (app29 v129 (app29 v129 (app29 v129 v029)))))))
Ty30 : Type
Ty30 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty30 : Ty30
empty30 = \ _, empty, _ => empty
arr30 : Ty30 -> Ty30 -> Ty30
arr30 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con30 : Type
Con30 = (Con30 : Type)
->(nil : Con30)
->(snoc : Con30 -> Ty30 -> Con30)
-> Con30
nil30 : Con30
nil30 = \ con, nil30, snoc => nil30
snoc30 : Con30 -> Ty30 -> Con30
snoc30 = \ g, a, con, nil30, snoc30 => snoc30 (g con nil30 snoc30) a
Var30 : Con30 -> Ty30 -> Type
Var30 = \ g, a =>
(Var30 : Con30 -> Ty30 -> Type)
-> (vz : (g : _)-> (a : _) -> Var30 (snoc30 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var30 g a -> Var30 (snoc30 g b) a)
-> Var30 g a
vz30 : {g : _}-> {a : _} -> Var30 (snoc30 g a) a
vz30 = \ var, vz30, vs => vz30 _ _
vs30 : {g : _} -> {B : _} -> {a : _} -> Var30 g a -> Var30 (snoc30 g B) a
vs30 = \ x, var, vz30, vs30 => vs30 _ _ _ (x var vz30 vs30)
Tm30 : Con30 -> Ty30 -> Type
Tm30 = \ g, a =>
(Tm30 : Con30 -> Ty30 -> Type)
-> (var : (g : _) -> (a : _) -> Var30 g a -> Tm30 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm30 (snoc30 g a) B -> Tm30 g (arr30 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm30 g (arr30 a B) -> Tm30 g a -> Tm30 g B)
-> Tm30 g a
var30 : {g : _} -> {a : _} -> Var30 g a -> Tm30 g a
var30 = \ x, tm, var30, lam, app => var30 _ _ x
lam30 : {g : _} -> {a : _} -> {B : _} -> Tm30 (snoc30 g a) B -> Tm30 g (arr30 a B)
lam30 = \ t, tm, var30, lam30, app => lam30 _ _ _ (t tm var30 lam30 app)
app30 : {g:_}->{a:_}->{B:_} -> Tm30 g (arr30 a B) -> Tm30 g a -> Tm30 g B
app30 = \ t, u, tm, var30, lam30, app30 => app30 _ _ _ (t tm var30 lam30 app30) (u tm var30 lam30 app30)
v030 : {g:_}->{a:_} -> Tm30 (snoc30 g a) a
v030 = var30 vz30
v130 : {g:_}->{a:_}-> {B:_}-> Tm30 (snoc30 (snoc30 g a) B) a
v130 = var30 (vs30 vz30)
v230 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm30 (snoc30 (snoc30 (snoc30 g a) B) C) a
v230 = var30 (vs30 (vs30 vz30))
v330 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm30 (snoc30 (snoc30 (snoc30 (snoc30 g a) B) C) D) a
v330 = var30 (vs30 (vs30 (vs30 vz30)))
v430 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm30 (snoc30 (snoc30 (snoc30 (snoc30 (snoc30 g a) B) C) D) E) a
v430 = var30 (vs30 (vs30 (vs30 (vs30 vz30))))
test30 : {g:_}-> {a:_} -> Tm30 g (arr30 (arr30 a a) (arr30 a a))
test30 = lam30 (lam30 (app30 v130 (app30 v130 (app30 v130 (app30 v130 (app30 v130 (app30 v130 v030)))))))
Ty31 : Type
Ty31 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty31 : Ty31
empty31 = \ _, empty, _ => empty
arr31 : Ty31 -> Ty31 -> Ty31
arr31 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con31 : Type
Con31 = (Con31 : Type)
->(nil : Con31)
->(snoc : Con31 -> Ty31 -> Con31)
-> Con31
nil31 : Con31
nil31 = \ con, nil31, snoc => nil31
snoc31 : Con31 -> Ty31 -> Con31
snoc31 = \ g, a, con, nil31, snoc31 => snoc31 (g con nil31 snoc31) a
Var31 : Con31 -> Ty31 -> Type
Var31 = \ g, a =>
(Var31 : Con31 -> Ty31 -> Type)
-> (vz : (g : _)-> (a : _) -> Var31 (snoc31 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var31 g a -> Var31 (snoc31 g b) a)
-> Var31 g a
vz31 : {g : _}-> {a : _} -> Var31 (snoc31 g a) a
vz31 = \ var, vz31, vs => vz31 _ _
vs31 : {g : _} -> {B : _} -> {a : _} -> Var31 g a -> Var31 (snoc31 g B) a
vs31 = \ x, var, vz31, vs31 => vs31 _ _ _ (x var vz31 vs31)
Tm31 : Con31 -> Ty31 -> Type
Tm31 = \ g, a =>
(Tm31 : Con31 -> Ty31 -> Type)
-> (var : (g : _) -> (a : _) -> Var31 g a -> Tm31 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm31 (snoc31 g a) B -> Tm31 g (arr31 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm31 g (arr31 a B) -> Tm31 g a -> Tm31 g B)
-> Tm31 g a
var31 : {g : _} -> {a : _} -> Var31 g a -> Tm31 g a
var31 = \ x, tm, var31, lam, app => var31 _ _ x
lam31 : {g : _} -> {a : _} -> {B : _} -> Tm31 (snoc31 g a) B -> Tm31 g (arr31 a B)
lam31 = \ t, tm, var31, lam31, app => lam31 _ _ _ (t tm var31 lam31 app)
app31 : {g:_}->{a:_}->{B:_} -> Tm31 g (arr31 a B) -> Tm31 g a -> Tm31 g B
app31 = \ t, u, tm, var31, lam31, app31 => app31 _ _ _ (t tm var31 lam31 app31) (u tm var31 lam31 app31)
v031 : {g:_}->{a:_} -> Tm31 (snoc31 g a) a
v031 = var31 vz31
v131 : {g:_}->{a:_}-> {B:_}-> Tm31 (snoc31 (snoc31 g a) B) a
v131 = var31 (vs31 vz31)
v231 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm31 (snoc31 (snoc31 (snoc31 g a) B) C) a
v231 = var31 (vs31 (vs31 vz31))
v331 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm31 (snoc31 (snoc31 (snoc31 (snoc31 g a) B) C) D) a
v331 = var31 (vs31 (vs31 (vs31 vz31)))
v431 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm31 (snoc31 (snoc31 (snoc31 (snoc31 (snoc31 g a) B) C) D) E) a
v431 = var31 (vs31 (vs31 (vs31 (vs31 vz31))))
test31 : {g:_}-> {a:_} -> Tm31 g (arr31 (arr31 a a) (arr31 a a))
test31 = lam31 (lam31 (app31 v131 (app31 v131 (app31 v131 (app31 v131 (app31 v131 (app31 v131 v031)))))))
Ty32 : Type
Ty32 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty32 : Ty32
empty32 = \ _, empty, _ => empty
arr32 : Ty32 -> Ty32 -> Ty32
arr32 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con32 : Type
Con32 = (Con32 : Type)
->(nil : Con32)
->(snoc : Con32 -> Ty32 -> Con32)
-> Con32
nil32 : Con32
nil32 = \ con, nil32, snoc => nil32
snoc32 : Con32 -> Ty32 -> Con32
snoc32 = \ g, a, con, nil32, snoc32 => snoc32 (g con nil32 snoc32) a
Var32 : Con32 -> Ty32 -> Type
Var32 = \ g, a =>
(Var32 : Con32 -> Ty32 -> Type)
-> (vz : (g : _)-> (a : _) -> Var32 (snoc32 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var32 g a -> Var32 (snoc32 g b) a)
-> Var32 g a
vz32 : {g : _}-> {a : _} -> Var32 (snoc32 g a) a
vz32 = \ var, vz32, vs => vz32 _ _
vs32 : {g : _} -> {B : _} -> {a : _} -> Var32 g a -> Var32 (snoc32 g B) a
vs32 = \ x, var, vz32, vs32 => vs32 _ _ _ (x var vz32 vs32)
Tm32 : Con32 -> Ty32 -> Type
Tm32 = \ g, a =>
(Tm32 : Con32 -> Ty32 -> Type)
-> (var : (g : _) -> (a : _) -> Var32 g a -> Tm32 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm32 (snoc32 g a) B -> Tm32 g (arr32 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm32 g (arr32 a B) -> Tm32 g a -> Tm32 g B)
-> Tm32 g a
var32 : {g : _} -> {a : _} -> Var32 g a -> Tm32 g a
var32 = \ x, tm, var32, lam, app => var32 _ _ x
lam32 : {g : _} -> {a : _} -> {B : _} -> Tm32 (snoc32 g a) B -> Tm32 g (arr32 a B)
lam32 = \ t, tm, var32, lam32, app => lam32 _ _ _ (t tm var32 lam32 app)
app32 : {g:_}->{a:_}->{B:_} -> Tm32 g (arr32 a B) -> Tm32 g a -> Tm32 g B
app32 = \ t, u, tm, var32, lam32, app32 => app32 _ _ _ (t tm var32 lam32 app32) (u tm var32 lam32 app32)
v032 : {g:_}->{a:_} -> Tm32 (snoc32 g a) a
v032 = var32 vz32
v132 : {g:_}->{a:_}-> {B:_}-> Tm32 (snoc32 (snoc32 g a) B) a
v132 = var32 (vs32 vz32)
v232 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm32 (snoc32 (snoc32 (snoc32 g a) B) C) a
v232 = var32 (vs32 (vs32 vz32))
v332 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm32 (snoc32 (snoc32 (snoc32 (snoc32 g a) B) C) D) a
v332 = var32 (vs32 (vs32 (vs32 vz32)))
v432 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm32 (snoc32 (snoc32 (snoc32 (snoc32 (snoc32 g a) B) C) D) E) a
v432 = var32 (vs32 (vs32 (vs32 (vs32 vz32))))
test32 : {g:_}-> {a:_} -> Tm32 g (arr32 (arr32 a a) (arr32 a a))
test32 = lam32 (lam32 (app32 v132 (app32 v132 (app32 v132 (app32 v132 (app32 v132 (app32 v132 v032)))))))
Ty33 : Type
Ty33 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty33 : Ty33
empty33 = \ _, empty, _ => empty
arr33 : Ty33 -> Ty33 -> Ty33
arr33 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con33 : Type
Con33 = (Con33 : Type)
->(nil : Con33)
->(snoc : Con33 -> Ty33 -> Con33)
-> Con33
nil33 : Con33
nil33 = \ con, nil33, snoc => nil33
snoc33 : Con33 -> Ty33 -> Con33
snoc33 = \ g, a, con, nil33, snoc33 => snoc33 (g con nil33 snoc33) a
Var33 : Con33 -> Ty33 -> Type
Var33 = \ g, a =>
(Var33 : Con33 -> Ty33 -> Type)
-> (vz : (g : _)-> (a : _) -> Var33 (snoc33 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var33 g a -> Var33 (snoc33 g b) a)
-> Var33 g a
vz33 : {g : _}-> {a : _} -> Var33 (snoc33 g a) a
vz33 = \ var, vz33, vs => vz33 _ _
vs33 : {g : _} -> {B : _} -> {a : _} -> Var33 g a -> Var33 (snoc33 g B) a
vs33 = \ x, var, vz33, vs33 => vs33 _ _ _ (x var vz33 vs33)
Tm33 : Con33 -> Ty33 -> Type
Tm33 = \ g, a =>
(Tm33 : Con33 -> Ty33 -> Type)
-> (var : (g : _) -> (a : _) -> Var33 g a -> Tm33 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm33 (snoc33 g a) B -> Tm33 g (arr33 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm33 g (arr33 a B) -> Tm33 g a -> Tm33 g B)
-> Tm33 g a
var33 : {g : _} -> {a : _} -> Var33 g a -> Tm33 g a
var33 = \ x, tm, var33, lam, app => var33 _ _ x
lam33 : {g : _} -> {a : _} -> {B : _} -> Tm33 (snoc33 g a) B -> Tm33 g (arr33 a B)
lam33 = \ t, tm, var33, lam33, app => lam33 _ _ _ (t tm var33 lam33 app)
app33 : {g:_}->{a:_}->{B:_} -> Tm33 g (arr33 a B) -> Tm33 g a -> Tm33 g B
app33 = \ t, u, tm, var33, lam33, app33 => app33 _ _ _ (t tm var33 lam33 app33) (u tm var33 lam33 app33)
v033 : {g:_}->{a:_} -> Tm33 (snoc33 g a) a
v033 = var33 vz33
v133 : {g:_}->{a:_}-> {B:_}-> Tm33 (snoc33 (snoc33 g a) B) a
v133 = var33 (vs33 vz33)
v233 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm33 (snoc33 (snoc33 (snoc33 g a) B) C) a
v233 = var33 (vs33 (vs33 vz33))
v333 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm33 (snoc33 (snoc33 (snoc33 (snoc33 g a) B) C) D) a
v333 = var33 (vs33 (vs33 (vs33 vz33)))
v433 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm33 (snoc33 (snoc33 (snoc33 (snoc33 (snoc33 g a) B) C) D) E) a
v433 = var33 (vs33 (vs33 (vs33 (vs33 vz33))))
test33 : {g:_}-> {a:_} -> Tm33 g (arr33 (arr33 a a) (arr33 a a))
test33 = lam33 (lam33 (app33 v133 (app33 v133 (app33 v133 (app33 v133 (app33 v133 (app33 v133 v033)))))))
Ty34 : Type
Ty34 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty34 : Ty34
empty34 = \ _, empty, _ => empty
arr34 : Ty34 -> Ty34 -> Ty34
arr34 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con34 : Type
Con34 = (Con34 : Type)
->(nil : Con34)
->(snoc : Con34 -> Ty34 -> Con34)
-> Con34
nil34 : Con34
nil34 = \ con, nil34, snoc => nil34
snoc34 : Con34 -> Ty34 -> Con34
snoc34 = \ g, a, con, nil34, snoc34 => snoc34 (g con nil34 snoc34) a
Var34 : Con34 -> Ty34 -> Type
Var34 = \ g, a =>
(Var34 : Con34 -> Ty34 -> Type)
-> (vz : (g : _)-> (a : _) -> Var34 (snoc34 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var34 g a -> Var34 (snoc34 g b) a)
-> Var34 g a
vz34 : {g : _}-> {a : _} -> Var34 (snoc34 g a) a
vz34 = \ var, vz34, vs => vz34 _ _
vs34 : {g : _} -> {B : _} -> {a : _} -> Var34 g a -> Var34 (snoc34 g B) a
vs34 = \ x, var, vz34, vs34 => vs34 _ _ _ (x var vz34 vs34)
Tm34 : Con34 -> Ty34 -> Type
Tm34 = \ g, a =>
(Tm34 : Con34 -> Ty34 -> Type)
-> (var : (g : _) -> (a : _) -> Var34 g a -> Tm34 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm34 (snoc34 g a) B -> Tm34 g (arr34 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm34 g (arr34 a B) -> Tm34 g a -> Tm34 g B)
-> Tm34 g a
var34 : {g : _} -> {a : _} -> Var34 g a -> Tm34 g a
var34 = \ x, tm, var34, lam, app => var34 _ _ x
lam34 : {g : _} -> {a : _} -> {B : _} -> Tm34 (snoc34 g a) B -> Tm34 g (arr34 a B)
lam34 = \ t, tm, var34, lam34, app => lam34 _ _ _ (t tm var34 lam34 app)
app34 : {g:_}->{a:_}->{B:_} -> Tm34 g (arr34 a B) -> Tm34 g a -> Tm34 g B
app34 = \ t, u, tm, var34, lam34, app34 => app34 _ _ _ (t tm var34 lam34 app34) (u tm var34 lam34 app34)
v034 : {g:_}->{a:_} -> Tm34 (snoc34 g a) a
v034 = var34 vz34
v134 : {g:_}->{a:_}-> {B:_}-> Tm34 (snoc34 (snoc34 g a) B) a
v134 = var34 (vs34 vz34)
v234 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm34 (snoc34 (snoc34 (snoc34 g a) B) C) a
v234 = var34 (vs34 (vs34 vz34))
v334 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm34 (snoc34 (snoc34 (snoc34 (snoc34 g a) B) C) D) a
v334 = var34 (vs34 (vs34 (vs34 vz34)))
v434 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm34 (snoc34 (snoc34 (snoc34 (snoc34 (snoc34 g a) B) C) D) E) a
v434 = var34 (vs34 (vs34 (vs34 (vs34 vz34))))
test34 : {g:_}-> {a:_} -> Tm34 g (arr34 (arr34 a a) (arr34 a a))
test34 = lam34 (lam34 (app34 v134 (app34 v134 (app34 v134 (app34 v134 (app34 v134 (app34 v134 v034)))))))
Ty35 : Type
Ty35 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty35 : Ty35
empty35 = \ _, empty, _ => empty
arr35 : Ty35 -> Ty35 -> Ty35
arr35 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con35 : Type
Con35 = (Con35 : Type)
->(nil : Con35)
->(snoc : Con35 -> Ty35 -> Con35)
-> Con35
nil35 : Con35
nil35 = \ con, nil35, snoc => nil35
snoc35 : Con35 -> Ty35 -> Con35
snoc35 = \ g, a, con, nil35, snoc35 => snoc35 (g con nil35 snoc35) a
Var35 : Con35 -> Ty35 -> Type
Var35 = \ g, a =>
(Var35 : Con35 -> Ty35 -> Type)
-> (vz : (g : _)-> (a : _) -> Var35 (snoc35 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var35 g a -> Var35 (snoc35 g b) a)
-> Var35 g a
vz35 : {g : _}-> {a : _} -> Var35 (snoc35 g a) a
vz35 = \ var, vz35, vs => vz35 _ _
vs35 : {g : _} -> {B : _} -> {a : _} -> Var35 g a -> Var35 (snoc35 g B) a
vs35 = \ x, var, vz35, vs35 => vs35 _ _ _ (x var vz35 vs35)
Tm35 : Con35 -> Ty35 -> Type
Tm35 = \ g, a =>
(Tm35 : Con35 -> Ty35 -> Type)
-> (var : (g : _) -> (a : _) -> Var35 g a -> Tm35 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm35 (snoc35 g a) B -> Tm35 g (arr35 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm35 g (arr35 a B) -> Tm35 g a -> Tm35 g B)
-> Tm35 g a
var35 : {g : _} -> {a : _} -> Var35 g a -> Tm35 g a
var35 = \ x, tm, var35, lam, app => var35 _ _ x
lam35 : {g : _} -> {a : _} -> {B : _} -> Tm35 (snoc35 g a) B -> Tm35 g (arr35 a B)
lam35 = \ t, tm, var35, lam35, app => lam35 _ _ _ (t tm var35 lam35 app)
app35 : {g:_}->{a:_}->{B:_} -> Tm35 g (arr35 a B) -> Tm35 g a -> Tm35 g B
app35 = \ t, u, tm, var35, lam35, app35 => app35 _ _ _ (t tm var35 lam35 app35) (u tm var35 lam35 app35)
v035 : {g:_}->{a:_} -> Tm35 (snoc35 g a) a
v035 = var35 vz35
v135 : {g:_}->{a:_}-> {B:_}-> Tm35 (snoc35 (snoc35 g a) B) a
v135 = var35 (vs35 vz35)
v235 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm35 (snoc35 (snoc35 (snoc35 g a) B) C) a
v235 = var35 (vs35 (vs35 vz35))
v335 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm35 (snoc35 (snoc35 (snoc35 (snoc35 g a) B) C) D) a
v335 = var35 (vs35 (vs35 (vs35 vz35)))
v435 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm35 (snoc35 (snoc35 (snoc35 (snoc35 (snoc35 g a) B) C) D) E) a
v435 = var35 (vs35 (vs35 (vs35 (vs35 vz35))))
test35 : {g:_}-> {a:_} -> Tm35 g (arr35 (arr35 a a) (arr35 a a))
test35 = lam35 (lam35 (app35 v135 (app35 v135 (app35 v135 (app35 v135 (app35 v135 (app35 v135 v035)))))))
Ty36 : Type
Ty36 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty36 : Ty36
empty36 = \ _, empty, _ => empty
arr36 : Ty36 -> Ty36 -> Ty36
arr36 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con36 : Type
Con36 = (Con36 : Type)
->(nil : Con36)
->(snoc : Con36 -> Ty36 -> Con36)
-> Con36
nil36 : Con36
nil36 = \ con, nil36, snoc => nil36
snoc36 : Con36 -> Ty36 -> Con36
snoc36 = \ g, a, con, nil36, snoc36 => snoc36 (g con nil36 snoc36) a
Var36 : Con36 -> Ty36 -> Type
Var36 = \ g, a =>
(Var36 : Con36 -> Ty36 -> Type)
-> (vz : (g : _)-> (a : _) -> Var36 (snoc36 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var36 g a -> Var36 (snoc36 g b) a)
-> Var36 g a
vz36 : {g : _}-> {a : _} -> Var36 (snoc36 g a) a
vz36 = \ var, vz36, vs => vz36 _ _
vs36 : {g : _} -> {B : _} -> {a : _} -> Var36 g a -> Var36 (snoc36 g B) a
vs36 = \ x, var, vz36, vs36 => vs36 _ _ _ (x var vz36 vs36)
Tm36 : Con36 -> Ty36 -> Type
Tm36 = \ g, a =>
(Tm36 : Con36 -> Ty36 -> Type)
-> (var : (g : _) -> (a : _) -> Var36 g a -> Tm36 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm36 (snoc36 g a) B -> Tm36 g (arr36 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm36 g (arr36 a B) -> Tm36 g a -> Tm36 g B)
-> Tm36 g a
var36 : {g : _} -> {a : _} -> Var36 g a -> Tm36 g a
var36 = \ x, tm, var36, lam, app => var36 _ _ x
lam36 : {g : _} -> {a : _} -> {B : _} -> Tm36 (snoc36 g a) B -> Tm36 g (arr36 a B)
lam36 = \ t, tm, var36, lam36, app => lam36 _ _ _ (t tm var36 lam36 app)
app36 : {g:_}->{a:_}->{B:_} -> Tm36 g (arr36 a B) -> Tm36 g a -> Tm36 g B
app36 = \ t, u, tm, var36, lam36, app36 => app36 _ _ _ (t tm var36 lam36 app36) (u tm var36 lam36 app36)
v036 : {g:_}->{a:_} -> Tm36 (snoc36 g a) a
v036 = var36 vz36
v136 : {g:_}->{a:_}-> {B:_}-> Tm36 (snoc36 (snoc36 g a) B) a
v136 = var36 (vs36 vz36)
v236 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm36 (snoc36 (snoc36 (snoc36 g a) B) C) a
v236 = var36 (vs36 (vs36 vz36))
v336 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm36 (snoc36 (snoc36 (snoc36 (snoc36 g a) B) C) D) a
v336 = var36 (vs36 (vs36 (vs36 vz36)))
v436 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm36 (snoc36 (snoc36 (snoc36 (snoc36 (snoc36 g a) B) C) D) E) a
v436 = var36 (vs36 (vs36 (vs36 (vs36 vz36))))
test36 : {g:_}-> {a:_} -> Tm36 g (arr36 (arr36 a a) (arr36 a a))
test36 = lam36 (lam36 (app36 v136 (app36 v136 (app36 v136 (app36 v136 (app36 v136 (app36 v136 v036)))))))
Ty37 : Type
Ty37 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty37 : Ty37
empty37 = \ _, empty, _ => empty
arr37 : Ty37 -> Ty37 -> Ty37
arr37 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con37 : Type
Con37 = (Con37 : Type)
->(nil : Con37)
->(snoc : Con37 -> Ty37 -> Con37)
-> Con37
nil37 : Con37
nil37 = \ con, nil37, snoc => nil37
snoc37 : Con37 -> Ty37 -> Con37
snoc37 = \ g, a, con, nil37, snoc37 => snoc37 (g con nil37 snoc37) a
Var37 : Con37 -> Ty37 -> Type
Var37 = \ g, a =>
(Var37 : Con37 -> Ty37 -> Type)
-> (vz : (g : _)-> (a : _) -> Var37 (snoc37 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var37 g a -> Var37 (snoc37 g b) a)
-> Var37 g a
vz37 : {g : _}-> {a : _} -> Var37 (snoc37 g a) a
vz37 = \ var, vz37, vs => vz37 _ _
vs37 : {g : _} -> {B : _} -> {a : _} -> Var37 g a -> Var37 (snoc37 g B) a
vs37 = \ x, var, vz37, vs37 => vs37 _ _ _ (x var vz37 vs37)
Tm37 : Con37 -> Ty37 -> Type
Tm37 = \ g, a =>
(Tm37 : Con37 -> Ty37 -> Type)
-> (var : (g : _) -> (a : _) -> Var37 g a -> Tm37 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm37 (snoc37 g a) B -> Tm37 g (arr37 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm37 g (arr37 a B) -> Tm37 g a -> Tm37 g B)
-> Tm37 g a
var37 : {g : _} -> {a : _} -> Var37 g a -> Tm37 g a
var37 = \ x, tm, var37, lam, app => var37 _ _ x
lam37 : {g : _} -> {a : _} -> {B : _} -> Tm37 (snoc37 g a) B -> Tm37 g (arr37 a B)
lam37 = \ t, tm, var37, lam37, app => lam37 _ _ _ (t tm var37 lam37 app)
app37 : {g:_}->{a:_}->{B:_} -> Tm37 g (arr37 a B) -> Tm37 g a -> Tm37 g B
app37 = \ t, u, tm, var37, lam37, app37 => app37 _ _ _ (t tm var37 lam37 app37) (u tm var37 lam37 app37)
v037 : {g:_}->{a:_} -> Tm37 (snoc37 g a) a
v037 = var37 vz37
v137 : {g:_}->{a:_}-> {B:_}-> Tm37 (snoc37 (snoc37 g a) B) a
v137 = var37 (vs37 vz37)
v237 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm37 (snoc37 (snoc37 (snoc37 g a) B) C) a
v237 = var37 (vs37 (vs37 vz37))
v337 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm37 (snoc37 (snoc37 (snoc37 (snoc37 g a) B) C) D) a
v337 = var37 (vs37 (vs37 (vs37 vz37)))
v437 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm37 (snoc37 (snoc37 (snoc37 (snoc37 (snoc37 g a) B) C) D) E) a
v437 = var37 (vs37 (vs37 (vs37 (vs37 vz37))))
test37 : {g:_}-> {a:_} -> Tm37 g (arr37 (arr37 a a) (arr37 a a))
test37 = lam37 (lam37 (app37 v137 (app37 v137 (app37 v137 (app37 v137 (app37 v137 (app37 v137 v037)))))))
Ty38 : Type
Ty38 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty38 : Ty38
empty38 = \ _, empty, _ => empty
arr38 : Ty38 -> Ty38 -> Ty38
arr38 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con38 : Type
Con38 = (Con38 : Type)
->(nil : Con38)
->(snoc : Con38 -> Ty38 -> Con38)
-> Con38
nil38 : Con38
nil38 = \ con, nil38, snoc => nil38
snoc38 : Con38 -> Ty38 -> Con38
snoc38 = \ g, a, con, nil38, snoc38 => snoc38 (g con nil38 snoc38) a
Var38 : Con38 -> Ty38 -> Type
Var38 = \ g, a =>
(Var38 : Con38 -> Ty38 -> Type)
-> (vz : (g : _)-> (a : _) -> Var38 (snoc38 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var38 g a -> Var38 (snoc38 g b) a)
-> Var38 g a
vz38 : {g : _}-> {a : _} -> Var38 (snoc38 g a) a
vz38 = \ var, vz38, vs => vz38 _ _
vs38 : {g : _} -> {B : _} -> {a : _} -> Var38 g a -> Var38 (snoc38 g B) a
vs38 = \ x, var, vz38, vs38 => vs38 _ _ _ (x var vz38 vs38)
Tm38 : Con38 -> Ty38 -> Type
Tm38 = \ g, a =>
(Tm38 : Con38 -> Ty38 -> Type)
-> (var : (g : _) -> (a : _) -> Var38 g a -> Tm38 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm38 (snoc38 g a) B -> Tm38 g (arr38 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm38 g (arr38 a B) -> Tm38 g a -> Tm38 g B)
-> Tm38 g a
var38 : {g : _} -> {a : _} -> Var38 g a -> Tm38 g a
var38 = \ x, tm, var38, lam, app => var38 _ _ x
lam38 : {g : _} -> {a : _} -> {B : _} -> Tm38 (snoc38 g a) B -> Tm38 g (arr38 a B)
lam38 = \ t, tm, var38, lam38, app => lam38 _ _ _ (t tm var38 lam38 app)
app38 : {g:_}->{a:_}->{B:_} -> Tm38 g (arr38 a B) -> Tm38 g a -> Tm38 g B
app38 = \ t, u, tm, var38, lam38, app38 => app38 _ _ _ (t tm var38 lam38 app38) (u tm var38 lam38 app38)
v038 : {g:_}->{a:_} -> Tm38 (snoc38 g a) a
v038 = var38 vz38
v138 : {g:_}->{a:_}-> {B:_}-> Tm38 (snoc38 (snoc38 g a) B) a
v138 = var38 (vs38 vz38)
v238 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm38 (snoc38 (snoc38 (snoc38 g a) B) C) a
v238 = var38 (vs38 (vs38 vz38))
v338 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm38 (snoc38 (snoc38 (snoc38 (snoc38 g a) B) C) D) a
v338 = var38 (vs38 (vs38 (vs38 vz38)))
v438 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm38 (snoc38 (snoc38 (snoc38 (snoc38 (snoc38 g a) B) C) D) E) a
v438 = var38 (vs38 (vs38 (vs38 (vs38 vz38))))
test38 : {g:_}-> {a:_} -> Tm38 g (arr38 (arr38 a a) (arr38 a a))
test38 = lam38 (lam38 (app38 v138 (app38 v138 (app38 v138 (app38 v138 (app38 v138 (app38 v138 v038)))))))
Ty39 : Type
Ty39 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty39 : Ty39
empty39 = \ _, empty, _ => empty
arr39 : Ty39 -> Ty39 -> Ty39
arr39 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con39 : Type
Con39 = (Con39 : Type)
->(nil : Con39)
->(snoc : Con39 -> Ty39 -> Con39)
-> Con39
nil39 : Con39
nil39 = \ con, nil39, snoc => nil39
snoc39 : Con39 -> Ty39 -> Con39
snoc39 = \ g, a, con, nil39, snoc39 => snoc39 (g con nil39 snoc39) a
Var39 : Con39 -> Ty39 -> Type
Var39 = \ g, a =>
(Var39 : Con39 -> Ty39 -> Type)
-> (vz : (g : _)-> (a : _) -> Var39 (snoc39 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var39 g a -> Var39 (snoc39 g b) a)
-> Var39 g a
vz39 : {g : _}-> {a : _} -> Var39 (snoc39 g a) a
vz39 = \ var, vz39, vs => vz39 _ _
vs39 : {g : _} -> {B : _} -> {a : _} -> Var39 g a -> Var39 (snoc39 g B) a
vs39 = \ x, var, vz39, vs39 => vs39 _ _ _ (x var vz39 vs39)
Tm39 : Con39 -> Ty39 -> Type
Tm39 = \ g, a =>
(Tm39 : Con39 -> Ty39 -> Type)
-> (var : (g : _) -> (a : _) -> Var39 g a -> Tm39 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm39 (snoc39 g a) B -> Tm39 g (arr39 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm39 g (arr39 a B) -> Tm39 g a -> Tm39 g B)
-> Tm39 g a
var39 : {g : _} -> {a : _} -> Var39 g a -> Tm39 g a
var39 = \ x, tm, var39, lam, app => var39 _ _ x
lam39 : {g : _} -> {a : _} -> {B : _} -> Tm39 (snoc39 g a) B -> Tm39 g (arr39 a B)
lam39 = \ t, tm, var39, lam39, app => lam39 _ _ _ (t tm var39 lam39 app)
app39 : {g:_}->{a:_}->{B:_} -> Tm39 g (arr39 a B) -> Tm39 g a -> Tm39 g B
app39 = \ t, u, tm, var39, lam39, app39 => app39 _ _ _ (t tm var39 lam39 app39) (u tm var39 lam39 app39)
v039 : {g:_}->{a:_} -> Tm39 (snoc39 g a) a
v039 = var39 vz39
v139 : {g:_}->{a:_}-> {B:_}-> Tm39 (snoc39 (snoc39 g a) B) a
v139 = var39 (vs39 vz39)
v239 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm39 (snoc39 (snoc39 (snoc39 g a) B) C) a
v239 = var39 (vs39 (vs39 vz39))
v339 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm39 (snoc39 (snoc39 (snoc39 (snoc39 g a) B) C) D) a
v339 = var39 (vs39 (vs39 (vs39 vz39)))
v439 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm39 (snoc39 (snoc39 (snoc39 (snoc39 (snoc39 g a) B) C) D) E) a
v439 = var39 (vs39 (vs39 (vs39 (vs39 vz39))))
test39 : {g:_}-> {a:_} -> Tm39 g (arr39 (arr39 a a) (arr39 a a))
test39 = lam39 (lam39 (app39 v139 (app39 v139 (app39 v139 (app39 v139 (app39 v139 (app39 v139 v039)))))))
Ty40 : Type
Ty40 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty40 : Ty40
empty40 = \ _, empty, _ => empty
arr40 : Ty40 -> Ty40 -> Ty40
arr40 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con40 : Type
Con40 = (Con40 : Type)
->(nil : Con40)
->(snoc : Con40 -> Ty40 -> Con40)
-> Con40
nil40 : Con40
nil40 = \ con, nil40, snoc => nil40
snoc40 : Con40 -> Ty40 -> Con40
snoc40 = \ g, a, con, nil40, snoc40 => snoc40 (g con nil40 snoc40) a
Var40 : Con40 -> Ty40 -> Type
Var40 = \ g, a =>
(Var40 : Con40 -> Ty40 -> Type)
-> (vz : (g : _)-> (a : _) -> Var40 (snoc40 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var40 g a -> Var40 (snoc40 g b) a)
-> Var40 g a
vz40 : {g : _}-> {a : _} -> Var40 (snoc40 g a) a
vz40 = \ var, vz40, vs => vz40 _ _
vs40 : {g : _} -> {B : _} -> {a : _} -> Var40 g a -> Var40 (snoc40 g B) a
vs40 = \ x, var, vz40, vs40 => vs40 _ _ _ (x var vz40 vs40)
Tm40 : Con40 -> Ty40 -> Type
Tm40 = \ g, a =>
(Tm40 : Con40 -> Ty40 -> Type)
-> (var : (g : _) -> (a : _) -> Var40 g a -> Tm40 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm40 (snoc40 g a) B -> Tm40 g (arr40 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm40 g (arr40 a B) -> Tm40 g a -> Tm40 g B)
-> Tm40 g a
var40 : {g : _} -> {a : _} -> Var40 g a -> Tm40 g a
var40 = \ x, tm, var40, lam, app => var40 _ _ x
lam40 : {g : _} -> {a : _} -> {B : _} -> Tm40 (snoc40 g a) B -> Tm40 g (arr40 a B)
lam40 = \ t, tm, var40, lam40, app => lam40 _ _ _ (t tm var40 lam40 app)
app40 : {g:_}->{a:_}->{B:_} -> Tm40 g (arr40 a B) -> Tm40 g a -> Tm40 g B
app40 = \ t, u, tm, var40, lam40, app40 => app40 _ _ _ (t tm var40 lam40 app40) (u tm var40 lam40 app40)
v040 : {g:_}->{a:_} -> Tm40 (snoc40 g a) a
v040 = var40 vz40
v140 : {g:_}->{a:_}-> {B:_}-> Tm40 (snoc40 (snoc40 g a) B) a
v140 = var40 (vs40 vz40)
v240 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm40 (snoc40 (snoc40 (snoc40 g a) B) C) a
v240 = var40 (vs40 (vs40 vz40))
v340 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm40 (snoc40 (snoc40 (snoc40 (snoc40 g a) B) C) D) a
v340 = var40 (vs40 (vs40 (vs40 vz40)))
v440 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm40 (snoc40 (snoc40 (snoc40 (snoc40 (snoc40 g a) B) C) D) E) a
v440 = var40 (vs40 (vs40 (vs40 (vs40 vz40))))
test40 : {g:_}-> {a:_} -> Tm40 g (arr40 (arr40 a a) (arr40 a a))
test40 = lam40 (lam40 (app40 v140 (app40 v140 (app40 v140 (app40 v140 (app40 v140 (app40 v140 v040)))))))
Ty41 : Type
Ty41 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty41 : Ty41
empty41 = \ _, empty, _ => empty
arr41 : Ty41 -> Ty41 -> Ty41
arr41 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con41 : Type
Con41 = (Con41 : Type)
->(nil : Con41)
->(snoc : Con41 -> Ty41 -> Con41)
-> Con41
nil41 : Con41
nil41 = \ con, nil41, snoc => nil41
snoc41 : Con41 -> Ty41 -> Con41
snoc41 = \ g, a, con, nil41, snoc41 => snoc41 (g con nil41 snoc41) a
Var41 : Con41 -> Ty41 -> Type
Var41 = \ g, a =>
(Var41 : Con41 -> Ty41 -> Type)
-> (vz : (g : _)-> (a : _) -> Var41 (snoc41 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var41 g a -> Var41 (snoc41 g b) a)
-> Var41 g a
vz41 : {g : _}-> {a : _} -> Var41 (snoc41 g a) a
vz41 = \ var, vz41, vs => vz41 _ _
vs41 : {g : _} -> {B : _} -> {a : _} -> Var41 g a -> Var41 (snoc41 g B) a
vs41 = \ x, var, vz41, vs41 => vs41 _ _ _ (x var vz41 vs41)
Tm41 : Con41 -> Ty41 -> Type
Tm41 = \ g, a =>
(Tm41 : Con41 -> Ty41 -> Type)
-> (var : (g : _) -> (a : _) -> Var41 g a -> Tm41 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm41 (snoc41 g a) B -> Tm41 g (arr41 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm41 g (arr41 a B) -> Tm41 g a -> Tm41 g B)
-> Tm41 g a
var41 : {g : _} -> {a : _} -> Var41 g a -> Tm41 g a
var41 = \ x, tm, var41, lam, app => var41 _ _ x
lam41 : {g : _} -> {a : _} -> {B : _} -> Tm41 (snoc41 g a) B -> Tm41 g (arr41 a B)
lam41 = \ t, tm, var41, lam41, app => lam41 _ _ _ (t tm var41 lam41 app)
app41 : {g:_}->{a:_}->{B:_} -> Tm41 g (arr41 a B) -> Tm41 g a -> Tm41 g B
app41 = \ t, u, tm, var41, lam41, app41 => app41 _ _ _ (t tm var41 lam41 app41) (u tm var41 lam41 app41)
v041 : {g:_}->{a:_} -> Tm41 (snoc41 g a) a
v041 = var41 vz41
v141 : {g:_}->{a:_}-> {B:_}-> Tm41 (snoc41 (snoc41 g a) B) a
v141 = var41 (vs41 vz41)
v241 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm41 (snoc41 (snoc41 (snoc41 g a) B) C) a
v241 = var41 (vs41 (vs41 vz41))
v341 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm41 (snoc41 (snoc41 (snoc41 (snoc41 g a) B) C) D) a
v341 = var41 (vs41 (vs41 (vs41 vz41)))
v441 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm41 (snoc41 (snoc41 (snoc41 (snoc41 (snoc41 g a) B) C) D) E) a
v441 = var41 (vs41 (vs41 (vs41 (vs41 vz41))))
test41 : {g:_}-> {a:_} -> Tm41 g (arr41 (arr41 a a) (arr41 a a))
test41 = lam41 (lam41 (app41 v141 (app41 v141 (app41 v141 (app41 v141 (app41 v141 (app41 v141 v041)))))))
Ty42 : Type
Ty42 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty42 : Ty42
empty42 = \ _, empty, _ => empty
arr42 : Ty42 -> Ty42 -> Ty42
arr42 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con42 : Type
Con42 = (Con42 : Type)
->(nil : Con42)
->(snoc : Con42 -> Ty42 -> Con42)
-> Con42
nil42 : Con42
nil42 = \ con, nil42, snoc => nil42
snoc42 : Con42 -> Ty42 -> Con42
snoc42 = \ g, a, con, nil42, snoc42 => snoc42 (g con nil42 snoc42) a
Var42 : Con42 -> Ty42 -> Type
Var42 = \ g, a =>
(Var42 : Con42 -> Ty42 -> Type)
-> (vz : (g : _)-> (a : _) -> Var42 (snoc42 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var42 g a -> Var42 (snoc42 g b) a)
-> Var42 g a
vz42 : {g : _}-> {a : _} -> Var42 (snoc42 g a) a
vz42 = \ var, vz42, vs => vz42 _ _
vs42 : {g : _} -> {B : _} -> {a : _} -> Var42 g a -> Var42 (snoc42 g B) a
vs42 = \ x, var, vz42, vs42 => vs42 _ _ _ (x var vz42 vs42)
Tm42 : Con42 -> Ty42 -> Type
Tm42 = \ g, a =>
(Tm42 : Con42 -> Ty42 -> Type)
-> (var : (g : _) -> (a : _) -> Var42 g a -> Tm42 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm42 (snoc42 g a) B -> Tm42 g (arr42 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm42 g (arr42 a B) -> Tm42 g a -> Tm42 g B)
-> Tm42 g a
var42 : {g : _} -> {a : _} -> Var42 g a -> Tm42 g a
var42 = \ x, tm, var42, lam, app => var42 _ _ x
lam42 : {g : _} -> {a : _} -> {B : _} -> Tm42 (snoc42 g a) B -> Tm42 g (arr42 a B)
lam42 = \ t, tm, var42, lam42, app => lam42 _ _ _ (t tm var42 lam42 app)
app42 : {g:_}->{a:_}->{B:_} -> Tm42 g (arr42 a B) -> Tm42 g a -> Tm42 g B
app42 = \ t, u, tm, var42, lam42, app42 => app42 _ _ _ (t tm var42 lam42 app42) (u tm var42 lam42 app42)
v042 : {g:_}->{a:_} -> Tm42 (snoc42 g a) a
v042 = var42 vz42
v142 : {g:_}->{a:_}-> {B:_}-> Tm42 (snoc42 (snoc42 g a) B) a
v142 = var42 (vs42 vz42)
v242 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm42 (snoc42 (snoc42 (snoc42 g a) B) C) a
v242 = var42 (vs42 (vs42 vz42))
v342 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm42 (snoc42 (snoc42 (snoc42 (snoc42 g a) B) C) D) a
v342 = var42 (vs42 (vs42 (vs42 vz42)))
v442 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm42 (snoc42 (snoc42 (snoc42 (snoc42 (snoc42 g a) B) C) D) E) a
v442 = var42 (vs42 (vs42 (vs42 (vs42 vz42))))
test42 : {g:_}-> {a:_} -> Tm42 g (arr42 (arr42 a a) (arr42 a a))
test42 = lam42 (lam42 (app42 v142 (app42 v142 (app42 v142 (app42 v142 (app42 v142 (app42 v142 v042)))))))
Ty43 : Type
Ty43 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty43 : Ty43
empty43 = \ _, empty, _ => empty
arr43 : Ty43 -> Ty43 -> Ty43
arr43 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con43 : Type
Con43 = (Con43 : Type)
->(nil : Con43)
->(snoc : Con43 -> Ty43 -> Con43)
-> Con43
nil43 : Con43
nil43 = \ con, nil43, snoc => nil43
snoc43 : Con43 -> Ty43 -> Con43
snoc43 = \ g, a, con, nil43, snoc43 => snoc43 (g con nil43 snoc43) a
Var43 : Con43 -> Ty43 -> Type
Var43 = \ g, a =>
(Var43 : Con43 -> Ty43 -> Type)
-> (vz : (g : _)-> (a : _) -> Var43 (snoc43 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var43 g a -> Var43 (snoc43 g b) a)
-> Var43 g a
vz43 : {g : _}-> {a : _} -> Var43 (snoc43 g a) a
vz43 = \ var, vz43, vs => vz43 _ _
vs43 : {g : _} -> {B : _} -> {a : _} -> Var43 g a -> Var43 (snoc43 g B) a
vs43 = \ x, var, vz43, vs43 => vs43 _ _ _ (x var vz43 vs43)
Tm43 : Con43 -> Ty43 -> Type
Tm43 = \ g, a =>
(Tm43 : Con43 -> Ty43 -> Type)
-> (var : (g : _) -> (a : _) -> Var43 g a -> Tm43 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm43 (snoc43 g a) B -> Tm43 g (arr43 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm43 g (arr43 a B) -> Tm43 g a -> Tm43 g B)
-> Tm43 g a
var43 : {g : _} -> {a : _} -> Var43 g a -> Tm43 g a
var43 = \ x, tm, var43, lam, app => var43 _ _ x
lam43 : {g : _} -> {a : _} -> {B : _} -> Tm43 (snoc43 g a) B -> Tm43 g (arr43 a B)
lam43 = \ t, tm, var43, lam43, app => lam43 _ _ _ (t tm var43 lam43 app)
app43 : {g:_}->{a:_}->{B:_} -> Tm43 g (arr43 a B) -> Tm43 g a -> Tm43 g B
app43 = \ t, u, tm, var43, lam43, app43 => app43 _ _ _ (t tm var43 lam43 app43) (u tm var43 lam43 app43)
v043 : {g:_}->{a:_} -> Tm43 (snoc43 g a) a
v043 = var43 vz43
v143 : {g:_}->{a:_}-> {B:_}-> Tm43 (snoc43 (snoc43 g a) B) a
v143 = var43 (vs43 vz43)
v243 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm43 (snoc43 (snoc43 (snoc43 g a) B) C) a
v243 = var43 (vs43 (vs43 vz43))
v343 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm43 (snoc43 (snoc43 (snoc43 (snoc43 g a) B) C) D) a
v343 = var43 (vs43 (vs43 (vs43 vz43)))
v443 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm43 (snoc43 (snoc43 (snoc43 (snoc43 (snoc43 g a) B) C) D) E) a
v443 = var43 (vs43 (vs43 (vs43 (vs43 vz43))))
test43 : {g:_}-> {a:_} -> Tm43 g (arr43 (arr43 a a) (arr43 a a))
test43 = lam43 (lam43 (app43 v143 (app43 v143 (app43 v143 (app43 v143 (app43 v143 (app43 v143 v043)))))))
Ty44 : Type
Ty44 = (Ty : Type)
->(empty : Ty)
->(arr : Ty -> Ty -> Ty)
-> Ty
empty44 : Ty44
empty44 = \ _, empty, _ => empty
arr44 : Ty44 -> Ty44 -> Ty44
arr44 = \ a, b, ty, empty, arr => arr (a ty empty arr) (b ty empty arr)
Con44 : Type
Con44 = (Con44 : Type)
->(nil : Con44)
->(snoc : Con44 -> Ty44 -> Con44)
-> Con44
nil44 : Con44
nil44 = \ con, nil44, snoc => nil44
snoc44 : Con44 -> Ty44 -> Con44
snoc44 = \ g, a, con, nil44, snoc44 => snoc44 (g con nil44 snoc44) a
Var44 : Con44 -> Ty44 -> Type
Var44 = \ g, a =>
(Var44 : Con44 -> Ty44 -> Type)
-> (vz : (g : _)-> (a : _) -> Var44 (snoc44 g a) a)
-> (vs : (g : _)-> (b : _) -> (a : _) -> Var44 g a -> Var44 (snoc44 g b) a)
-> Var44 g a
vz44 : {g : _}-> {a : _} -> Var44 (snoc44 g a) a
vz44 = \ var, vz44, vs => vz44 _ _
vs44 : {g : _} -> {B : _} -> {a : _} -> Var44 g a -> Var44 (snoc44 g B) a
vs44 = \ x, var, vz44, vs44 => vs44 _ _ _ (x var vz44 vs44)
Tm44 : Con44 -> Ty44 -> Type
Tm44 = \ g, a =>
(Tm44 : Con44 -> Ty44 -> Type)
-> (var : (g : _) -> (a : _) -> Var44 g a -> Tm44 g a)
-> (lam : (g : _) -> (a : _) -> (B : _) -> Tm44 (snoc44 g a) B -> Tm44 g (arr44 a B))
-> (app : (g : _) -> (a : _) -> (B : _) -> Tm44 g (arr44 a B) -> Tm44 g a -> Tm44 g B)
-> Tm44 g a
var44 : {g : _} -> {a : _} -> Var44 g a -> Tm44 g a
var44 = \ x, tm, var44, lam, app => var44 _ _ x
lam44 : {g : _} -> {a : _} -> {B : _} -> Tm44 (snoc44 g a) B -> Tm44 g (arr44 a B)
lam44 = \ t, tm, var44, lam44, app => lam44 _ _ _ (t tm var44 lam44 app)
app44 : {g:_}->{a:_}->{B:_} -> Tm44 g (arr44 a B) -> Tm44 g a -> Tm44 g B
app44 = \ t, u, tm, var44, lam44, app44 => app44 _ _ _ (t tm var44 lam44 app44) (u tm var44 lam44 app44)
v044 : {g:_}->{a:_} -> Tm44 (snoc44 g a) a
v044 = var44 vz44
v144 : {g:_}->{a:_}-> {B:_}-> Tm44 (snoc44 (snoc44 g a) B) a
v144 = var44 (vs44 vz44)
v244 : {g:_}-> {a:_}-> {B:_}-> {C:_} -> Tm44 (snoc44 (snoc44 (snoc44 g a) B) C) a
v244 = var44 (vs44 (vs44 vz44))
v344 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_} -> Tm44 (snoc44 (snoc44 (snoc44 (snoc44 g a) B) C) D) a
v344 = var44 (vs44 (vs44 (vs44 vz44)))
v444 : {g:_}-> {a:_}-> {B:_}-> {C:_}-> {D:_}-> {E:_}-> Tm44 (snoc44 (snoc44 (snoc44 (snoc44 (snoc44 g a) B) C) D) E) a
v444 = var44 (vs44 (vs44 (vs44 (vs44 vz44))))
test44 : {g:_}-> {a:_} -> Tm44 g (arr44 (arr44 a a) (arr44 a a))
test44 = lam44 (lam44 (app44 v144 (app44 v144 (app44 v144 (app44 v144 (app44 v144 (app44 v144 v044)))))))