DEFINITION pr2_gen_appl()
TYPE =
∀c:C
.∀u1:T
.∀t1:T
.∀x:T
.pr2 c (THead (Flat Appl) u1 t1) x
→(or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2)
BODY =
assume c: C
assume u1: T
assume t1: T
assume x: T
suppose H: pr2 c (THead (Flat Appl) u1 t1) x
assume y: T
suppose H0: pr2 c y x
we proceed by induction on H0 to prove
eq T y (THead (Flat Appl) u1 t1)
→(or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2)
case pr2_free : c0:C t0:T t2:T H1:pr0 t0 t2 ⇒
the thesis becomes
∀H2:eq T t0 (THead (Flat Appl) u1 t1)
.or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
suppose H2: eq T t0 (THead (Flat Appl) u1 t1)
(H3)
we proceed by induction on H2 to prove pr0 (THead (Flat Appl) u1 t1) t2
case refl_equal : ⇒
the thesis becomes the hypothesis H1
pr0 (THead (Flat Appl) u1 t1) t2
end of H3
by (pr0_gen_appl . . . H3)
we proved
or3
ex3_2 T T λu2:T.λt2:T.eq T t2 (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr0 u1 u2 λ:T.λt2:T.pr0 t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T t2 (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr0 u1 u2
λ:T.λz1:T.λ:T.λt2:T.pr0 z1 t2
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λu2:T
.λv2:T
.λt2:T.eq T t2 (THead (Bind b) v2 (THead (Flat Appl) (lift (S O) O u2) t2))
λ:B.λ:T.λ:T.λu2:T.λ:T.λ:T.pr0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λv2:T.λ:T.pr0 y1 v2
λ:B.λ:T.λz1:T.λ:T.λ:T.λt2:T.pr0 z1 t2
we proceed by induction on the previous result to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H4:ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr0 u1 u2 λ:T.λt3:T.pr0 t1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H4 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x0:T x1:T H5:eq T t2 (THead (Flat Appl) x0 x1) H6:pr0 u1 x0 H7:pr0 t1 x1 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Flat Appl) x0 x1) (THead (Flat Appl) x0 x1)
end of h1
(h2) by (pr2_free . . . H6) we proved pr2 c0 u1 x0
(h3) by (pr2_free . . . H7) we proved pr2 c0 t1 x1
by (ex3_2_intro . . . . . . . h1 h2 h3)
we proved
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x1) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
by (or3_intro0 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x1) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x1) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Flat Appl) x0 x1
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H5)
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H4:ex4_4 T T T T λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1) λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3) λ:T.λ:T.λu2:T.λ:T.pr0 u1 u2 λ:T.λz1:T.λ:T.λt3:T.pr0 z1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H4 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex4_4_intro : x0:T x1:T x2:T x3:T H5:eq T t1 (THead (Bind Abst) x0 x1) H6:eq T t2 (THead (Bind Abbr) x2 x3) H7:pr0 u1 x2 H8:pr0 x1 x3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) x0 x1)
end of h1
(h2)
by (refl_equal . .)
eq T (THead (Bind Abbr) x2 x3) (THead (Bind Abbr) x2 x3)
end of h2
(h3) by (pr2_free . . . H7) we proved pr2 c0 u1 x2
(h4)
assume b: B
assume u: T
by (pr2_free . . . H8)
we proved pr2 (CHead c0 (Bind b) u) x1 x3
∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) x1 x3)
end of h4
by (ex4_4_intro . . . . . . . . . . . . h1 h2 h3 h4)
we proved
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
by (or3_intro1 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x3) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind Abbr) x2 x3
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H5)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x3) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind Abbr) x2 x3
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H6)
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H4:ex6_6 B T T T T T λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst) λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1) λb:B.λ:T.λ:T.λu2:T.λv2:T.λt3:T.eq T t2 (THead (Bind b) v2 (THead (Flat Appl) (lift (S O) O u2) t3)) λ:B.λ:T.λ:T.λu2:T.λ:T.λ:T.pr0 u1 u2 λ:B.λy1:T.λ:T.λ:T.λv2:T.λ:T.pr0 y1 v2 λ:B.λ:T.λz1:T.λ:T.λ:T.λt3:T.pr0 z1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H4 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex6_6_intro : x0:B x1:T x2:T x3:T x4:T x5:T H5:not (eq B x0 Abst) H6:eq T t1 (THead (Bind x0) x1 x2) H7:eq T t2 (THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)) H8:pr0 u1 x3 H9:pr0 x1 x4 H10:pr0 x2 x5 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
end of h2
(h3) by (pr2_free . . . H8) we proved pr2 c0 u1 x3
(h4) by (pr2_free . . . H9) we proved pr2 c0 x1 x4
(h5)
by (pr2_free . . . H10)
pr2 (CHead c0 (Bind x0) x4) x2 x5
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H5 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H6)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H7)
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
∀H2:eq T t0 (THead (Flat Appl) u1 t1)
.or3
ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u:T.(pr2 (CHead c0 (Bind b) u) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T.eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case pr2_delta : c0:C d:C u:T i:nat H1:getl i c0 (CHead d (Bind Abbr) u) t0:T t2:T H2:pr0 t0 t2 t:T H3:subst0 i u t2 t ⇒
the thesis becomes
∀H4:eq T t0 (THead (Flat Appl) u1 t1)
.or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
suppose H4: eq T t0 (THead (Flat Appl) u1 t1)
(H5)
we proceed by induction on H4 to prove pr0 (THead (Flat Appl) u1 t1) t2
case refl_equal : ⇒
the thesis becomes the hypothesis H2
pr0 (THead (Flat Appl) u1 t1) t2
end of H5
by (pr0_gen_appl . . . H5)
we proved
or3
ex3_2 T T λu2:T.λt2:T.eq T t2 (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr0 u1 u2 λ:T.λt2:T.pr0 t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T t2 (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr0 u1 u2
λ:T.λz1:T.λ:T.λt2:T.pr0 z1 t2
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λu2:T
.λv2:T
.λt2:T.eq T t2 (THead (Bind b) v2 (THead (Flat Appl) (lift (S O) O u2) t2))
λ:B.λ:T.λ:T.λu2:T.λ:T.λ:T.pr0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λv2:T.λ:T.pr0 y1 v2
λ:B.λ:T.λz1:T.λ:T.λ:T.λt2:T.pr0 z1 t2
we proceed by induction on the previous result to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H6:ex3_2 T T λu2:T.λt3:T.eq T t2 (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr0 u1 u2 λ:T.λt3:T.pr0 t1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H6 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x0:T x1:T H7:eq T t2 (THead (Flat Appl) x0 x1) H8:pr0 u1 x0 H9:pr0 t1 x1 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H10)
we proceed by induction on H7 to prove subst0 i u (THead (Flat Appl) x0 x1) t
case refl_equal : ⇒
the thesis becomes the hypothesis H3
subst0 i u (THead (Flat Appl) x0 x1) t
end of H10
by (subst0_gen_head . . . . . . H10)
we proved
or3
ex2 T λu2:T.eq T t (THead (Flat Appl) u2 x1) λu2:T.subst0 i u x0 u2
ex2 T λt2:T.eq T t (THead (Flat Appl) x0 t2) λt2:T.subst0 (s (Flat Appl) i) u x1 t2
ex3_2
T
T
λu2:T.λt2:T.eq T t (THead (Flat Appl) u2 t2)
λu2:T.λ:T.subst0 i u x0 u2
λ:T.λt2:T.subst0 (s (Flat Appl) i) u x1 t2
we proceed by induction on the previous result to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H11:ex2 T λu2:T.eq T t (THead (Flat Appl) u2 x1) λu2:T.subst0 i u x0 u2 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H11 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x2:T H12:eq T t (THead (Flat Appl) x2 x1) H13:subst0 i u x0 x2 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Flat Appl) x2 x1) (THead (Flat Appl) x2 x1)
end of h1
(h2)
by (pr2_delta . . . . H1 . . H8 . H13)
pr2 c0 u1 x2
end of h2
(h3) by (pr2_free . . . H9) we proved pr2 c0 t1 x1
by (ex3_2_intro . . . . . . . h1 h2 h3)
we proved
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x1) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
by (or3_intro0 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x1) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x1) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Flat Appl) x2 x1
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H12)
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H11:ex2 T λt3:T.eq T t (THead (Flat Appl) x0 t3) λt3:T.subst0 (s (Flat Appl) i) u x1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H11 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x2:T H12:eq T t (THead (Flat Appl) x0 x2) H13:subst0 (s (Flat Appl) i) u x1 x2 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Flat Appl) x0 x2) (THead (Flat Appl) x0 x2)
end of h1
(h2) by (pr2_free . . . H8) we proved pr2 c0 u1 x0
(h3)
consider H13
we proved subst0 (s (Flat Appl) i) u x1 x2
that is equivalent to subst0 i u x1 x2
by (pr2_delta . . . . H1 . . H9 . previous)
pr2 c0 t1 x2
end of h3
by (ex3_2_intro . . . . . . . h1 h2 h3)
we proved
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x2) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
by (or3_intro0 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x2) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Flat Appl) x0 x2) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Flat Appl) x0 x2
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H12)
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H11:ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.subst0 i u x0 u2 λ:T.λt3:T.subst0 (s (Flat Appl) i) u x1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H11 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x2:T x3:T H12:eq T t (THead (Flat Appl) x2 x3) H13:subst0 i u x0 x2 H14:subst0 (s (Flat Appl) i) u x1 x3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Flat Appl) x2 x3) (THead (Flat Appl) x2 x3)
end of h1
(h2)
by (pr2_delta . . . . H1 . . H8 . H13)
pr2 c0 u1 x2
end of h2
(h3)
consider H14
we proved subst0 (s (Flat Appl) i) u x1 x3
that is equivalent to subst0 i u x1 x3
by (pr2_delta . . . . H1 . . H9 . previous)
pr2 c0 t1 x3
end of h3
by (ex3_2_intro . . . . . . . h1 h2 h3)
we proved
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x3) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
by (or3_intro0 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x3) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Flat Appl) x2 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Flat Appl) x2 x3
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H12)
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H6:ex4_4 T T T T λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1) λ:T.λ:T.λu2:T.λt3:T.eq T t2 (THead (Bind Abbr) u2 t3) λ:T.λ:T.λu2:T.λ:T.pr0 u1 u2 λ:T.λz1:T.λ:T.λt3:T.pr0 z1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H6 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex4_4_intro : x0:T x1:T x2:T x3:T H7:eq T t1 (THead (Bind Abst) x0 x1) H8:eq T t2 (THead (Bind Abbr) x2 x3) H9:pr0 u1 x2 H10:pr0 x1 x3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H11)
we proceed by induction on H8 to prove subst0 i u (THead (Bind Abbr) x2 x3) t
case refl_equal : ⇒
the thesis becomes the hypothesis H3
subst0 i u (THead (Bind Abbr) x2 x3) t
end of H11
by (subst0_gen_head . . . . . . H11)
we proved
or3
ex2 T λu2:T.eq T t (THead (Bind Abbr) u2 x3) λu2:T.subst0 i u x2 u2
ex2 T λt2:T.eq T t (THead (Bind Abbr) x2 t2) λt2:T.subst0 (s (Bind Abbr) i) u x3 t2
ex3_2
T
T
λu2:T.λt2:T.eq T t (THead (Bind Abbr) u2 t2)
λu2:T.λ:T.subst0 i u x2 u2
λ:T.λt2:T.subst0 (s (Bind Abbr) i) u x3 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H12:ex2 T λu2:T.eq T t (THead (Bind Abbr) u2 x3) λu2:T.subst0 i u x2 u2 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H12 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x4:T H13:eq T t (THead (Bind Abbr) x4 x3) H14:subst0 i u x2 x4 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) x0 x1)
end of h1
(h2)
by (refl_equal . .)
eq T (THead (Bind Abbr) x4 x3) (THead (Bind Abbr) x4 x3)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H9 . H14)
pr2 c0 u1 x4
end of h3
(h4)
assume b: B
assume u0: T
by (pr2_free . . . H10)
we proved pr2 (CHead c0 (Bind b) u0) x1 x3
∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) x1 x3)
end of h4
by (ex4_4_intro . . . . . . . . . . . . h1 h2 h3 h4)
we proved
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
by (or3_intro1 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x3) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x3) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind Abbr) x4 x3
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H13)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H12:ex2 T λt3:T.eq T t (THead (Bind Abbr) x2 t3) λt3:T.subst0 (s (Bind Abbr) i) u x3 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H12 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x4:T H13:eq T t (THead (Bind Abbr) x2 x4) H14:subst0 (s (Bind Abbr) i) u x3 x4 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) x0 x1)
end of h1
(h2)
by (refl_equal . .)
eq T (THead (Bind Abbr) x2 x4) (THead (Bind Abbr) x2 x4)
end of h2
(h3) by (pr2_free . . . H9) we proved pr2 c0 u1 x2
(h4)
assume b: B
assume u0: T
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind b) u0) (CHead c0 (Bind b) u0)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind b) u0) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H14
we proved subst0 (s (Bind Abbr) i) u x3 x4
subst0 (S i) u x3 x4
end of h2
by (pr2_delta . . . . h1 . . H10 . h2)
we proved pr2 (CHead c0 (Bind b) u0) x1 x4
∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) x1 x4)
end of h4
by (ex4_4_intro . . . . . . . . . . . . h1 h2 h3 h4)
we proved
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x4) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
by (or3_intro1 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x4) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x2 x4) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind Abbr) x2 x4
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H13)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H12:ex3_2 T T λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3) λu2:T.λ:T.subst0 i u x2 u2 λ:T.λt3:T.subst0 (s (Bind Abbr) i) u x3 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H12 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x4:T x5:T H13:eq T t (THead (Bind Abbr) x4 x5) H14:subst0 i u x2 x4 H15:subst0 (s (Bind Abbr) i) u x3 x5 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) x0 x1)
end of h1
(h2)
by (refl_equal . .)
eq T (THead (Bind Abbr) x4 x5) (THead (Bind Abbr) x4 x5)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H9 . H14)
pr2 c0 u1 x4
end of h3
(h4)
assume b: B
assume u0: T
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind b) u0) (CHead c0 (Bind b) u0)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind b) u0) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H15
we proved subst0 (s (Bind Abbr) i) u x3 x5
subst0 (S i) u x3 x5
end of h2
by (pr2_delta . . . . h1 . . H10 . h2)
we proved pr2 (CHead c0 (Bind b) u0) x1 x5
∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) x1 x5)
end of h4
by (ex4_4_intro . . . . . . . . . . . . h1 h2 h3 h4)
we proved
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x5) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
by (or3_intro1 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x5) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind Abbr) x4 x5) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind Abbr) x4 x5
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H13)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind Abst) x0 x1) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind Abst) x0 x1) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H7)
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H6:ex6_6 B T T T T T λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst) λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1) λb:B.λ:T.λ:T.λu2:T.λv2:T.λt3:T.eq T t2 (THead (Bind b) v2 (THead (Flat Appl) (lift (S O) O u2) t3)) λ:B.λ:T.λ:T.λu2:T.λ:T.λ:T.pr0 u1 u2 λ:B.λy1:T.λ:T.λ:T.λv2:T.λ:T.pr0 y1 v2 λ:B.λ:T.λz1:T.λ:T.λ:T.λt3:T.pr0 z1 t3 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H6 to prove
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex6_6_intro : x0:B x1:T x2:T x3:T x4:T x5:T H7:not (eq B x0 Abst) H8:eq T t1 (THead (Bind x0) x1 x2) H9:eq T t2 (THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)) H10:pr0 u1 x3 H11:pr0 x1 x4 H12:pr0 x2 x5 ⇒
the thesis becomes
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H13)
we proceed by induction on H9 to prove subst0 i u (THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)) t
case refl_equal : ⇒
the thesis becomes the hypothesis H3
subst0 i u (THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x5)) t
end of H13
by (subst0_gen_head . . . . . . H13)
we proved
or3
ex2
T
λu2:T.eq T t (THead (Bind x0) u2 (THead (Flat Appl) (lift (S O) O x3) x5))
λu2:T.subst0 i u x4 u2
ex2
T
λt2:T.eq T t (THead (Bind x0) x4 t2)
λt2:T.subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) t2
ex3_2
T
T
λu2:T.λt2:T.eq T t (THead (Bind x0) u2 t2)
λu2:T.λ:T.subst0 i u x4 u2
λ:T.λt2:T.subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H14:ex2 T λu2:T.eq T t (THead (Bind x0) u2 (THead (Flat Appl) (lift (S O) O x3) x5)) λu2:T.subst0 i u x4 u2 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H14 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x6:T H15:eq T t (THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)) H16:subst0 i u x4 x6 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
end of h2
(h3) by (pr2_free . . . H10) we proved pr2 c0 u1 x3
(h4)
by (pr2_delta . . . . H1 . . H11 . H16)
pr2 c0 x1 x6
end of h4
(h5)
by (pr2_free . . . H12)
pr2 (CHead c0 (Bind x0) x6) x2 x5
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H15)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H14:ex2 T λt3:T.eq T t (THead (Bind x0) x4 t3) λt3:T.subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H14 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x6:T H15:eq T t (THead (Bind x0) x4 x6) H16:subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) x6 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (subst0_gen_head . . . . . . H16)
we proved
or3
ex2
T
λu2:T.eq T x6 (THead (Flat Appl) u2 x5)
λu2:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2
ex2
T
λt2:T.eq T x6 (THead (Flat Appl) (lift (S O) O x3) t2)
λt2:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t2
ex3_2
T
T
λu2:T.λt2:T.eq T x6 (THead (Flat Appl) u2 t2)
λu2:T.λ:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2
λ:T.λt2:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H17:ex2 T λu2:T.eq T x6 (THead (Flat Appl) u2 x5) λu2:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H17 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x7:T H18:eq T x6 (THead (Flat Appl) x7 x5) H19:subst0 (s (Bind x0) i) u (lift (S O) O x3) x7 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (le_O_n .)
we proved le O i
by (le_n_S . . previous)
we proved le (S O) (S i)
that is equivalent to le (plus O (S O)) (s (Bind x0) i)
by (subst0_gen_lift_ge . . . . . . H19 previous)
we proved ex2 T λt2:T.eq T x7 (lift (S O) O t2) λt2:T.subst0 (minus (s (Bind x0) i) (S O)) u x3 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x8:T H20:eq T x7 (lift (S O) O x8) H21:subst0 (minus (s (Bind x0) i) (S O)) u x3 x8 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H22)
by (s_arith1 . .)
we proved eq nat (minus (s (Bind x0) i) (S O)) i
we proceed by induction on the previous result to prove subst0 i u x3 x8
case refl_equal : ⇒
the thesis becomes the hypothesis H21
subst0 i u x3 x8
end of H22
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H10 . H22)
pr2 c0 u1 x8
end of h3
(h4) by (pr2_free . . . H11) we proved pr2 c0 x1 x4
(h5)
by (pr2_free . . . H12)
pr2 (CHead c0 (Bind x0) x4) x2 x5
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x8) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H20)
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H18)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H17:ex2 T λt3:T.eq T x6 (THead (Flat Appl) (lift (S O) O x3) t3) λt3:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H17 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x7:T H18:eq T x6 (THead (Flat Appl) (lift (S O) O x3) x7) H19:subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x7 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
end of h2
(h3) by (pr2_free . . . H10) we proved pr2 c0 u1 x3
(h4) by (pr2_free . . . H11) we proved pr2 c0 x1 x4
(h5)
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind x0) x4) (CHead c0 (Bind x0) x4)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind x0) x4) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H19
we proved subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x7
subst0 (S i) u x5 x7
end of h2
by (pr2_delta . . . . h1 . . H12 . h2)
pr2 (CHead c0 (Bind x0) x4) x2 x7
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x3) x7)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H18)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H17:ex3_2 T T λu2:T.λt3:T.eq T x6 (THead (Flat Appl) u2 t3) λu2:T.λ:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2 λ:T.λt3:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H17 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x7:T x8:T H18:eq T x6 (THead (Flat Appl) x7 x8) H19:subst0 (s (Bind x0) i) u (lift (S O) O x3) x7 H20:subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x8 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (le_O_n .)
we proved le O i
by (le_n_S . . previous)
we proved le (S O) (S i)
that is equivalent to le (plus O (S O)) (s (Bind x0) i)
by (subst0_gen_lift_ge . . . . . . H19 previous)
we proved ex2 T λt2:T.eq T x7 (lift (S O) O t2) λt2:T.subst0 (minus (s (Bind x0) i) (S O)) u x3 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x9:T H21:eq T x7 (lift (S O) O x9) H22:subst0 (minus (s (Bind x0) i) (S O)) u x3 x9 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H23)
by (s_arith1 . .)
we proved eq nat (minus (s (Bind x0) i) (S O)) i
we proceed by induction on the previous result to prove subst0 i u x3 x9
case refl_equal : ⇒
the thesis becomes the hypothesis H22
subst0 i u x3 x9
end of H23
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H10 . H23)
pr2 c0 u1 x9
end of h3
(h4) by (pr2_free . . . H11) we proved pr2 c0 x1 x4
(h5)
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind x0) x4) (CHead c0 (Bind x0) x4)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind x0) x4) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H20
we proved subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x8
subst0 (S i) u x5 x8
end of h2
by (pr2_delta . . . . h1 . . H12 . h2)
pr2 (CHead c0 (Bind x0) x4) x2 x8
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) (lift (S O) O x9) x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H21)
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 (THead (Flat Appl) x7 x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H18)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x4 x6) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x4 x6
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H15)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H14:ex3_2 T T λu2:T.λt3:T.eq T t (THead (Bind x0) u2 t3) λu2:T.λ:T.subst0 i u x4 u2 λ:T.λt3:T.subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H14 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x6:T x7:T H15:eq T t (THead (Bind x0) x6 x7) H16:subst0 i u x4 x6 H17:subst0 (s (Bind x0) i) u (THead (Flat Appl) (lift (S O) O x3) x5) x7 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (subst0_gen_head . . . . . . H17)
we proved
or3
ex2
T
λu2:T.eq T x7 (THead (Flat Appl) u2 x5)
λu2:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2
ex2
T
λt2:T.eq T x7 (THead (Flat Appl) (lift (S O) O x3) t2)
λt2:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t2
ex3_2
T
T
λu2:T.λt2:T.eq T x7 (THead (Flat Appl) u2 t2)
λu2:T.λ:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2
λ:T.λt2:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro0 : H18:ex2 T λu2:T.eq T x7 (THead (Flat Appl) u2 x5) λu2:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H18 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x8:T H19:eq T x7 (THead (Flat Appl) x8 x5) H20:subst0 (s (Bind x0) i) u (lift (S O) O x3) x8 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (le_O_n .)
we proved le O i
by (le_n_S . . previous)
we proved le (S O) (S i)
that is equivalent to le (plus O (S O)) (s (Bind x0) i)
by (subst0_gen_lift_ge . . . . . . H20 previous)
we proved ex2 T λt2:T.eq T x8 (lift (S O) O t2) λt2:T.subst0 (minus (s (Bind x0) i) (S O)) u x3 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x9:T H21:eq T x8 (lift (S O) O x9) H22:subst0 (minus (s (Bind x0) i) (S O)) u x3 x9 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H23)
by (s_arith1 . .)
we proved eq nat (minus (s (Bind x0) i) (S O)) i
we proceed by induction on the previous result to prove subst0 i u x3 x9
case refl_equal : ⇒
the thesis becomes the hypothesis H22
subst0 i u x3 x9
end of H23
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H10 . H23)
pr2 c0 u1 x9
end of h3
(h4)
by (pr2_delta . . . . H1 . . H11 . H16)
pr2 c0 x1 x6
end of h4
(h5)
by (pr2_free . . . H12)
pr2 (CHead c0 (Bind x0) x6) x2 x5
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x9) x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H21)
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x5)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H19)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro1 : H18:ex2 T λt3:T.eq T x7 (THead (Flat Appl) (lift (S O) O x3) t3) λt3:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H18 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x8:T H19:eq T x7 (THead (Flat Appl) (lift (S O) O x3) x8) H20:subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x8 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
end of h2
(h3) by (pr2_free . . . H10) we proved pr2 c0 u1 x3
(h4)
by (pr2_delta . . . . H1 . . H11 . H16)
pr2 c0 x1 x6
end of h4
(h5)
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind x0) x6) (CHead c0 (Bind x0) x6)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind x0) x6) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H20
we proved subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x8
subst0 (S i) u x5 x8
end of h2
by (pr2_delta . . . . h1 . . H12 . h2)
pr2 (CHead c0 (Bind x0) x6) x2 x8
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x3) x8)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H19)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case or3_intro2 : H18:ex3_2 T T λu2:T.λt3:T.eq T x7 (THead (Flat Appl) u2 t3) λu2:T.λ:T.subst0 (s (Bind x0) i) u (lift (S O) O x3) u2 λ:T.λt3:T.subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 t3 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proceed by induction on H18 to prove
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex3_2_intro : x8:T x9:T H19:eq T x7 (THead (Flat Appl) x8 x9) H20:subst0 (s (Bind x0) i) u (lift (S O) O x3) x8 H21:subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x9 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (le_O_n .)
we proved le O i
by (le_n_S . . previous)
we proved le (S O) (S i)
that is equivalent to le (plus O (S O)) (s (Bind x0) i)
by (subst0_gen_lift_ge . . . . . . H20 previous)
we proved ex2 T λt2:T.eq T x8 (lift (S O) O t2) λt2:T.subst0 (minus (s (Bind x0) i) (S O)) u x3 t2
we proceed by induction on the previous result to prove
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
case ex_intro2 : x10:T H22:eq T x8 (lift (S O) O x10) H23:subst0 (minus (s (Bind x0) i) (S O)) u x3 x10 ⇒
the thesis becomes
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
(H24)
by (s_arith1 . .)
we proved eq nat (minus (s (Bind x0) i) (S O)) i
we proceed by induction on the previous result to prove subst0 i u x3 x10
case refl_equal : ⇒
the thesis becomes the hypothesis H23
subst0 i u x3 x10
end of H24
(h1)
by (refl_equal . .)
eq T (THead (Bind x0) x1 x2) (THead (Bind x0) x1 x2)
end of h1
(h2)
by (refl_equal . .)
eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
end of h2
(h3)
by (pr2_delta . . . . H1 . . H10 . H24)
pr2 c0 u1 x10
end of h3
(h4)
by (pr2_delta . . . . H1 . . H11 . H16)
pr2 c0 x1 x6
end of h4
(h5)
(h1)
by (clear_bind . . .)
we proved clear (CHead c0 (Bind x0) x6) (CHead c0 (Bind x0) x6)
by (getl_clear_bind . . . . previous . . H1)
getl (S i) (CHead c0 (Bind x0) x6) (CHead d (Bind Abbr) u)
end of h1
(h2)
consider H21
we proved subst0 (s (Flat Appl) (s (Bind x0) i)) u x5 x9
subst0 (S i) u x5 x9
end of h2
by (pr2_delta . . . . h1 . . H12 . h2)
pr2 (CHead c0 (Bind x0) x6) x2 x9
end of h5
by (ex6_6_intro . . . . . . . . . . . . . . . . . . H7 h1 h2 h3 h4 h5)
we proved
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (or3_intro2 . . . previous)
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) (lift (S O) O x10) x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H22)
or3
ex3_2
T
T
λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Flat Appl) u2 t4
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt4:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind Abbr) u2 t4
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Flat Appl) u2 t3
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T
.λ:T
.λu2:T
.λt3:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind Abbr) u2 t3
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 (THead (Flat Appl) x8 x9)
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H19)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T (THead (Bind x0) x6 x7) (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq
T
THead (Bind x0) x6 x7
THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H15)
or3
ex3_2
T
T
λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt4:T.pr2 c0 (THead (Bind x0) x1 x2) t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2
T
T
λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3)
λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λt3:T.pr2 c0 (THead (Bind x0) x1 x2) t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T (THead (Bind x0) x1 x2) (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
by (eq_ind_r . . . previous . H8)
or3
ex3_2 T T λu2:T.λt4:T.eq T t (THead (Flat Appl) u2 t4) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt4:T.pr2 c0 t1 t4
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt4:T.eq T t (THead (Bind Abbr) u2 t4)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt4:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t4)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
∀H4:eq T t0 (THead (Flat Appl) u1 t1)
.or3
ex3_2 T T λu2:T.λt3:T.eq T t (THead (Flat Appl) u2 t3) λu2:T.λ:T.pr2 c0 u1 u2 λ:T.λt3:T.pr2 c0 t1 t3
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt3:T.eq T t (THead (Bind Abbr) u2 t3)
λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:T.λz1:T.λ:T.λt3:T.∀b:B.∀u0:T.(pr2 (CHead c0 (Bind b) u0) z1 t3)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T t (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c0 u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c0 y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c0 (Bind b) y2) z1 z2
we proved
eq T y (THead (Flat Appl) u1 t1)
→(or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2)
we proved
∀y:T
.pr2 c y x
→(eq T y (THead (Flat Appl) u1 t1)
→(or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2))
by (insert_eq . . . . previous H)
we proved
or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2
we proved
∀c:C
.∀u1:T
.∀t1:T
.∀x:T
.pr2 c (THead (Flat Appl) u1 t1) x
→(or3
ex3_2 T T λu2:T.λt2:T.eq T x (THead (Flat Appl) u2 t2) λu2:T.λ:T.pr2 c u1 u2 λ:T.λt2:T.pr2 c t1 t2
ex4_4
T
T
T
T
λy1:T.λz1:T.λ:T.λ:T.eq T t1 (THead (Bind Abst) y1 z1)
λ:T.λ:T.λu2:T.λt2:T.eq T x (THead (Bind Abbr) u2 t2)
λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:T.λz1:T.λ:T.λt2:T.∀b:B.∀u:T.(pr2 (CHead c (Bind b) u) z1 t2)
ex6_6
B
T
T
T
T
T
λb:B.λ:T.λ:T.λ:T.λ:T.λ:T.not (eq B b Abst)
λb:B.λy1:T.λz1:T.λ:T.λ:T.λ:T.eq T t1 (THead (Bind b) y1 z1)
λb:B
.λ:T
.λ:T
.λz2:T
.λu2:T
.λy2:T
.eq T x (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))
λ:B.λ:T.λ:T.λ:T.λu2:T.λ:T.pr2 c u1 u2
λ:B.λy1:T.λ:T.λ:T.λ:T.λy2:T.pr2 c y1 y2
λb:B.λ:T.λz1:T.λz2:T.λ:T.λy2:T.pr2 (CHead c (Bind b) y2) z1 z2)