mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-15 22:32:19 +03:00
1d7207fe05
Co-authored-by: Guillaume Allais <guillaume.allais@ens-lyon.org>
3196 lines
106 KiB
Idris
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)))))))
|