DEFINITION pr0_confluence()
TYPE =
∀t0:T.∀t1:T.(pr0 t0 t1)→∀t2:T.(pr0 t0 t2)→(ex2 T λt:T.pr0 t1 t λt:T.pr0 t2 t)
BODY =
assume t0: T
assume t: T
suppose H: ∀v:T.(tlt v t)→∀t1:T.(pr0 v t1)→∀t2:T.(pr0 v t2)→(ex2 T λt3:T.pr0 t1 t3 λt3:T.pr0 t2 t3)
assume t1: T
suppose H0: pr0 t t1
assume t2: T
suppose H1: pr0 t t2
(H2)
by cases on H0 we prove (eq T t t)→(eq T t1 t1)→(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
case pr0_refl t3:T ⇒
the thesis becomes ∀H2:(eq T t3 t).∀H3:(eq T t3 t1).(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
suppose H2: eq T t3 t
suppose H3: eq T t3 t1
by (sym_eq . . . H2)
we proved eq T t t3
suppose H4: eq T t t1
by (sym_eq . . . H4)
we proved eq T t1 t
we proceed by induction on the previous result to prove ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
(H5)
by cases on H1 we prove (eq T t t)→(eq T t2 t2)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_refl t4:T ⇒
the thesis becomes ∀H5:(eq T t4 t).∀H6:(eq T t4 t2).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H5: eq T t4 t
suppose H6: eq T t4 t2
by (sym_eq . . . H5)
we proved eq T t t4
suppose H7: eq T t t2
by (sym_eq . . . H7)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
(H9)
we proceed by induction on H7 to prove eq T t2 t1
case refl_equal : ⇒
the thesis becomes the hypothesis H4
eq T t2 t1
end of H9
(H10)
we proceed by induction on H7 to prove eq T t3 t2
case refl_equal : ⇒
the thesis becomes the hypothesis H2
eq T t3 t2
end of H10
(H11)
we proceed by induction on H7 to prove ∀v:T.(tlt v t2)→∀t6:T.(pr0 v t6)→∀t7:T.(pr0 v t7)→(ex2 T λt8:T.pr0 t6 t8 λt8:T.pr0 t7 t8)
case refl_equal : ⇒
the thesis becomes the hypothesis H
∀v:T.(tlt v t2)→∀t6:T.(pr0 v t6)→∀t7:T.(pr0 v t7)→(ex2 T λt8:T.pr0 t6 t8 λt8:T.pr0 t7 t8)
end of H11
(h1) by (pr0_refl .) we proved pr0 t1 t1
(h2) by (pr0_refl .) we proved pr0 t1 t1
by (ex_intro2 . . . . h1 h2)
we proved ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t1 t5
by (eq_ind_r . . . previous . H9)
ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
(eq T t t2)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous previous H6)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H5:(eq T t4 t).∀H6:(eq T t4 t2).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_comp u1:T u2:T H5:pr0 u1 u2 t4:T t5:T H6:pr0 t4 t5 k:K ⇒
the thesis becomes ∀H7:(eq T (THead k u1 t4) t).∀H8:(eq T (THead k u2 t5) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H7: eq T (THead k u1 t4) t
suppose H8: eq T (THead k u2 t5) t2
suppose H9: eq T (THead k u2 t5) t2
we proceed by induction on H9 to prove (pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes (pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t5) t7)
suppose H10: pr0 u1 u2
suppose H11: pr0 t4 t5
(H12)
by (eq_ind_r . . . H4 . H7)
eq T (THead k u1 t4) t1
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t5) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead k u1 t4) t6 λt6:T.pr0 (THead k u2 t5) t6
(h1)
by (pr0_comp . . H10 . . H11 .)
pr0 (THead k u1 t4) (THead k u2 t5)
end of h1
(h2)
by (pr0_refl .)
pr0 (THead k u2 t5) (THead k u2 t5)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead k u1 t4) t6 λt6:T.pr0 (THead k u2 t5) t6
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t5) t7
(pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t5) t7)
we proved (pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
(eq T (THead k u2 t5) t2)→(pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous H7 H8 H5 H6)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H7:(eq T (THead k u1 t4) t).∀H8:(eq T (THead k u2 t5) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_beta u:T v1:T v2:T H5:pr0 v1 v2 t4:T t5:T H6:pr0 t4 t5 ⇒
the thesis becomes
∀H7:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t
.∀H8:(eq T (THead (Bind Abbr) v2 t5) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H7: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t
suppose H8: eq T (THead (Bind Abbr) v2 t5) t2
suppose H9: eq T (THead (Bind Abbr) v2 t5) t2
we proceed by induction on H9 to prove (pr0 v1 v2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes (pr0 v1 v2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t5) t7)
suppose H10: pr0 v1 v2
suppose H11: pr0 t4 t5
(H12)
by (eq_ind_r . . . H4 . H7)
eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t1
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t5) t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt6:T.pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t6
λt6:T.pr0 (THead (Bind Abbr) v2 t5) t6
(h1)
by (pr0_beta . . . H10 . . H11)
pr0
THead (Flat Appl) v1 (THead (Bind Abst) u t4)
THead (Bind Abbr) v2 t5
end of h1
(h2)
by (pr0_refl .)
pr0 (THead (Bind Abbr) v2 t5) (THead (Bind Abbr) v2 t5)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt6:T.pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t6
λt6:T.pr0 (THead (Bind Abbr) v2 t5) t6
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t5) t7
(pr0 v1 v2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t5) t7)
we proved (pr0 v1 v2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
eq T (THead (Bind Abbr) v2 t5) t2
→(pr0 v1 v2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous H7 H8 H5 H6)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H7:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t
.∀H8:(eq T (THead (Bind Abbr) v2 t5) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_upsilon b:B H5:not (eq B b Abst) v1:T v2:T H6:pr0 v1 v2 u1:T u2:T H7:pr0 u1 u2 t4:T t5:T H8:pr0 t4 t5 ⇒
the thesis becomes
∀H9:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t
.∀H10:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2
.ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
suppose H9: eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t
suppose H10: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2
suppose H11: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2
we proceed by induction on H11 to prove
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t4 t5
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t7))))
suppose H12: not (eq B b Abst)
suppose H13: pr0 v1 v2
suppose H14: pr0 u1 u2
suppose H15: pr0 t4 t5
(H16)
by (eq_ind_r . . . H4 . H9)
eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t1
end of H16
we proceed by induction on H16 to prove
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t
λt:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t
by (pr0_refl .)
we proved pr0 v2 v2
by (pr0_confluence__pr0_cong_upsilon_refl . H12 . . H14 . . H15 . . . H13 previous)
ex2
T
λt:T.pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t
λt:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t
we proved
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t7
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t4 t5
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t7))))
we proved
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2
→(not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7))
by (previous H9 H10 H5 H6 H7 H8)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H9:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) t
.∀H10:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2
.ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case pr0_delta u1:T u2:T H5:pr0 u1 u2 t4:T t5:T H6:pr0 t4 t5 w:T H7:subst0 O u2 t5 w ⇒
the thesis becomes
∀H8:eq T (THead (Bind Abbr) u1 t4) t
.∀H9:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H8: eq T (THead (Bind Abbr) u1 t4) t
suppose H9: eq T (THead (Bind Abbr) u2 w) t2
suppose H10: eq T (THead (Bind Abbr) u2 w) t2
we proceed by induction on H10 to prove (pr0 u1 u2)→(pr0 t4 t5)→(subst0 O u2 t5 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t4 t5)→(subst0 O u2 t5 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
suppose H11: pr0 u1 u2
suppose H12: pr0 t4 t5
suppose H13: subst0 O u2 t5 w
(H14)
by (eq_ind_r . . . H4 . H8)
eq T (THead (Bind Abbr) u1 t4) t1
end of H14
we proceed by induction on H14 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead (Bind Abbr) u1 t4) t6 λt6:T.pr0 (THead (Bind Abbr) u2 w) t6
(h1)
by (pr0_delta . . H11 . . H12 . H13)
pr0 (THead (Bind Abbr) u1 t4) (THead (Bind Abbr) u2 w)
end of h1
(h2)
by (pr0_refl .)
pr0 (THead (Bind Abbr) u2 w) (THead (Bind Abbr) u2 w)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead (Bind Abbr) u1 t4) t6 λt6:T.pr0 (THead (Bind Abbr) u2 w) t6
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
pr0 u1 u2
→(pr0 t4 t5)→(subst0 O u2 t5 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
we proved (pr0 u1 u2)→(pr0 t4 t5)→(subst0 O u2 t5 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
eq T (THead (Bind Abbr) u2 w) t2
→(pr0 u1 u2)→(pr0 t4 t5)→(subst0 O u2 t5 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous H8 H9 H5 H6 H7)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H8:eq T (THead (Bind Abbr) u1 t4) t
.∀H9:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_zeta b:B H5:not (eq B b Abst) t4:T t5:T H6:pr0 t4 t5 u:T ⇒
the thesis becomes
∀H7:(eq T (THead (Bind b) u (lift (S O) O t4)) t).∀H8:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H7: eq T (THead (Bind b) u (lift (S O) O t4)) t
suppose H8: eq T t5 t2
suppose H9: eq T t5 t2
by (sym_eq . . . H9)
we proved eq T t2 t5
we proceed by induction on the previous result to prove (not (eq B b Abst))→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes (not (eq B b Abst))→(pr0 t4 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H10: not (eq B b Abst)
suppose H11: pr0 t4 t2
(H12)
by (eq_ind_r . . . H4 . H7)
eq T (THead (Bind b) u (lift (S O) O t4)) t1
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead (Bind b) u (lift (S O) O t4)) t6 λt6:T.pr0 t2 t6
(h1)
by (pr0_zeta . H10 . . H11 .)
pr0 (THead (Bind b) u (lift (S O) O t4)) t2
end of h1
(h2) by (pr0_refl .) we proved pr0 t2 t2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead (Bind b) u (lift (S O) O t4)) t6 λt6:T.pr0 t2 t6
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(not (eq B b Abst))→(pr0 t4 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (not (eq B b Abst))→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
(eq T t5 t2)→(not (eq B b Abst))→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous H7 H8 H5 H6)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H7:(eq T (THead (Bind b) u (lift (S O) O t4)) t).∀H8:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_tau t4:T t5:T H5:pr0 t4 t5 u:T ⇒
the thesis becomes ∀H6:(eq T (THead (Flat Cast) u t4) t).∀H7:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H6: eq T (THead (Flat Cast) u t4) t
suppose H7: eq T t5 t2
suppose H8: eq T t5 t2
by (sym_eq . . . H8)
we proved eq T t2 t5
we proceed by induction on the previous result to prove (pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case refl_equal : ⇒
the thesis becomes (pr0 t4 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H9: pr0 t4 t2
(H10)
by (eq_ind_r . . . H4 . H6)
eq T (THead (Flat Cast) u t4) t1
end of H10
we proceed by induction on H10 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead (Flat Cast) u t4) t6 λt6:T.pr0 t2 t6
(h1)
by (pr0_tau . . H9 .)
pr0 (THead (Flat Cast) u t4) t2
end of h1
(h2) by (pr0_refl .) we proved pr0 t2 t2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead (Flat Cast) u t4) t6 λt6:T.pr0 t2 t6
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(pr0 t4 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
(eq T t5 t2)→(pr0 t4 t5)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous H6 H7 H5)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H6:(eq T (THead (Flat Cast) u t4) t).∀H7:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
(eq T t t)→(eq T t2 t2)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
end of H5
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H5 h1 h2)
ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
we proved ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5
(eq T t t1)→(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
by (previous previous H3)
we proved ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5
∀H2:(eq T t3 t).∀H3:(eq T t3 t1).(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
case pr0_comp u1:T u2:T H2:pr0 u1 u2 t3:T t4:T H3:pr0 t3 t4 k:K ⇒
the thesis becomes ∀H4:(eq T (THead k u1 t3) t).∀H5:(eq T (THead k u2 t4) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H4: eq T (THead k u1 t3) t
suppose H5: eq T (THead k u2 t4) t1
suppose H6: eq T (THead k u2 t4) t1
we proceed by induction on H6 to prove (pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes (pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
suppose H7: pr0 u1 u2
suppose H8: pr0 t3 t4
(H9)
by cases on H1 we prove (eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
case pr0_refl t5:T ⇒
the thesis becomes ∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
suppose H9: eq T t5 t
suppose H10: eq T t5 t2
by (sym_eq . . . H9)
we proved eq T t t5
suppose H11: eq T t t2
by (sym_eq . . . H11)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(H12)
by (eq_ind_r . . . H11 . H4)
eq T (THead k u1 t3) t2
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead k u2 t4) t6 λt6:T.pr0 (THead k u1 t3) t6
(h1)
by (pr0_refl .)
pr0 (THead k u2 t4) (THead k u2 t4)
end of h1
(h2)
by (pr0_comp . . H7 . . H8 .)
pr0 (THead k u1 t3) (THead k u2 t4)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead k u2 t4) t6 λt6:T.pr0 (THead k u1 t3) t6
ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(eq T t t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
by (previous previous H10)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
case pr0_comp u0:T u3:T H9:pr0 u0 u3 t5:T t6:T H10:pr0 t5 t6 k0:K ⇒
the thesis becomes ∀H11:(eq T (THead k0 u0 t5) t).∀H12:(eq T (THead k0 u3 t6) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead k0 u0 t5) t
suppose H12: eq T (THead k0 u3 t6) t2
suppose H13: eq T (THead k0 u3 t6) t2
we proceed by induction on H13 to prove (pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7)
suppose H14: pr0 u0 u3
suppose H15: pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq T (THead k u1 t3) (THead k0 u0 t5)
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1
<λ:T.K> CASE THead k0 u0 t5 OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1 (THead k0 u0 t5)
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead k0 u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k0 u0 t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k0 u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k0 u0 t5)
end of H19
suppose H20: eq T u1 u0
suppose H21: eq K k k0
(H22)
by (eq_ind_r . . . H . H11)
∀v:T.(tlt v (THead k0 u0 t5))→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H22
(H23)
we proceed by induction on H20 to prove pr0 u0 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 u0 u2
end of H23
(H24)
consider H19
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k0 u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 t5 t4
end of H24
by (tlt_head_dx . . .)
we proved tlt t5 (THead k0 u0 t5)
by (H22 . previous . H24 . H15)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
case ex_intro2 : x:T H25:pr0 t4 x H26:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
by (tlt_head_sx . . .)
we proved tlt u0 (THead k0 u0 t5)
by (H22 . previous . H23 . H14)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
case ex_intro2 : x0:T H27:pr0 u2 x0 H28:pr0 u3 x0 ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
(h1)
by (pr0_comp . . H27 . . H25 .)
pr0 (THead k0 u2 t4) (THead k0 x0 x)
end of h1
(h2)
by (pr0_comp . . H28 . . H26 .)
pr0 (THead k0 u3 t6) (THead k0 x0 x)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
we proved ex2 T λt7:T.pr0 (THead k0 u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
by (eq_ind_r . . . previous . H21)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
(eq T u1 u0)→(eq K k k0)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead k0 u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq T u1 u0
end of h2
by (h1 h2)
(eq K k k0)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7)
end of h1
(h2)
consider H17
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1
<λ:T.K> CASE THead k0 u0 t5 OF TSort ⇒k | TLRef ⇒k | THead k1 ⇒k1
eq K k k0
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7
(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead k0 u3 t6) t7)
we proved (pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead k0 u3 t6) t2
→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H11:(eq T (THead k0 u0 t5) t).∀H12:(eq T (THead k0 u3 t6) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_beta u:T v1:T v2:T H9:pr0 v1 v2 t5:T t6:T H10:pr0 t5 t6 ⇒
the thesis becomes
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
.∀H12:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
suppose H12: eq T (THead (Bind Abbr) v2 t6) t2
suppose H13: eq T (THead (Bind Abbr) v2 t6) t2
we proceed by induction on H13 to prove (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 v1 v2
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
suppose H14: pr0 v1 v2
suppose H15: pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq T (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind Abst) u t5))
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
THead (Flat Appl) v1 (THead (Bind Abst) u t5)
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t5)
end of H19
suppose H20: eq T u1 v1
suppose H21: eq K k (Flat Appl)
(H22)
by (eq_ind_r . . . H . H11)
∀v:T
.tlt v (THead (Flat Appl) v1 (THead (Bind Abst) u t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H22
(H23)
we proceed by induction on H20 to prove pr0 v1 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 v1 u2
end of H23
(H24)
consider H19
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
that is equivalent to eq T t3 (THead (Bind Abst) u t5)
we proceed by induction on the previous result to prove pr0 (THead (Bind Abst) u t5) t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 (THead (Bind Abst) u t5) t4
end of H24
(H25)
by cases on H24 we prove
eq T (THead (Bind Abst) u t5) (THead (Bind Abst) u t5)
→(eq T t4 t4
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
case pr0_refl t7:T ⇒
the thesis becomes
∀H25:eq T t7 (THead (Bind Abst) u t5)
.∀H26:eq T t7 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H25: eq T t7 (THead (Bind Abst) u t5)
suppose H26: eq T t7 t4
by (sym_eq . . . H25)
we proved eq T (THead (Bind Abst) u t5) t7
suppose H27: eq T (THead (Bind Abst) u t5) t4
we proceed by induction on H27 to prove ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case refl_equal : ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8
λt8:T.pr0 (THead (Bind Abbr) v2 t6) t8
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind Abst) u t5))
by (H22 . previous . H23 . H14)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 v2 t10
we proceed by induction on the previous result to prove
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8
λt8:T.pr0 (THead (Bind Abbr) v2 t6) t8
case ex_intro2 : x:T H28:pr0 u2 x H29:pr0 v2 x ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8
λt8:T.pr0 (THead (Bind Abbr) v2 t6) t8
(h1)
by (pr0_beta . . . H28 . . H15)
pr0
THead (Flat Appl) u2 (THead (Bind Abst) u t5)
THead (Bind Abbr) x t6
end of h1
(h2)
by (pr0_refl .)
we proved pr0 t6 t6
by (pr0_comp . . H29 . . previous .)
pr0 (THead (Bind Abbr) v2 t6) (THead (Bind Abbr) x t6)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8
λt8:T.pr0 (THead (Bind Abbr) v2 t6) t8
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8
λt8:T.pr0 (THead (Bind Abbr) v2 t6) t8
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
eq T (THead (Bind Abst) u t5) t4
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
by (previous previous H26)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H25:eq T t7 (THead (Bind Abst) u t5)
.∀H26:eq T t7 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_comp u0:T u3:T H25:pr0 u0 u3 t7:T t8:T H26:pr0 t7 t8 k0:K ⇒
the thesis becomes
∀H27:eq T (THead k0 u0 t7) (THead (Bind Abst) u t5)
.∀H28:eq T (THead k0 u3 t8) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H27: eq T (THead k0 u0 t7) (THead (Bind Abst) u t5)
suppose H28: eq T (THead k0 u3 t8) t4
(H29)
by (f_equal . . . . . H27)
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead k0 u0 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
THead (Bind Abst) u t5
end of H29
(h1)
(H30)
by (f_equal . . . . . H27)
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9 (THead k0 u0 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind Abst) u t5
end of H30
(h1)
(H31)
by (f_equal . . . . . H27)
we proved
eq
K
<λ:T.K> CASE THead k0 u0 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind Abst) u t5 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead k0 u0 t7)
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
THead (Bind Abst) u t5
end of H31
consider H31
we proved
eq
K
<λ:T.K> CASE THead k0 u0 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind Abst) u t5 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
that is equivalent to eq K k0 (Bind Abst)
by (sym_eq . . . previous)
we proved eq K (Bind Abst) k0
we proceed by induction on the previous result to prove
eq T u0 u
→(eq T t7 t5
→(eq T (THead k0 u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
case refl_equal : ⇒
the thesis becomes
eq T u0 u
→(eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))))
suppose H32: eq T u0 u
by (sym_eq . . . H32)
we proved eq T u u0
we proceed by induction on the previous result to prove
eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
suppose H33: eq T t7 t5
by (sym_eq . . . H33)
we proved eq T t5 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t5 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
suppose H34: eq T (THead (Bind Abst) u3 t8) t4
we proceed by induction on H34 to prove
pr0 u u3
→(pr0 t5 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)
case refl_equal : ⇒
the thesis becomes
pr0 u u3
→(pr0 t5 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
suppose : pr0 u u3
suppose H36: pr0 t5 t8
(h1)
by (tlt_head_dx . . .)
tlt t5 (THead (Bind Abst) u t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abst) u t5
THead (Flat Appl) v1 (THead (Bind Abst) u t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t5 (THead (Flat Appl) v1 (THead (Bind Abst) u t5))
by (H22 . previous . H36 . H15)
we proved ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case ex_intro2 : x:T H37:pr0 t8 x H38:pr0 t6 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind Abst) u t5))
by (H22 . previous . H23 . H14)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 v2 t10
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case ex_intro2 : x0:T H39:pr0 u2 x0 H40:pr0 v2 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
(h1)
by (pr0_beta . . . H39 . . H37)
pr0
THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)
THead (Bind Abbr) x0 x
end of h1
(h2)
by (pr0_comp . . H40 . . H38 .)
pr0 (THead (Bind Abbr) v2 t6) (THead (Bind Abbr) x0 x)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
pr0 u u3
→(pr0 t5 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
we proved
pr0 u u3
→(pr0 t5 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)
eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t5 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
we proved
eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
we proved
eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
eq T u0 u
→(eq T t7 t5
→(eq T (THead (Bind Abst) u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))))
eq T u0 u
→(eq T t7 t5
→(eq T (THead k0 u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
end of h1
(h2)
consider H30
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq T u0 u
end of h2
by (h1 h2)
eq T t7 t5
→(eq T (THead k0 u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)))
end of h1
(h2)
consider H29
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t5
end of h2
by (h1 h2)
we proved
eq T (THead k0 u3 t8) t4
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
by (previous H28 H25 H26)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H27:eq T (THead k0 u0 t7) (THead (Bind Abst) u t5)
.∀H28:eq T (THead k0 u3 t8) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_beta u0:T v0:T v3:T H25:pr0 v0 v3 t7:T t8:T H26:pr0 t7 t8 ⇒
the thesis becomes
∀H27:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t5
.∀H28:eq T (THead (Bind Abbr) v3 t8) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H27:
eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t5
suppose H28: eq T (THead (Bind Abbr) v3 t8) t4
(H29)
we proceed by induction on H27 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H29
consider H29
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) v3 t8) t4
→(pr0 v0 v3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
we proved
eq T (THead (Bind Abbr) v3 t8) t4
→(pr0 v0 v3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
by (previous H28 H25 H26)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H27:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t5
.∀H28:eq T (THead (Bind Abbr) v3 t8) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_upsilon b:B H25:not (eq B b Abst) v0:T v3:T H26:pr0 v0 v3 u0:T u3:T H27:pr0 u0 u3 t7:T t8:T H28:pr0 t7 t8 ⇒
the thesis becomes
∀H29:eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t5
.∀H30:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H29:
eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t5
suppose H30: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
(H31)
we proceed by induction on H29 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H31
consider H31
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
→(not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
we proved
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
→(not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
by (previous H30 H25 H26 H27 H28)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H29:eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t5
.∀H30:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_delta u0:T u3:T H25:pr0 u0 u3 t7:T t8:T H26:pr0 t7 t8 w:T H27:subst0 O u3 t8 w ⇒
the thesis becomes
∀H28:eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t5)
.∀H29:eq T (THead (Bind Abbr) u3 w) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H28: eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t5)
suppose H29: eq T (THead (Bind Abbr) u3 w) t4
(H30)
we proceed by induction on H28 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
end of H30
consider H30
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) u3 w) t4
→(pr0 u0 u3
→(pr0 t7 t8
→(subst0 O u3 t8 w
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)))
we proved
eq T (THead (Bind Abbr) u3 w) t4
→(pr0 u0 u3
→(pr0 t7 t8
→(subst0 O u3 t8 w
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)))
by (previous H29 H25 H26 H27)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H28:eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t5)
.∀H29:eq T (THead (Bind Abbr) u3 w) t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_zeta b:B H25:not (eq B b Abst) t7:T t8:T H26:pr0 t7 t8 u0:T ⇒
the thesis becomes
∀H27:eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t5)
.∀H28:eq T t8 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H27:
eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t5)
suppose H28: eq T t8 t4
(H29)
by (f_equal . . . . . H27)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind Abst) u t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b) u0 (lift (S O) O t7)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind Abst) u t5
end of H29
(h1)
(H30)
by (f_equal . . . . . H27)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒u0
| TLRef ⇒u0
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind b) u0 (lift (S O) O t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind Abst) u t5
end of H30
(h1)
(H31)
by (f_equal . . . . . H27)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abst) u t5 OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
THead (Bind b) u0 (lift (S O) O t7)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
THead (Bind Abst) u t5
end of H31
consider H31
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abst) u t5 OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
that is equivalent to eq B b Abst
by (sym_eq . . . previous)
we proved eq B Abst b
we proceed by induction on the previous result to prove
eq T u0 u
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
case refl_equal : ⇒
the thesis becomes
eq T u0 u
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))))
suppose H32: eq T u0 u
by (sym_eq . . . H32)
we proved eq T u u0
we proceed by induction on the previous result to prove
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
suppose H33: eq T (lift (S O) O t7) t5
we proceed by induction on H33 to prove
eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
case refl_equal : ⇒
the thesis becomes
eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
suppose H34: eq T t8 t4
by (sym_eq . . . H34)
we proved eq T t4 t8
we proceed by induction on the previous result to prove
not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)
case refl_equal : ⇒
the thesis becomes
not (eq B Abst Abst)
→(pr0 t7 t4
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
suppose H35: not (eq B Abst Abst)
suppose : pr0 t7 t4
(H37)
by (refl_equal . .)
we proved eq B Abst Abst
by (H35 previous)
we proved False
by cases on the previous result we prove ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
end of H37
consider H37
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
not (eq B Abst Abst)
→(pr0 t7 t4
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
we proved
not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)
eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
we proved
eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
we proved
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10)))
eq T u0 u
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Flat Appl) u2 t4) t10 λt10:T.pr0 (THead (Bind Abbr) v2 t6) t10))))
eq T u0 u
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))))
end of h1
(h2)
consider H30
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒u0
| TLRef ⇒u0
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t5 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq T u0 u
end of h2
by (h1 h2)
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)))
end of h1
(h2)
consider H29
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind Abst) u t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq T (lift (S O) O t7) t5
end of h2
by (h1 h2)
we proved
eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9))
by (previous H28 H25 H26)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H27:eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t5)
.∀H28:eq T t8 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
case pr0_tau t7:T t8:T H25:pr0 t7 t8 u0:T ⇒
the thesis becomes
∀H26:eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t5)
.∀H27:eq T t8 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
suppose H26: eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t5)
suppose H27: eq T t8 t4
(H28)
we proceed by induction on H26 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H28
consider H28
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T t8 t4
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
we proved
eq T t8 t4
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
by (previous H27 H25)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
∀H26:eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t5)
.∀H27:eq T t8 t4
.ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
eq T (THead (Bind Abst) u t5) (THead (Bind Abst) u t5)
→(eq T t4 t4
→ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9)
end of H25
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) u t5) (THead (Bind Abst) u t5)
end of h1
(h2)
by (refl_equal . .)
eq T t4 t4
end of h2
by (H25 h1 h2)
we proved ex2 T λt9:T.pr0 (THead (Flat Appl) u2 t4) t9 λt9:T.pr0 (THead (Bind Abbr) v2 t6) t9
by (eq_ind_r . . . previous . H21)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
eq T u1 v1
→(eq K k (Flat Appl)
→ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq T u1 v1
end of h2
by (h1 h2)
eq K k (Flat Appl)
→ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
end of h1
(h2)
consider H17
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq K k (Flat Appl)
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
pr0 v1 v2
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
we proved (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) v2 t6) t2
→(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
.∀H12:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_upsilon b:B H9:not (eq B b Abst) v1:T v2:T H10:pr0 v1 v2 u0:T u3:T H11:pr0 u0 u3 t5:T t6:T H12:pr0 t5 t6 ⇒
the thesis becomes
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
.∀H14:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
suppose H13: eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
suppose H14: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
suppose H15: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
we proceed by induction on H15 to prove
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
suppose H16: not (eq B b Abst)
suppose H17: pr0 v1 v2
suppose H18: pr0 u0 u3
suppose H19: pr0 t5 t6
(H20)
by (eq_ind_r . . . H4 . H13)
eq T (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
end of H20
(H21)
by (f_equal . . . . . H20)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of H21
(h1)
(H22)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of H22
(h1)
(H23)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of H23
suppose H24: eq T u1 v1
suppose H25: eq K k (Flat Appl)
(H26)
by (eq_ind_r . . . H . H13)
∀v:T
.tlt v (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H26
(H27)
we proceed by induction on H24 to prove pr0 v1 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 v1 u2
end of H27
(H28)
consider H23
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
that is equivalent to eq T t3 (THead (Bind b) u0 t5)
we proceed by induction on the previous result to prove pr0 (THead (Bind b) u0 t5) t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 (THead (Bind b) u0 t5) t4
end of H28
(H29)
by cases on H28 we prove
eq T (THead (Bind b) u0 t5) (THead (Bind b) u0 t5)
→(eq T t4 t4
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
case pr0_refl t7:T ⇒
the thesis becomes
∀H29:eq T t7 (THead (Bind b) u0 t5)
.∀H30:eq T t7 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H29: eq T t7 (THead (Bind b) u0 t5)
suppose H30: eq T t7 t4
by (sym_eq . . . H29)
we proved eq T (THead (Bind b) u0 t5) t7
suppose H31: eq T (THead (Bind b) u0 t5) t4
we proceed by induction on H31 to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case refl_equal : ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t5)) t8
λt8:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t8
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
by (H26 . previous . H27 . H17)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 v2 t10
we proceed by induction on the previous result to prove
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t5)) t8
λt8:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t8
case ex_intro2 : x:T H32:pr0 u2 x H33:pr0 v2 x ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t5)) t
λt:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
by (pr0_confluence__pr0_cong_upsilon_refl . H16 . . H18 . . H19 . . . H32 H33)
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t5)) t
λt:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
ex2
T
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t5)) t8
λt8:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t8
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
eq T (THead (Bind b) u0 t5) t4
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)
by (previous previous H30)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H29:eq T t7 (THead (Bind b) u0 t5)
.∀H30:eq T t7 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_comp u4:T u5:T H29:pr0 u4 u5 t7:T t8:T H30:pr0 t7 t8 k0:K ⇒
the thesis becomes
∀H31:eq T (THead k0 u4 t7) (THead (Bind b) u0 t5)
.∀H32:eq T (THead k0 u5 t8) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H31: eq T (THead k0 u4 t7) (THead (Bind b) u0 t5)
suppose H32: eq T (THead k0 u5 t8) t4
(H33)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead k0 u4 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead (Bind b) u0 t5)
end of H33
(h1)
(H34)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead k0 u4 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead (Bind b) u0 t5)
end of H34
(h1)
(H35)
by (f_equal . . . . . H31)
we proved
eq
K
<λ:T.K> CASE THead k0 u4 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind b) u0 t5 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead k0 u4 t7)
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead (Bind b) u0 t5)
end of H35
consider H35
we proved
eq
K
<λ:T.K> CASE THead k0 u4 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind b) u0 t5 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
that is equivalent to eq K k0 (Bind b)
by (sym_eq . . . previous)
we proved eq K (Bind b) k0
we proceed by induction on the previous result to prove
eq T u4 u0
→(eq T t7 t5
→(eq T (THead k0 u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
case refl_equal : ⇒
the thesis becomes
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
suppose H36: eq T u4 u0
by (sym_eq . . . H36)
we proved eq T u0 u4
we proceed by induction on the previous result to prove
eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
case refl_equal : ⇒
the thesis becomes
eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
suppose H37: eq T t7 t5
by (sym_eq . . . H37)
we proved eq T t5 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
suppose H38: eq T (THead (Bind b) u5 t8) t4
we proceed by induction on H38 to prove
pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))
case refl_equal : ⇒
the thesis becomes
pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
suppose H39: pr0 u0 u5
suppose H40: pr0 t5 t8
(h1)
by (tlt_head_dx . . .)
tlt t5 (THead (Bind b) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u0 t5
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t5 (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
by (H26 . previous . H40 . H19)
we proved ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x:T H41:pr0 t8 x H42:pr0 t6 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
(h1)
by (tlt_head_sx . . .)
tlt u0 (THead (Bind b) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u0 t5
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt u0 (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
by (H26 . previous . H39 . H18)
we proved ex2 T λt10:T.pr0 u5 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x0:T H43:pr0 u5 x0 H44:pr0 u3 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind b) u0 t5))
by (H26 . previous . H27 . H17)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 v2 t10
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x1:T H45:pr0 u2 x1 H46:pr0 v2 x1 ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t
λt:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
by (pr0_confluence__pr0_cong_upsilon_cong . H16 . . . H45 H46 . . . H41 H42 . . . H43 H44)
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t
λt:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
we proved
pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))
eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t5 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
we proved
eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
we proved
eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind b) u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
eq T u4 u0
→(eq T t7 t5
→(eq T (THead k0 u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
end of h1
(h2)
consider H34
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq T u4 u0
end of h2
by (h1 h2)
eq T t7 t5
→(eq T (THead k0 u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))
end of h1
(h2)
consider H33
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t5
end of h2
by (h1 h2)
we proved
eq T (THead k0 u5 t8) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
by (previous H32 H29 H30)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H31:eq T (THead k0 u4 t7) (THead (Bind b) u0 t5)
.∀H32:eq T (THead k0 u5 t8) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_beta u:T v0:T v3:T H29:pr0 v0 v3 t7:T t8:T H30:pr0 t7 t8 ⇒
the thesis becomes
∀H31:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u0 t5
.∀H32:eq T (THead (Bind Abbr) v3 t8) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H31:
eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u0 t5
suppose H32: eq T (THead (Bind Abbr) v3 t8) t4
(H33)
we proceed by induction on H31 to prove
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H33
consider H33
we proved
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) v3 t8) t4
→(pr0 v0 v3
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
we proved
eq T (THead (Bind Abbr) v3 t8) t4
→(pr0 v0 v3
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
by (previous H32 H29 H30)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H31:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u0 t5
.∀H32:eq T (THead (Bind Abbr) v3 t8) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_upsilon b0:B H29:not (eq B b0 Abst) v0:T v3:T H30:pr0 v0 v3 u4:T u5:T H31:pr0 u4 u5 t7:T t8:T H32:pr0 t7 t8 ⇒
the thesis becomes
∀H33:eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u0 t5
.∀H34:eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H33:
eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u0 t5
suppose H34: eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
(H35)
we proceed by induction on H33 to prove
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b0) u4 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b0) u4 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H35
consider H35
we proved
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
→(not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
we proved
eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
→(not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
by (previous H34 H29 H30 H31 H32)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H33:eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u0 t5
.∀H34:eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_delta u4:T u5:T H29:pr0 u4 u5 t7:T t8:T H30:pr0 t7 t8 w:T H31:subst0 O u5 t8 w ⇒
the thesis becomes
∀H32:eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u0 t5)
.∀H33:eq T (THead (Bind Abbr) u5 w) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H32: eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u0 t5)
suppose H33: eq T (THead (Bind Abbr) u5 w) t4
(H34)
by (f_equal . . . . . H32)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
THead (Bind Abbr) u4 t7
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead (Bind b) u0 t5)
end of H34
(h1)
(H35)
by (f_equal . . . . . H32)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
THead (Bind Abbr) u4 t7
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead (Bind b) u0 t5)
end of H35
(h1)
(H36)
by (f_equal . . . . . H32)
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind Abbr) u4 t7
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind b) u0 t5
end of H36
consider H36
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
that is equivalent to eq B Abbr b
we proceed by induction on the previous result to prove
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))))
case refl_equal : ⇒
the thesis becomes
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))))
suppose H37: eq T u4 u0
by (sym_eq . . . H37)
we proved eq T u0 u4
we proceed by induction on the previous result to prove
eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
case refl_equal : ⇒
the thesis becomes
eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
suppose H38: eq T t7 t5
by (sym_eq . . . H38)
we proved eq T t5 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
suppose H39: eq T (THead (Bind Abbr) u5 w) t4
we proceed by induction on H39 to prove
pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
case refl_equal : ⇒
the thesis becomes
pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
suppose H40: pr0 u0 u5
suppose H41: pr0 t5 t8
suppose H42: subst0 O u5 t8 w
(H43)
consider H36
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
that is equivalent to eq B Abbr b
by (eq_ind_r . . . H26 . previous)
∀v:T
.tlt v (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5))
→∀t9:T.(pr0 v t9)→∀t10:T.(pr0 v t10)→(ex2 T λt11:T.pr0 t9 t11 λt11:T.pr0 t10 t11)
end of H43
(H45)
consider H36
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
that is equivalent to eq B Abbr b
by (eq_ind_r . . . H16 . previous)
not (eq B Abbr Abst)
end of H45
(h1)
by (tlt_head_dx . . .)
tlt t5 (THead (Bind Abbr) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abbr) u0 t5
THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t5 (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5))
by (H43 . previous . H41 . H19)
we proved ex2 T λt11:T.pr0 t8 t11 λt11:T.pr0 t6 t11
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x:T H46:pr0 t8 x H47:pr0 t6 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
(h1)
by (tlt_head_sx . . .)
tlt u0 (THead (Bind Abbr) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abbr) u0 t5
THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt u0 (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5))
by (H43 . previous . H40 . H18)
we proved ex2 T λt11:T.pr0 u5 t11 λt11:T.pr0 u3 t11
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x0:T H48:pr0 u5 x0 H49:pr0 u3 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5))
by (H43 . previous . H27 . H17)
we proved ex2 T λt11:T.pr0 u2 t11 λt11:T.pr0 v2 t11
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x1:T H50:pr0 u2 x1 H51:pr0 v2 x1 ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t
λt:T
.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
by (pr0_confluence__pr0_cong_upsilon_delta H45 . . . H42 . . . H50 H51 . . H46 H47 . . H48 H49)
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t
λt:T
.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9
λt9:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
we proved
pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t5 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
we proved
eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u0 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
we proved
eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))))
eq T u4 u0
→(eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))))
end of h1
(h2)
consider H35
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq T u4 u0
end of h2
by (h1 h2)
eq T t7 t5
→(eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
end of h1
(h2)
consider H34
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t5
end of h2
by (h1 h2)
we proved
eq T (THead (Bind Abbr) u5 w) t4
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))
by (previous H33 H29 H30 H31)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H32:eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u0 t5)
.∀H33:eq T (THead (Bind Abbr) u5 w) t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_zeta b0:B H29:not (eq B b0 Abst) t7:T t8:T H30:pr0 t7 t8 u:T ⇒
the thesis becomes
∀H31:eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u0 t5)
.∀H32:eq T t8 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H31: eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u0 t5)
suppose H32: eq T t8 t4
(H33)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind b) u0 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b0) u (lift (S O) O t7)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b) u0 t5
end of H33
(h1)
(H34)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒u
| TLRef ⇒u
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
THead (Bind b0) u (lift (S O) O t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
THead (Bind b) u0 t5
end of H34
(h1)
(H35)
by (f_equal . . . . . H31)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
THead (Bind b0) u (lift (S O) O t7)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
THead (Bind b) u0 t5
end of H35
consider H35
we proved
eq
B
<λ:T.B>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
<λ:T.B>
CASE THead (Bind b) u0 t5 OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
that is equivalent to eq B b0 b
by (sym_eq . . . previous)
we proved eq B b b0
we proceed by induction on the previous result to prove
eq T u u0
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
case refl_equal : ⇒
the thesis becomes
eq T u u0
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
suppose H36: eq T u u0
by (sym_eq . . . H36)
we proved eq T u0 u
we proceed by induction on the previous result to prove
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
case refl_equal : ⇒
the thesis becomes
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
suppose H37: eq T (lift (S O) O t7) t5
we proceed by induction on H37 to prove
eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
case refl_equal : ⇒
the thesis becomes
eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
suppose H38: eq T t8 t4
by (sym_eq . . . H38)
we proved eq T t4 t8
we proceed by induction on the previous result to prove
not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 t7 t4
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
suppose H39: not (eq B b Abst)
suppose H40: pr0 t7 t4
(H41)
by (eq_ind_r . . . H26 . H37)
∀v:T
.tlt v (THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) O t7)))
→∀t10:T.(pr0 v t10)→∀t11:T.(pr0 v t11)→(ex2 T λt12:T.pr0 t10 t12 λt12:T.pr0 t11 t12)
end of H41
(H43)
by (eq_ind_r . . . H19 . H37)
pr0 (lift (S O) O t7) t6
end of H43
by (pr0_gen_lift . . . . H43)
we proved ex2 T λt2:T.eq T t6 (lift (S O) O t2) λt2:T.pr0 t7 t2
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case ex_intro2 : x:T H44:eq T t6 (lift (S O) O x) H45:pr0 t7 x ⇒
the thesis becomes
ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10
(h1)
by (lift_tlt_dx . . . . .)
tlt t7 (THead (Bind b) u0 (lift (S O) O t7))
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u0 (lift (S O) O t7)
THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) O t7))
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t7 (THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) O t7)))
by (H41 . previous . H45 . H40)
we proved ex2 T λt12:T.pr0 x t12 λt12:T.pr0 t4 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
case ex_intro2 : x0:T H46:pr0 x x0 H47:pr0 t4 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
by (tlt_head_sx . . .)
we proved tlt v1 (THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) O t7)))
by (H41 . previous . H27 . H17)
we proved ex2 T λt12:T.pr0 u2 t12 λt12:T.pr0 v2 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
case ex_intro2 : x1:T H48:pr0 u2 x1 H49:pr0 v2 x1 ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 t4) t
λt:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t
by (pr0_confluence__pr0_cong_upsilon_zeta . H39 . . H18 . . . H48 H49 . . . H46 H47)
ex2
T
λt:T.pr0 (THead (Flat Appl) u2 t4) t
λt:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T
.pr0
THead
Bind b
u3
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
by (eq_ind_r . . . previous . H44)
ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
not (eq B b Abst)
→(pr0 t7 t4
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
we proved
not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))
eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
we proved
eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
we proved
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10))))
eq T u u0
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Flat Appl) u2 t4) t10
λt10:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))
eq T u u0
→(eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))
end of h1
(h2)
consider H34
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒u
| TLRef ⇒u
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u0 t5 OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
eq T u u0
end of h2
by (h1 h2)
eq T (lift (S O) O t7) t5
→(eq T t8 t4
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))
end of h1
(h2)
consider H33
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind b) u0 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq T (lift (S O) O t7) t5
end of h2
by (h1 h2)
we proved
eq T t8 t4
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))
by (previous H32 H29 H30)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H31:eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u0 t5)
.∀H32:eq T t8 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
case pr0_tau t7:T t8:T H29:pr0 t7 t8 u:T ⇒
the thesis becomes
∀H30:eq T (THead (Flat Cast) u t7) (THead (Bind b) u0 t5)
.∀H31:eq T t8 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
suppose H30: eq T (THead (Flat Cast) u t7) (THead (Bind b) u0 t5)
suppose H31: eq T t8 t4
(H32)
we proceed by induction on H30 to prove
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H32
consider H32
we proved
<λ:T.Prop>
CASE THead (Bind b) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T t8 t4
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
we proved
eq T t8 t4
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
by (previous H31 H29)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
∀H30:eq T (THead (Flat Cast) u t7) (THead (Bind b) u0 t5)
.∀H31:eq T t8 t4
.ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
eq T (THead (Bind b) u0 t5) (THead (Bind b) u0 t5)
→(eq T t4 t4
→(ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))
end of H29
(h1)
by (refl_equal . .)
eq T (THead (Bind b) u0 t5) (THead (Bind b) u0 t5)
end of h1
(h2)
by (refl_equal . .)
eq T t4 t4
end of h2
by (H29 h1 h2)
we proved
ex2
T
λt9:T.pr0 (THead (Flat Appl) u2 t4) t9
λt9:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9
by (eq_ind_r . . . previous . H25)
we proved
ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
eq T u1 v1
→(eq K k (Flat Appl)
→(ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))
end of h1
(h2)
consider H22
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq T u1 v1
end of h2
by (h1 h2)
eq K k (Flat Appl)
→(ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7)
end of h1
(h2)
consider H21
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq K k (Flat Appl)
end of h2
by (h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead k u2 t4) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
we proved
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
→(not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8))
by (previous H13 H14 H9 H10 H11 H12)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
.∀H14:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
case pr0_delta u0:T u3:T H9:pr0 u0 u3 t5:T t6:T H10:pr0 t5 t6 w:T H11:subst0 O u3 t6 w ⇒
the thesis becomes
∀H12:eq T (THead (Bind Abbr) u0 t5) t
.∀H13:(eq T (THead (Bind Abbr) u3 w) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
suppose H12: eq T (THead (Bind Abbr) u0 t5) t
suppose H13: eq T (THead (Bind Abbr) u3 w) t2
suppose H14: eq T (THead (Bind Abbr) u3 w) t2
we proceed by induction on H14 to prove (pr0 u0 u3)→(pr0 t5 t6)→(subst0 O u3 t6 w)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7))
suppose H15: pr0 u0 u3
suppose H16: pr0 t5 t6
suppose H17: subst0 O u3 t6 w
(H18)
by (eq_ind_r . . . H4 . H12)
eq T (THead k u1 t3) (THead (Bind Abbr) u0 t5)
end of H18
(H19)
by (f_equal . . . . . H18)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
THead (Bind Abbr) u0 t5
end of H19
(h1)
(H20)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind Abbr) u0 t5
end of H20
(h1)
(H21)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind Abbr) u0 t5
end of H21
suppose H22: eq T u1 u0
suppose H23: eq K k (Bind Abbr)
(H24)
by (eq_ind_r . . . H . H12)
∀v:T
.tlt v (THead (Bind Abbr) u0 t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H24
(H25)
we proceed by induction on H22 to prove pr0 u0 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 u0 u2
end of H25
(H26)
consider H21
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 t5 t4
end of H26
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Bind Abbr) u0 t5)
by (H24 . previous . H26 . H16)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
case ex_intro2 : x:T H27:pr0 t4 x H28:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Bind Abbr) u0 t5)
by (H24 . previous . H25 . H15)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
case ex_intro2 : x0:T H29:pr0 u2 x0 H30:pr0 u3 x0 ⇒
the thesis becomes
ex2 T λt:T.pr0 (THead (Bind Abbr) u2 t4) t λt:T.pr0 (THead (Bind Abbr) u3 w) t
by (pr0_confluence__pr0_cong_delta . . . H17 . . H29 H30 . . H27 H28)
ex2 T λt:T.pr0 (THead (Bind Abbr) u2 t4) t λt:T.pr0 (THead (Bind Abbr) u3 w) t
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
by (eq_ind_r . . . previous . H23)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
eq T u1 u0
→(eq K k (Bind Abbr)
→ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7)
end of h1
(h2)
consider H20
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq T u1 u0
end of h2
by (h1 h2)
eq K k (Bind Abbr)
→ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
end of h1
(h2)
consider H19
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
eq K k (Bind Abbr)
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w) t7))
we proved (pr0 u0 u3)→(pr0 t5 t6)→(subst0 O u3 t6 w)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) u3 w) t2
→(pr0 u0 u3)→(pr0 t5 t6)→(subst0 O u3 t6 w)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H12 H13 H9 H10 H11)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H12:eq T (THead (Bind Abbr) u0 t5) t
.∀H13:(eq T (THead (Bind Abbr) u3 w) t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_zeta b:B H9:not (eq B b Abst) t5:T t6:T H10:pr0 t5 t6 u:T ⇒
the thesis becomes
∀H11:eq T (THead (Bind b) u (lift (S O) O t5)) t
.∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead (Bind b) u (lift (S O) O t5)) t
suppose H12: eq T t6 t2
suppose H13: eq T t6 t2
by (sym_eq . . . H13)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (not (eq B b Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
suppose H14: not (eq B b Abst)
suppose H15: pr0 t5 t2
(H16)
by (eq_ind_r . . . H4 . H11)
eq T (THead k u1 t3) (THead (Bind b) u (lift (S O) O t5))
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
THead (Bind b) u (lift (S O) O t5)
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind b) u (lift (S O) O t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind b) u (lift (S O) O t5)
end of H19
suppose H20: eq T u1 u
suppose H21: eq K k (Bind b)
(H22)
by (eq_ind_r . . . H . H11)
∀v:T
.tlt v (THead (Bind b) u (lift (S O) O t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H22
(H24)
consider H19
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
that is equivalent to eq T t3 (lift (S O) O t5)
we proceed by induction on the previous result to prove pr0 (lift (S O) O t5) t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 (lift (S O) O t5) t4
end of H24
by (pr0_gen_lift . . . . H24)
we proved ex2 T λt2:T.eq T t4 (lift (S O) O t2) λt2:T.pr0 t5 t2
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind b) u2 t4) t7 λt7:T.pr0 t2 t7
case ex_intro2 : x:T H25:eq T t4 (lift (S O) O x) H26:pr0 t5 x ⇒
the thesis becomes ex2 T λt8:T.pr0 (THead (Bind b) u2 t4) t8 λt8:T.pr0 t2 t8
by (lift_tlt_dx . . . . .)
we proved tlt t5 (THead (Bind b) u (lift (S O) O t5))
by (H22 . previous . H26 . H15)
we proved ex2 T λt10:T.pr0 x t10 λt10:T.pr0 t2 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7 λt7:T.pr0 t2 t7
case ex_intro2 : x0:T H27:pr0 x x0 H28:pr0 t2 x0 ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7 λt7:T.pr0 t2 t7
by (pr0_zeta . H14 . . H27 .)
we proved pr0 (THead (Bind b) u2 (lift (S O) O x)) x0
by (ex_intro2 . . . . previous H28)
ex2 T λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7 λt7:T.pr0 t2 t7
by (eq_ind_r . . . previous . H25)
ex2 T λt8:T.pr0 (THead (Bind b) u2 t4) t8 λt8:T.pr0 t2 t8
we proved ex2 T λt7:T.pr0 (THead (Bind b) u2 t4) t7 λt7:T.pr0 t2 t7
by (eq_ind_r . . . previous . H21)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(eq T u1 u)→(eq K k (Bind b))→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq T u1 u
end of h2
by (h1 h2)
(eq K k (Bind b))→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H17
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒k
| TLRef ⇒k
| THead k0 ⇒k0
eq K k (Bind b)
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(not (eq B b Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
we proved (not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
eq T t6 t2
→(not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Bind b) u (lift (S O) O t5)) t
.∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_tau t5:T t6:T H9:pr0 t5 t6 u:T ⇒
the thesis becomes ∀H10:(eq T (THead (Flat Cast) u t5) t).∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
suppose H10: eq T (THead (Flat Cast) u t5) t
suppose H11: eq T t6 t2
suppose H12: eq T t6 t2
by (sym_eq . . . H12)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
suppose H13: pr0 t5 t2
(H14)
by (eq_ind_r . . . H4 . H10)
eq T (THead k u1 t3) (THead (Flat Cast) u t5)
end of H14
(H15)
by (f_equal . . . . . H14)
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K> CASE THead (Flat Cast) u t5 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0 (THead k u1 t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
THead (Flat Cast) u t5
end of H15
(h1)
(H16)
by (f_equal . . . . . H14)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Flat Cast) u t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Flat Cast) u t5
end of H16
(h1)
(H17)
by (f_equal . . . . . H14)
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Flat Cast) u t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Cast) u t5
end of H17
suppose H18: eq T u1 u
suppose H19: eq K k (Flat Cast)
(H20)
by (eq_ind_r . . . H . H10)
∀v:T
.tlt v (THead (Flat Cast) u t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H20
(H22)
consider H17
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Flat Cast) u t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 t5 t4
end of H22
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Flat Cast) u t5)
by (H20 . previous . H22 . H13)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t2 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Flat Cast) u2 t4) t7 λt7:T.pr0 t2 t7
case ex_intro2 : x:T H23:pr0 t4 x H24:pr0 t2 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Flat Cast) u2 t4) t7 λt7:T.pr0 t2 t7
by (pr0_tau . . H23 .)
we proved pr0 (THead (Flat Cast) u2 t4) x
by (ex_intro2 . . . . previous H24)
ex2 T λt7:T.pr0 (THead (Flat Cast) u2 t4) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Flat Cast) u2 t4) t7 λt7:T.pr0 t2 t7
by (eq_ind_r . . . previous . H19)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
eq T u1 u
→(eq K k (Flat Cast))→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H16
we proved
eq
T
<λ:T.T> CASE THead k u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Flat Cast) u t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq T u1 u
end of h2
by (h1 h2)
(eq K k (Flat Cast))→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H15
we proved
eq
K
<λ:T.K> CASE THead k u1 t3 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
<λ:T.K> CASE THead (Flat Cast) u t5 OF TSort ⇒k | TLRef ⇒k | THead k0 ⇒k0
eq K k (Flat Cast)
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
we proved (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H10 H11 H9)
we proved ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8
∀H10:(eq T (THead (Flat Cast) u t5) t).∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead k u2 t4) t8 λt8:T.pr0 t2 t8)
(eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
end of H9
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H9 h1 h2)
we proved ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7
(pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt7:T.pr0 (THead k u2 t4) t7 λt7:T.pr0 t2 t7)
we proved (pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
(eq T (THead k u2 t4) t1)→(pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous H4 H5 H2 H3)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H4:(eq T (THead k u1 t3) t).∀H5:(eq T (THead k u2 t4) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_beta u:T v1:T v2:T H2:pr0 v1 v2 t3:T t4:T H3:pr0 t3 t4 ⇒
the thesis becomes
∀H4:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t
.∀H5:(eq T (THead (Bind Abbr) v2 t4) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H4: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t
suppose H5: eq T (THead (Bind Abbr) v2 t4) t1
suppose H6: eq T (THead (Bind Abbr) v2 t4) t1
we proceed by induction on H6 to prove (pr0 v1 v2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes (pr0 v1 v2)→(pr0 t3 t4)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
suppose H7: pr0 v1 v2
suppose H8: pr0 t3 t4
(H9)
by cases on H1 we prove
(eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
case pr0_refl t5:T ⇒
the thesis becomes ∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
suppose H9: eq T t5 t
suppose H10: eq T t5 t2
by (sym_eq . . . H9)
we proved eq T t t5
suppose H11: eq T t t2
by (sym_eq . . . H11)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
(H12)
by (eq_ind_r . . . H11 . H4)
eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t2
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt6:T.pr0 (THead (Bind Abbr) v2 t4) t6
λt6:T.pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t6
(h1)
by (pr0_refl .)
pr0 (THead (Bind Abbr) v2 t4) (THead (Bind Abbr) v2 t4)
end of h1
(h2)
by (pr0_beta . . . H7 . . H8)
pr0
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Bind Abbr) v2 t4
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt6:T.pr0 (THead (Bind Abbr) v2 t4) t6
λt6:T.pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t6
ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
(eq T t t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
by (previous previous H10)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
case pr0_comp u1:T u2:T H9:pr0 u1 u2 t5:T t6:T H10:pr0 t5 t6 k:K ⇒
the thesis becomes
∀H11:eq T (THead k u1 t5) t
.∀H12:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead k u1 t5) t
suppose H12: eq T (THead k u2 t6) t2
suppose H13: eq T (THead k u2 t6) t2
we proceed by induction on H13 to prove (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7)
suppose H14: pr0 u1 u2
suppose H15: pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) (THead k u1 t5)
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
K
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
eq
K
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
THead k u1 t5
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7 (THead k u1 t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
THead k u1 t5
end of H19
suppose H20: eq T v1 u1
suppose H21: eq K (Flat Appl) k
we proceed by induction on H21 to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
(H22)
by (eq_ind_r . . . H11 . H21)
eq T (THead (Flat Appl) u1 t5) t
end of H22
(H23)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind Abst) u t3) t5
by (eq_ind_r . . . H15 . previous)
pr0 (THead (Bind Abst) u t3) t6
end of H23
(H24)
by cases on H23 we prove
eq T (THead (Bind Abst) u t3) (THead (Bind Abst) u t3)
→(eq T t6 t6
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
case pr0_refl t7:T ⇒
the thesis becomes
∀H24:eq T t7 (THead (Bind Abst) u t3)
.∀H25:eq T t7 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H24: eq T t7 (THead (Bind Abst) u t3)
suppose H25: eq T t7 t6
by (sym_eq . . . H24)
we proved eq T (THead (Bind Abst) u t3) t7
suppose H26: eq T (THead (Bind Abst) u t3) t6
we proceed by induction on H26 to prove ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case refl_equal : ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t3)) t8
(H27)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind Abst) u t3) t5
by (eq_ind_r . . . H22 . previous)
eq T (THead (Flat Appl) u1 (THead (Bind Abst) u t3)) t
end of H27
(H28)
by (eq_ind_r . . . H . H27)
∀v:T
.tlt v (THead (Flat Appl) u1 (THead (Bind Abst) u t3))
→∀t9:T.(pr0 v t9)→∀t10:T.(pr0 v t10)→(ex2 T λt11:T.pr0 t9 t11 λt11:T.pr0 t10 t11)
end of H28
(H29)
we proceed by induction on H20 to prove pr0 u1 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 u1 v2
end of H29
by (tlt_head_sx . . .)
we proved tlt u1 (THead (Flat Appl) u1 (THead (Bind Abst) u t3))
by (H28 . previous . H29 . H14)
we proved ex2 T λt11:T.pr0 v2 t11 λt11:T.pr0 u2 t11
we proceed by induction on the previous result to prove
ex2
T
λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t3)) t8
case ex_intro2 : x:T H30:pr0 v2 x H31:pr0 u2 x ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t3)) t8
(h1)
by (pr0_refl .)
we proved pr0 t4 t4
by (pr0_comp . . H30 . . previous .)
pr0 (THead (Bind Abbr) v2 t4) (THead (Bind Abbr) x t4)
end of h1
(h2)
by (pr0_beta . . . H31 . . H8)
pr0
THead (Flat Appl) u2 (THead (Bind Abst) u t3)
THead (Bind Abbr) x t4
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t3)) t8
ex2
T
λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8
λt8:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t3)) t8
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
eq T (THead (Bind Abst) u t3) t6
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
by (previous previous H25)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H24:eq T t7 (THead (Bind Abst) u t3)
.∀H25:eq T t7 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_comp u0:T u3:T H24:pr0 u0 u3 t7:T t8:T H25:pr0 t7 t8 k0:K ⇒
the thesis becomes
∀H26:eq T (THead k0 u0 t7) (THead (Bind Abst) u t3)
.∀H27:eq T (THead k0 u3 t8) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H26: eq T (THead k0 u0 t7) (THead (Bind Abst) u t3)
suppose H27: eq T (THead k0 u3 t8) t6
(H28)
by (f_equal . . . . . H26)
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead k0 u0 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
THead (Bind Abst) u t3
end of H28
(h1)
(H29)
by (f_equal . . . . . H26)
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9 (THead k0 u0 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind Abst) u t3
end of H29
(h1)
(H30)
by (f_equal . . . . . H26)
we proved
eq
K
<λ:T.K> CASE THead k0 u0 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind Abst) u t3 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead k0 u0 t7)
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
THead (Bind Abst) u t3
end of H30
consider H30
we proved
eq
K
<λ:T.K> CASE THead k0 u0 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind Abst) u t3 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
that is equivalent to eq K k0 (Bind Abst)
by (sym_eq . . . previous)
we proved eq K (Bind Abst) k0
we proceed by induction on the previous result to prove
eq T u0 u
→(eq T t7 t3
→(eq T (THead k0 u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
case refl_equal : ⇒
the thesis becomes
eq T u0 u
→(eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))))
suppose H31: eq T u0 u
by (sym_eq . . . H31)
we proved eq T u u0
we proceed by induction on the previous result to prove
eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
suppose H32: eq T t7 t3
by (sym_eq . . . H32)
we proved eq T t3 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t3 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
suppose H33: eq T (THead (Bind Abst) u3 t8) t6
we proceed by induction on H33 to prove
pr0 u u3
→(pr0 t3 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)
case refl_equal : ⇒
the thesis becomes
pr0 u u3
→(pr0 t3 t8
→(ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9))
suppose : pr0 u u3
suppose H35: pr0 t3 t8
(H36)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒THead (Bind Abst) u t3
| TLRef ⇒THead (Bind Abst) u t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind Abst) u t3) t5
by (eq_ind_r . . . H22 . previous)
eq T (THead (Flat Appl) u1 (THead (Bind Abst) u t3)) t
end of H36
(H37)
by (eq_ind_r . . . H . H36)
∀v:T
.tlt v (THead (Flat Appl) u1 (THead (Bind Abst) u t3))
→∀t10:T.(pr0 v t10)→∀t11:T.(pr0 v t11)→(ex2 T λt12:T.pr0 t10 t12 λt12:T.pr0 t11 t12)
end of H37
(H38)
we proceed by induction on H20 to prove pr0 u1 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 u1 v2
end of H38
by (tlt_head_sx . . .)
we proved tlt u1 (THead (Flat Appl) u1 (THead (Bind Abst) u t3))
by (H37 . previous . H38 . H14)
we proved ex2 T λt12:T.pr0 v2 t12 λt12:T.pr0 u2 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
case ex_intro2 : x:T H39:pr0 v2 x H40:pr0 u2 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
(h1)
by (tlt_head_dx . . .)
tlt t3 (THead (Bind Abst) u t3)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abst) u t3
THead (Flat Appl) u1 (THead (Bind Abst) u t3)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t3 (THead (Flat Appl) u1 (THead (Bind Abst) u t3))
by (H37 . previous . H35 . H8)
we proved ex2 T λt12:T.pr0 t8 t12 λt12:T.pr0 t4 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
case ex_intro2 : x0:T H41:pr0 t8 x0 H42:pr0 t4 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
(h1)
by (pr0_comp . . H39 . . H42 .)
pr0 (THead (Bind Abbr) v2 t4) (THead (Bind Abbr) x x0)
end of h1
(h2)
by (pr0_beta . . . H40 . . H41)
pr0
THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)
THead (Bind Abbr) x x0
end of h2
by (ex_intro2 . . . . h1 h2)
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
we proved
ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9
pr0 u u3
→(pr0 t3 t8
→(ex2
T
λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9
λt9:T.pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9))
we proved
pr0 u u3
→(pr0 t3 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)
eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t3 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
we proved
eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
we proved
eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
eq T u0 u
→(eq T t7 t3
→(eq T (THead (Bind Abst) u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))))
eq T u0 u
→(eq T t7 t3
→(eq T (THead k0 u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
end of h1
(h2)
consider H29
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq T u0 u
end of h2
by (h1 h2)
eq T t7 t3
→(eq T (THead k0 u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)))
end of h1
(h2)
consider H28
we proved
eq
T
<λ:T.T> CASE THead k0 u0 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t3
end of h2
by (h1 h2)
we proved
eq T (THead k0 u3 t8) t6
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))
by (previous H27 H24 H25)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H26:eq T (THead k0 u0 t7) (THead (Bind Abst) u t3)
.∀H27:eq T (THead k0 u3 t8) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_beta u0:T v0:T v3:T H24:pr0 v0 v3 t7:T t8:T H25:pr0 t7 t8 ⇒
the thesis becomes
∀H26:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t3
.∀H27:eq T (THead (Bind Abbr) v3 t8) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H26:
eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t3
suppose H27: eq T (THead (Bind Abbr) v3 t8) t6
(H28)
we proceed by induction on H26 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H28
consider H28
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) v3 t8) t6
→(pr0 v0 v3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))
we proved
eq T (THead (Bind Abbr) v3 t8) t6
→(pr0 v0 v3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))
by (previous H27 H24 H25)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H26:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)
THead (Bind Abst) u t3
.∀H27:eq T (THead (Bind Abbr) v3 t8) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_upsilon b:B H24:not (eq B b Abst) v0:T v3:T H25:pr0 v0 v3 u0:T u3:T H26:pr0 u0 u3 t7:T t8:T H27:pr0 t7 t8 ⇒
the thesis becomes
∀H28:eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t3
.∀H29:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H28:
eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t3
suppose H29: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
(H30)
we proceed by induction on H28 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b) u0 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H30
consider H30
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
→(not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
we proved
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
→(not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
by (previous H29 H24 H25 H26 H27)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H28:eq
T
THead (Flat Appl) v0 (THead (Bind b) u0 t7)
THead (Bind Abst) u t3
.∀H29:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_delta u0:T u3:T H24:pr0 u0 u3 t7:T t8:T H25:pr0 t7 t8 w:T H26:subst0 O u3 t8 w ⇒
the thesis becomes
∀H27:eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t3)
.∀H28:eq T (THead (Bind Abbr) u3 w) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H27: eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t3)
suppose H28: eq T (THead (Bind Abbr) u3 w) t6
(H29)
we proceed by induction on H27 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
end of H29
consider H29
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒
<λ:K.Prop>
CASE k0 OF
Bind b⇒<λ:B.Prop> CASE b OF Abbr⇒True | Abst⇒False | Void⇒False
| Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) u3 w) t6
→(pr0 u0 u3
→(pr0 t7 t8
→(subst0 O u3 t8 w
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)))
we proved
eq T (THead (Bind Abbr) u3 w) t6
→(pr0 u0 u3
→(pr0 t7 t8
→(subst0 O u3 t8 w
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)))
by (previous H28 H24 H25 H26)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H27:eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t3)
.∀H28:eq T (THead (Bind Abbr) u3 w) t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_zeta b:B H24:not (eq B b Abst) t7:T t8:T H25:pr0 t7 t8 u0:T ⇒
the thesis becomes
∀H26:eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t3)
.∀H27:eq T t8 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H26:
eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t3)
suppose H27: eq T t8 t6
(H28)
by (f_equal . . . . . H26)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind Abst) u t3 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b) u0 (lift (S O) O t7)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind Abst) u t3
end of H28
(h1)
(H29)
by (f_equal . . . . . H26)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒u0
| TLRef ⇒u0
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind b) u0 (lift (S O) O t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
THead (Bind Abst) u t3
end of H29
(h1)
(H30)
by (f_equal . . . . . H26)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abst) u t3 OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
THead (Bind b) u0 (lift (S O) O t7)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
THead (Bind Abst) u t3
end of H30
consider H30
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abst) u t3 OF
TSort ⇒b
| TLRef ⇒b
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒b
that is equivalent to eq B b Abst
by (sym_eq . . . previous)
we proved eq B Abst b
we proceed by induction on the previous result to prove
eq T u0 u
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
case refl_equal : ⇒
the thesis becomes
eq T u0 u
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))))
suppose H31: eq T u0 u
by (sym_eq . . . H31)
we proved eq T u u0
we proceed by induction on the previous result to prove
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
suppose H32: eq T (lift (S O) O t7) t3
we proceed by induction on H32 to prove
eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
case refl_equal : ⇒
the thesis becomes
eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
suppose H33: eq T t8 t6
by (sym_eq . . . H33)
we proved eq T t6 t8
we proceed by induction on the previous result to prove
not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)
case refl_equal : ⇒
the thesis becomes
not (eq B Abst Abst)
→(pr0 t7 t6
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
suppose H34: not (eq B Abst Abst)
suppose : pr0 t7 t6
(H36)
by (refl_equal . .)
we proved eq B Abst Abst
by (H34 previous)
we proved False
by cases on the previous result we prove ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
end of H36
consider H36
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
not (eq B Abst Abst)
→(pr0 t7 t6
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
we proved
not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)
eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
we proved
eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
we proved
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10)))
eq T u0 u
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B Abst Abst)
→(pr0 t7 t8
→ex2 T λt10:T.pr0 (THead (Bind Abbr) v2 t4) t10 λt10:T.pr0 (THead (Flat Appl) u2 t6) t10))))
eq T u0 u
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))))
end of h1
(h2)
consider H29
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒u0
| TLRef ⇒u0
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind Abst) u t3 OF TSort ⇒u0 | TLRef ⇒u0 | THead t9 ⇒t9
eq T u0 u
end of h2
by (h1 h2)
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)))
end of h1
(h2)
consider H28
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u0 (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind Abst) u t3 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u3 t10⇒THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq T (lift (S O) O t7) t3
end of h2
by (h1 h2)
we proved
eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9))
by (previous H27 H24 H25)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H26:eq T (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t3)
.∀H27:eq T t8 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
case pr0_tau t7:T t8:T H24:pr0 t7 t8 u0:T ⇒
the thesis becomes
∀H25:eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t3)
.∀H26:eq T t8 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
suppose H25: eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t3)
suppose H26: eq T t8 t6
(H27)
we proceed by induction on H25 to prove
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u0 t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H27
consider H27
we proved
<λ:T.Prop>
CASE THead (Bind Abst) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T t8 t6
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
we proved
eq T t8 t6
→(pr0 t7 t8
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
by (previous H26 H24)
we proved ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
∀H25:eq T (THead (Flat Cast) u0 t7) (THead (Bind Abst) u t3)
.∀H26:eq T t8 t6
.ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
eq T (THead (Bind Abst) u t3) (THead (Bind Abst) u t3)
→(eq T t6 t6
→ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9)
end of H24
(h1)
by (refl_equal . .)
eq T (THead (Bind Abst) u t3) (THead (Bind Abst) u t3)
end of h1
(h2)
by (refl_equal . .)
eq T t6 t6
end of h2
by (H24 h1 h2)
ex2 T λt9:T.pr0 (THead (Bind Abbr) v2 t4) t9 λt9:T.pr0 (THead (Flat Appl) u2 t6) t9
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7
eq T v1 u1
→(eq K (Flat Appl) k
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
eq T v1 u1
end of h2
by (h1 h2)
eq K (Flat Appl) k
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7
end of h1
(h2)
consider H17
we proved
eq
K
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
eq K (Flat Appl) k
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7
pr0 u1 u2
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead k u2 t6) t7)
we proved (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead k u2 t6) t2
→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead k u1 t5) t
.∀H12:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_beta u0:T v0:T v3:T H9:pr0 v0 v3 t5:T t6:T H10:pr0 t5 t6 ⇒
the thesis becomes
∀H11:eq T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) t
.∀H12:eq T (THead (Bind Abbr) v3 t6) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
suppose H11: eq T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) t
suppose H12: eq T (THead (Bind Abbr) v3 t6) t2
suppose H13: eq T (THead (Bind Abbr) v3 t6) t2
we proceed by induction on H13 to prove (pr0 v0 v3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 v0 v3
→(pr0 t5 t6
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7)
suppose H14: pr0 v0 v3
suppose H15: pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq
T
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)
end of H19
suppose : eq T u u0
suppose H21: eq T v1 v0
(H22)
by (eq_ind_r . . . H . H11)
∀v:T
.tlt v (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H22
(H23)
we proceed by induction on H21 to prove pr0 v0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H7
pr0 v0 v2
end of H23
(H24)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 t5 t4
end of H24
(h1)
by (tlt_head_dx . . .)
tlt t5 (THead (Bind Abst) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abst) u0 t5
THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t5 (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5))
by (H22 . previous . H24 . H15)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
case ex_intro2 : x:T H25:pr0 t4 x H26:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
by (tlt_head_sx . . .)
we proved tlt v0 (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5))
by (H22 . previous . H23 . H14)
we proved ex2 T λt10:T.pr0 v2 t10 λt10:T.pr0 v3 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
case ex_intro2 : x0:T H27:pr0 v2 x0 H28:pr0 v3 x0 ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
(h1)
by (pr0_comp . . H27 . . H25 .)
pr0 (THead (Bind Abbr) v2 t4) (THead (Bind Abbr) x0 x)
end of h1
(h2)
by (pr0_comp . . H28 . . H26 .)
pr0 (THead (Bind Abbr) v3 t6) (THead (Bind Abbr) x0 x)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
eq T u u0
→(eq T v1 v0
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
eq T u u0
end of h2
by (h1 h2)
eq T v1 v0
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
end of h1
(h2)
consider H17
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u0 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq T v1 v0
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
pr0 v0 v3
→(pr0 t5 t6
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7)
we proved (pr0 v0 v3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) v3 t6) t2
→(pr0 v0 v3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) t
.∀H12:eq T (THead (Bind Abbr) v3 t6) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
case pr0_upsilon b:B H9:not (eq B b Abst) v0:T v3:T H10:pr0 v0 v3 u1:T u2:T H11:pr0 u1 u2 t5:T t6:T H12:pr0 t5 t6 ⇒
the thesis becomes
∀H13:eq T (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) t
.∀H14:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
suppose H13: eq T (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) t
suppose H14: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
suppose H15: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
we proceed by induction on H15 to prove
not (eq B b Abst)
→(pr0 v0 v3)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))))
suppose H16: not (eq B b Abst)
suppose : pr0 v0 v3
suppose : pr0 u1 u2
suppose : pr0 t5 t6
(H20)
by (eq_ind_r . . . H4 . H13)
eq
T
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Flat Appl) v0 (THead (Bind b) u1 t5)
end of H20
(H21)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v0 (THead (Bind b) u1 t5)
end of H21
(h1)
(H22)
by (f_equal . . . . . H20)
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
THead (Flat Appl) v0 (THead (Bind b) u1 t5)
end of H22
(h1)
(H23)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
THead (Flat Appl) v0 (THead (Bind b) u1 t5)
end of H23
()
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u | TLRef ⇒u | THead t8 ⇒t8
eq T u u1
end of
suppose H26: eq B Abst b
suppose : eq T v1 v0
we proceed by induction on H26 to prove
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
(H28)
by (eq_ind_r . . . H16 . H26)
not (eq B Abst Abst)
end of H28
(H29)
by (refl_equal . .)
we proved eq B Abst Abst
by (H28 previous)
we proved False
by cases on the previous result we prove
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
end of H29
consider H29
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
eq B Abst b
→(eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))
end of h1
(h2)
consider H22
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒Abst
| TLRef ⇒Abst
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abst
eq B Abst b
end of h2
by (h1 h2)
eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7)
end of h1
(h2)
consider H21
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b) u1 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq T v1 v0
end of h2
by (h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
not (eq B b Abst)
→(pr0 v0 v3
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))))
we proved
not (eq B b Abst)
→(pr0 v0 v3)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
→(not (eq B b Abst)
→(pr0 v0 v3)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8))
by (previous H13 H14 H9 H10 H11 H12)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) t
.∀H14:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
case pr0_delta u1:T u2:T H9:pr0 u1 u2 t5:T t6:T H10:pr0 t5 t6 w:T H11:subst0 O u2 t6 w ⇒
the thesis becomes
∀H12:eq T (THead (Bind Abbr) u1 t5) t
.∀H13:eq T (THead (Bind Abbr) u2 w) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
suppose H12: eq T (THead (Bind Abbr) u1 t5) t
suppose H13: eq T (THead (Bind Abbr) u2 w) t2
suppose H14: eq T (THead (Bind Abbr) u2 w) t2
we proceed by induction on H14 to prove
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t5 t6
→(subst0 O u2 t6 w
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7))
suppose : pr0 u1 u2
suppose : pr0 t5 t6
suppose : subst0 O u2 t6 w
(H18)
by (eq_ind_r . . . H4 . H12)
eq
T
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Bind Abbr) u1 t5
end of H18
(H19)
we proceed by induction on H18 to prove
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H19
consider H19
we proved
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
pr0 u1 u2
→(pr0 t5 t6
→(subst0 O u2 t6 w
→ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7))
we proved
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) u2 w) t2
→(pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8))
by (previous H12 H13 H9 H10 H11)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H12:eq T (THead (Bind Abbr) u1 t5) t
.∀H13:eq T (THead (Bind Abbr) u2 w) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
case pr0_zeta b:B H9:not (eq B b Abst) t5:T t6:T H10:pr0 t5 t6 u0:T ⇒
the thesis becomes
∀H11:eq T (THead (Bind b) u0 (lift (S O) O t5)) t
.∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead (Bind b) u0 (lift (S O) O t5)) t
suppose H12: eq T t6 t2
suppose H13: eq T t6 t2
by (sym_eq . . . H13)
we proved eq T t2 t6
we proceed by induction on the previous result to prove
not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
suppose : not (eq B b Abst)
suppose : pr0 t5 t2
(H16)
by (eq_ind_r . . . H4 . H11)
eq
T
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Bind b) u0 (lift (S O) O t5)
end of H16
(H17)
we proceed by induction on H16 to prove
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H17
consider H17
we proved
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
not (eq B b Abst)
→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
we proved
not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
eq T t6 t2
→(not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8))
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Bind b) u0 (lift (S O) O t5)) t
.∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case pr0_tau t5:T t6:T H9:pr0 t5 t6 u0:T ⇒
the thesis becomes
∀H10:eq T (THead (Flat Cast) u0 t5) t
.∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
suppose H10: eq T (THead (Flat Cast) u0 t5) t
suppose H11: eq T t6 t2
suppose H12: eq T t6 t2
by (sym_eq . . . H12)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
suppose : pr0 t5 t2
(H14)
by (eq_ind_r . . . H4 . H10)
eq
T
THead (Flat Appl) v1 (THead (Bind Abst) u t3)
THead (Flat Cast) u0 t5
end of H14
(H15)
we proceed by induction on H14 to prove
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
end of H15
consider H15
we proved
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
we proved (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
by (previous H10 H11 H9)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8
∀H10:eq T (THead (Flat Cast) u0 t5) t
.∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) v2 t4) t8 λt8:T.pr0 t2 t8)
(eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
end of H9
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H9 h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7
(pr0 v1 v2)→(pr0 t3 t4)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) v2 t4) t7 λt7:T.pr0 t2 t7)
we proved (pr0 v1 v2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
eq T (THead (Bind Abbr) v2 t4) t1
→(pr0 v1 v2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous H4 H5 H2 H3)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H4:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t
.∀H5:(eq T (THead (Bind Abbr) v2 t4) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_upsilon b:B H2:not (eq B b Abst) v1:T v2:T H3:pr0 v1 v2 u1:T u2:T H4:pr0 u1 u2 t3:T t4:T H5:pr0 t3 t4 ⇒
the thesis becomes
∀H6:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t
.∀H7:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1
.ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
suppose H6: eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t
suppose H7: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1
suppose H8: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1
we proceed by induction on H8 to prove
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t3 t4
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))))
suppose H9: not (eq B b Abst)
suppose H10: pr0 v1 v2
suppose H11: pr0 u1 u2
suppose H12: pr0 t3 t4
(H13)
by cases on H1 we prove
eq T t t
→(eq T t2 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))
case pr0_refl t5:T ⇒
the thesis becomes
∀H13:eq T t5 t
.∀H14:eq T t5 t2
.ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
suppose H13: eq T t5 t
suppose H14: eq T t5 t2
by (sym_eq . . . H13)
we proved eq T t t5
suppose H15: eq T t t2
by (sym_eq . . . H15)
we proved eq T t2 t
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
(H16)
by (eq_ind_r . . . H15 . H6)
eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t2
end of H16
we proceed by induction on H16 to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) x
by (pr0_refl .)
we proved pr0 v2 v2
by (pr0_confluence__pr0_cong_upsilon_refl . H9 . . H11 . . H12 . . . H10 previous)
we proved
ex2
T
λt:T.pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t
λt:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
by (ex2_sym . . . previous)
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) x
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
eq T t t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7)
by (previous previous H14)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
∀H13:eq T t5 t
.∀H14:eq T t5 t2
.ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
case pr0_comp u0:T u3:T H13:pr0 u0 u3 t5:T t6:T H14:pr0 t5 t6 k:K ⇒
the thesis becomes
∀H15:eq T (THead k u0 t5) t
.∀H16:eq T (THead k u3 t6) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H15: eq T (THead k u0 t5) t
suppose H16: eq T (THead k u3 t6) t2
suppose H17: eq T (THead k u3 t6) t2
we proceed by induction on H17 to prove
pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
case refl_equal : ⇒
the thesis becomes
pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7))
suppose H18: pr0 u0 u3
suppose H19: pr0 t5 t6
(H20)
by (eq_ind_r . . . H6 . H15)
eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead k u0 t5)
end of H20
(H21)
by (f_equal . . . . . H20)
we proved
eq
K
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u0 t5 OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
eq
K
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
THead k u0 t5
end of H21
(h1)
(H22)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7 (THead k u0 t5)
end of H22
(h1)
(H23)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
THead k u0 t5
end of H23
suppose H24: eq T v1 u0
suppose H25: eq K (Flat Appl) k
we proceed by induction on H25 to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7
case refl_equal : ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
(H26)
by (eq_ind_r . . . H15 . H25)
eq T (THead (Flat Appl) u0 t5) t
end of H26
(H27)
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind b) u1 t3) t5
by (eq_ind_r . . . H19 . previous)
pr0 (THead (Bind b) u1 t3) t6
end of H27
(H28)
by cases on H27 we prove
eq T (THead (Bind b) u1 t3) (THead (Bind b) u1 t3)
→(eq T t6 t6
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
case pr0_refl t7:T ⇒
the thesis becomes
∀H28:eq T t7 (THead (Bind b) u1 t3)
.∀H29:eq T t7 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H28: eq T t7 (THead (Bind b) u1 t3)
suppose H29: eq T t7 t6
by (sym_eq . . . H28)
we proved eq T (THead (Bind b) u1 t3) t7
suppose H30: eq T (THead (Bind b) u1 t3) t6
we proceed by induction on H30 to prove
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case refl_equal : ⇒
the thesis becomes
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) t8
(H31)
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind b) u1 t3) t5
by (eq_ind_r . . . H26 . previous)
eq T (THead (Flat Appl) u0 (THead (Bind b) u1 t3)) t
end of H31
(H32)
by (eq_ind_r . . . H . H31)
∀v:T
.tlt v (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
→∀t9:T.(pr0 v t9)→∀t10:T.(pr0 v t10)→(ex2 T λt11:T.pr0 t9 t11 λt11:T.pr0 t10 t11)
end of H32
(H33)
we proceed by induction on H24 to prove pr0 u0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H10
pr0 u0 v2
end of H33
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
by (H32 . previous . H33 . H18)
we proved ex2 T λt11:T.pr0 v2 t11 λt11:T.pr0 u3 t11
we proceed by induction on the previous result to prove
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) t8
case ex_intro2 : x:T H34:pr0 v2 x H35:pr0 u3 x ⇒
the thesis becomes
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) x
by (pr0_confluence__pr0_cong_upsilon_refl . H9 . . H11 . . H12 . . . H35 H34)
we proved
ex2
T
λt:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) t
λt:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
by (ex2_sym . . . previous)
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) x
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) t8
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
eq T (THead (Bind b) u1 t3) t6
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)
by (previous previous H29)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H28:eq T t7 (THead (Bind b) u1 t3)
.∀H29:eq T t7 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_comp u4:T u5:T H28:pr0 u4 u5 t7:T t8:T H29:pr0 t7 t8 k0:K ⇒
the thesis becomes
∀H30:eq T (THead k0 u4 t7) (THead (Bind b) u1 t3)
.∀H31:eq T (THead k0 u5 t8) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H30: eq T (THead k0 u4 t7) (THead (Bind b) u1 t3)
suppose H31: eq T (THead k0 u5 t8) t6
(H32)
by (f_equal . . . . . H30)
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead k0 u4 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead (Bind b) u1 t3)
end of H32
(h1)
(H33)
by (f_equal . . . . . H30)
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead k0 u4 t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead (Bind b) u1 t3)
end of H33
(h1)
(H34)
by (f_equal . . . . . H30)
we proved
eq
K
<λ:T.K> CASE THead k0 u4 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind b) u1 t3 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead k0 u4 t7)
λe:T.<λ:T.K> CASE e OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1 (THead (Bind b) u1 t3)
end of H34
consider H34
we proved
eq
K
<λ:T.K> CASE THead k0 u4 t7 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
<λ:T.K> CASE THead (Bind b) u1 t3 OF TSort ⇒k0 | TLRef ⇒k0 | THead k1 ⇒k1
that is equivalent to eq K k0 (Bind b)
by (sym_eq . . . previous)
we proved eq K (Bind b) k0
we proceed by induction on the previous result to prove
eq T u4 u1
→(eq T t7 t3
→(eq T (THead k0 u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
case refl_equal : ⇒
the thesis becomes
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
suppose H35: eq T u4 u1
by (sym_eq . . . H35)
we proved eq T u1 u4
we proceed by induction on the previous result to prove
eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
case refl_equal : ⇒
the thesis becomes
eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
suppose H36: eq T t7 t3
by (sym_eq . . . H36)
we proved eq T t3 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
suppose H37: eq T (THead (Bind b) u5 t8) t6
we proceed by induction on H37 to prove
pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))
case refl_equal : ⇒
the thesis becomes
pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9))
suppose H38: pr0 u1 u5
suppose H39: pr0 t3 t8
(H40)
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind b) u1 t3) t5
by (eq_ind_r . . . H26 . previous)
eq T (THead (Flat Appl) u0 (THead (Bind b) u1 t3)) t
end of H40
(H41)
by (eq_ind_r . . . H . H40)
∀v:T
.tlt v (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
→∀t10:T.(pr0 v t10)→∀t11:T.(pr0 v t11)→(ex2 T λt12:T.pr0 t10 t12 λt12:T.pr0 t11 t12)
end of H41
(H42)
we proceed by induction on H24 to prove pr0 u0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H10
pr0 u0 v2
end of H42
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
by (H41 . previous . H42 . H18)
we proved ex2 T λt12:T.pr0 v2 t12 λt12:T.pr0 u3 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
case ex_intro2 : x:T H43:pr0 v2 x H44:pr0 u3 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
(h1)
by (tlt_head_dx . . .)
tlt t3 (THead (Bind b) u1 t3)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u1 t3
THead (Flat Appl) u0 (THead (Bind b) u1 t3)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t3 (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
by (H41 . previous . H39 . H12)
we proved ex2 T λt12:T.pr0 t8 t12 λt12:T.pr0 t4 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
case ex_intro2 : x0:T H45:pr0 t8 x0 H46:pr0 t4 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
(h1)
by (tlt_head_sx . . .)
tlt u1 (THead (Bind b) u1 t3)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u1 t3
THead (Flat Appl) u0 (THead (Bind b) u1 t3)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt u1 (THead (Flat Appl) u0 (THead (Bind b) u1 t3))
by (H41 . previous . H38 . H11)
we proved ex2 T λt12:T.pr0 u5 t12 λt12:T.pr0 u2 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
case ex_intro2 : x1:T H47:pr0 u5 x1 H48:pr0 u2 x1 ⇒
the thesis becomes
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) x
by (pr0_confluence__pr0_cong_upsilon_cong . H9 . . . H44 H43 . . . H45 H46 . . . H47 H48)
we proved
ex2
T
λt:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t
λt:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
by (ex2_sym . . . previous)
ex2
T
λx:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) x
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9
pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9))
we proved
pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))
eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t3 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
we proved
eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
we proved
eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind b) u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
eq T u4 u1
→(eq T t7 t3
→(eq T (THead k0 u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
end of h1
(h2)
consider H33
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq T u4 u1
end of h2
by (h1 h2)
eq T t7 t3
→(eq T (THead k0 u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))))
end of h1
(h2)
consider H32
we proved
eq
T
<λ:T.T> CASE THead k0 u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t3
end of h2
by (h1 h2)
we proved
eq T (THead k0 u5 t8) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))
by (previous H31 H28 H29)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H30:eq T (THead k0 u4 t7) (THead (Bind b) u1 t3)
.∀H31:eq T (THead k0 u5 t8) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_beta u:T v0:T v3:T H28:pr0 v0 v3 t7:T t8:T H29:pr0 t7 t8 ⇒
the thesis becomes
∀H30:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u1 t3
.∀H31:eq T (THead (Bind Abbr) v3 t8) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H30:
eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u1 t3
suppose H31: eq T (THead (Bind Abbr) v3 t8) t6
(H32)
we proceed by induction on H30 to prove
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H32
consider H32
we proved
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) v3 t8) t6
→(pr0 v0 v3
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))
we proved
eq T (THead (Bind Abbr) v3 t8) t6
→(pr0 v0 v3
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))
by (previous H31 H28 H29)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H30:eq
T
THead (Flat Appl) v0 (THead (Bind Abst) u t7)
THead (Bind b) u1 t3
.∀H31:eq T (THead (Bind Abbr) v3 t8) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_upsilon b0:B H28:not (eq B b0 Abst) v0:T v3:T H29:pr0 v0 v3 u4:T u5:T H30:pr0 u4 u5 t7:T t8:T H31:pr0 t7 t8 ⇒
the thesis becomes
∀H32:eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u1 t3
.∀H33:eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H32:
eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u1 t3
suppose H33: eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
(H34)
we proceed by induction on H32 to prove
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b0) u4 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v0 (THead (Bind b0) u4 t7) OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H34
consider H34
we proved
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
→(not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
we proved
eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
→(not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u4 u5
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
by (previous H33 H28 H29 H30 H31)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H32:eq
T
THead (Flat Appl) v0 (THead (Bind b0) u4 t7)
THead (Bind b) u1 t3
.∀H33:eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_delta u4:T u5:T H28:pr0 u4 u5 t7:T t8:T H29:pr0 t7 t8 w:T H30:subst0 O u5 t8 w ⇒
the thesis becomes
∀H31:eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u1 t3)
.∀H32:eq T (THead (Bind Abbr) u5 w) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H31: eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u1 t3)
suppose H32: eq T (THead (Bind Abbr) u5 w) t6
(H33)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
THead (Bind Abbr) u4 t7
λe:T.<λ:T.T> CASE e OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9 (THead (Bind b) u1 t3)
end of H33
(h1)
(H34)
by (f_equal . . . . . H31)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
THead (Bind Abbr) u4 t7
λe:T.<λ:T.T> CASE e OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9 (THead (Bind b) u1 t3)
end of H34
(h1)
(H35)
by (f_equal . . . . . H31)
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind Abbr) u4 t7
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind b) u1 t3
end of H35
consider H35
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
that is equivalent to eq B Abbr b
we proceed by induction on the previous result to prove
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))))))
case refl_equal : ⇒
the thesis becomes
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))))
suppose H36: eq T u4 u1
by (sym_eq . . . H36)
we proved eq T u1 u4
we proceed by induction on the previous result to prove
eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
case refl_equal : ⇒
the thesis becomes
eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
suppose H37: eq T t7 t3
by (sym_eq . . . H37)
we proved eq T t3 t7
we proceed by induction on the previous result to prove
eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
case refl_equal : ⇒
the thesis becomes
eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
suppose H38: eq T (THead (Bind Abbr) u5 w) t6
we proceed by induction on H38 to prove
pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
case refl_equal : ⇒
the thesis becomes
pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9)))
suppose H39: pr0 u1 u5
suppose H40: pr0 t3 t8
suppose H41: subst0 O u5 t8 w
(H42)
(h1)
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
eq T (THead (Bind b) u1 t3) t5
end of h1
(h2)
consider H35
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
eq B Abbr b
end of h2
by (eq_ind_r . . . h1 . h2)
eq T (THead (Bind Abbr) u1 t3) t5
end of H42
(H43)
consider H35
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u4 t7 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b0⇒b0 | Flat ⇒Abbr
that is equivalent to eq B Abbr b
by (eq_ind_r . . . H9 . previous)
not (eq B Abbr Abst)
end of H43
(H45)
by (eq_ind_r . . . H26 . H42)
eq T (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3)) t
end of H45
(H46)
by (eq_ind_r . . . H . H45)
∀v:T
.tlt v (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3))
→∀t10:T.(pr0 v t10)→∀t11:T.(pr0 v t11)→(ex2 T λt12:T.pr0 t10 t12 λt12:T.pr0 t11 t12)
end of H46
(H47)
we proceed by induction on H24 to prove pr0 u0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H10
pr0 u0 v2
end of H47
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3))
by (H46 . previous . H47 . H18)
we proved ex2 T λt12:T.pr0 v2 t12 λt12:T.pr0 u3 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
case ex_intro2 : x:T H48:pr0 v2 x H49:pr0 u3 x ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
(h1)
by (tlt_head_dx . . .)
tlt t3 (THead (Bind Abbr) u1 t3)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abbr) u1 t3
THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t3 (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3))
by (H46 . previous . H40 . H12)
we proved ex2 T λt12:T.pr0 t8 t12 λt12:T.pr0 t4 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
case ex_intro2 : x0:T H50:pr0 t8 x0 H51:pr0 t4 x0 ⇒
the thesis becomes
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
(h1)
by (tlt_head_sx . . .)
tlt u1 (THead (Bind Abbr) u1 t3)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind Abbr) u1 t3
THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3)
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt u1 (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3))
by (H46 . previous . H39 . H11)
we proved ex2 T λt12:T.pr0 u5 t12 λt12:T.pr0 u2 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
case ex_intro2 : x1:T H52:pr0 u5 x1 H53:pr0 u2 x1 ⇒
the thesis becomes
ex2
T
λx:T
.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) x
by (pr0_confluence__pr0_cong_upsilon_delta H43 . . . H41 . . . H49 H48 . . H50 H51 . . H52 H53)
we proved
ex2
T
λt:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t
λt:T
.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
by (ex2_sym . . . previous)
ex2
T
λx:T
.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) x
λx:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) x
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
we proved
ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9
pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9)))
we proved
pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t3 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
we proved
eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u1 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
we proved
eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt10:T.pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))))
eq T u4 u1
→(eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))))))
end of h1
(h2)
consider H34
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u4 | TLRef ⇒u4 | THead t9 ⇒t9
eq T u4 u1
end of h2
by (h1 h2)
eq T t7 t3
→(eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
end of h1
(h2)
consider H33
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u4 t7 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒t7 | TLRef ⇒t7 | THead t9⇒t9
eq T t7 t3
end of h2
by (h1 h2)
we proved
eq T (THead (Bind Abbr) u5 w) t6
→(pr0 u4 u5
→(pr0 t7 t8
→(subst0 O u5 t8 w
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))))
by (previous H32 H28 H29 H30)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H31:eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u1 t3)
.∀H32:eq T (THead (Bind Abbr) u5 w) t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_zeta b0:B H28:not (eq B b0 Abst) t7:T t8:T H29:pr0 t7 t8 u:T ⇒
the thesis becomes
∀H30:eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u1 t3)
.∀H31:eq T t8 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H30: eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u1 t3)
suppose H31: eq T t8 t6
(H32)
by (f_equal . . . . . H30)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind b) u1 t3 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b0) u (lift (S O) O t7)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
THead (Bind b) u1 t3
end of H32
(h1)
(H33)
by (f_equal . . . . . H30)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒u
| TLRef ⇒u
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
THead (Bind b0) u (lift (S O) O t7)
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
THead (Bind b) u1 t3
end of H33
(h1)
(H34)
by (f_equal . . . . . H30)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
THead (Bind b0) u (lift (S O) O t7)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
THead (Bind b) u1 t3
end of H34
consider H34
we proved
eq
B
<λ:T.B>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
<λ:T.B>
CASE THead (Bind b) u1 t3 OF
TSort ⇒b0
| TLRef ⇒b0
| THead k0 ⇒<λ:K.B> CASE k0 OF Bind b1⇒b1 | Flat ⇒b0
that is equivalent to eq B b0 b
by (sym_eq . . . previous)
we proved eq B b b0
we proceed by induction on the previous result to prove
eq T u u1
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
case refl_equal : ⇒
the thesis becomes
eq T u u1
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
suppose H35: eq T u u1
by (sym_eq . . . H35)
we proved eq T u1 u
we proceed by induction on the previous result to prove
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
case refl_equal : ⇒
the thesis becomes
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
suppose H36: eq T (lift (S O) O t7) t3
we proceed by induction on H36 to prove
eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
case refl_equal : ⇒
the thesis becomes
eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
suppose H37: eq T t8 t6
by (sym_eq . . . H37)
we proved eq T t6 t8
we proceed by induction on the previous result to prove
not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 t7 t6
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
suppose H38: not (eq B b Abst)
suppose H39: pr0 t7 t6
(H40)
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u0 t5 OF
TSort ⇒THead (Bind b) u1 t3
| TLRef ⇒THead (Bind b) u1 t3
| THead t7⇒t7
that is equivalent to eq T (THead (Bind b) u1 t3) t5
by (eq_ind_r . . . previous . H36)
eq T (THead (Bind b) u1 (lift (S O) O t7)) t5
end of H40
(H41)
by (eq_ind_r . . . H26 . H40)
eq T (THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7))) t
end of H41
(H42)
by (eq_ind_r . . . H . H41)
∀v:T
.tlt v (THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7)))
→∀t10:T.(pr0 v t10)→∀t11:T.(pr0 v t11)→(ex2 T λt12:T.pr0 t10 t12 λt12:T.pr0 t11 t12)
end of H42
(H43)
by (eq_ind_r . . . H12 . H36)
pr0 (lift (S O) O t7) t4
end of H43
by (pr0_gen_lift . . . . H43)
we proved ex2 T λt2:T.eq T t4 (lift (S O) O t2) λt2:T.pr0 t7 t2
we proceed by induction on the previous result to prove
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case ex_intro2 : x:T H44:eq T t4 (lift (S O) O x) H45:pr0 t7 x ⇒
the thesis becomes
ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10
(H46)
we proceed by induction on H24 to prove pr0 u0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H10
pr0 u0 v2
end of H46
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7)))
by (H42 . previous . H46 . H18)
we proved ex2 T λt12:T.pr0 v2 t12 λt12:T.pr0 u3 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case ex_intro2 : x0:T H47:pr0 v2 x0 H48:pr0 u3 x0 ⇒
the thesis becomes
ex2
T
λt9:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
(h1)
by (lift_tlt_dx . . . . .)
tlt t7 (THead (Bind b) u1 (lift (S O) O t7))
end of h1
(h2)
by (tlt_head_dx . . .)
tlt
THead (Bind b) u1 (lift (S O) O t7)
THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7))
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t7 (THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7)))
by (H42 . previous . H45 . H39)
we proved ex2 T λt12:T.pr0 x t12 λt12:T.pr0 t6 t12
we proceed by induction on the previous result to prove
ex2
T
λt9:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case ex_intro2 : x1:T H49:pr0 x x1 H50:pr0 t6 x1 ⇒
the thesis becomes
ex2
T
λx:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
x
λx:T.pr0 (THead (Flat Appl) u3 t6) x
by (pr0_confluence__pr0_cong_upsilon_zeta . H38 . . H11 . . . H48 H47 . . . H49 H50)
we proved
ex2
T
λt:T.pr0 (THead (Flat Appl) u3 t6) t
λt:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t
by (ex2_sym . . . previous)
ex2
T
λx:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
x
λx:T.pr0 (THead (Flat Appl) u3 t6) x
ex2
T
λt9:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
we proved
ex2
T
λt9:T
.pr0
THead
Bind b
u2
THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x)
t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
by (eq_ind_r . . . previous . H44)
ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
not (eq B b Abst)
→(pr0 t7 t6
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
we proved
not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))
eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
we proved
eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
we proved
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10))))
eq T u u1
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b Abst)
→(pr0 t7 t8
→(ex2
T
λt10:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10
λt10:T.pr0 (THead (Flat Appl) u3 t6) t10)))))
eq T u u1
→(eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))))
end of h1
(h2)
consider H33
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒u
| TLRef ⇒u
| THead t9 ⇒t9
<λ:T.T> CASE THead (Bind b) u1 t3 OF TSort ⇒u | TLRef ⇒u | THead t9 ⇒t9
eq T u u1
end of h2
by (h1 h2)
eq T (lift (S O) O t7) t3
→(eq T t8 t6
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))))
end of h1
(h2)
consider H32
we proved
eq
T
<λ:T.T>
CASE THead (Bind b0) u (lift (S O) O t7) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
<λ:T.T>
CASE THead (Bind b) u1 t3 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt9:T
.<λt10:T.T>
CASE t9 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u4 t10⇒THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10)
}
λx:nat.plus x (S O)
O
t7
| THead t9⇒t9
eq T (lift (S O) O t7) t3
end of h2
by (h1 h2)
we proved
eq T t8 t6
→(not (eq B b0 Abst)
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9)))
by (previous H31 H28 H29)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H30:eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u1 t3)
.∀H31:eq T t8 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
case pr0_tau t7:T t8:T H28:pr0 t7 t8 u:T ⇒
the thesis becomes
∀H29:eq T (THead (Flat Cast) u t7) (THead (Bind b) u1 t3)
.∀H30:eq T t8 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
suppose H29: eq T (THead (Flat Cast) u t7) (THead (Bind b) u1 t3)
suppose H30: eq T t8 t6
(H31)
we proceed by induction on H29 to prove
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t7 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
end of H31
consider H31
we proved
<λ:T.Prop>
CASE THead (Bind b) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k0 ⇒<λ:K.Prop> CASE k0 OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
eq T t8 t6
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
we proved
eq T t8 t6
→(pr0 t7 t8
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
by (previous H30 H28)
we proved
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
∀H29:eq T (THead (Flat Cast) u t7) (THead (Bind b) u1 t3)
.∀H30:eq T t8 t6
.ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
eq T (THead (Bind b) u1 t3) (THead (Bind b) u1 t3)
→(eq T t6 t6
→(ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9))
end of H28
(h1)
by (refl_equal . .)
eq T (THead (Bind b) u1 t3) (THead (Bind b) u1 t3)
end of h1
(h2)
by (refl_equal . .)
eq T t6 t6
end of h2
by (H28 h1 h2)
ex2
T
λt9:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9
λt9:T.pr0 (THead (Flat Appl) u3 t6) t9
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7
eq T v1 u0
→(eq K (Flat Appl) k
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7))
end of h1
(h2)
consider H22
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
eq T v1 u0
end of h2
by (h1 h2)
eq K (Flat Appl) k
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7)
end of h1
(h2)
consider H21
we proved
eq
K
<λ:T.K>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u0 t5 OF
TSort ⇒Flat Appl
| TLRef ⇒Flat Appl
| THead k0 ⇒k0
eq K (Flat Appl) k
end of h2
by (h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7
pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead k u3 t6) t7))
we proved
pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
eq T (THead k u3 t6) t2
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))
by (previous H15 H16 H13 H14)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H15:eq T (THead k u0 t5) t
.∀H16:eq T (THead k u3 t6) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
case pr0_beta u:T v0:T v3:T H13:pr0 v0 v3 t5:T t6:T H14:pr0 t5 t6 ⇒
the thesis becomes
∀H15:eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) t
.∀H16:eq T (THead (Bind Abbr) v3 t6) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H15: eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) t
suppose H16: eq T (THead (Bind Abbr) v3 t6) t2
suppose H17: eq T (THead (Bind Abbr) v3 t6) t2
we proceed by induction on H17 to prove
pr0 v0 v3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
case refl_equal : ⇒
the thesis becomes
pr0 v0 v3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7))
suppose : pr0 v0 v3
suppose : pr0 t5 t6
(H20)
by (eq_ind_r . . . H6 . H15)
eq
T
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
THead (Flat Appl) v0 (THead (Bind Abst) u t5)
end of H20
(H21)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v0 (THead (Bind Abst) u t5)
end of H21
(h1)
(H22)
by (f_equal . . . . . H20)
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
THead (Flat Appl) v0 (THead (Bind Abst) u t5)
end of H22
(h1)
(H23)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
THead (Flat Appl) v0 (THead (Bind Abst) u t5)
end of H23
()
consider H23
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
eq T u1 u
end of
suppose H26: eq B b Abst
suppose H27: eq T v1 v0
(H30)
we proceed by induction on H26 to prove not (eq B Abst Abst)
case refl_equal : ⇒
the thesis becomes the hypothesis H9
not (eq B Abst Abst)
end of H30
(H31)
by (refl_equal . .)
we proved eq B Abst Abst
by (H30 previous)
we proved False
by cases on the previous result we prove
ex2
T
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
ex2
T
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
end of H31
consider H31
we proved
ex2
T
λt7:T.pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
by (eq_ind_r . . . previous . H26)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
eq B b Abst
→(eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7))
end of h1
(h2)
consider H22
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
eq B b Abst
end of h2
by (h1 h2)
eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7)
end of h1
(h2)
consider H21
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind Abst) u t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq T v1 v0
end of h2
by (h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7
pr0 v0 v3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) v3 t6) t7))
we proved
pr0 v0 v3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
eq T (THead (Bind Abbr) v3 t6) t2
→(pr0 v0 v3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))
by (previous H15 H16 H13 H14)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H15:eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) t
.∀H16:eq T (THead (Bind Abbr) v3 t6) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
case pr0_upsilon b0:B H13:not (eq B b0 Abst) v0:T v3:T H14:pr0 v0 v3 u0:T u3:T H15:pr0 u0 u3 t5:T t6:T H16:pr0 t5 t6 ⇒
the thesis becomes
∀H17:eq T (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) t
.∀H18:eq T (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H17: eq T (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) t
suppose H18: eq T (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
suppose H19: eq T (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
we proceed by induction on H19 to prove
not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))))
case refl_equal : ⇒
the thesis becomes
not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))))
suppose : not (eq B b0 Abst)
suppose H21: pr0 v0 v3
suppose H22: pr0 u0 u3
suppose H23: pr0 t5 t6
(H24)
by (eq_ind_r . . . H6 . H17)
eq
T
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
THead (Flat Appl) v0 (THead (Bind b0) u0 t5)
end of H24
(H25)
by (f_equal . . . . . H24)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒v1 | TLRef ⇒v1 | THead t7 ⇒t7
THead (Flat Appl) v0 (THead (Bind b0) u0 t5)
end of H25
(h1)
(H26)
by (f_equal . . . . . H24)
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
THead (Flat Appl) v0 (THead (Bind b0) u0 t5)
end of H26
(h1)
(H27)
by (f_equal . . . . . H24)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
THead (Flat Appl) v0 (THead (Bind b0) u0 t5)
end of H27
(h1)
(H28)
by (f_equal . . . . . H24)
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
THead (Flat Appl) v0 (THead (Bind b0) u0 t5)
end of H28
suppose H29: eq T u1 u0
suppose H30: eq B b b0
suppose H31: eq T v1 v0
(H32)
by (eq_ind_r . . . H . H17)
∀v:T
.tlt v (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H32
(H33)
we proceed by induction on H31 to prove pr0 v0 v2
case refl_equal : ⇒
the thesis becomes the hypothesis H10
pr0 v0 v2
end of H33
(H34)
we proceed by induction on H30 to prove not (eq B b0 Abst)
case refl_equal : ⇒
the thesis becomes the hypothesis H9
not (eq B b0 Abst)
end of H34
(H35)
we proceed by induction on H29 to prove pr0 u0 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H11
pr0 u0 u2
end of H35
(H36)
consider H28
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒t3 | TLRef ⇒t3 | THead t8⇒t8
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H12
pr0 t5 t4
end of H36
(h1)
by (tlt_head_dx . . .)
tlt t5 (THead (Bind b0) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt (THead (Bind b0) u0 t5) (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt t5 (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
by (H32 . previous . H36 . H23)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
case ex_intro2 : x:T H37:pr0 t4 x H38:pr0 t6 x ⇒
the thesis becomes
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
(h1)
by (tlt_head_sx . . .)
tlt u0 (THead (Bind b0) u0 t5)
end of h1
(h2)
by (tlt_head_dx . . .)
tlt (THead (Bind b0) u0 t5) (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
end of h2
by (tlt_trans . . . h1 h2)
we proved tlt u0 (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
by (H32 . previous . H35 . H22)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
case ex_intro2 : x0:T H39:pr0 u2 x0 H40:pr0 u3 x0 ⇒
the thesis becomes
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
by (tlt_head_sx . . .)
we proved tlt v0 (THead (Flat Appl) v0 (THead (Bind b0) u0 t5))
by (H32 . previous . H33 . H21)
we proved ex2 T λt10:T.pr0 v2 t10 λt10:T.pr0 v3 t10
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
case ex_intro2 : x1:T H41:pr0 v2 x1 H42:pr0 v3 x1 ⇒
the thesis becomes
ex2
T
λt:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
λt:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t
by (pr0_confluence__pr0_upsilon_upsilon . H34 . . . H41 H42 . . . H39 H40 . . . H37 H38)
ex2
T
λt:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t
λt:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
by (eq_ind_r . . . previous . H30)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
eq T u1 u0
→(eq B b b0
→(eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7)))
end of h1
(h2)
consider H27
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7⇒<λ:T.T> CASE t7 OF TSort ⇒u1 | TLRef ⇒u1 | THead t8 ⇒t8
eq T u1 u0
end of h2
by (h1 h2)
eq B b b0
→(eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))
end of h1
(h2)
consider H26
we proved
eq
B
<λ:T.B>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
<λ:T.B>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒b
| TLRef ⇒b
| THead t7⇒
<λ:T.B>
CASE t7 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
eq B b b0
end of h2
by (h1 h2)
eq T v1 v0
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7)
end of h1
(h2)
consider H25
we proved
eq
T
<λ:T.T>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Flat Appl) v0 (THead (Bind b0) u0 t5) OF
TSort ⇒v1
| TLRef ⇒v1
| THead t7 ⇒t7
eq T v1 v0
end of h2
by (h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7
not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))))
we proved
not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))))
eq T (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
→(not (eq B b0 Abst)
→(pr0 v0 v3
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))))
by (previous H17 H18 H13 H14 H15 H16)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H17:eq T (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) t
.∀H18:eq T (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
case pr0_delta u0:T u3:T H13:pr0 u0 u3 t5:T t6:T H14:pr0 t5 t6 w:T H15:subst0 O u3 t6 w ⇒
the thesis becomes
∀H16:eq T (THead (Bind Abbr) u0 t5) t
.∀H17:eq T (THead (Bind Abbr) u3 w) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H16: eq T (THead (Bind Abbr) u0 t5) t
suppose H17: eq T (THead (Bind Abbr) u3 w) t2
suppose H18: eq T (THead (Bind Abbr) u3 w) t2
we proceed by induction on H18 to prove
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))
case refl_equal : ⇒
the thesis becomes
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) u3 w) t7)))
suppose : pr0 u0 u3
suppose : pr0 t5 t6
suppose : subst0 O u3 t6 w
(H22)
by (eq_ind_r . . . H6 . H16)
eq
T
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
THead (Bind Abbr) u0 t5
end of H22
(H23)
we proceed by induction on H22 to prove
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H23
consider H23
we proved
<λ:T.Prop>
CASE THead (Bind Abbr) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) u3 w) t7
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 (THead (Bind Abbr) u3 w) t7)))
we proved
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))
eq T (THead (Bind Abbr) u3 w) t2
→(pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))))
by (previous H16 H17 H13 H14 H15)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H16:eq T (THead (Bind Abbr) u0 t5) t
.∀H17:eq T (THead (Bind Abbr) u3 w) t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
case pr0_zeta b0:B H13:not (eq B b0 Abst) t5:T t6:T H14:pr0 t5 t6 u:T ⇒
the thesis becomes
∀H15:eq T (THead (Bind b0) u (lift (S O) O t5)) t
.∀H16:eq T t6 t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H15: eq T (THead (Bind b0) u (lift (S O) O t5)) t
suppose H16: eq T t6 t2
suppose H17: eq T t6 t2
by (sym_eq . . . H17)
we proved eq T t2 t6
we proceed by induction on the previous result to prove
not (eq B b0 Abst)
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
case refl_equal : ⇒
the thesis becomes
not (eq B b0 Abst)
→(pr0 t5 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))
suppose : not (eq B b0 Abst)
suppose : pr0 t5 t2
(H20)
by (eq_ind_r . . . H6 . H15)
eq
T
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
THead (Bind b0) u (lift (S O) O t5)
end of H20
(H21)
we proceed by induction on H20 to prove
<λ:T.Prop>
CASE THead (Bind b0) u (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b0) u (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H21
consider H21
we proved
<λ:T.Prop>
CASE THead (Bind b0) u (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
not (eq B b0 Abst)
→(pr0 t5 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))
we proved
not (eq B b0 Abst)
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
eq T t6 t2
→(not (eq B b0 Abst)
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)))
by (previous H15 H16 H13 H14)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H15:eq T (THead (Bind b0) u (lift (S O) O t5)) t
.∀H16:eq T t6 t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
case pr0_tau t5:T t6:T H13:pr0 t5 t6 u:T ⇒
the thesis becomes
∀H14:eq T (THead (Flat Cast) u t5) t
.∀H15:eq T t6 t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
suppose H14: eq T (THead (Flat Cast) u t5) t
suppose H15: eq T t6 t2
suppose H16: eq T t6 t2
by (sym_eq . . . H16)
we proved eq T t2 t6
we proceed by induction on the previous result to prove
pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 t5 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7)
suppose : pr0 t5 t2
(H18)
by (eq_ind_r . . . H6 . H14)
eq
T
THead (Flat Appl) v1 (THead (Bind b) u1 t3)
THead (Flat Cast) u t5
end of H18
(H19)
we proceed by induction on H18 to prove
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
end of H19
consider H19
we proved
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒True | Cast⇒False
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
pr0 t5 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7)
we proved
pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8)
eq T t6 t2
→(pr0 t5 t6
→(ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8))
by (previous H14 H15 H13)
we proved
ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
∀H14:eq T (THead (Flat Cast) u t5) t
.∀H15:eq T t6 t2
.ex2
T
λt8:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8
λt8:T.pr0 t2 t8
eq T t t
→(eq T t2 t2
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))
end of H13
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H13 h1 h2)
we proved
ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t3 t4
→(ex2
T
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7
λt7:T.pr0 t2 t7))))
we proved
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1
→(not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6))
by (previous H6 H7 H2 H3 H4 H5)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H6:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t
.∀H7:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1
.ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
case pr0_delta u1:T u2:T H2:pr0 u1 u2 t3:T t4:T H3:pr0 t3 t4 w:T H4:subst0 O u2 t4 w ⇒
the thesis becomes
∀H5:eq T (THead (Bind Abbr) u1 t3) t
.∀H6:(eq T (THead (Bind Abbr) u2 w) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H5: eq T (THead (Bind Abbr) u1 t3) t
suppose H6: eq T (THead (Bind Abbr) u2 w) t1
suppose H7: eq T (THead (Bind Abbr) u2 w) t1
we proceed by induction on H7 to prove (pr0 u1 u2)→(pr0 t3 t4)→(subst0 O u2 t4 w)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t3 t4)→(subst0 O u2 t4 w)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
suppose H8: pr0 u1 u2
suppose H9: pr0 t3 t4
suppose H10: subst0 O u2 t4 w
(H11)
by cases on H1 we prove
eq T t t
→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
case pr0_refl t5:T ⇒
the thesis becomes ∀H11:(eq T t5 t).∀H12:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
suppose H11: eq T t5 t
suppose H12: eq T t5 t2
by (sym_eq . . . H11)
we proved eq T t t5
suppose H13: eq T t t2
by (sym_eq . . . H13)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
(H14)
by (eq_ind_r . . . H13 . H5)
eq T (THead (Bind Abbr) u1 t3) t2
end of H14
we proceed by induction on H14 to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 (THead (Bind Abbr) u2 w) t6 λt6:T.pr0 (THead (Bind Abbr) u1 t3) t6
(h1)
by (pr0_refl .)
pr0 (THead (Bind Abbr) u2 w) (THead (Bind Abbr) u2 w)
end of h1
(h2)
by (pr0_delta . . H8 . . H9 . H10)
pr0 (THead (Bind Abbr) u1 t3) (THead (Bind Abbr) u2 w)
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 (THead (Bind Abbr) u2 w) t6 λt6:T.pr0 (THead (Bind Abbr) u1 t3) t6
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
(eq T t t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
by (previous previous H12)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
∀H11:(eq T t5 t).∀H12:(eq T t5 t2).(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
case pr0_comp u0:T u3:T H11:pr0 u0 u3 t5:T t6:T H12:pr0 t5 t6 k:K ⇒
the thesis becomes
∀H13:eq T (THead k u0 t5) t
.∀H14:(eq T (THead k u3 t6) t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
suppose H13: eq T (THead k u0 t5) t
suppose H14: eq T (THead k u3 t6) t2
suppose H15: eq T (THead k u3 t6) t2
we proceed by induction on H15 to prove (pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u0 u3
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7)
suppose H16: pr0 u0 u3
suppose H17: pr0 t5 t6
(H18)
by (eq_ind_r . . . H5 . H13)
eq T (THead (Bind Abbr) u1 t3) (THead k u0 t5)
end of H18
(H19)
by (f_equal . . . . . H18)
we proved
eq
K
<λ:T.K>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u0 t5 OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
eq
K
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
THead (Bind Abbr) u1 t3
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
THead k u0 t5
end of H19
(h1)
(H20)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7 (THead k u0 t5)
end of H20
(h1)
(H21)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u0 t5)
end of H21
suppose H22: eq T u1 u0
suppose H23: eq K (Bind Abbr) k
we proceed by induction on H23 to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
(H24)
by (eq_ind_r . . . H13 . H23)
eq T (THead (Bind Abbr) u0 t5) t
end of H24
(H25)
by (eq_ind_r . . . H . H24)
∀v:T
.tlt v (THead (Bind Abbr) u0 t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H25
(H26)
we proceed by induction on H22 to prove pr0 u0 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 u0 u2
end of H26
(H27)
consider H21
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H9
pr0 t5 t4
end of H27
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Bind Abbr) u0 t5)
by (H25 . previous . H27 . H17)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
case ex_intro2 : x:T H28:pr0 t4 x H29:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Bind Abbr) u0 t5)
by (H25 . previous . H26 . H16)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
case ex_intro2 : x0:T H30:pr0 u2 x0 H31:pr0 u3 x0 ⇒
the thesis becomes
ex2 T λx:T.pr0 (THead (Bind Abbr) u2 w) x λx:T.pr0 (THead (Bind Abbr) u3 t6) x
by (pr0_confluence__pr0_cong_delta . . . H10 . . H31 H30 . . H29 H28)
we proved
ex2 T λt:T.pr0 (THead (Bind Abbr) u3 t6) t λt:T.pr0 (THead (Bind Abbr) u2 w) t
by (ex2_sym . . . previous)
ex2 T λx:T.pr0 (THead (Bind Abbr) u2 w) x λx:T.pr0 (THead (Bind Abbr) u3 t6) x
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 t6) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7
eq T u1 u0
→(eq K (Bind Abbr) k
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7)
end of h1
(h2)
consider H20
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead k u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq T u1 u0
end of h2
by (h1 h2)
eq K (Bind Abbr) k
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7
end of h1
(h2)
consider H19
we proved
eq
K
<λ:T.K>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u0 t5 OF
TSort ⇒Bind Abbr
| TLRef ⇒Bind Abbr
| THead k0 ⇒k0
eq K (Bind Abbr) k
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7
pr0 u0 u3
→(pr0 t5 t6)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead k u3 t6) t7)
we proved (pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
eq T (THead k u3 t6) t2
→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
by (previous H13 H14 H11 H12)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead k u0 t5) t
.∀H14:(eq T (THead k u3 t6) t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case pr0_beta u:T v1:T v2:T H11:pr0 v1 v2 t5:T t6:T H12:pr0 t5 t6 ⇒
the thesis becomes
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
.∀H14:eq T (THead (Bind Abbr) v2 t6) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
suppose H13: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
suppose H14: eq T (THead (Bind Abbr) v2 t6) t2
suppose H15: eq T (THead (Bind Abbr) v2 t6) t2
we proceed by induction on H15 to prove (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 v1 v2
→(pr0 t5 t6
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
suppose : pr0 v1 v2
suppose : pr0 t5 t6
(H18)
by (eq_ind_r . . . H5 . H13)
eq
T
THead (Bind Abbr) u1 t3
THead (Flat Appl) v1 (THead (Bind Abst) u t5)
end of H18
(H19)
we proceed by induction on H18 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H19
consider H19
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
pr0 v1 v2
→(pr0 t5 t6
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
we proved (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) v2 t6) t2
→(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
by (previous H13 H14 H11 H12)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) t
.∀H14:eq T (THead (Bind Abbr) v2 t6) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
case pr0_upsilon b:B H11:not (eq B b Abst) v1:T v2:T H12:pr0 v1 v2 u0:T u3:T H13:pr0 u0 u3 t5:T t6:T H14:pr0 t5 t6 ⇒
the thesis becomes
∀H15:eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
.∀H16:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
suppose H15: eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
suppose H16: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
suppose H17: eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
we proceed by induction on H17 to prove
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8))
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
suppose : not (eq B b Abst)
suppose : pr0 v1 v2
suppose : pr0 u0 u3
suppose : pr0 t5 t6
(H22)
by (eq_ind_r . . . H5 . H15)
eq
T
THead (Bind Abbr) u1 t3
THead (Flat Appl) v1 (THead (Bind b) u0 t5)
end of H22
(H23)
we proceed by induction on H22 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H23
consider H23
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
we proved
ex2
T
λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
λt7:T.pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
we proved
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8))
eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
→(not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u0 u3)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)))
by (previous H15 H16 H11 H12 H13 H14)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H15:eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) t
.∀H16:eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
case pr0_delta u0:T u3:T H11:pr0 u0 u3 t5:T t6:T H12:pr0 t5 t6 w0:T H13:subst0 O u3 t6 w0 ⇒
the thesis becomes
∀H14:eq T (THead (Bind Abbr) u0 t5) t
.∀H15:eq T (THead (Bind Abbr) u3 w0) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
suppose H14: eq T (THead (Bind Abbr) u0 t5) t
suppose H15: eq T (THead (Bind Abbr) u3 w0) t2
suppose H16: eq T (THead (Bind Abbr) u3 w0) t2
we proceed by induction on H16 to prove
pr0 u0 u3
→(pr0 t5 t6)→(subst0 O u3 t6 w0)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w0
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7))
suppose H17: pr0 u0 u3
suppose H18: pr0 t5 t6
suppose H19: subst0 O u3 t6 w0
(H20)
by (eq_ind_r . . . H5 . H14)
eq T (THead (Bind Abbr) u1 t3) (THead (Bind Abbr) u0 t5)
end of H20
(H21)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind Abbr) u0 t5
end of H21
(h1)
(H22)
by (f_equal . . . . . H20)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind Abbr) u0 t5
end of H22
suppose H23: eq T u1 u0
(H24)
by (eq_ind_r . . . H . H14)
∀v:T
.tlt v (THead (Bind Abbr) u0 t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H24
(H25)
we proceed by induction on H23 to prove pr0 u0 u2
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 u0 u2
end of H25
(H26)
consider H22
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t4
case refl_equal : ⇒
the thesis becomes the hypothesis H9
pr0 t5 t4
end of H26
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Bind Abbr) u0 t5)
by (H24 . previous . H26 . H18)
we proved ex2 T λt10:T.pr0 t4 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
case ex_intro2 : x:T H27:pr0 t4 x H28:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
by (tlt_head_sx . . .)
we proved tlt u0 (THead (Bind Abbr) u0 t5)
by (H24 . previous . H25 . H17)
we proved ex2 T λt10:T.pr0 u2 t10 λt10:T.pr0 u3 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
case ex_intro2 : x0:T H29:pr0 u2 x0 H30:pr0 u3 x0 ⇒
the thesis becomes
ex2 T λt:T.pr0 (THead (Bind Abbr) u2 w) t λt:T.pr0 (THead (Bind Abbr) u3 w0) t
by (pr0_confluence__pr0_delta_delta . . . H10 . . . H19 . H29 H30 . H27 H28)
ex2 T λt:T.pr0 (THead (Bind Abbr) u2 w) t λt:T.pr0 (THead (Bind Abbr) u3 w0) t
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
eq T u1 u0
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
end of h1
(h2)
consider H21
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u0 t5 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
eq T u1 u0
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7
pr0 u0 u3
→(pr0 t5 t6
→(subst0 O u3 t6 w0
→ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 (THead (Bind Abbr) u3 w0) t7))
we proved
pr0 u0 u3
→(pr0 t5 t6)→(subst0 O u3 t6 w0)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) u3 w0) t2
→(pr0 u0 u3
→(pr0 t5 t6)→(subst0 O u3 t6 w0)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8))
by (previous H14 H15 H11 H12 H13)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H14:eq T (THead (Bind Abbr) u0 t5) t
.∀H15:eq T (THead (Bind Abbr) u3 w0) t2
.ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
case pr0_zeta b:B H11:not (eq B b Abst) t5:T t6:T H12:pr0 t5 t6 u:T ⇒
the thesis becomes
∀H13:eq T (THead (Bind b) u (lift (S O) O t5)) t
.∀H14:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
suppose H13: eq T (THead (Bind b) u (lift (S O) O t5)) t
suppose H14: eq T t6 t2
suppose H15: eq T t6 t2
by (sym_eq . . . H15)
we proved eq T t2 t6
we proceed by induction on the previous result to prove
not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
suppose H16: not (eq B b Abst)
suppose H17: pr0 t5 t2
(H18)
by (eq_ind_r . . . H5 . H13)
eq T (THead (Bind Abbr) u1 t3) (THead (Bind b) u (lift (S O) O t5))
end of H18
(H19)
by (f_equal . . . . . H18)
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind Abbr) u1 t3
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
THead (Bind b) u (lift (S O) O t5)
end of H19
(h1)
(H20)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
THead (Bind b) u (lift (S O) O t5)
end of H20
(h1)
(H21)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind Abbr) u1 t3
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Bind b) u (lift (S O) O t5)
end of H21
suppose H22: eq T u1 u
suppose H23: eq B Abbr b
(H25)
by (eq_ind_r . . . H13 . H23)
eq T (THead (Bind Abbr) u (lift (S O) O t5)) t
end of H25
(H26)
by (eq_ind_r . . . H . H25)
∀v:T
.tlt v (THead (Bind Abbr) u (lift (S O) O t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H26
(H28)
consider H21
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒t3
| TLRef ⇒t3
| THead t7⇒t7
that is equivalent to eq T t3 (lift (S O) O t5)
we proceed by induction on the previous result to prove pr0 (lift (S O) O t5) t4
case refl_equal : ⇒
the thesis becomes the hypothesis H9
pr0 (lift (S O) O t5) t4
end of H28
by (pr0_gen_lift . . . . H28)
we proved ex2 T λt2:T.eq T t4 (lift (S O) O t2) λt2:T.pr0 t5 t2
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
case ex_intro2 : x:T H29:eq T t4 (lift (S O) O x) H30:pr0 t5 x ⇒
the thesis becomes ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
(H31)
we proceed by induction on H29 to prove subst0 O u2 (lift (S O) O x) w
case refl_equal : ⇒
the thesis becomes the hypothesis H10
subst0 O u2 (lift (S O) O x) w
end of H31
by (lift_tlt_dx . . . . .)
we proved tlt t5 (THead (Bind Abbr) u (lift (S O) O t5))
by (H26 . previous . H30 . H17)
we proved ex2 T λt10:T.pr0 x t10 λt10:T.pr0 t2 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
case ex_intro2 : x0:T :pr0 x x0 :pr0 t2 x0 ⇒
the thesis becomes ex2 T λt:T.pr0 (THead (Bind Abbr) u2 w) t λt:T.pr0 t2 t
by (pr0_refl .)
we proved pr0 (lift (S O) O x) (lift (S O) O x)
by (pr0_confluence__pr0_delta_tau . . . H31 . previous .)
ex2 T λt:T.pr0 (THead (Bind Abbr) u2 w) t λt:T.pr0 t2 t
ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
eq T u1 u
→(eq B Abbr b)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H20
we proved
eq
T
<λ:T.T> CASE THead (Bind Abbr) u1 t3 OF TSort ⇒u1 | TLRef ⇒u1 | THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒u1
| TLRef ⇒u1
| THead t7 ⇒t7
eq T u1 u
end of h2
by (h1 h2)
(eq B Abbr b)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H19
we proved
eq
B
<λ:T.B>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t5) OF
TSort ⇒Abbr
| TLRef ⇒Abbr
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒Abbr
eq B Abbr b
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
not (eq B b Abst)
→(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
we proved
not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
eq T t6 t2
→(not (eq B b Abst)
→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8))
by (previous H13 H14 H11 H12)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead (Bind b) u (lift (S O) O t5)) t
.∀H14:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case pr0_tau t5:T t6:T H11:pr0 t5 t6 u:T ⇒
the thesis becomes
∀H12:eq T (THead (Flat Cast) u t5) t
.∀H13:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
suppose H12: eq T (THead (Flat Cast) u t5) t
suppose H13: eq T t6 t2
suppose H14: eq T t6 t2
by (sym_eq . . . H14)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
suppose : pr0 t5 t2
(H16)
by (eq_ind_r . . . H5 . H12)
eq T (THead (Bind Abbr) u1 t3) (THead (Flat Cast) u t5)
end of H16
(H17)
we proceed by induction on H16 to prove
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H17
consider H17
we proved
<λ:T.Prop>
CASE THead (Flat Cast) u t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
(pr0 t5 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
we proved (pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
by (previous H12 H13 H11)
we proved ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8
∀H12:eq T (THead (Flat Cast) u t5) t
.∀H13:(eq T t6 t2).(ex2 T λt8:T.pr0 (THead (Bind Abbr) u2 w) t8 λt8:T.pr0 t2 t8)
eq T t t
→(eq T t2 t2)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
end of H11
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H11 h1 h2)
we proved ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7
pr0 u1 u2
→(pr0 t3 t4)→(subst0 O u2 t4 w)→(ex2 T λt7:T.pr0 (THead (Bind Abbr) u2 w) t7 λt7:T.pr0 t2 t7)
we proved (pr0 u1 u2)→(pr0 t3 t4)→(subst0 O u2 t4 w)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
eq T (THead (Bind Abbr) u2 w) t1
→(pr0 u1 u2)→(pr0 t3 t4)→(subst0 O u2 t4 w)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous H5 H6 H2 H3 H4)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H5:eq T (THead (Bind Abbr) u1 t3) t
.∀H6:(eq T (THead (Bind Abbr) u2 w) t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_zeta b:B H2:not (eq B b Abst) t3:T t4:T H3:pr0 t3 t4 u:T ⇒
the thesis becomes
∀H4:(eq T (THead (Bind b) u (lift (S O) O t3)) t).∀H5:(eq T t4 t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H4: eq T (THead (Bind b) u (lift (S O) O t3)) t
suppose H5: eq T t4 t1
suppose H6: eq T t4 t1
by (sym_eq . . . H6)
we proved eq T t1 t4
we proceed by induction on the previous result to prove (not (eq B b Abst))→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes (not (eq B b Abst))→(pr0 t3 t1)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H7: not (eq B b Abst)
suppose H8: pr0 t3 t1
(H9)
by cases on H1 we prove (eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_refl t5:T ⇒
the thesis becomes ∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H9: eq T t5 t
suppose H10: eq T t5 t2
by (sym_eq . . . H9)
we proved eq T t t5
suppose H11: eq T t t2
by (sym_eq . . . H11)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(H12)
by (eq_ind_r . . . H11 . H4)
eq T (THead (Bind b) u (lift (S O) O t3)) t2
end of H12
we proceed by induction on H12 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 (THead (Bind b) u (lift (S O) O t3)) t6
(h1) by (pr0_refl .) we proved pr0 t1 t1
(h2)
by (pr0_zeta . H7 . . H8 .)
pr0 (THead (Bind b) u (lift (S O) O t3)) t1
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 (THead (Bind b) u (lift (S O) O t3)) t6
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(eq T t t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous previous H10)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H9:(eq T t5 t).∀H10:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_comp u1:T u2:T H9:pr0 u1 u2 t5:T t6:T H10:pr0 t5 t6 k:K ⇒
the thesis becomes ∀H11:(eq T (THead k u1 t5) t).∀H12:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead k u1 t5) t
suppose H12: eq T (THead k u2 t6) t2
suppose H13: eq T (THead k u2 t6) t2
we proceed by induction on H13 to prove (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
suppose : pr0 u1 u2
suppose H15: pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq T (THead (Bind b) u (lift (S O) O t3)) (THead k u1 t5)
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
K
<λ:T.K>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒Bind b
| TLRef ⇒Bind b
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Bind b
| TLRef ⇒Bind b
| THead k0 ⇒k0
eq
K
λe:T.<λ:T.K> CASE e OF TSort ⇒Bind b | TLRef ⇒Bind b | THead k0 ⇒k0
THead (Bind b) u (lift (S O) O t3)
λe:T.<λ:T.K> CASE e OF TSort ⇒Bind b | TLRef ⇒Bind b | THead k0 ⇒k0
THead k u1 t5
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7 (THead k u1 t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead k u1 t5
end of H19
suppose : eq T u u1
suppose H21: eq K (Bind b) k
we proceed by induction on H21 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 t6) t7
(H22)
by (eq_ind_r . . . H11 . H21)
eq T (THead (Bind b) u1 t5) t
end of H22
(H23)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
that is equivalent to eq T (lift (S O) O t3) t5
by (eq_ind_r . . . H15 . previous)
pr0 (lift (S O) O t3) t6
end of H23
by (pr0_gen_lift . . . . H23)
we proved ex2 T λt2:T.eq T t6 (lift (S O) O t2) λt2:T.pr0 t3 t2
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 t6) t7
case ex_intro2 : x:T H24:eq T t6 (lift (S O) O x) H25:pr0 t3 x ⇒
the thesis becomes ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 (THead (Bind b) u2 t6) t8
(H26)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead k u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k0 u0 t8⇒THead k0 (lref_map f d u0) (lref_map f (s k0 d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
that is equivalent to eq T (lift (S O) O t3) t5
by (eq_ind_r . . . H22 . previous)
eq T (THead (Bind b) u1 (lift (S O) O t3)) t
end of H26
(H27)
by (eq_ind_r . . . H . H26)
∀v:T
.tlt v (THead (Bind b) u1 (lift (S O) O t3))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H27
by (lift_tlt_dx . . . . .)
we proved tlt t3 (THead (Bind b) u1 (lift (S O) O t3))
by (H27 . previous . H25 . H8)
we proved ex2 T λt10:T.pr0 x t10 λt10:T.pr0 t1 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7
case ex_intro2 : x0:T H28:pr0 x x0 H29:pr0 t1 x0 ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7
by (pr0_zeta . H7 . . H28 .)
we proved pr0 (THead (Bind b) u2 (lift (S O) O x)) x0
by (ex_intro2 . . . . H29 previous)
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 (lift (S O) O x)) t7
by (eq_ind_r . . . previous . H24)
ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 (THead (Bind b) u2 t6) t8
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind b) u2 t6) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
(eq T u u1)→(eq K (Bind b) k)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq T u u1
end of h2
by (h1 h2)
(eq K (Bind b) k)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
end of h1
(h2)
consider H17
we proved
eq
K
<λ:T.K>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒Bind b
| TLRef ⇒Bind b
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Bind b
| TLRef ⇒Bind b
| THead k0 ⇒k0
eq K (Bind b) k
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
we proved (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T (THead k u2 t6) t2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H11:(eq T (THead k u1 t5) t).∀H12:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_beta u0:T v1:T v2:T H9:pr0 v1 v2 t5:T t6:T H10:pr0 t5 t6 ⇒
the thesis becomes
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
.∀H12:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
suppose H12: eq T (THead (Bind Abbr) v2 t6) t2
suppose H13: eq T (THead (Bind Abbr) v2 t6) t2
we proceed by induction on H13 to prove (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
suppose : pr0 v1 v2
suppose : pr0 t5 t6
(H16)
by (eq_ind_r . . . H4 . H11)
eq
T
THead (Bind b) u (lift (S O) O t3)
THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)
end of H16
(H17)
we proceed by induction on H16 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H17
consider H17
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
we proved (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) v2 t6) t2
→(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
.∀H12:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_upsilon b0:B H9:not (eq B b0 Abst) v1:T v2:T H10:pr0 v1 v2 u1:T u2:T H11:pr0 u1 u2 t5:T t6:T H12:pr0 t5 t6 ⇒
the thesis becomes
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind b0) u1 t5)) t
.∀H14:eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
suppose H13: eq T (THead (Flat Appl) v1 (THead (Bind b0) u1 t5)) t
suppose H14: eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
suppose H15: eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
we proceed by induction on H15 to prove
not (eq B b0 Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b0 Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
suppose : not (eq B b0 Abst)
suppose : pr0 v1 v2
suppose : pr0 u1 u2
suppose : pr0 t5 t6
(H20)
by (eq_ind_r . . . H4 . H13)
eq
T
THead (Bind b) u (lift (S O) O t3)
THead (Flat Appl) v1 (THead (Bind b0) u1 t5)
end of H20
(H21)
we proceed by induction on H20 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b0) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b0) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H21
consider H21
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b0) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
we proved
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
not (eq B b0 Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
we proved
not (eq B b0 Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
→(not (eq B b0 Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8))
by (previous H13 H14 H9 H10 H11 H12)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H13:eq T (THead (Flat Appl) v1 (THead (Bind b0) u1 t5)) t
.∀H14:eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
case pr0_delta u1:T u2:T H9:pr0 u1 u2 t5:T t6:T H10:pr0 t5 t6 w:T H11:subst0 O u2 t6 w ⇒
the thesis becomes
∀H12:eq T (THead (Bind Abbr) u1 t5) t
.∀H13:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H12: eq T (THead (Bind Abbr) u1 t5) t
suppose H13: eq T (THead (Bind Abbr) u2 w) t2
suppose H14: eq T (THead (Bind Abbr) u2 w) t2
we proceed by induction on H14 to prove (pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
suppose : pr0 u1 u2
suppose H16: pr0 t5 t6
suppose H17: subst0 O u2 t6 w
(H18)
by (eq_ind_r . . . H4 . H12)
eq T (THead (Bind b) u (lift (S O) O t3)) (THead (Bind Abbr) u1 t5)
end of H18
(H19)
by (f_equal . . . . . H18)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
THead (Bind b) u (lift (S O) O t3)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
THead (Bind Abbr) u1 t5
end of H19
(h1)
(H20)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Bind Abbr) u1 t5
end of H20
(h1)
(H21)
by (f_equal . . . . . H18)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead (Bind Abbr) u1 t5
end of H21
suppose : eq T u u1
suppose H23: eq B b Abbr
(H24)
consider H21
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
that is equivalent to eq T (lift (S O) O t3) t5
by (eq_ind_r . . . H16 . previous)
pr0 (lift (S O) O t3) t6
end of H24
by (pr0_gen_lift . . . . H24)
we proved ex2 T λt2:T.eq T t6 (lift (S O) O t2) λt2:T.pr0 t3 t2
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
case ex_intro2 : x:T H25:eq T t6 (lift (S O) O x) H26:pr0 t3 x ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
(H27)
consider H21
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u0 t8⇒THead k (lref_map f d u0) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
that is equivalent to eq T (lift (S O) O t3) t5
by (eq_ind_r . . . H12 . previous)
eq T (THead (Bind Abbr) u1 (lift (S O) O t3)) t
end of H27
(H28)
by (eq_ind_r . . . H . H27)
∀v:T
.tlt v (THead (Bind Abbr) u1 (lift (S O) O t3))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H28
(H29)
we proceed by induction on H25 to prove subst0 O u2 (lift (S O) O x) w
case refl_equal : ⇒
the thesis becomes the hypothesis H17
subst0 O u2 (lift (S O) O x) w
end of H29
by (lift_tlt_dx . . . . .)
we proved tlt t3 (THead (Bind Abbr) u1 (lift (S O) O t3))
by (H28 . previous . H26 . H8)
we proved ex2 T λt10:T.pr0 x t10 λt10:T.pr0 t1 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
case ex_intro2 : x0:T :pr0 x x0 :pr0 t1 x0 ⇒
the thesis becomes ex2 T λx:T.pr0 t1 x λx:T.pr0 (THead (Bind Abbr) u2 w) x
by (pr0_refl .)
we proved pr0 (lift (S O) O x) (lift (S O) O x)
by (pr0_confluence__pr0_delta_tau . . . H29 . previous .)
we proved ex2 T λt:T.pr0 (THead (Bind Abbr) u2 w) t λt:T.pr0 t1 t
by (ex2_sym . . . previous)
ex2 T λx:T.pr0 t1 x λx:T.pr0 (THead (Bind Abbr) u2 w) x
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
eq T u u1
→(eq B b Abbr)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
end of h1
(h2)
consider H20
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T> CASE THead (Bind Abbr) u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq T u u1
end of h2
by (h1 h2)
(eq B b Abbr)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
end of h1
(h2)
consider H19
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
<λ:T.B>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b0⇒b0 | Flat ⇒b
eq B b Abbr
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
we proved (pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) u2 w) t2
→(pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H12 H13 H9 H10 H11)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H12:eq T (THead (Bind Abbr) u1 t5) t
.∀H13:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_zeta b0:B H9:not (eq B b0 Abst) t5:T t6:T H10:pr0 t5 t6 u0:T ⇒
the thesis becomes ∀H11:(eq T (THead (Bind b0) u0 (lift (S O) O t5)) t).∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H11: eq T (THead (Bind b0) u0 (lift (S O) O t5)) t
suppose H12: eq T t6 t2
suppose H13: eq T t6 t2
by (sym_eq . . . H13)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (not (eq B b0 Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (not (eq B b0 Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose : not (eq B b0 Abst)
suppose H15: pr0 t5 t2
(H16)
by (eq_ind_r . . . H4 . H11)
eq
T
THead (Bind b) u (lift (S O) O t3)
THead (Bind b0) u0 (lift (S O) O t5)
end of H16
(H17)
by (f_equal . . . . . H16)
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
<λ:T.B>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
eq
B
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
THead (Bind b) u (lift (S O) O t3)
λe:T
.<λ:T.B>
CASE e OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
THead (Bind b0) u0 (lift (S O) O t5)
end of H17
(h1)
(H18)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Bind b0) u0 (lift (S O) O t5)
end of H18
(h1)
(H19)
by (f_equal . . . . . H16)
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
eq
T
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead (Bind b) u (lift (S O) O t3)
λe:T
.<λ:T.T>
CASE e OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
THead (Bind b0) u0 (lift (S O) O t5)
end of H19
suppose : eq T u u0
suppose H21: eq B b b0
(H22)
by (eq_ind_r . . . H . H11)
∀v:T
.tlt v (THead (Bind b0) u0 (lift (S O) O t5))
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H22
(H23)
consider H19
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
<λ:T.T>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| TLRef ⇒
FIXlref_map{
lref_map:(nat→nat)→nat→T→T
:=λf:nat→nat
.λd:nat
.λt7:T
.<λt8:T.T>
CASE t7 OF
TSort n⇒TSort n
| TLRef i⇒TLRef <λb1:bool.nat> CASE blt i d OF true⇒i | false⇒f i
| THead k u1 t8⇒THead k (lref_map f d u1) (lref_map f (s k d) t8)
}
λx:nat.plus x (S O)
O
t3
| THead t7⇒t7
that is equivalent to eq T (lift (S O) O t3) (lift (S O) O t5)
by (lift_inj . . . . previous)
we proved eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t1
case refl_equal : ⇒
the thesis becomes the hypothesis H8
pr0 t5 t1
end of H23
by (lift_tlt_dx . . . . .)
we proved tlt t5 (THead (Bind b0) u0 (lift (S O) O t5))
by (H22 . previous . H23 . H15)
we proved ex2 T λt10:T.pr0 t1 t10 λt10:T.pr0 t2 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case ex_intro2 : x:T H25:pr0 t1 x H26:pr0 t2 x ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
by (ex_intro2 . . . . H25 H26)
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(eq T u u0)→(eq B b b0)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H18
we proved
eq
T
<λ:T.T>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
<λ:T.T>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒u
| TLRef ⇒u
| THead t7 ⇒t7
eq T u u0
end of h2
by (h1 h2)
(eq B b b0)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H17
we proved
eq
B
<λ:T.B>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
<λ:T.B>
CASE THead (Bind b0) u0 (lift (S O) O t5) OF
TSort ⇒b
| TLRef ⇒b
| THead k ⇒<λ:K.B> CASE k OF Bind b1⇒b1 | Flat ⇒b
eq B b b0
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(not (eq B b0 Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (not (eq B b0 Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(not (eq B b0 Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H11 H12 H9 H10)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H11:(eq T (THead (Bind b0) u0 (lift (S O) O t5)) t).∀H12:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_tau t5:T t6:T H9:pr0 t5 t6 u0:T ⇒
the thesis becomes ∀H10:(eq T (THead (Flat Cast) u0 t5) t).∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H10: eq T (THead (Flat Cast) u0 t5) t
suppose H11: eq T t6 t2
suppose H12: eq T t6 t2
by (sym_eq . . . H12)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose : pr0 t5 t2
(H14)
by (eq_ind_r . . . H4 . H10)
eq T (THead (Bind b) u (lift (S O) O t3)) (THead (Flat Cast) u0 t5)
end of H14
(H15)
we proceed by induction on H14 to prove
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
consider I
we proved True
<λ:T.Prop>
CASE THead (Bind b) u (lift (S O) O t3) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
end of H15
consider H15
we proved
<λ:T.Prop>
CASE THead (Flat Cast) u0 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒True | Flat ⇒False
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H10 H11 H9)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H10:(eq T (THead (Flat Cast) u0 t5) t).∀H11:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
end of H9
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H9 h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(not (eq B b Abst))→(pr0 t3 t1)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (not (eq B b Abst))→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
(eq T t4 t1)→(not (eq B b Abst))→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous H4 H5 H2 H3)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H4:(eq T (THead (Bind b) u (lift (S O) O t3)) t).∀H5:(eq T t4 t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case pr0_tau t3:T t4:T H2:pr0 t3 t4 u:T ⇒
the thesis becomes ∀H3:(eq T (THead (Flat Cast) u t3) t).∀H4:(eq T t4 t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
suppose H3: eq T (THead (Flat Cast) u t3) t
suppose H4: eq T t4 t1
suppose H5: eq T t4 t1
by (sym_eq . . . H5)
we proved eq T t1 t4
we proceed by induction on the previous result to prove (pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
case refl_equal : ⇒
the thesis becomes (pr0 t3 t1)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H6: pr0 t3 t1
(H7)
by cases on H1 we prove (eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_refl t5:T ⇒
the thesis becomes ∀H7:(eq T t5 t).∀H8:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H7: eq T t5 t
suppose H8: eq T t5 t2
by (sym_eq . . . H7)
we proved eq T t t5
suppose H9: eq T t t2
by (sym_eq . . . H9)
we proved eq T t2 t
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(H10)
by (eq_ind_r . . . H9 . H3)
eq T (THead (Flat Cast) u t3) t2
end of H10
we proceed by induction on H10 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case refl_equal : ⇒
the thesis becomes ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 (THead (Flat Cast) u t3) t6
(h1) by (pr0_refl .) we proved pr0 t1 t1
(h2)
by (pr0_tau . . H6 .)
pr0 (THead (Flat Cast) u t3) t1
end of h2
by (ex_intro2 . . . . h1 h2)
ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 (THead (Flat Cast) u t3) t6
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(eq T t t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
by (previous previous H8)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
∀H7:(eq T t5 t).∀H8:(eq T t5 t2).(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
case pr0_comp u1:T u2:T H7:pr0 u1 u2 t5:T t6:T H8:pr0 t5 t6 k:K ⇒
the thesis becomes ∀H9:(eq T (THead k u1 t5) t).∀H10:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H9: eq T (THead k u1 t5) t
suppose H10: eq T (THead k u2 t6) t2
suppose H11: eq T (THead k u2 t6) t2
we proceed by induction on H11 to prove (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
suppose : pr0 u1 u2
suppose H13: pr0 t5 t6
(H14)
by (eq_ind_r . . . H3 . H9)
eq T (THead (Flat Cast) u t3) (THead k u1 t5)
end of H14
(H15)
by (f_equal . . . . . H14)
we proved
eq
K
<λ:T.K>
CASE THead (Flat Cast) u t3 OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
eq
K
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
THead (Flat Cast) u t3
λe:T
.<λ:T.K>
CASE e OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
THead k u1 t5
end of H15
(h1)
(H16)
by (f_equal . . . . . H14)
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Flat Cast) u t3
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7 (THead k u1 t5)
end of H16
(h1)
(H17)
by (f_equal . . . . . H14)
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Cast) u t3
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7 (THead k u1 t5)
end of H17
suppose : eq T u u1
suppose H19: eq K (Flat Cast) k
we proceed by induction on H19 to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
case refl_equal : ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Flat Cast) u2 t6) t7
(H20)
by (eq_ind_r . . . H9 . H19)
eq T (THead (Flat Cast) u1 t5) t
end of H20
(H21)
by (eq_ind_r . . . H . H20)
∀v:T
.tlt v (THead (Flat Cast) u1 t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H21
(H22)
consider H17
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t1
case refl_equal : ⇒
the thesis becomes the hypothesis H6
pr0 t5 t1
end of H22
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Flat Cast) u1 t5)
by (H21 . previous . H22 . H13)
we proved ex2 T λt10:T.pr0 t1 t10 λt10:T.pr0 t6 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Flat Cast) u2 t6) t7
case ex_intro2 : x:T H23:pr0 t1 x H24:pr0 t6 x ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Flat Cast) u2 t6) t7
by (pr0_tau . . H24 .)
we proved pr0 (THead (Flat Cast) u2 t6) x
by (ex_intro2 . . . . H23 previous)
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Flat Cast) u2 t6) t7
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Flat Cast) u2 t6) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
eq T u u1
→(eq K (Flat Cast) k)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
end of h1
(h2)
consider H16
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
<λ:T.T> CASE THead k u1 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq T u u1
end of h2
by (h1 h2)
(eq K (Flat Cast) k)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
end of h1
(h2)
consider H15
we proved
eq
K
<λ:T.K>
CASE THead (Flat Cast) u t3 OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
<λ:T.K>
CASE THead k u1 t5 OF
TSort ⇒Flat Cast
| TLRef ⇒Flat Cast
| THead k0 ⇒k0
eq K (Flat Cast) k
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7
(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead k u2 t6) t7)
we proved (pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T (THead k u2 t6) t2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H9 H10 H7 H8)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H9:(eq T (THead k u1 t5) t).∀H10:(eq T (THead k u2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_beta u0:T v1:T v2:T H7:pr0 v1 v2 t5:T t6:T H8:pr0 t5 t6 ⇒
the thesis becomes
∀H9:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
.∀H10:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H9: eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
suppose H10: eq T (THead (Bind Abbr) v2 t6) t2
suppose H11: eq T (THead (Bind Abbr) v2 t6) t2
we proceed by induction on H11 to prove (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
suppose : pr0 v1 v2
suppose : pr0 t5 t6
(H14)
by (eq_ind_r . . . H3 . H9)
eq
T
THead (Flat Cast) u t3
THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)
end of H14
(H15)
we proceed by induction on H14 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
end of H15
consider H15
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind Abst) u0 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7
(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) v2 t6) t7)
we proved (pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) v2 t6) t2
→(pr0 v1 v2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H9 H10 H7 H8)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H9:eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t
.∀H10:(eq T (THead (Bind Abbr) v2 t6) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_upsilon b:B H7:not (eq B b Abst) v1:T v2:T H8:pr0 v1 v2 u1:T u2:T H9:pr0 u1 u2 t5:T t6:T H10:pr0 t5 t6 ⇒
the thesis becomes
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t5)) t
.∀H12:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
suppose H11: eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t5)) t
suppose H12: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
suppose H13: eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
we proceed by induction on H13 to prove
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
suppose : not (eq B b Abst)
suppose : pr0 v1 v2
suppose : pr0 u1 u2
suppose : pr0 t5 t6
(H18)
by (eq_ind_r . . . H3 . H11)
eq
T
THead (Flat Cast) u t3
THead (Flat Appl) v1 (THead (Bind b) u1 t5)
end of H18
(H19)
we proceed by induction on H18 to prove
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
end of H19
consider H19
we proved
<λ:T.Prop>
CASE THead (Flat Appl) v1 (THead (Bind b) u1 t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒
<λ:K.Prop>
CASE k OF
Bind ⇒False
| Flat f⇒<λ:F.Prop> CASE f OF Appl⇒False | Cast⇒True
that is equivalent to False
we proceed by induction on the previous result to prove
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
we proved
ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7
not (eq B b Abst)
→(pr0 v1 v2
→(pr0 u1 u2
→(pr0 t5 t6
→(ex2
T
λt7:T.pr0 t1 t7
λt7:T.pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))))
we proved
not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
→(not (eq B b Abst)
→(pr0 v1 v2)→(pr0 u1 u2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8))
by (previous H11 H12 H7 H8 H9 H10)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H11:eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t5)) t
.∀H12:eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2
.ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
case pr0_delta u1:T u2:T H7:pr0 u1 u2 t5:T t6:T H8:pr0 t5 t6 w:T H9:subst0 O u2 t6 w ⇒
the thesis becomes
∀H10:eq T (THead (Bind Abbr) u1 t5) t
.∀H11:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H10: eq T (THead (Bind Abbr) u1 t5) t
suppose H11: eq T (THead (Bind Abbr) u2 w) t2
suppose H12: eq T (THead (Bind Abbr) u2 w) t2
we proceed by induction on H12 to prove (pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
suppose : pr0 u1 u2
suppose : pr0 t5 t6
suppose : subst0 O u2 t6 w
(H16)
by (eq_ind_r . . . H3 . H10)
eq T (THead (Flat Cast) u t3) (THead (Bind Abbr) u1 t5)
end of H16
(H17)
we proceed by induction on H16 to prove
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H17
consider H17
we proved
<λ:T.Prop>
CASE THead (Bind Abbr) u1 t5 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7
pr0 u1 u2
→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 (THead (Bind Abbr) u2 w) t7)
we proved (pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
eq T (THead (Bind Abbr) u2 w) t2
→(pr0 u1 u2)→(pr0 t5 t6)→(subst0 O u2 t6 w)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H10 H11 H7 H8 H9)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H10:eq T (THead (Bind Abbr) u1 t5) t
.∀H11:(eq T (THead (Bind Abbr) u2 w) t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_zeta b:B H7:not (eq B b Abst) t5:T t6:T H8:pr0 t5 t6 u0:T ⇒
the thesis becomes ∀H9:(eq T (THead (Bind b) u0 (lift (S O) O t5)) t).∀H10:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H9: eq T (THead (Bind b) u0 (lift (S O) O t5)) t
suppose H10: eq T t6 t2
suppose H11: eq T t6 t2
by (sym_eq . . . H11)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (not (eq B b Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose : not (eq B b Abst)
suppose : pr0 t5 t2
(H14)
by (eq_ind_r . . . H3 . H9)
eq T (THead (Flat Cast) u t3) (THead (Bind b) u0 (lift (S O) O t5))
end of H14
(H15)
we proceed by induction on H14 to prove
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
case refl_equal : ⇒
the thesis becomes
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
consider I
we proved True
<λ:T.Prop>
CASE THead (Flat Cast) u t3 OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
end of H15
consider H15
we proved
<λ:T.Prop>
CASE THead (Bind b) u0 (lift (S O) O t5) OF
TSort ⇒False
| TLRef ⇒False
| THead k ⇒<λ:K.Prop> CASE k OF Bind ⇒False | Flat ⇒True
that is equivalent to False
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(not (eq B b Abst))→(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(not (eq B b Abst))→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H9 H10 H7 H8)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H9:(eq T (THead (Bind b) u0 (lift (S O) O t5)) t).∀H10:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case pr0_tau t5:T t6:T H7:pr0 t5 t6 u0:T ⇒
the thesis becomes ∀H8:(eq T (THead (Flat Cast) u0 t5) t).∀H9:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
suppose H8: eq T (THead (Flat Cast) u0 t5) t
suppose H9: eq T t6 t2
suppose H10: eq T t6 t2
by (sym_eq . . . H10)
we proved eq T t2 t6
we proceed by induction on the previous result to prove (pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
case refl_equal : ⇒
the thesis becomes (pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
suppose H11: pr0 t5 t2
(H12)
by (eq_ind_r . . . H3 . H8)
eq T (THead (Flat Cast) u t3) (THead (Flat Cast) u0 t5)
end of H12
(H13)
by (f_equal . . . . . H12)
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
<λ:T.T> CASE THead (Flat Cast) u0 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Flat Cast) u t3
λe:T.<λ:T.T> CASE e OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
THead (Flat Cast) u0 t5
end of H13
(h1)
(H14)
by (f_equal . . . . . H12)
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Flat Cast) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
eq
T
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Cast) u t3
λe:T.<λ:T.T> CASE e OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
THead (Flat Cast) u0 t5
end of H14
suppose : eq T u u0
(H16)
by (eq_ind_r . . . H . H8)
∀v:T
.tlt v (THead (Flat Cast) u0 t5)
→∀t8:T.(pr0 v t8)→∀t9:T.(pr0 v t9)→(ex2 T λt10:T.pr0 t8 t10 λt10:T.pr0 t9 t10)
end of H16
(H17)
consider H14
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
<λ:T.T> CASE THead (Flat Cast) u0 t5 OF TSort ⇒t3 | TLRef ⇒t3 | THead t7⇒t7
that is equivalent to eq T t3 t5
we proceed by induction on the previous result to prove pr0 t5 t1
case refl_equal : ⇒
the thesis becomes the hypothesis H6
pr0 t5 t1
end of H17
by (tlt_head_dx . . .)
we proved tlt t5 (THead (Flat Cast) u0 t5)
by (H16 . previous . H17 . H11)
we proved ex2 T λt10:T.pr0 t1 t10 λt10:T.pr0 t2 t10
we proceed by induction on the previous result to prove ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
case ex_intro2 : x:T H18:pr0 t1 x H19:pr0 t2 x ⇒
the thesis becomes ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
by (ex_intro2 . . . . H18 H19)
ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(eq T u u0)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
end of h1
(h2)
consider H13
we proved
eq
T
<λ:T.T> CASE THead (Flat Cast) u t3 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
<λ:T.T> CASE THead (Flat Cast) u0 t5 OF TSort ⇒u | TLRef ⇒u | THead t7 ⇒t7
eq T u u0
end of h2
by (h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(pr0 t5 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t6 t2)→(pr0 t5 t6)→(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
by (previous H8 H9 H7)
we proved ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8
∀H8:(eq T (THead (Flat Cast) u0 t5) t).∀H9:(eq T t6 t2).(ex2 T λt8:T.pr0 t1 t8 λt8:T.pr0 t2 t8)
(eq T t t)→(eq T t2 t2)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
end of H7
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t2 t2
end of h2
by (H7 h1 h2)
we proved ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7
(pr0 t3 t1)→(ex2 T λt7:T.pr0 t1 t7 λt7:T.pr0 t2 t7)
we proved (pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
(eq T t4 t1)→(pr0 t3 t4)→(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
by (previous H3 H4 H2)
we proved ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6
∀H3:(eq T (THead (Flat Cast) u t3) t).∀H4:(eq T t4 t1).(ex2 T λt6:T.pr0 t1 t6 λt6:T.pr0 t2 t6)
(eq T t t)→(eq T t1 t1)→(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
end of H2
(h1)
by (refl_equal . .)
eq T t t
end of h1
(h2)
by (refl_equal . .)
eq T t1 t1
end of h2
by (H2 h1 h2)
we proved ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5
we proved
∀t:T
.∀v:T.(tlt v t)→∀t1:T.(pr0 v t1)→∀t2:T.(pr0 v t2)→(ex2 T λt3:T.pr0 t1 t3 λt3:T.pr0 t2 t3)
→∀t1:T.(pr0 t t1)→∀t2:T.(pr0 t t2)→(ex2 T λt5:T.pr0 t1 t5 λt5:T.pr0 t2 t5)
by (tlt_wf_ind . previous .)
we proved ∀t1:T.(pr0 t0 t1)→∀t2:T.(pr0 t0 t2)→(ex2 T λt3:T.pr0 t1 t3 λt3:T.pr0 t2 t3)
we proved ∀t0:T.∀t1:T.(pr0 t0 t1)→∀t2:T.(pr0 t0 t2)→(ex2 T λt3:T.pr0 t1 t3 λt3:T.pr0 t2 t3)