From 57e01777627e779555dc091a58ec2f4f860ee51f Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Thu, 5 Mar 2015 13:37:08 +0000 Subject: [PATCH] components: sc3, csubc --- .../lambdadelta/basic_1/csubc/arity.ma | 17 +- .../lambdadelta/basic_1/csubc/clear.ma | 378 ++-- .../lambdadelta/basic_1/csubc/csuba.ma | 33 +- .../lambdadelta/basic_1/csubc/defs.ma | 2 +- .../lambdadelta/basic_1/csubc/drop.ma | 1212 +++++++----- .../lambdadelta/basic_1/csubc/drop1.ma | 145 +- .../contribs/lambdadelta/basic_1/csubc/fwd.ma | 543 +++--- .../lambdadelta/basic_1/csubc/getl.ma | 42 +- .../lambdadelta/basic_1/csubc/props.ma | 14 +- .../contribs/lambdadelta/basic_1/sc3/arity.ma | 781 +++++--- .../contribs/lambdadelta/basic_1/sc3/defs.ma | 24 +- .../contribs/lambdadelta/basic_1/sc3/props.ma | 1618 +++++++++++------ 12 files changed, 2982 insertions(+), 1827 deletions(-) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/arity.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/arity.ma index 62922d311..72943adfc 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/arity.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/arity.ma @@ -14,18 +14,16 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/csuba.ma". +include "basic_1/csubc/csuba.ma". theorem csubc_arity_conf: \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to (\forall (t: T).(\forall (a: A).((arity g c1 t a) \to (arity g c2 t a))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 -c2)).(\lambda (t: T).(\lambda (a: A).(\lambda (H0: (arity g c1 t -a)).(csuba_arity g c1 t a H0 c2 (csubc_csuba g c1 c2 H)))))))). -(* COMMENTS -Initial nodes: 51 -END *) +c2)).(\lambda (t: T).(\lambda (a: A).(\lambda (H0: (arity g c1 t a)).(let +TMP_1 \def (csubc_csuba g c1 c2 H) in (csuba_arity g c1 t a H0 c2 +TMP_1)))))))). theorem csubc_arity_trans: \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to @@ -34,9 +32,6 @@ theorem csubc_arity_trans: \def \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 c2)).(\lambda (H0: (csubv c1 c2)).(\lambda (t: T).(\lambda (a: A).(\lambda -(H1: (arity g c2 t a)).(csuba_arity_rev g c2 t a H1 c1 (csubc_csuba g c1 c2 -H) H0)))))))). -(* COMMENTS -Initial nodes: 59 -END *) +(H1: (arity g c2 t a)).(let TMP_1 \def (csubc_csuba g c1 c2 H) in +(csuba_arity_rev g c2 t a H1 c1 TMP_1 H0))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/clear.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/clear.ma index 185bdff75..6339cf8fc 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/clear.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/clear.ma @@ -14,7 +14,9 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/fwd.ma". +include "basic_1/csubc/fwd.ma". + +include "basic_1/clear/fwd.ma". theorem csubc_clear_conf: \forall (g: G).(\forall (c1: C).(\forall (e1: C).((clear c1 e1) \to (\forall @@ -22,149 +24,251 @@ theorem csubc_clear_conf: (e2: C).(csubc g e1 e2)))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (e1: C).(\lambda (H: (clear c1 -e1)).(clear_ind (\lambda (c: C).(\lambda (c0: C).(\forall (c2: C).((csubc g c -c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g c0 -e2))))))) (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(\lambda (c2: -C).(\lambda (H0: (csubc g (CHead e (Bind b) u) c2)).(let H_x \def -(csubc_gen_head_l g e c2 u (Bind b) H0) in (let H1 \def H_x in (or3_ind (ex2 -C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g -e c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K -(Bind b) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq -C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda -(_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 -g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g -a c3 w))))) (ex4_3 B C T (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C c2 (CHead c3 (Bind b0) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K (Bind b) (Bind Void))))) (\lambda (b0: B).(\lambda -(_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g e c3))))) (ex2 C (\lambda (e2: C).(clear c2 e2)) -(\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2))) (\lambda (H2: (ex2 C -(\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g e -c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda -(c3: C).(csubc g e c3)) (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: -C).(csubc g (CHead e (Bind b) u) e2))) (\lambda (x: C).(\lambda (H3: (eq C c2 -(CHead x (Bind b) u))).(\lambda (H4: (csubc g e x)).(eq_ind_r C (CHead x -(Bind b) u) (\lambda (c: C).(ex2 C (\lambda (e2: C).(clear c e2)) (\lambda -(e2: C).(csubc g (CHead e (Bind b) u) e2)))) (ex_intro2 C (\lambda (e2: -C).(clear (CHead x (Bind b) u) e2)) (\lambda (e2: C).(csubc g (CHead e (Bind -b) u) e2)) (CHead x (Bind b) u) (clear_bind b x u) (csubc_head g e x H4 (Bind -b) u)) c2 H3)))) H2)) (\lambda (H2: (ex5_3 C T A (\lambda (_: C).(\lambda (_: +e1)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (c2: +C).((csubc g c c2) \to (let TMP_1 \def (\lambda (e2: C).(clear c2 e2)) in +(let TMP_2 \def (\lambda (e2: C).(csubc g c0 e2)) in (ex2 C TMP_1 +TMP_2))))))) in (let TMP_157 \def (\lambda (b: B).(\lambda (e: C).(\lambda +(u: T).(\lambda (c2: C).(\lambda (H0: (csubc g (CHead e (Bind b) u) c2)).(let +TMP_4 \def (Bind b) in (let H_x \def (csubc_gen_head_l g e c2 u TMP_4 H0) in +(let H1 \def H_x in (let TMP_7 \def (\lambda (c3: C).(let TMP_5 \def (Bind b) +in (let TMP_6 \def (CHead c3 TMP_5 u) in (eq C c2 TMP_6)))) in (let TMP_8 +\def (\lambda (c3: C).(csubc g e c3)) in (let TMP_9 \def (ex2 C TMP_7 TMP_8) +in (let TMP_12 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let +TMP_10 \def (Bind b) in (let TMP_11 \def (Bind Abst) in (eq K TMP_10 +TMP_11)))))) in (let TMP_15 \def (\lambda (c3: C).(\lambda (w: T).(\lambda +(_: A).(let TMP_13 \def (Bind Abbr) in (let TMP_14 \def (CHead c3 TMP_13 w) +in (eq C c2 TMP_14)))))) in (let TMP_16 \def (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g e c3)))) in (let TMP_18 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(let TMP_17 \def (asucc g a) in (sc3 g +TMP_17 e u))))) in (let TMP_19 \def (\lambda (c3: C).(\lambda (w: T).(\lambda +(a: A).(sc3 g a c3 w)))) in (let TMP_20 \def (ex5_3 C T A TMP_12 TMP_15 +TMP_16 TMP_18 TMP_19) in (let TMP_23 \def (\lambda (b0: B).(\lambda (c3: +C).(\lambda (v2: T).(let TMP_21 \def (Bind b0) in (let TMP_22 \def (CHead c3 +TMP_21 v2) in (eq C c2 TMP_22)))))) in (let TMP_26 \def (\lambda (_: +B).(\lambda (_: C).(\lambda (_: T).(let TMP_24 \def (Bind b) in (let TMP_25 +\def (Bind Void) in (eq K TMP_24 TMP_25)))))) in (let TMP_28 \def (\lambda +(b0: B).(\lambda (_: C).(\lambda (_: T).(let TMP_27 \def (eq B b0 Void) in +(not TMP_27))))) in (let TMP_29 \def (\lambda (_: B).(\lambda (c3: +C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_30 \def (ex4_3 B C T TMP_23 +TMP_26 TMP_28 TMP_29) in (let TMP_31 \def (\lambda (e2: C).(clear c2 e2)) in +(let TMP_34 \def (\lambda (e2: C).(let TMP_32 \def (Bind b) in (let TMP_33 +\def (CHead e TMP_32 u) in (csubc g TMP_33 e2)))) in (let TMP_35 \def (ex2 C +TMP_31 TMP_34) in (let TMP_65 \def (\lambda (H2: (ex2 C (\lambda (c3: C).(eq +C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g e c3)))).(let TMP_38 +\def (\lambda (c3: C).(let TMP_36 \def (Bind b) in (let TMP_37 \def (CHead c3 +TMP_36 u) in (eq C c2 TMP_37)))) in (let TMP_39 \def (\lambda (c3: C).(csubc +g e c3)) in (let TMP_40 \def (\lambda (e2: C).(clear c2 e2)) in (let TMP_43 +\def (\lambda (e2: C).(let TMP_41 \def (Bind b) in (let TMP_42 \def (CHead e +TMP_41 u) in (csubc g TMP_42 e2)))) in (let TMP_44 \def (ex2 C TMP_40 TMP_43) +in (let TMP_64 \def (\lambda (x: C).(\lambda (H3: (eq C c2 (CHead x (Bind b) +u))).(\lambda (H4: (csubc g e x)).(let TMP_45 \def (Bind b) in (let TMP_46 +\def (CHead x TMP_45 u) in (let TMP_51 \def (\lambda (c: C).(let TMP_47 \def +(\lambda (e2: C).(clear c e2)) in (let TMP_50 \def (\lambda (e2: C).(let +TMP_48 \def (Bind b) in (let TMP_49 \def (CHead e TMP_48 u) in (csubc g +TMP_49 e2)))) in (ex2 C TMP_47 TMP_50)))) in (let TMP_54 \def (\lambda (e2: +C).(let TMP_52 \def (Bind b) in (let TMP_53 \def (CHead x TMP_52 u) in (clear +TMP_53 e2)))) in (let TMP_57 \def (\lambda (e2: C).(let TMP_55 \def (Bind b) +in (let TMP_56 \def (CHead e TMP_55 u) in (csubc g TMP_56 e2)))) in (let +TMP_58 \def (Bind b) in (let TMP_59 \def (CHead x TMP_58 u) in (let TMP_60 +\def (clear_bind b x u) in (let TMP_61 \def (Bind b) in (let TMP_62 \def +(csubc_head g e x H4 TMP_61 u) in (let TMP_63 \def (ex_intro2 C TMP_54 TMP_57 +TMP_59 TMP_60 TMP_62) in (eq_ind_r C TMP_46 TMP_51 TMP_63 c2 +H3))))))))))))))) in (ex2_ind C TMP_38 TMP_39 TMP_44 TMP_64 H2)))))))) in +(let TMP_111 \def (\lambda (H2: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind b) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda -(w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A (\lambda (_: -C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind b) (Bind Abst))))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 C (\lambda -(e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2))) +(w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_68 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(let TMP_66 \def (Bind b) in (let TMP_67 +\def (Bind Abst) in (eq K TMP_66 TMP_67)))))) in (let TMP_71 \def (\lambda +(c3: C).(\lambda (w: T).(\lambda (_: A).(let TMP_69 \def (Bind Abbr) in (let +TMP_70 \def (CHead c3 TMP_69 w) in (eq C c2 TMP_70)))))) in (let TMP_72 \def +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) in (let +TMP_74 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(let TMP_73 \def +(asucc g a) in (sc3 g TMP_73 e u))))) in (let TMP_75 \def (\lambda (c3: +C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_76 \def +(\lambda (e2: C).(clear c2 e2)) in (let TMP_79 \def (\lambda (e2: C).(let +TMP_77 \def (Bind b) in (let TMP_78 \def (CHead e TMP_77 u) in (csubc g +TMP_78 e2)))) in (let TMP_80 \def (ex2 C TMP_76 TMP_79) in (let TMP_110 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H3: (eq K (Bind b) (Bind Abst))).(\lambda (H4: (eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda (H5: (csubc g e x0)).(\lambda (H6: (sc3 g (asucc g x2) e u)).(\lambda (H7: -(sc3 g x2 x0 x1)).(eq_ind_r C (CHead x0 (Bind Abbr) x1) (\lambda (c: C).(ex2 -C (\lambda (e2: C).(clear c e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b) -u) e2)))) (let H8 \def (f_equal K B (\lambda (e0: K).(match e0 in K return -(\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])) -(Bind b) (Bind Abst) H3) in (eq_ind_r B Abst (\lambda (b0: B).(ex2 C (\lambda -(e2: C).(clear (CHead x0 (Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g -(CHead e (Bind b0) u) e2)))) (ex_intro2 C (\lambda (e2: C).(clear (CHead x0 -(Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g (CHead e (Bind Abst) u) e2)) -(CHead x0 (Bind Abbr) x1) (clear_bind Abbr x0 x1) (csubc_abst g e x0 H5 u x2 -H6 x1 H7)) b H8)) c2 H4))))))))) H2)) (\lambda (H2: (ex4_3 B C T (\lambda -(b0: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b0) -v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind b) (Bind +(sc3 g x2 x0 x1)).(let TMP_81 \def (Bind Abbr) in (let TMP_82 \def (CHead x0 +TMP_81 x1) in (let TMP_87 \def (\lambda (c: C).(let TMP_83 \def (\lambda (e2: +C).(clear c e2)) in (let TMP_86 \def (\lambda (e2: C).(let TMP_84 \def (Bind +b) in (let TMP_85 \def (CHead e TMP_84 u) in (csubc g TMP_85 e2)))) in (ex2 C +TMP_83 TMP_86)))) in (let TMP_88 \def (\lambda (e0: K).(match e0 with [(Bind +b0) \Rightarrow b0 | (Flat _) \Rightarrow b])) in (let TMP_89 \def (Bind b) +in (let TMP_90 \def (Bind Abst) in (let H8 \def (f_equal K B TMP_88 TMP_89 +TMP_90 H3) in (let TMP_97 \def (\lambda (b0: B).(let TMP_93 \def (\lambda +(e2: C).(let TMP_91 \def (Bind Abbr) in (let TMP_92 \def (CHead x0 TMP_91 x1) +in (clear TMP_92 e2)))) in (let TMP_96 \def (\lambda (e2: C).(let TMP_94 \def +(Bind b0) in (let TMP_95 \def (CHead e TMP_94 u) in (csubc g TMP_95 e2)))) in +(ex2 C TMP_93 TMP_96)))) in (let TMP_100 \def (\lambda (e2: C).(let TMP_98 +\def (Bind Abbr) in (let TMP_99 \def (CHead x0 TMP_98 x1) in (clear TMP_99 +e2)))) in (let TMP_103 \def (\lambda (e2: C).(let TMP_101 \def (Bind Abst) in +(let TMP_102 \def (CHead e TMP_101 u) in (csubc g TMP_102 e2)))) in (let +TMP_104 \def (Bind Abbr) in (let TMP_105 \def (CHead x0 TMP_104 x1) in (let +TMP_106 \def (clear_bind Abbr x0 x1) in (let TMP_107 \def (csubc_abst g e x0 +H5 u x2 H6 x1 H7) in (let TMP_108 \def (ex_intro2 C TMP_100 TMP_103 TMP_105 +TMP_106 TMP_107) in (let TMP_109 \def (eq_ind_r B Abst TMP_97 TMP_108 b H8) +in (eq_ind_r C TMP_82 TMP_87 TMP_109 c2 H4))))))))))))))))))))))))) in +(ex5_3_ind C T A TMP_68 TMP_71 TMP_72 TMP_74 TMP_75 TMP_80 TMP_110 +H2))))))))))) in (let TMP_156 \def (\lambda (H2: (ex4_3 B C T (\lambda (b0: +B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b0) v2))))) +(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind b) (Bind Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g e -c3)))))).(ex4_3_ind B C T (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C c2 (CHead c3 (Bind b0) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K (Bind b) (Bind Void))))) (\lambda (b0: B).(\lambda -(_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g e c3)))) (ex2 C (\lambda (e2: C).(clear c2 e2)) -(\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2))) (\lambda (x0: -B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H3: (eq C c2 (CHead x1 (Bind -x0) x2))).(\lambda (H4: (eq K (Bind b) (Bind Void))).(\lambda (H5: (not (eq B -x0 Void))).(\lambda (H6: (csubc g e x1)).(eq_ind_r C (CHead x1 (Bind x0) x2) -(\lambda (c: C).(ex2 C (\lambda (e2: C).(clear c e2)) (\lambda (e2: C).(csubc -g (CHead e (Bind b) u) e2)))) (let H7 \def (f_equal K B (\lambda (e0: -K).(match e0 in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | -(Flat _) \Rightarrow b])) (Bind b) (Bind Void) H4) in (eq_ind_r B Void -(\lambda (b0: B).(ex2 C (\lambda (e2: C).(clear (CHead x1 (Bind x0) x2) e2)) -(\lambda (e2: C).(csubc g (CHead e (Bind b0) u) e2)))) (ex_intro2 C (\lambda -(e2: C).(clear (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g (CHead -e (Bind Void) u) e2)) (CHead x1 (Bind x0) x2) (clear_bind x0 x1 x2) -(csubc_void g e x1 H6 x0 H5 u x2)) b H7)) c2 H3)))))))) H2)) H1)))))))) -(\lambda (e: C).(\lambda (c: C).(\lambda (_: (clear e c)).(\lambda (H1: -((\forall (c2: C).((csubc g e c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) -(\lambda (e2: C).(csubc g c e2))))))).(\lambda (f: F).(\lambda (u: -T).(\lambda (c2: C).(\lambda (H2: (csubc g (CHead e (Flat f) u) c2)).(let H_x -\def (csubc_gen_head_l g e c2 u (Flat f) H2) in (let H3 \def H_x in (or3_ind -(ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: -C).(csubc g e c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: -A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda -(_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda -(a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: -C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: -B).(\lambda (_: C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda -(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3))))) (ex2 C (\lambda (e2: -C).(clear c2 e2)) (\lambda (e2: C).(csubc g c e2))) (\lambda (H4: (ex2 C -(\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: C).(csubc g e -c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda -(c3: C).(csubc g e c3)) (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: -C).(csubc g c e2))) (\lambda (x: C).(\lambda (H5: (eq C c2 (CHead x (Flat f) -u))).(\lambda (H6: (csubc g e x)).(eq_ind_r C (CHead x (Flat f) u) (\lambda -(c0: C).(ex2 C (\lambda (e2: C).(clear c0 e2)) (\lambda (e2: C).(csubc g c -e2)))) (let H_x0 \def (H1 x H6) in (let H7 \def H_x0 in (ex2_ind C (\lambda -(e2: C).(clear x e2)) (\lambda (e2: C).(csubc g c e2)) (ex2 C (\lambda (e2: -C).(clear (CHead x (Flat f) u) e2)) (\lambda (e2: C).(csubc g c e2))) -(\lambda (x0: C).(\lambda (H8: (clear x x0)).(\lambda (H9: (csubc g c -x0)).(ex_intro2 C (\lambda (e2: C).(clear (CHead x (Flat f) u) e2)) (\lambda -(e2: C).(csubc g c e2)) x0 (clear_flat x x0 H8 f u) H9)))) H7))) c2 H5)))) -H4)) (\lambda (H4: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: -A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda -(_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda -(a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda -(w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: -C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda -(_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda -(w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 C (\lambda (e2: C).(clear c2 -e2)) (\lambda (e2: C).(csubc g c e2))) (\lambda (x0: C).(\lambda (x1: -T).(\lambda (x2: A).(\lambda (H5: (eq K (Flat f) (Bind Abst))).(\lambda (H6: -(eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda (_: (csubc g e x0)).(\lambda -(_: (sc3 g (asucc g x2) e u)).(\lambda (_: (sc3 g x2 x0 x1)).(eq_ind_r C -(CHead x0 (Bind Abbr) x1) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(clear c0 -e2)) (\lambda (e2: C).(csubc g c e2)))) (let H10 \def (eq_ind K (Flat f) -(\lambda (ee: K).(match ee in K return (\lambda (_: K).Prop) with [(Bind _) -\Rightarrow False | (Flat _) \Rightarrow True])) I (Bind Abst) H5) in -(False_ind (ex2 C (\lambda (e2: C).(clear (CHead x0 (Bind Abbr) x1) e2)) -(\lambda (e2: C).(csubc g c e2))) H10)) c2 H6))))))))) H4)) (\lambda (H4: -(ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 -(CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: -T).(eq K (Flat f) (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda -(_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: -T).(csubc g e c3)))))).(ex4_3_ind B C T (\lambda (b: B).(\lambda (c3: -C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: -B).(\lambda (_: C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda -(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) (ex2 C (\lambda (e2: -C).(clear c2 e2)) (\lambda (e2: C).(csubc g c e2))) (\lambda (x0: B).(\lambda -(x1: C).(\lambda (x2: T).(\lambda (H5: (eq C c2 (CHead x1 (Bind x0) -x2))).(\lambda (H6: (eq K (Flat f) (Bind Void))).(\lambda (_: (not (eq B x0 -Void))).(\lambda (_: (csubc g e x1)).(eq_ind_r C (CHead x1 (Bind x0) x2) -(\lambda (c0: C).(ex2 C (\lambda (e2: C).(clear c0 e2)) (\lambda (e2: -C).(csubc g c e2)))) (let H9 \def (eq_ind K (Flat f) (\lambda (ee: K).(match -ee in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat -_) \Rightarrow True])) I (Bind Void) H6) in (False_ind (ex2 C (\lambda (e2: -C).(clear (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g c e2))) H9)) -c2 H5)))))))) H4)) H3))))))))))) c1 e1 H)))). -(* COMMENTS -Initial nodes: 2837 -END *) +c3)))))).(let TMP_114 \def (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: +T).(let TMP_112 \def (Bind b0) in (let TMP_113 \def (CHead c3 TMP_112 v2) in +(eq C c2 TMP_113)))))) in (let TMP_117 \def (\lambda (_: B).(\lambda (_: +C).(\lambda (_: T).(let TMP_115 \def (Bind b) in (let TMP_116 \def (Bind +Void) in (eq K TMP_115 TMP_116)))))) in (let TMP_119 \def (\lambda (b0: +B).(\lambda (_: C).(\lambda (_: T).(let TMP_118 \def (eq B b0 Void) in (not +TMP_118))))) in (let TMP_120 \def (\lambda (_: B).(\lambda (c3: C).(\lambda +(_: T).(csubc g e c3)))) in (let TMP_121 \def (\lambda (e2: C).(clear c2 e2)) +in (let TMP_124 \def (\lambda (e2: C).(let TMP_122 \def (Bind b) in (let +TMP_123 \def (CHead e TMP_122 u) in (csubc g TMP_123 e2)))) in (let TMP_125 +\def (ex2 C TMP_121 TMP_124) in (let TMP_155 \def (\lambda (x0: B).(\lambda +(x1: C).(\lambda (x2: T).(\lambda (H3: (eq C c2 (CHead x1 (Bind x0) +x2))).(\lambda (H4: (eq K (Bind b) (Bind Void))).(\lambda (H5: (not (eq B x0 +Void))).(\lambda (H6: (csubc g e x1)).(let TMP_126 \def (Bind x0) in (let +TMP_127 \def (CHead x1 TMP_126 x2) in (let TMP_132 \def (\lambda (c: C).(let +TMP_128 \def (\lambda (e2: C).(clear c e2)) in (let TMP_131 \def (\lambda +(e2: C).(let TMP_129 \def (Bind b) in (let TMP_130 \def (CHead e TMP_129 u) +in (csubc g TMP_130 e2)))) in (ex2 C TMP_128 TMP_131)))) in (let TMP_133 \def +(\lambda (e0: K).(match e0 with [(Bind b0) \Rightarrow b0 | (Flat _) +\Rightarrow b])) in (let TMP_134 \def (Bind b) in (let TMP_135 \def (Bind +Void) in (let H7 \def (f_equal K B TMP_133 TMP_134 TMP_135 H4) in (let +TMP_142 \def (\lambda (b0: B).(let TMP_138 \def (\lambda (e2: C).(let TMP_136 +\def (Bind x0) in (let TMP_137 \def (CHead x1 TMP_136 x2) in (clear TMP_137 +e2)))) in (let TMP_141 \def (\lambda (e2: C).(let TMP_139 \def (Bind b0) in +(let TMP_140 \def (CHead e TMP_139 u) in (csubc g TMP_140 e2)))) in (ex2 C +TMP_138 TMP_141)))) in (let TMP_145 \def (\lambda (e2: C).(let TMP_143 \def +(Bind x0) in (let TMP_144 \def (CHead x1 TMP_143 x2) in (clear TMP_144 e2)))) +in (let TMP_148 \def (\lambda (e2: C).(let TMP_146 \def (Bind Void) in (let +TMP_147 \def (CHead e TMP_146 u) in (csubc g TMP_147 e2)))) in (let TMP_149 +\def (Bind x0) in (let TMP_150 \def (CHead x1 TMP_149 x2) in (let TMP_151 +\def (clear_bind x0 x1 x2) in (let TMP_152 \def (csubc_void g e x1 H6 x0 H5 u +x2) in (let TMP_153 \def (ex_intro2 C TMP_145 TMP_148 TMP_150 TMP_151 +TMP_152) in (let TMP_154 \def (eq_ind_r B Void TMP_142 TMP_153 b H7) in +(eq_ind_r C TMP_127 TMP_132 TMP_154 c2 H3)))))))))))))))))))))))) in +(ex4_3_ind B C T TMP_114 TMP_117 TMP_119 TMP_120 TMP_125 TMP_155 H2)))))))))) +in (or3_ind TMP_9 TMP_20 TMP_30 TMP_35 TMP_65 TMP_111 TMP_156 +H1))))))))))))))))))))))))))))) in (let TMP_273 \def (\lambda (e: C).(\lambda +(c: C).(\lambda (_: (clear e c)).(\lambda (H1: ((\forall (c2: C).((csubc g e +c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g c +e2))))))).(\lambda (f: F).(\lambda (u: T).(\lambda (c2: C).(\lambda (H2: +(csubc g (CHead e (Flat f) u) c2)).(let TMP_158 \def (Flat f) in (let H_x +\def (csubc_gen_head_l g e c2 u TMP_158 H2) in (let H3 \def H_x in (let +TMP_161 \def (\lambda (c3: C).(let TMP_159 \def (Flat f) in (let TMP_160 \def +(CHead c3 TMP_159 u) in (eq C c2 TMP_160)))) in (let TMP_162 \def (\lambda +(c3: C).(csubc g e c3)) in (let TMP_163 \def (ex2 C TMP_161 TMP_162) in (let +TMP_166 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_164 +\def (Flat f) in (let TMP_165 \def (Bind Abst) in (eq K TMP_164 TMP_165)))))) +in (let TMP_169 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let +TMP_167 \def (Bind Abbr) in (let TMP_168 \def (CHead c3 TMP_167 w) in (eq C +c2 TMP_168)))))) in (let TMP_170 \def (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g e c3)))) in (let TMP_172 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(let TMP_171 \def (asucc g a) in (sc3 g +TMP_171 e u))))) in (let TMP_173 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_174 \def (ex5_3 C T A +TMP_166 TMP_169 TMP_170 TMP_172 TMP_173) in (let TMP_177 \def (\lambda (b: +B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_175 \def (Bind b) in (let +TMP_176 \def (CHead c3 TMP_175 v2) in (eq C c2 TMP_176)))))) in (let TMP_180 +\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_178 \def (Flat +f) in (let TMP_179 \def (Bind Void) in (eq K TMP_178 TMP_179)))))) in (let +TMP_182 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_181 +\def (eq B b Void) in (not TMP_181))))) in (let TMP_183 \def (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_184 \def +(ex4_3 B C T TMP_177 TMP_180 TMP_182 TMP_183) in (let TMP_185 \def (\lambda +(e2: C).(clear c2 e2)) in (let TMP_186 \def (\lambda (e2: C).(csubc g c e2)) +in (let TMP_187 \def (ex2 C TMP_185 TMP_186) in (let TMP_215 \def (\lambda +(H4: (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: +C).(csubc g e c3)))).(let TMP_190 \def (\lambda (c3: C).(let TMP_188 \def +(Flat f) in (let TMP_189 \def (CHead c3 TMP_188 u) in (eq C c2 TMP_189)))) in +(let TMP_191 \def (\lambda (c3: C).(csubc g e c3)) in (let TMP_192 \def +(\lambda (e2: C).(clear c2 e2)) in (let TMP_193 \def (\lambda (e2: C).(csubc +g c e2)) in (let TMP_194 \def (ex2 C TMP_192 TMP_193) in (let TMP_214 \def +(\lambda (x: C).(\lambda (H5: (eq C c2 (CHead x (Flat f) u))).(\lambda (H6: +(csubc g e x)).(let TMP_195 \def (Flat f) in (let TMP_196 \def (CHead x +TMP_195 u) in (let TMP_199 \def (\lambda (c0: C).(let TMP_197 \def (\lambda +(e2: C).(clear c0 e2)) in (let TMP_198 \def (\lambda (e2: C).(csubc g c e2)) +in (ex2 C TMP_197 TMP_198)))) in (let H_x0 \def (H1 x H6) in (let H7 \def +H_x0 in (let TMP_200 \def (\lambda (e2: C).(clear x e2)) in (let TMP_201 \def +(\lambda (e2: C).(csubc g c e2)) in (let TMP_204 \def (\lambda (e2: C).(let +TMP_202 \def (Flat f) in (let TMP_203 \def (CHead x TMP_202 u) in (clear +TMP_203 e2)))) in (let TMP_205 \def (\lambda (e2: C).(csubc g c e2)) in (let +TMP_206 \def (ex2 C TMP_204 TMP_205) in (let TMP_212 \def (\lambda (x0: +C).(\lambda (H8: (clear x x0)).(\lambda (H9: (csubc g c x0)).(let TMP_209 +\def (\lambda (e2: C).(let TMP_207 \def (Flat f) in (let TMP_208 \def (CHead +x TMP_207 u) in (clear TMP_208 e2)))) in (let TMP_210 \def (\lambda (e2: +C).(csubc g c e2)) in (let TMP_211 \def (clear_flat x x0 H8 f u) in +(ex_intro2 C TMP_209 TMP_210 x0 TMP_211 H9))))))) in (let TMP_213 \def +(ex2_ind C TMP_200 TMP_201 TMP_206 TMP_212 H7) in (eq_ind_r C TMP_196 TMP_199 +TMP_213 c2 H5)))))))))))))))) in (ex2_ind C TMP_190 TMP_191 TMP_194 TMP_214 +H4)))))))) in (let TMP_244 \def (\lambda (H4: (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K (Flat f) (Bind Abst))))) (\lambda +(c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda +(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_218 \def +(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_216 \def (Flat f) in +(let TMP_217 \def (Bind Abst) in (eq K TMP_216 TMP_217)))))) in (let TMP_221 +\def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let TMP_219 \def (Bind +Abbr) in (let TMP_220 \def (CHead c3 TMP_219 w) in (eq C c2 TMP_220)))))) in +(let TMP_222 \def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e +c3)))) in (let TMP_224 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: +A).(let TMP_223 \def (asucc g a) in (sc3 g TMP_223 e u))))) in (let TMP_225 +\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in +(let TMP_226 \def (\lambda (e2: C).(clear c2 e2)) in (let TMP_227 \def +(\lambda (e2: C).(csubc g c e2)) in (let TMP_228 \def (ex2 C TMP_226 TMP_227) +in (let TMP_243 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: +A).(\lambda (H5: (eq K (Flat f) (Bind Abst))).(\lambda (H6: (eq C c2 (CHead +x0 (Bind Abbr) x1))).(\lambda (_: (csubc g e x0)).(\lambda (_: (sc3 g (asucc +g x2) e u)).(\lambda (_: (sc3 g x2 x0 x1)).(let TMP_229 \def (Bind Abbr) in +(let TMP_230 \def (CHead x0 TMP_229 x1) in (let TMP_233 \def (\lambda (c0: +C).(let TMP_231 \def (\lambda (e2: C).(clear c0 e2)) in (let TMP_232 \def +(\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_231 TMP_232)))) in (let +TMP_234 \def (Flat f) in (let TMP_235 \def (\lambda (ee: K).(match ee with +[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in (let TMP_236 +\def (Bind Abst) in (let H10 \def (eq_ind K TMP_234 TMP_235 I TMP_236 H5) in +(let TMP_239 \def (\lambda (e2: C).(let TMP_237 \def (Bind Abbr) in (let +TMP_238 \def (CHead x0 TMP_237 x1) in (clear TMP_238 e2)))) in (let TMP_240 +\def (\lambda (e2: C).(csubc g c e2)) in (let TMP_241 \def (ex2 C TMP_239 +TMP_240) in (let TMP_242 \def (False_ind TMP_241 H10) in (eq_ind_r C TMP_230 +TMP_233 TMP_242 c2 H6)))))))))))))))))))) in (ex5_3_ind C T A TMP_218 TMP_221 +TMP_222 TMP_224 TMP_225 TMP_228 TMP_243 H4))))))))))) in (let TMP_272 \def +(\lambda (H4: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: +T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: +C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda (b: B).(\lambda +(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: +C).(\lambda (_: T).(csubc g e c3)))))).(let TMP_247 \def (\lambda (b: +B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_245 \def (Bind b) in (let +TMP_246 \def (CHead c3 TMP_245 v2) in (eq C c2 TMP_246)))))) in (let TMP_250 +\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_248 \def (Flat +f) in (let TMP_249 \def (Bind Void) in (eq K TMP_248 TMP_249)))))) in (let +TMP_252 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_251 +\def (eq B b Void) in (not TMP_251))))) in (let TMP_253 \def (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_254 \def +(\lambda (e2: C).(clear c2 e2)) in (let TMP_255 \def (\lambda (e2: C).(csubc +g c e2)) in (let TMP_256 \def (ex2 C TMP_254 TMP_255) in (let TMP_271 \def +(\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H5: (eq C c2 +(CHead x1 (Bind x0) x2))).(\lambda (H6: (eq K (Flat f) (Bind Void))).(\lambda +(_: (not (eq B x0 Void))).(\lambda (_: (csubc g e x1)).(let TMP_257 \def +(Bind x0) in (let TMP_258 \def (CHead x1 TMP_257 x2) in (let TMP_261 \def +(\lambda (c0: C).(let TMP_259 \def (\lambda (e2: C).(clear c0 e2)) in (let +TMP_260 \def (\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_259 TMP_260)))) +in (let TMP_262 \def (Flat f) in (let TMP_263 \def (\lambda (ee: K).(match ee +with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in (let +TMP_264 \def (Bind Void) in (let H9 \def (eq_ind K TMP_262 TMP_263 I TMP_264 +H6) in (let TMP_267 \def (\lambda (e2: C).(let TMP_265 \def (Bind x0) in (let +TMP_266 \def (CHead x1 TMP_265 x2) in (clear TMP_266 e2)))) in (let TMP_268 +\def (\lambda (e2: C).(csubc g c e2)) in (let TMP_269 \def (ex2 C TMP_267 +TMP_268) in (let TMP_270 \def (False_ind TMP_269 H9) in (eq_ind_r C TMP_258 +TMP_261 TMP_270 c2 H5))))))))))))))))))) in (ex4_3_ind B C T TMP_247 TMP_250 +TMP_252 TMP_253 TMP_256 TMP_271 H4)))))))))) in (or3_ind TMP_163 TMP_174 +TMP_184 TMP_187 TMP_215 TMP_244 TMP_272 H3)))))))))))))))))))))))))))))))) in +(clear_ind TMP_3 TMP_157 TMP_273 c1 e1 H))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/csuba.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/csuba.ma index 2abfe2a1f..b25cab8d4 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/csuba.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/csuba.ma @@ -14,27 +14,28 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/defs.ma". +include "basic_1/csubc/fwd.ma". -include "Basic-1/sc3/props.ma". +include "basic_1/sc3/props.ma". theorem csubc_csuba: \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to (csuba g c1 c2)))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 -c2)).(csubc_ind g (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) (\lambda -(n: nat).(csuba_refl g (CSort n))) (\lambda (c3: C).(\lambda (c4: C).(\lambda -(_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda -(v: T).(csuba_head g c3 c4 H1 k v))))))) (\lambda (c3: C).(\lambda (c4: -C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (b: -B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: -T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) (\lambda (c3: C).(\lambda (c4: -C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (v: -T).(\lambda (a: A).(\lambda (H2: (sc3 g (asucc g a) c3 v)).(\lambda (w: -T).(\lambda (H3: (sc3 g a c4 w)).(csuba_abst g c3 c4 H1 v a (sc3_arity_gen g -c3 v (asucc g a) H2) w (sc3_arity_gen g c4 w a H3))))))))))) c1 c2 H)))). -(* COMMENTS -Initial nodes: 231 -END *) +c2)).(let TMP_1 \def (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) in +(let TMP_3 \def (\lambda (n: nat).(let TMP_2 \def (CSort n) in (csuba_refl g +TMP_2))) in (let TMP_4 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: +(csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda (v: +T).(csuba_head g c3 c4 H1 k v))))))) in (let TMP_5 \def (\lambda (c3: +C).(\lambda (c4: C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 +c4)).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: +T).(\lambda (u2: T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) in (let TMP_9 +\def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: (csubc g c3 c4)).(\lambda +(H1: (csuba g c3 c4)).(\lambda (v: T).(\lambda (a: A).(\lambda (H2: (sc3 g +(asucc g a) c3 v)).(\lambda (w: T).(\lambda (H3: (sc3 g a c4 w)).(let TMP_6 +\def (asucc g a) in (let TMP_7 \def (sc3_arity_gen g c3 v TMP_6 H2) in (let +TMP_8 \def (sc3_arity_gen g c4 w a H3) in (csuba_abst g c3 c4 H1 v a TMP_7 w +TMP_8))))))))))))) in (csubc_ind g TMP_1 TMP_3 TMP_4 TMP_5 TMP_9 c1 c2 +H))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/defs.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/defs.ma index 73a4c5625..e1f71a30f 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/defs.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/defs.ma @@ -14,7 +14,7 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/sc3/defs.ma". +include "basic_1/sc3/defs.ma". inductive csubc (g: G): C \to (C \to Prop) \def | csubc_sort: \forall (n: nat).(csubc g (CSort n) (CSort n)) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/drop.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/drop.ma index 195d36491..eb4169f05 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/drop.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/drop.ma @@ -14,462 +14,806 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/fwd.ma". +include "basic_1/csubc/fwd.ma". -include "Basic-1/sc3/props.ma". +include "basic_1/sc3/props.ma". theorem csubc_drop_conf_O: \forall (g: G).(\forall (c1: C).(\forall (e1: C).(\forall (h: nat).((drop h O c1 e1) \to (\forall (c2: C).((csubc g c1 c2) \to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))))))))) \def - \lambda (g: G).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (e1: -C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c c2) -\to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 -e2))))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H: + \lambda (g: G).(\lambda (c1: C).(let TMP_3 \def (\lambda (c: C).(\forall +(e1: C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c +c2) \to (let TMP_1 \def (\lambda (e2: C).(drop h O c2 e2)) in (let TMP_2 \def +(\lambda (e2: C).(csubc g e1 e2)) in (ex2 C TMP_1 TMP_2))))))))) in (let +TMP_26 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H: (drop h O (CSort n) e1)).(\lambda (c2: C).(\lambda (H0: (csubc g (CSort n) -c2)).(and3_ind (eq C e1 (CSort n)) (eq nat h O) (eq nat O O) (ex2 C (\lambda -(e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (H1: -(eq C e1 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (_: (eq nat O -O)).(eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (e2: C).(drop n0 O c2 -e2)) (\lambda (e2: C).(csubc g e1 e2)))) (eq_ind_r C (CSort n) (\lambda (c: -C).(ex2 C (\lambda (e2: C).(drop O O c2 e2)) (\lambda (e2: C).(csubc g c -e2)))) (ex_intro2 C (\lambda (e2: C).(drop O O c2 e2)) (\lambda (e2: -C).(csubc g (CSort n) e2)) c2 (drop_refl c2) H0) e1 H1) h H2)))) -(drop_gen_sort n h O e1 H)))))))) (\lambda (c: C).(\lambda (H: ((\forall (e1: -C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c c2) -\to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 -e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e1: C).(\lambda (h: -nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e1) \to (\forall -(c2: C).((csubc g (CHead c k t) c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 -e2)) (\lambda (e2: C).(csubc g e1 e2))))))) (\lambda (H0: (drop O O (CHead c -k t) e1)).(\lambda (c2: C).(\lambda (H1: (csubc g (CHead c k t) c2)).(eq_ind -C (CHead c k t) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(drop O O c2 e2)) -(\lambda (e2: C).(csubc g c0 e2)))) (ex_intro2 C (\lambda (e2: C).(drop O O -c2 e2)) (\lambda (e2: C).(csubc g (CHead c k t) e2)) c2 (drop_refl c2) H1) e1 -(drop_gen_refl (CHead c k t) e1 H0))))) (\lambda (n: nat).(\lambda (H0: -(((drop n O (CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k t) -c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 e2)) (\lambda (e2: C).(csubc g -e1 e2)))))))).(\lambda (H1: (drop (S n) O (CHead c k t) e1)).(\lambda (c2: +c2)).(let TMP_4 \def (CSort n) in (let TMP_5 \def (eq C e1 TMP_4) in (let +TMP_6 \def (eq nat h O) in (let TMP_7 \def (eq nat O O) in (let TMP_8 \def +(\lambda (e2: C).(drop h O c2 e2)) in (let TMP_9 \def (\lambda (e2: C).(csubc +g e1 e2)) in (let TMP_10 \def (ex2 C TMP_8 TMP_9) in (let TMP_24 \def +(\lambda (H1: (eq C e1 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (_: +(eq nat O O)).(let TMP_13 \def (\lambda (n0: nat).(let TMP_11 \def (\lambda +(e2: C).(drop n0 O c2 e2)) in (let TMP_12 \def (\lambda (e2: C).(csubc g e1 +e2)) in (ex2 C TMP_11 TMP_12)))) in (let TMP_14 \def (CSort n) in (let TMP_17 +\def (\lambda (c: C).(let TMP_15 \def (\lambda (e2: C).(drop O O c2 e2)) in +(let TMP_16 \def (\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_15 TMP_16)))) +in (let TMP_18 \def (\lambda (e2: C).(drop O O c2 e2)) in (let TMP_20 \def +(\lambda (e2: C).(let TMP_19 \def (CSort n) in (csubc g TMP_19 e2))) in (let +TMP_21 \def (drop_refl c2) in (let TMP_22 \def (ex_intro2 C TMP_18 TMP_20 c2 +TMP_21 H0) in (let TMP_23 \def (eq_ind_r C TMP_14 TMP_17 TMP_22 e1 H1) in +(eq_ind_r nat O TMP_13 TMP_23 h H2)))))))))))) in (let TMP_25 \def +(drop_gen_sort n h O e1 H) in (and3_ind TMP_5 TMP_6 TMP_7 TMP_10 TMP_24 +TMP_25)))))))))))))))) in (let TMP_196 \def (\lambda (c: C).(\lambda (H: +((\forall (e1: C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: +C).((csubc g c c2) \to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda +(e2: C).(csubc g e1 e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda +(e1: C).(\lambda (h: nat).(let TMP_29 \def (\lambda (n: nat).((drop n O +(CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k t) c2) \to (let +TMP_27 \def (\lambda (e2: C).(drop n O c2 e2)) in (let TMP_28 \def (\lambda +(e2: C).(csubc g e1 e2)) in (ex2 C TMP_27 TMP_28))))))) in (let TMP_41 \def +(\lambda (H0: (drop O O (CHead c k t) e1)).(\lambda (c2: C).(\lambda (H1: +(csubc g (CHead c k t) c2)).(let TMP_30 \def (CHead c k t) in (let TMP_33 +\def (\lambda (c0: C).(let TMP_31 \def (\lambda (e2: C).(drop O O c2 e2)) in +(let TMP_32 \def (\lambda (e2: C).(csubc g c0 e2)) in (ex2 C TMP_31 +TMP_32)))) in (let TMP_34 \def (\lambda (e2: C).(drop O O c2 e2)) in (let +TMP_36 \def (\lambda (e2: C).(let TMP_35 \def (CHead c k t) in (csubc g +TMP_35 e2))) in (let TMP_37 \def (drop_refl c2) in (let TMP_38 \def +(ex_intro2 C TMP_34 TMP_36 c2 TMP_37 H1) in (let TMP_39 \def (CHead c k t) in +(let TMP_40 \def (drop_gen_refl TMP_39 e1 H0) in (eq_ind C TMP_30 TMP_33 +TMP_38 e1 TMP_40)))))))))))) in (let TMP_195 \def (\lambda (n: nat).(\lambda +(H0: (((drop n O (CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k +t) c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 e2)) (\lambda (e2: C).(csubc +g e1 e2)))))))).(\lambda (H1: (drop (S n) O (CHead c k t) e1)).(\lambda (c2: C).(\lambda (H2: (csubc g (CHead c k t) c2)).(let H_x \def (csubc_gen_head_l -g c c2 t k H2) in (let H3 \def H_x in (or3_ind (ex2 C (\lambda (c3: C).(eq C -c2 (CHead c3 k t))) (\lambda (c3: C).(csubc g c c3))) (ex5_3 C T A (\lambda -(_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c t)))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T -(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) -v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind -Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c c3))))) -(ex2 C (\lambda (e2: C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 -e2))) (\lambda (H4: (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k t))) -(\lambda (c3: C).(csubc g c c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 -(CHead c3 k t))) (\lambda (c3: C).(csubc g c c3)) (ex2 C (\lambda (e2: -C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (x: -C).(\lambda (H5: (eq C c2 (CHead x k t))).(\lambda (H6: (csubc g c -x)).(eq_ind_r C (CHead x k t) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(drop -(S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) (let H_x0 \def (H e1 (r k -n) (drop_gen_drop k c e1 t n H1) x H6) in (let H7 \def H_x0 in (ex2_ind C -(\lambda (e2: C).(drop (r k n) O x e2)) (\lambda (e2: C).(csubc g e1 e2)) -(ex2 C (\lambda (e2: C).(drop (S n) O (CHead x k t) e2)) (\lambda (e2: -C).(csubc g e1 e2))) (\lambda (x0: C).(\lambda (H8: (drop (r k n) O x -x0)).(\lambda (H9: (csubc g e1 x0)).(ex_intro2 C (\lambda (e2: C).(drop (S n) -O (CHead x k t) e2)) (\lambda (e2: C).(csubc g e1 e2)) x0 (drop_drop k n x x0 -H8 t) H9)))) H7))) c2 H5)))) H4)) (\lambda (H4: (ex5_3 C T A (\lambda (_: -C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c t)))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A -(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) -(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind -Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c -c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c -t)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 -C (\lambda (e2: C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) -(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H5: (eq K k -(Bind Abst))).(\lambda (H6: (eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda -(H7: (csubc g c x0)).(\lambda (_: (sc3 g (asucc g x2) c t)).(\lambda (_: (sc3 -g x2 x0 x1)).(eq_ind_r C (CHead x0 (Bind Abbr) x1) (\lambda (c0: C).(ex2 C -(\lambda (e2: C).(drop (S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) -(let H10 \def (eq_ind K k (\lambda (k0: K).(drop (r k0 n) O c e1)) -(drop_gen_drop k c e1 t n H1) (Bind Abst) H5) in (let H11 \def (eq_ind K k -(\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: C).((csubc g -(CHead c k0 t) c3) \to (ex2 C (\lambda (e2: C).(drop n O c3 e2)) (\lambda -(e2: C).(csubc g e1 e2))))))) H0 (Bind Abst) H5) in (let H_x0 \def (H e1 (r -(Bind Abst) n) H10 x0 H7) in (let H12 \def H_x0 in (ex2_ind C (\lambda (e2: -C).(drop n O x0 e2)) (\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: -C).(drop (S n) O (CHead x0 (Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g e1 -e2))) (\lambda (x: C).(\lambda (H13: (drop n O x0 x)).(\lambda (H14: (csubc g -e1 x)).(ex_intro2 C (\lambda (e2: C).(drop (S n) O (CHead x0 (Bind Abbr) x1) -e2)) (\lambda (e2: C).(csubc g e1 e2)) x (drop_drop (Bind Abbr) n x0 x H13 -x1) H14)))) H12))))) c2 H6))))))))) H4)) (\lambda (H4: (ex4_3 B C T (\lambda -(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) -(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) -(\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) -(\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c -c3)))))).(ex4_3_ind B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g c c3)))) (ex2 C (\lambda (e2: C).(drop (S n) O c2 -e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (x0: B).(\lambda (x1: -C).(\lambda (x2: T).(\lambda (H5: (eq C c2 (CHead x1 (Bind x0) x2))).(\lambda -(H6: (eq K k (Bind Void))).(\lambda (_: (not (eq B x0 Void))).(\lambda (H8: -(csubc g c x1)).(eq_ind_r C (CHead x1 (Bind x0) x2) (\lambda (c0: C).(ex2 C -(\lambda (e2: C).(drop (S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) -(let H9 \def (eq_ind K k (\lambda (k0: K).(drop (r k0 n) O c e1)) -(drop_gen_drop k c e1 t n H1) (Bind Void) H6) in (let H10 \def (eq_ind K k -(\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: C).((csubc g -(CHead c k0 t) c3) \to (ex2 C (\lambda (e2: C).(drop n O c3 e2)) (\lambda -(e2: C).(csubc g e1 e2))))))) H0 (Bind Void) H6) in (let H_x0 \def (H e1 (r -(Bind Void) n) H9 x1 H8) in (let H11 \def H_x0 in (ex2_ind C (\lambda (e2: -C).(drop n O x1 e2)) (\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: -C).(drop (S n) O (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g e1 -e2))) (\lambda (x: C).(\lambda (H12: (drop n O x1 x)).(\lambda (H13: (csubc g -e1 x)).(ex_intro2 C (\lambda (e2: C).(drop (S n) O (CHead x1 (Bind x0) x2) -e2)) (\lambda (e2: C).(csubc g e1 e2)) x (drop_drop (Bind x0) n x1 x H12 x2) -H13)))) H11))))) c2 H5)))))))) H4)) H3)))))))) h))))))) c1)). -(* COMMENTS -Initial nodes: 2389 -END *) +g c c2 t k H2) in (let H3 \def H_x in (let TMP_43 \def (\lambda (c3: C).(let +TMP_42 \def (CHead c3 k t) in (eq C c2 TMP_42))) in (let TMP_44 \def (\lambda +(c3: C).(csubc g c c3)) in (let TMP_45 \def (ex2 C TMP_43 TMP_44) in (let +TMP_47 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_46 \def +(Bind Abst) in (eq K k TMP_46))))) in (let TMP_50 \def (\lambda (c3: +C).(\lambda (w: T).(\lambda (_: A).(let TMP_48 \def (Bind Abbr) in (let +TMP_49 \def (CHead c3 TMP_48 w) in (eq C c2 TMP_49)))))) in (let TMP_51 \def +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) in (let +TMP_53 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(let TMP_52 \def +(asucc g a) in (sc3 g TMP_52 c t))))) in (let TMP_54 \def (\lambda (c3: +C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_55 \def +(ex5_3 C T A TMP_47 TMP_50 TMP_51 TMP_53 TMP_54) in (let TMP_58 \def (\lambda +(b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_56 \def (Bind b) in (let +TMP_57 \def (CHead c3 TMP_56 v2) in (eq C c2 TMP_57)))))) in (let TMP_60 \def +(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_59 \def (Bind Void) +in (eq K k TMP_59))))) in (let TMP_62 \def (\lambda (b: B).(\lambda (_: +C).(\lambda (_: T).(let TMP_61 \def (eq B b Void) in (not TMP_61))))) in (let +TMP_63 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c +c3)))) in (let TMP_64 \def (ex4_3 B C T TMP_58 TMP_60 TMP_62 TMP_63) in (let +TMP_66 \def (\lambda (e2: C).(let TMP_65 \def (S n) in (drop TMP_65 O c2 +e2))) in (let TMP_67 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_68 +\def (ex2 C TMP_66 TMP_67) in (let TMP_99 \def (\lambda (H4: (ex2 C (\lambda +(c3: C).(eq C c2 (CHead c3 k t))) (\lambda (c3: C).(csubc g c c3)))).(let +TMP_70 \def (\lambda (c3: C).(let TMP_69 \def (CHead c3 k t) in (eq C c2 +TMP_69))) in (let TMP_71 \def (\lambda (c3: C).(csubc g c c3)) in (let TMP_73 +\def (\lambda (e2: C).(let TMP_72 \def (S n) in (drop TMP_72 O c2 e2))) in +(let TMP_74 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_75 \def (ex2 C +TMP_73 TMP_74) in (let TMP_98 \def (\lambda (x: C).(\lambda (H5: (eq C c2 +(CHead x k t))).(\lambda (H6: (csubc g c x)).(let TMP_76 \def (CHead x k t) +in (let TMP_80 \def (\lambda (c0: C).(let TMP_78 \def (\lambda (e2: C).(let +TMP_77 \def (S n) in (drop TMP_77 O c0 e2))) in (let TMP_79 \def (\lambda +(e2: C).(csubc g e1 e2)) in (ex2 C TMP_78 TMP_79)))) in (let TMP_81 \def (r k +n) in (let TMP_82 \def (drop_gen_drop k c e1 t n H1) in (let H_x0 \def (H e1 +TMP_81 TMP_82 x H6) in (let H7 \def H_x0 in (let TMP_84 \def (\lambda (e2: +C).(let TMP_83 \def (r k n) in (drop TMP_83 O x e2))) in (let TMP_85 \def +(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_88 \def (\lambda (e2: C).(let +TMP_86 \def (S n) in (let TMP_87 \def (CHead x k t) in (drop TMP_86 O TMP_87 +e2)))) in (let TMP_89 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_90 +\def (ex2 C TMP_88 TMP_89) in (let TMP_96 \def (\lambda (x0: C).(\lambda (H8: +(drop (r k n) O x x0)).(\lambda (H9: (csubc g e1 x0)).(let TMP_93 \def +(\lambda (e2: C).(let TMP_91 \def (S n) in (let TMP_92 \def (CHead x k t) in +(drop TMP_91 O TMP_92 e2)))) in (let TMP_94 \def (\lambda (e2: C).(csubc g e1 +e2)) in (let TMP_95 \def (drop_drop k n x x0 H8 t) in (ex_intro2 C TMP_93 +TMP_94 x0 TMP_95 H9))))))) in (let TMP_97 \def (ex2_ind C TMP_84 TMP_85 +TMP_90 TMP_96 H7) in (eq_ind_r C TMP_76 TMP_80 TMP_97 c2 H5))))))))))))))))) +in (ex2_ind C TMP_70 TMP_71 TMP_75 TMP_98 H4)))))))) in (let TMP_147 \def +(\lambda (H4: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: +A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: +A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g c c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda +(a: A).(sc3 g (asucc g a) c t)))) (\lambda (c3: C).(\lambda (w: T).(\lambda +(a: A).(sc3 g a c3 w)))))).(let TMP_101 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(let TMP_100 \def (Bind Abst) in (eq K k TMP_100))))) in +(let TMP_104 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let +TMP_102 \def (Bind Abbr) in (let TMP_103 \def (CHead c3 TMP_102 w) in (eq C +c2 TMP_103)))))) in (let TMP_105 \def (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g c c3)))) in (let TMP_107 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(let TMP_106 \def (asucc g a) in (sc3 g +TMP_106 c t))))) in (let TMP_108 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_110 \def (\lambda (e2: +C).(let TMP_109 \def (S n) in (drop TMP_109 O c2 e2))) in (let TMP_111 \def +(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_112 \def (ex2 C TMP_110 +TMP_111) in (let TMP_146 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: +A).(\lambda (H5: (eq K k (Bind Abst))).(\lambda (H6: (eq C c2 (CHead x0 (Bind +Abbr) x1))).(\lambda (H7: (csubc g c x0)).(\lambda (_: (sc3 g (asucc g x2) c +t)).(\lambda (_: (sc3 g x2 x0 x1)).(let TMP_113 \def (Bind Abbr) in (let +TMP_114 \def (CHead x0 TMP_113 x1) in (let TMP_118 \def (\lambda (c0: C).(let +TMP_116 \def (\lambda (e2: C).(let TMP_115 \def (S n) in (drop TMP_115 O c0 +e2))) in (let TMP_117 \def (\lambda (e2: C).(csubc g e1 e2)) in (ex2 C +TMP_116 TMP_117)))) in (let TMP_120 \def (\lambda (k0: K).(let TMP_119 \def +(r k0 n) in (drop TMP_119 O c e1))) in (let TMP_121 \def (drop_gen_drop k c +e1 t n H1) in (let TMP_122 \def (Bind Abst) in (let H10 \def (eq_ind K k +TMP_120 TMP_121 TMP_122 H5) in (let TMP_125 \def (\lambda (k0: K).((drop n O +(CHead c k0 t) e1) \to (\forall (c3: C).((csubc g (CHead c k0 t) c3) \to (let +TMP_123 \def (\lambda (e2: C).(drop n O c3 e2)) in (let TMP_124 \def (\lambda +(e2: C).(csubc g e1 e2)) in (ex2 C TMP_123 TMP_124))))))) in (let TMP_126 +\def (Bind Abst) in (let H11 \def (eq_ind K k TMP_125 H0 TMP_126 H5) in (let +TMP_127 \def (Bind Abst) in (let TMP_128 \def (r TMP_127 n) in (let H_x0 \def +(H e1 TMP_128 H10 x0 H7) in (let H12 \def H_x0 in (let TMP_129 \def (\lambda +(e2: C).(drop n O x0 e2)) in (let TMP_130 \def (\lambda (e2: C).(csubc g e1 +e2)) in (let TMP_134 \def (\lambda (e2: C).(let TMP_131 \def (S n) in (let +TMP_132 \def (Bind Abbr) in (let TMP_133 \def (CHead x0 TMP_132 x1) in (drop +TMP_131 O TMP_133 e2))))) in (let TMP_135 \def (\lambda (e2: C).(csubc g e1 +e2)) in (let TMP_136 \def (ex2 C TMP_134 TMP_135) in (let TMP_144 \def +(\lambda (x: C).(\lambda (H13: (drop n O x0 x)).(\lambda (H14: (csubc g e1 +x)).(let TMP_140 \def (\lambda (e2: C).(let TMP_137 \def (S n) in (let +TMP_138 \def (Bind Abbr) in (let TMP_139 \def (CHead x0 TMP_138 x1) in (drop +TMP_137 O TMP_139 e2))))) in (let TMP_141 \def (\lambda (e2: C).(csubc g e1 +e2)) in (let TMP_142 \def (Bind Abbr) in (let TMP_143 \def (drop_drop TMP_142 +n x0 x H13 x1) in (ex_intro2 C TMP_140 TMP_141 x TMP_143 H14)))))))) in (let +TMP_145 \def (ex2_ind C TMP_129 TMP_130 TMP_136 TMP_144 H12) in (eq_ind_r C +TMP_114 TMP_118 TMP_145 c2 H6)))))))))))))))))))))))))))))) in (ex5_3_ind C T +A TMP_101 TMP_104 TMP_105 TMP_107 TMP_108 TMP_112 TMP_146 H4))))))))))) in +(let TMP_194 \def (\lambda (H4: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: +C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: +B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: +B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g c c3)))))).(let TMP_150 \def +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_148 \def (Bind b) +in (let TMP_149 \def (CHead c3 TMP_148 v2) in (eq C c2 TMP_149)))))) in (let +TMP_152 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_151 +\def (Bind Void) in (eq K k TMP_151))))) in (let TMP_154 \def (\lambda (b: +B).(\lambda (_: C).(\lambda (_: T).(let TMP_153 \def (eq B b Void) in (not +TMP_153))))) in (let TMP_155 \def (\lambda (_: B).(\lambda (c3: C).(\lambda +(_: T).(csubc g c c3)))) in (let TMP_157 \def (\lambda (e2: C).(let TMP_156 +\def (S n) in (drop TMP_156 O c2 e2))) in (let TMP_158 \def (\lambda (e2: +C).(csubc g e1 e2)) in (let TMP_159 \def (ex2 C TMP_157 TMP_158) in (let +TMP_193 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H5: +(eq C c2 (CHead x1 (Bind x0) x2))).(\lambda (H6: (eq K k (Bind +Void))).(\lambda (_: (not (eq B x0 Void))).(\lambda (H8: (csubc g c x1)).(let +TMP_160 \def (Bind x0) in (let TMP_161 \def (CHead x1 TMP_160 x2) in (let +TMP_165 \def (\lambda (c0: C).(let TMP_163 \def (\lambda (e2: C).(let TMP_162 +\def (S n) in (drop TMP_162 O c0 e2))) in (let TMP_164 \def (\lambda (e2: +C).(csubc g e1 e2)) in (ex2 C TMP_163 TMP_164)))) in (let TMP_167 \def +(\lambda (k0: K).(let TMP_166 \def (r k0 n) in (drop TMP_166 O c e1))) in +(let TMP_168 \def (drop_gen_drop k c e1 t n H1) in (let TMP_169 \def (Bind +Void) in (let H9 \def (eq_ind K k TMP_167 TMP_168 TMP_169 H6) in (let TMP_172 +\def (\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: +C).((csubc g (CHead c k0 t) c3) \to (let TMP_170 \def (\lambda (e2: C).(drop +n O c3 e2)) in (let TMP_171 \def (\lambda (e2: C).(csubc g e1 e2)) in (ex2 C +TMP_170 TMP_171))))))) in (let TMP_173 \def (Bind Void) in (let H10 \def +(eq_ind K k TMP_172 H0 TMP_173 H6) in (let TMP_174 \def (Bind Void) in (let +TMP_175 \def (r TMP_174 n) in (let H_x0 \def (H e1 TMP_175 H9 x1 H8) in (let +H11 \def H_x0 in (let TMP_176 \def (\lambda (e2: C).(drop n O x1 e2)) in (let +TMP_177 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_181 \def (\lambda +(e2: C).(let TMP_178 \def (S n) in (let TMP_179 \def (Bind x0) in (let +TMP_180 \def (CHead x1 TMP_179 x2) in (drop TMP_178 O TMP_180 e2))))) in (let +TMP_182 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_183 \def (ex2 C +TMP_181 TMP_182) in (let TMP_191 \def (\lambda (x: C).(\lambda (H12: (drop n +O x1 x)).(\lambda (H13: (csubc g e1 x)).(let TMP_187 \def (\lambda (e2: +C).(let TMP_184 \def (S n) in (let TMP_185 \def (Bind x0) in (let TMP_186 +\def (CHead x1 TMP_185 x2) in (drop TMP_184 O TMP_186 e2))))) in (let TMP_188 +\def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_189 \def (Bind x0) in (let +TMP_190 \def (drop_drop TMP_189 n x1 x H12 x2) in (ex_intro2 C TMP_187 +TMP_188 x TMP_190 H13)))))))) in (let TMP_192 \def (ex2_ind C TMP_176 TMP_177 +TMP_183 TMP_191 H11) in (eq_ind_r C TMP_161 TMP_165 TMP_192 c2 +H5))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_150 TMP_152 TMP_154 +TMP_155 TMP_159 TMP_193 H4)))))))))) in (or3_ind TMP_45 TMP_55 TMP_64 TMP_68 +TMP_99 TMP_147 TMP_194 H3)))))))))))))))))))))))))))) in (nat_ind TMP_29 +TMP_41 TMP_195 h)))))))))) in (C_ind TMP_3 TMP_26 TMP_196 c1))))). theorem drop_csubc_trans: \forall (g: G).(\forall (c2: C).(\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c2 c1)))))))))) \def - \lambda (g: G).(\lambda (c2: C).(C_ind (\lambda (c: C).(\forall (e2: -C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall (e1: -C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda -(c1: C).(csubc g c c1)))))))))) (\lambda (n: nat).(\lambda (e2: C).(\lambda -(d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) e2)).(\lambda -(e1: C).(\lambda (H0: (csubc g e2 e1)).(and3_ind (eq C e2 (CSort n)) (eq nat -h O) (eq nat d O) (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: -C).(csubc g (CSort n) c1))) (\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: -(eq nat h O)).(\lambda (H3: (eq nat d O)).(eq_ind_r nat O (\lambda (n0: -nat).(ex2 C (\lambda (c1: C).(drop n0 d c1 e1)) (\lambda (c1: C).(csubc g -(CSort n) c1)))) (eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (c1: -C).(drop O n0 c1 e1)) (\lambda (c1: C).(csubc g (CSort n) c1)))) (let H4 \def -(eq_ind C e2 (\lambda (c: C).(csubc g c e1)) H0 (CSort n) H1) in (ex_intro2 C -(\lambda (c1: C).(drop O O c1 e1)) (\lambda (c1: C).(csubc g (CSort n) c1)) -e1 (drop_refl e1) H4)) d H3) h H2)))) (drop_gen_sort n h d e2 H))))))))) -(\lambda (c: C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: -nat).((drop h d c e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C -(\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c -c1))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: -nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) -e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop h -n c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))) (\lambda (h: -nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e2) \to (\forall -(e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) -(\lambda (c1: C).(csubc g (CHead c k t) c1))))))) (\lambda (H0: (drop O O -(CHead c k t) e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e2 e1)).(let H2 -\def (eq_ind_r C e2 (\lambda (c0: C).(csubc g c0 e1)) H1 (CHead c k t) -(drop_gen_refl (CHead c k t) e2 H0)) in (ex_intro2 C (\lambda (c1: C).(drop O -O c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)) e1 (drop_refl e1) -H2))))) (\lambda (n: nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to -(\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 -e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))).(\lambda (H1: (drop -(S n) O (CHead c k t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 -e1)).(let H_x \def (H e2 O (r k n) (drop_gen_drop k c e2 t n H1) e1 H2) in -(let H3 \def H_x in (ex2_ind C (\lambda (c1: C).(drop (r k n) O c1 e1)) -(\lambda (c1: C).(csubc g c c1)) (ex2 C (\lambda (c1: C).(drop (S n) O c1 -e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1))) (\lambda (x: C).(\lambda -(H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g c x)).(ex_intro2 C -(\lambda (c1: C).(drop (S n) O c1 e1)) (\lambda (c1: C).(csubc g (CHead c k -t) c1)) (CHead x k t) (drop_drop k n x e1 H4 t) (csubc_head g c x H5 k t))))) -H3)))))))) h)) (\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n -(CHead c k t) e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda -(c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) -c1))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) -e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(ex3_2_ind C T (\lambda -(e: C).(\lambda (v: T).(eq C e2 (CHead e k v)))) (\lambda (_: C).(\lambda (v: -T).(eq T t (lift h (r k n) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k -n) c e))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: -C).(csubc g (CHead c k t) c1))) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r k n) -x1))).(\lambda (H5: (drop h (r k n) c x0)).(let H6 \def (eq_ind C e2 (\lambda -(c0: C).(csubc g c0 e1)) H2 (CHead x0 k x1) H3) in (let H7 \def (eq_ind C e2 -(\lambda (c0: C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to -(\forall (e3: C).((csubc g c0 e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 -e3)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))) H0 (CHead x0 k x1) -H3) in (let H8 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: nat).((drop h0 -n (CHead c k t0) (CHead x0 k x1)) \to (\forall (e3: C).((csubc g (CHead x0 k -x1) e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda (c1: -C).(csubc g (CHead c k t0) c1)))))))) H7 (lift h (r k n) x1) H4) in (eq_ind_r -T (lift h (r k n) x1) (\lambda (t0: T).(ex2 C (\lambda (c1: C).(drop h (S n) -c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t0) c1)))) (let H_x \def -(csubc_gen_head_l g x0 e1 x1 k H6) in (let H9 \def H_x in (or3_ind (ex2 C -(\lambda (c3: C).(eq C e1 (CHead c3 k x1))) (\lambda (c3: C).(csubc g x0 -c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k -(Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C e1 -(CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: -A).(csubc g x0 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g -(asucc g a) x0 x1)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g -a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g x0 c3))))) (ex2 C (\lambda (c1: C).(drop h (S n) -c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) -(\lambda (H10: (ex2 C (\lambda (c3: C).(eq C e1 (CHead c3 k x1))) (\lambda -(c3: C).(csubc g x0 c3)))).(ex2_ind C (\lambda (c3: C).(eq C e1 (CHead c3 k -x1))) (\lambda (c3: C).(csubc g x0 c3)) (ex2 C (\lambda (c1: C).(drop h (S n) -c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) -(\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: -(csubc g x0 x)).(eq_ind_r C (CHead x k x1) (\lambda (c0: C).(ex2 C (\lambda -(c1: C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r -k n) x1)) c1)))) (let H_x0 \def (H x0 (r k n) h H5 x H12) in (let H13 \def -H_x0 in (ex2_ind C (\lambda (c1: C).(drop h (r k n) c1 x)) (\lambda (c1: -C).(csubc g c c1)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) -(\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) (\lambda (x2: -C).(\lambda (H14: (drop h (r k n) x2 x)).(\lambda (H15: (csubc g c -x2)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda -(c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1)) (CHead x2 k (lift h (r -k n) x1)) (drop_skip k h n x2 x H14 x1) (csubc_head g c x2 H15 k (lift h (r k -n) x1)))))) H13))) e1 H11)))) H10)) (\lambda (H10: (ex5_3 C T A (\lambda (_: -C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (_: A).(eq C e1 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x0 c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) x0 x1)))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A -(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) -(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C e1 (CHead c3 (Bind -Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x0 -c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) x0 -x1)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) -(ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g -(CHead c k (lift h (r k n) x1)) c1))) (\lambda (x2: C).(\lambda (x3: -T).(\lambda (x4: A).(\lambda (H11: (eq K k (Bind Abst))).(\lambda (H12: (eq C -e1 (CHead x2 (Bind Abbr) x3))).(\lambda (H13: (csubc g x0 x2)).(\lambda (H14: -(sc3 g (asucc g x4) x0 x1)).(\lambda (H15: (sc3 g x4 x2 x3)).(eq_ind_r C -(CHead x2 (Bind Abbr) x3) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S -n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1)))) -(let H16 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n -(CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: -C).((csubc g (CHead x0 k0 x1) e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 -e3)) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) c1)))))))) -H8 (Bind Abst) H11) in (let H17 \def (eq_ind K k (\lambda (k0: K).(drop h (r -k0 n) c x0)) H5 (Bind Abst) H11) in (eq_ind_r K (Bind Abst) (\lambda (k0: -K).(ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) x3))) -(\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) c1)))) (let H_x0 -\def (H x0 (r (Bind Abst) n) h H17 x2 H13) in (let H18 \def H_x0 in (ex2_ind -C (\lambda (c1: C).(drop h n c1 x2)) (\lambda (c1: C).(csubc g c c1)) (ex2 C -(\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) x3))) (\lambda (c1: -C).(csubc g (CHead c (Bind Abst) (lift h (r (Bind Abst) n) x1)) c1))) + \lambda (g: G).(\lambda (c2: C).(let TMP_3 \def (\lambda (c: C).(\forall +(e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall +(e1: C).((csubc g e2 e1) \to (let TMP_1 \def (\lambda (c1: C).(drop h d c1 +e1)) in (let TMP_2 \def (\lambda (c1: C).(csubc g c c1)) in (ex2 C TMP_1 +TMP_2)))))))))) in (let TMP_30 \def (\lambda (n: nat).(\lambda (e2: +C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) +e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let TMP_4 \def (CSort +n) in (let TMP_5 \def (eq C e2 TMP_4) in (let TMP_6 \def (eq nat h O) in (let +TMP_7 \def (eq nat d O) in (let TMP_8 \def (\lambda (c1: C).(drop h d c1 e1)) +in (let TMP_10 \def (\lambda (c1: C).(let TMP_9 \def (CSort n) in (csubc g +TMP_9 c1))) in (let TMP_11 \def (ex2 C TMP_8 TMP_10) in (let TMP_28 \def +(\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (H3: +(eq nat d O)).(let TMP_15 \def (\lambda (n0: nat).(let TMP_12 \def (\lambda +(c1: C).(drop n0 d c1 e1)) in (let TMP_14 \def (\lambda (c1: C).(let TMP_13 +\def (CSort n) in (csubc g TMP_13 c1))) in (ex2 C TMP_12 TMP_14)))) in (let +TMP_19 \def (\lambda (n0: nat).(let TMP_16 \def (\lambda (c1: C).(drop O n0 +c1 e1)) in (let TMP_18 \def (\lambda (c1: C).(let TMP_17 \def (CSort n) in +(csubc g TMP_17 c1))) in (ex2 C TMP_16 TMP_18)))) in (let TMP_20 \def +(\lambda (c: C).(csubc g c e1)) in (let TMP_21 \def (CSort n) in (let H4 \def +(eq_ind C e2 TMP_20 H0 TMP_21 H1) in (let TMP_22 \def (\lambda (c1: C).(drop +O O c1 e1)) in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (CSort n) +in (csubc g TMP_23 c1))) in (let TMP_25 \def (drop_refl e1) in (let TMP_26 +\def (ex_intro2 C TMP_22 TMP_24 e1 TMP_25 H4) in (let TMP_27 \def (eq_ind_r +nat O TMP_19 TMP_26 d H3) in (eq_ind_r nat O TMP_15 TMP_27 h H2)))))))))))))) +in (let TMP_29 \def (drop_gen_sort n h d e2 H) in (and3_ind TMP_5 TMP_6 TMP_7 +TMP_11 TMP_28 TMP_29))))))))))))))))) in (let TMP_354 \def (\lambda (c: +C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop +h d c e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: +C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c c1))))))))))).(\lambda (k: +K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: nat).(let TMP_34 \def +(\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) e2) \to (\forall +(e1: C).((csubc g e2 e1) \to (let TMP_31 \def (\lambda (c1: C).(drop h n c1 +e1)) in (let TMP_33 \def (\lambda (c1: C).(let TMP_32 \def (CHead c k t) in +(csubc g TMP_32 c1))) in (ex2 C TMP_31 TMP_33)))))))) in (let TMP_67 \def +(\lambda (h: nat).(let TMP_38 \def (\lambda (n: nat).((drop n O (CHead c k t) +e2) \to (\forall (e1: C).((csubc g e2 e1) \to (let TMP_35 \def (\lambda (c1: +C).(drop n O c1 e1)) in (let TMP_37 \def (\lambda (c1: C).(let TMP_36 \def +(CHead c k t) in (csubc g TMP_36 c1))) in (ex2 C TMP_35 TMP_37))))))) in (let +TMP_47 \def (\lambda (H0: (drop O O (CHead c k t) e2)).(\lambda (e1: +C).(\lambda (H1: (csubc g e2 e1)).(let TMP_39 \def (\lambda (c0: C).(csubc g +c0 e1)) in (let TMP_40 \def (CHead c k t) in (let TMP_41 \def (CHead c k t) +in (let TMP_42 \def (drop_gen_refl TMP_41 e2 H0) in (let H2 \def (eq_ind_r C +e2 TMP_39 H1 TMP_40 TMP_42) in (let TMP_43 \def (\lambda (c1: C).(drop O O c1 +e1)) in (let TMP_45 \def (\lambda (c1: C).(let TMP_44 \def (CHead c k t) in +(csubc g TMP_44 c1))) in (let TMP_46 \def (drop_refl e1) in (ex_intro2 C +TMP_43 TMP_45 e1 TMP_46 H2)))))))))))) in (let TMP_66 \def (\lambda (n: +nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to (\forall (e1: C).((csubc +g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) (\lambda (c1: +C).(csubc g (CHead c k t) c1)))))))).(\lambda (H1: (drop (S n) O (CHead c k +t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(let TMP_48 \def (r k +n) in (let TMP_49 \def (drop_gen_drop k c e2 t n H1) in (let H_x \def (H e2 O +TMP_48 TMP_49 e1 H2) in (let H3 \def H_x in (let TMP_51 \def (\lambda (c1: +C).(let TMP_50 \def (r k n) in (drop TMP_50 O c1 e1))) in (let TMP_52 \def +(\lambda (c1: C).(csubc g c c1)) in (let TMP_54 \def (\lambda (c1: C).(let +TMP_53 \def (S n) in (drop TMP_53 O c1 e1))) in (let TMP_56 \def (\lambda +(c1: C).(let TMP_55 \def (CHead c k t) in (csubc g TMP_55 c1))) in (let +TMP_57 \def (ex2 C TMP_54 TMP_56) in (let TMP_65 \def (\lambda (x: +C).(\lambda (H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g c x)).(let +TMP_59 \def (\lambda (c1: C).(let TMP_58 \def (S n) in (drop TMP_58 O c1 +e1))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_60 \def (CHead c k t) in +(csubc g TMP_60 c1))) in (let TMP_62 \def (CHead x k t) in (let TMP_63 \def +(drop_drop k n x e1 H4 t) in (let TMP_64 \def (csubc_head g c x H5 k t) in +(ex_intro2 C TMP_59 TMP_61 TMP_62 TMP_63 TMP_64))))))))) in (ex2_ind C TMP_51 +TMP_52 TMP_57 TMP_65 H3)))))))))))))))) in (nat_ind TMP_38 TMP_47 TMP_66 +h))))) in (let TMP_353 \def (\lambda (n: nat).(\lambda (H0: ((\forall (h: +nat).((drop h n (CHead c k t) e2) \to (\forall (e1: C).((csubc g e2 e1) \to +(ex2 C (\lambda (c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g (CHead c +k t) c1))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) +e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(let TMP_69 \def +(\lambda (e: C).(\lambda (v: T).(let TMP_68 \def (CHead e k v) in (eq C e2 +TMP_68)))) in (let TMP_72 \def (\lambda (_: C).(\lambda (v: T).(let TMP_70 +\def (r k n) in (let TMP_71 \def (lift h TMP_70 v) in (eq T t TMP_71))))) in +(let TMP_74 \def (\lambda (e: C).(\lambda (_: T).(let TMP_73 \def (r k n) in +(drop h TMP_73 c e)))) in (let TMP_76 \def (\lambda (c1: C).(let TMP_75 \def +(S n) in (drop h TMP_75 c1 e1))) in (let TMP_78 \def (\lambda (c1: C).(let +TMP_77 \def (CHead c k t) in (csubc g TMP_77 c1))) in (let TMP_79 \def (ex2 C +TMP_76 TMP_78) in (let TMP_351 \def (\lambda (x0: C).(\lambda (x1: +T).(\lambda (H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r +k n) x1))).(\lambda (H5: (drop h (r k n) c x0)).(let TMP_80 \def (\lambda +(c0: C).(csubc g c0 e1)) in (let TMP_81 \def (CHead x0 k x1) in (let H6 \def +(eq_ind C e2 TMP_80 H2 TMP_81 H3) in (let TMP_85 \def (\lambda (c0: +C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to (\forall (e3: +C).((csubc g c0 e3) \to (let TMP_82 \def (\lambda (c1: C).(drop h0 n c1 e3)) +in (let TMP_84 \def (\lambda (c1: C).(let TMP_83 \def (CHead c k t) in (csubc +g TMP_83 c1))) in (ex2 C TMP_82 TMP_84)))))))) in (let TMP_86 \def (CHead x0 +k x1) in (let H7 \def (eq_ind C e2 TMP_85 H0 TMP_86 H3) in (let TMP_90 \def +(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c k t0) (CHead x0 k +x1)) \to (\forall (e3: C).((csubc g (CHead x0 k x1) e3) \to (let TMP_87 \def +(\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_89 \def (\lambda (c1: C).(let +TMP_88 \def (CHead c k t0) in (csubc g TMP_88 c1))) in (ex2 C TMP_87 +TMP_89)))))))) in (let TMP_91 \def (r k n) in (let TMP_92 \def (lift h TMP_91 +x1) in (let H8 \def (eq_ind T t TMP_90 H7 TMP_92 H4) in (let TMP_93 \def (r k +n) in (let TMP_94 \def (lift h TMP_93 x1) in (let TMP_99 \def (\lambda (t0: +T).(let TMP_96 \def (\lambda (c1: C).(let TMP_95 \def (S n) in (drop h TMP_95 +c1 e1))) in (let TMP_98 \def (\lambda (c1: C).(let TMP_97 \def (CHead c k t0) +in (csubc g TMP_97 c1))) in (ex2 C TMP_96 TMP_98)))) in (let H_x \def +(csubc_gen_head_l g x0 e1 x1 k H6) in (let H9 \def H_x in (let TMP_101 \def +(\lambda (c3: C).(let TMP_100 \def (CHead c3 k x1) in (eq C e1 TMP_100))) in +(let TMP_102 \def (\lambda (c3: C).(csubc g x0 c3)) in (let TMP_103 \def (ex2 +C TMP_101 TMP_102) in (let TMP_105 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(let TMP_104 \def (Bind Abst) in (eq K k TMP_104))))) in +(let TMP_108 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let +TMP_106 \def (Bind Abbr) in (let TMP_107 \def (CHead c3 TMP_106 w) in (eq C +e1 TMP_107)))))) in (let TMP_109 \def (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g x0 c3)))) in (let TMP_111 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(let TMP_110 \def (asucc g a) in (sc3 g +TMP_110 x0 x1))))) in (let TMP_112 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_113 \def (ex5_3 C T A +TMP_105 TMP_108 TMP_109 TMP_111 TMP_112) in (let TMP_116 \def (\lambda (b: +B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_114 \def (Bind b) in (let +TMP_115 \def (CHead c3 TMP_114 v2) in (eq C e1 TMP_115)))))) in (let TMP_118 +\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_117 \def (Bind +Void) in (eq K k TMP_117))))) in (let TMP_120 \def (\lambda (b: B).(\lambda +(_: C).(\lambda (_: T).(let TMP_119 \def (eq B b Void) in (not TMP_119))))) +in (let TMP_121 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc +g x0 c3)))) in (let TMP_122 \def (ex4_3 B C T TMP_116 TMP_118 TMP_120 +TMP_121) in (let TMP_124 \def (\lambda (c1: C).(let TMP_123 \def (S n) in +(drop h TMP_123 c1 e1))) in (let TMP_128 \def (\lambda (c1: C).(let TMP_125 +\def (r k n) in (let TMP_126 \def (lift h TMP_125 x1) in (let TMP_127 \def +(CHead c k TMP_126) in (csubc g TMP_127 c1))))) in (let TMP_129 \def (ex2 C +TMP_124 TMP_128) in (let TMP_177 \def (\lambda (H10: (ex2 C (\lambda (c3: +C).(eq C e1 (CHead c3 k x1))) (\lambda (c3: C).(csubc g x0 c3)))).(let +TMP_131 \def (\lambda (c3: C).(let TMP_130 \def (CHead c3 k x1) in (eq C e1 +TMP_130))) in (let TMP_132 \def (\lambda (c3: C).(csubc g x0 c3)) in (let +TMP_134 \def (\lambda (c1: C).(let TMP_133 \def (S n) in (drop h TMP_133 c1 +e1))) in (let TMP_138 \def (\lambda (c1: C).(let TMP_135 \def (r k n) in (let +TMP_136 \def (lift h TMP_135 x1) in (let TMP_137 \def (CHead c k TMP_136) in +(csubc g TMP_137 c1))))) in (let TMP_139 \def (ex2 C TMP_134 TMP_138) in (let +TMP_176 \def (\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k +x1))).(\lambda (H12: (csubc g x0 x)).(let TMP_140 \def (CHead x k x1) in (let +TMP_147 \def (\lambda (c0: C).(let TMP_142 \def (\lambda (c1: C).(let TMP_141 +\def (S n) in (drop h TMP_141 c1 c0))) in (let TMP_146 \def (\lambda (c1: +C).(let TMP_143 \def (r k n) in (let TMP_144 \def (lift h TMP_143 x1) in (let +TMP_145 \def (CHead c k TMP_144) in (csubc g TMP_145 c1))))) in (ex2 C +TMP_142 TMP_146)))) in (let TMP_148 \def (r k n) in (let H_x0 \def (H x0 +TMP_148 h H5 x H12) in (let H13 \def H_x0 in (let TMP_150 \def (\lambda (c1: +C).(let TMP_149 \def (r k n) in (drop h TMP_149 c1 x))) in (let TMP_151 \def +(\lambda (c1: C).(csubc g c c1)) in (let TMP_154 \def (\lambda (c1: C).(let +TMP_152 \def (S n) in (let TMP_153 \def (CHead x k x1) in (drop h TMP_152 c1 +TMP_153)))) in (let TMP_158 \def (\lambda (c1: C).(let TMP_155 \def (r k n) +in (let TMP_156 \def (lift h TMP_155 x1) in (let TMP_157 \def (CHead c k +TMP_156) in (csubc g TMP_157 c1))))) in (let TMP_159 \def (ex2 C TMP_154 +TMP_158) in (let TMP_174 \def (\lambda (x2: C).(\lambda (H14: (drop h (r k n) +x2 x)).(\lambda (H15: (csubc g c x2)).(let TMP_162 \def (\lambda (c1: C).(let +TMP_160 \def (S n) in (let TMP_161 \def (CHead x k x1) in (drop h TMP_160 c1 +TMP_161)))) in (let TMP_166 \def (\lambda (c1: C).(let TMP_163 \def (r k n) +in (let TMP_164 \def (lift h TMP_163 x1) in (let TMP_165 \def (CHead c k +TMP_164) in (csubc g TMP_165 c1))))) in (let TMP_167 \def (r k n) in (let +TMP_168 \def (lift h TMP_167 x1) in (let TMP_169 \def (CHead x2 k TMP_168) in +(let TMP_170 \def (drop_skip k h n x2 x H14 x1) in (let TMP_171 \def (r k n) +in (let TMP_172 \def (lift h TMP_171 x1) in (let TMP_173 \def (csubc_head g c +x2 H15 k TMP_172) in (ex_intro2 C TMP_162 TMP_166 TMP_169 TMP_170 +TMP_173))))))))))))) in (let TMP_175 \def (ex2_ind C TMP_150 TMP_151 TMP_159 +TMP_174 H13) in (eq_ind_r C TMP_140 TMP_147 TMP_175 e1 H11)))))))))))))))) in +(ex2_ind C TMP_131 TMP_132 TMP_139 TMP_176 H10)))))))) in (let TMP_266 \def +(\lambda (H10: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: +A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: +A).(eq C e1 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g x0 c3)))) (\lambda (_: C).(\lambda (_: +T).(\lambda (a: A).(sc3 g (asucc g a) x0 x1)))) (\lambda (c3: C).(\lambda (w: +T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_179 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(let TMP_178 \def (Bind Abst) in (eq K k +TMP_178))))) in (let TMP_182 \def (\lambda (c3: C).(\lambda (w: T).(\lambda +(_: A).(let TMP_180 \def (Bind Abbr) in (let TMP_181 \def (CHead c3 TMP_180 +w) in (eq C e1 TMP_181)))))) in (let TMP_183 \def (\lambda (c3: C).(\lambda +(_: T).(\lambda (_: A).(csubc g x0 c3)))) in (let TMP_185 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(let TMP_184 \def (asucc g a) in (sc3 g +TMP_184 x0 x1))))) in (let TMP_186 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_188 \def (\lambda (c1: +C).(let TMP_187 \def (S n) in (drop h TMP_187 c1 e1))) in (let TMP_192 \def +(\lambda (c1: C).(let TMP_189 \def (r k n) in (let TMP_190 \def (lift h +TMP_189 x1) in (let TMP_191 \def (CHead c k TMP_190) in (csubc g TMP_191 +c1))))) in (let TMP_193 \def (ex2 C TMP_188 TMP_192) in (let TMP_265 \def +(\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: A).(\lambda (H11: (eq K k +(Bind Abst))).(\lambda (H12: (eq C e1 (CHead x2 (Bind Abbr) x3))).(\lambda +(H13: (csubc g x0 x2)).(\lambda (H14: (sc3 g (asucc g x4) x0 x1)).(\lambda +(H15: (sc3 g x4 x2 x3)).(let TMP_194 \def (Bind Abbr) in (let TMP_195 \def +(CHead x2 TMP_194 x3) in (let TMP_202 \def (\lambda (c0: C).(let TMP_197 \def +(\lambda (c1: C).(let TMP_196 \def (S n) in (drop h TMP_196 c1 c0))) in (let +TMP_201 \def (\lambda (c1: C).(let TMP_198 \def (r k n) in (let TMP_199 \def +(lift h TMP_198 x1) in (let TMP_200 \def (CHead c k TMP_199) in (csubc g +TMP_200 c1))))) in (ex2 C TMP_197 TMP_201)))) in (let TMP_208 \def (\lambda +(k0: K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) +(CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) \to +(let TMP_203 \def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_207 \def +(\lambda (c1: C).(let TMP_204 \def (r k0 n) in (let TMP_205 \def (lift h +TMP_204 x1) in (let TMP_206 \def (CHead c k0 TMP_205) in (csubc g TMP_206 +c1))))) in (ex2 C TMP_203 TMP_207)))))))) in (let TMP_209 \def (Bind Abst) in +(let H16 \def (eq_ind K k TMP_208 H8 TMP_209 H11) in (let TMP_211 \def +(\lambda (k0: K).(let TMP_210 \def (r k0 n) in (drop h TMP_210 c x0))) in +(let TMP_212 \def (Bind Abst) in (let H17 \def (eq_ind K k TMP_211 H5 TMP_212 +H11) in (let TMP_213 \def (Bind Abst) in (let TMP_222 \def (\lambda (k0: +K).(let TMP_217 \def (\lambda (c1: C).(let TMP_214 \def (S n) in (let TMP_215 +\def (Bind Abbr) in (let TMP_216 \def (CHead x2 TMP_215 x3) in (drop h +TMP_214 c1 TMP_216))))) in (let TMP_221 \def (\lambda (c1: C).(let TMP_218 +\def (r k0 n) in (let TMP_219 \def (lift h TMP_218 x1) in (let TMP_220 \def +(CHead c k0 TMP_219) in (csubc g TMP_220 c1))))) in (ex2 C TMP_217 +TMP_221)))) in (let TMP_223 \def (Bind Abst) in (let TMP_224 \def (r TMP_223 +n) in (let H_x0 \def (H x0 TMP_224 h H17 x2 H13) in (let H18 \def H_x0 in +(let TMP_225 \def (\lambda (c1: C).(drop h n c1 x2)) in (let TMP_226 \def +(\lambda (c1: C).(csubc g c c1)) in (let TMP_230 \def (\lambda (c1: C).(let +TMP_227 \def (S n) in (let TMP_228 \def (Bind Abbr) in (let TMP_229 \def +(CHead x2 TMP_228 x3) in (drop h TMP_227 c1 TMP_229))))) in (let TMP_236 \def +(\lambda (c1: C).(let TMP_231 \def (Bind Abst) in (let TMP_232 \def (Bind +Abst) in (let TMP_233 \def (r TMP_232 n) in (let TMP_234 \def (lift h TMP_233 +x1) in (let TMP_235 \def (CHead c TMP_231 TMP_234) in (csubc g TMP_235 +c1))))))) in (let TMP_237 \def (ex2 C TMP_230 TMP_236) in (let TMP_262 \def (\lambda (x: C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g c -x)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) -x3))) (\lambda (c1: C).(csubc g (CHead c (Bind Abst) (lift h (r (Bind Abst) -n) x1)) c1)) (CHead x (Bind Abbr) (lift h n x3)) (drop_skip_bind h n x x2 H19 -Abbr x3) (csubc_abst g c x H20 (lift h (r (Bind Abst) n) x1) x4 (sc3_lift g -(asucc g x4) x0 x1 H14 c h (r (Bind Abst) n) H17) (lift h n x3) (sc3_lift g -x4 x2 x3 H15 x h n H19)))))) H18))) k H11))) e1 H12))))))))) H10)) (\lambda -(H10: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C e1 -(CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: -T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: -T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: -T).(csubc g x0 c3)))))).(ex4_3_ind B C T (\lambda (b: B).(\lambda (c3: -C).(\lambda (v2: T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: +x)).(let TMP_241 \def (\lambda (c1: C).(let TMP_238 \def (S n) in (let +TMP_239 \def (Bind Abbr) in (let TMP_240 \def (CHead x2 TMP_239 x3) in (drop +h TMP_238 c1 TMP_240))))) in (let TMP_247 \def (\lambda (c1: C).(let TMP_242 +\def (Bind Abst) in (let TMP_243 \def (Bind Abst) in (let TMP_244 \def (r +TMP_243 n) in (let TMP_245 \def (lift h TMP_244 x1) in (let TMP_246 \def +(CHead c TMP_242 TMP_245) in (csubc g TMP_246 c1))))))) in (let TMP_248 \def +(Bind Abbr) in (let TMP_249 \def (lift h n x3) in (let TMP_250 \def (CHead x +TMP_248 TMP_249) in (let TMP_251 \def (drop_skip_bind h n x x2 H19 Abbr x3) +in (let TMP_252 \def (Bind Abst) in (let TMP_253 \def (r TMP_252 n) in (let +TMP_254 \def (lift h TMP_253 x1) in (let TMP_255 \def (asucc g x4) in (let +TMP_256 \def (Bind Abst) in (let TMP_257 \def (r TMP_256 n) in (let TMP_258 +\def (sc3_lift g TMP_255 x0 x1 H14 c h TMP_257 H17) in (let TMP_259 \def +(lift h n x3) in (let TMP_260 \def (sc3_lift g x4 x2 x3 H15 x h n H19) in +(let TMP_261 \def (csubc_abst g c x H20 TMP_254 x4 TMP_258 TMP_259 TMP_260) +in (ex_intro2 C TMP_241 TMP_247 TMP_250 TMP_251 TMP_261)))))))))))))))))))) +in (let TMP_263 \def (ex2_ind C TMP_225 TMP_226 TMP_237 TMP_262 H18) in (let +TMP_264 \def (eq_ind_r K TMP_213 TMP_222 TMP_263 k H11) in (eq_ind_r C +TMP_195 TMP_202 TMP_264 e1 H12)))))))))))))))))))))))))))))))) in (ex5_3_ind +C T A TMP_179 TMP_182 TMP_183 TMP_185 TMP_186 TMP_193 TMP_265 H10))))))))))) +in (let TMP_349 \def (\lambda (H10: (ex4_3 B C T (\lambda (b: B).(\lambda +(c3: C).(\lambda (v2: T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g x0 c3)))) (ex2 C (\lambda (c1: -C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) -x1)) c1))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: -(eq C e1 (CHead x3 (Bind x2) x4))).(\lambda (H12: (eq K k (Bind -Void))).(\lambda (H13: (not (eq B x2 Void))).(\lambda (H14: (csubc g x0 -x3)).(eq_ind_r C (CHead x3 (Bind x2) x4) (\lambda (c0: C).(ex2 C (\lambda -(c1: C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r -k n) x1)) c1)))) (let H15 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: -nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to -(\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) \to (ex2 C (\lambda (c1: -C).(drop h0 n c1 e3)) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) -x1)) c1)))))))) H8 (Bind Void) H12) in (let H16 \def (eq_ind K k (\lambda -(k0: K).(drop h (r k0 n) c x0)) H5 (Bind Void) H12) in (eq_ind_r K (Bind -Void) (\lambda (k0: K).(ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 -(Bind x2) x4))) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) -c1)))) (let H_x0 \def (H x0 (r (Bind Void) n) h H16 x3 H14) in (let H17 \def -H_x0 in (ex2_ind C (\lambda (c1: C).(drop h n c1 x3)) (\lambda (c1: C).(csubc -g c c1)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 (Bind x2) x4))) -(\lambda (c1: C).(csubc g (CHead c (Bind Void) (lift h (r (Bind Void) n) x1)) -c1))) (\lambda (x: C).(\lambda (H18: (drop h n x x3)).(\lambda (H19: (csubc g -c x)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 (Bind x2) -x4))) (\lambda (c1: C).(csubc g (CHead c (Bind Void) (lift h (r (Bind Void) -n) x1)) c1)) (CHead x (Bind x2) (lift h n x4)) (drop_skip_bind h n x x3 H18 -x2 x4) (csubc_void g c x H19 x2 H13 (lift h (r (Bind Void) n) x1) (lift h n -x4)))))) H17))) k H12))) e1 H11)))))))) H10)) H9))) t H4))))))))) -(drop_gen_skip_l c e2 t h n k H1)))))))) d))))))) c2)). -(* COMMENTS -Initial nodes: 3747 -END *) +B).(\lambda (c3: C).(\lambda (_: T).(csubc g x0 c3)))))).(let TMP_269 \def +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_267 \def (Bind b) +in (let TMP_268 \def (CHead c3 TMP_267 v2) in (eq C e1 TMP_268)))))) in (let +TMP_271 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_270 +\def (Bind Void) in (eq K k TMP_270))))) in (let TMP_273 \def (\lambda (b: +B).(\lambda (_: C).(\lambda (_: T).(let TMP_272 \def (eq B b Void) in (not +TMP_272))))) in (let TMP_274 \def (\lambda (_: B).(\lambda (c3: C).(\lambda +(_: T).(csubc g x0 c3)))) in (let TMP_276 \def (\lambda (c1: C).(let TMP_275 +\def (S n) in (drop h TMP_275 c1 e1))) in (let TMP_280 \def (\lambda (c1: +C).(let TMP_277 \def (r k n) in (let TMP_278 \def (lift h TMP_277 x1) in (let +TMP_279 \def (CHead c k TMP_278) in (csubc g TMP_279 c1))))) in (let TMP_281 +\def (ex2 C TMP_276 TMP_280) in (let TMP_348 \def (\lambda (x2: B).(\lambda +(x3: C).(\lambda (x4: T).(\lambda (H11: (eq C e1 (CHead x3 (Bind x2) +x4))).(\lambda (H12: (eq K k (Bind Void))).(\lambda (H13: (not (eq B x2 +Void))).(\lambda (H14: (csubc g x0 x3)).(let TMP_282 \def (Bind x2) in (let +TMP_283 \def (CHead x3 TMP_282 x4) in (let TMP_290 \def (\lambda (c0: C).(let +TMP_285 \def (\lambda (c1: C).(let TMP_284 \def (S n) in (drop h TMP_284 c1 +c0))) in (let TMP_289 \def (\lambda (c1: C).(let TMP_286 \def (r k n) in (let +TMP_287 \def (lift h TMP_286 x1) in (let TMP_288 \def (CHead c k TMP_287) in +(csubc g TMP_288 c1))))) in (ex2 C TMP_285 TMP_289)))) in (let TMP_296 \def +(\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) +x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) +\to (let TMP_291 \def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_295 +\def (\lambda (c1: C).(let TMP_292 \def (r k0 n) in (let TMP_293 \def (lift h +TMP_292 x1) in (let TMP_294 \def (CHead c k0 TMP_293) in (csubc g TMP_294 +c1))))) in (ex2 C TMP_291 TMP_295)))))))) in (let TMP_297 \def (Bind Void) in +(let H15 \def (eq_ind K k TMP_296 H8 TMP_297 H12) in (let TMP_299 \def +(\lambda (k0: K).(let TMP_298 \def (r k0 n) in (drop h TMP_298 c x0))) in +(let TMP_300 \def (Bind Void) in (let H16 \def (eq_ind K k TMP_299 H5 TMP_300 +H12) in (let TMP_301 \def (Bind Void) in (let TMP_310 \def (\lambda (k0: +K).(let TMP_305 \def (\lambda (c1: C).(let TMP_302 \def (S n) in (let TMP_303 +\def (Bind x2) in (let TMP_304 \def (CHead x3 TMP_303 x4) in (drop h TMP_302 +c1 TMP_304))))) in (let TMP_309 \def (\lambda (c1: C).(let TMP_306 \def (r k0 +n) in (let TMP_307 \def (lift h TMP_306 x1) in (let TMP_308 \def (CHead c k0 +TMP_307) in (csubc g TMP_308 c1))))) in (ex2 C TMP_305 TMP_309)))) in (let +TMP_311 \def (Bind Void) in (let TMP_312 \def (r TMP_311 n) in (let H_x0 \def +(H x0 TMP_312 h H16 x3 H14) in (let H17 \def H_x0 in (let TMP_313 \def +(\lambda (c1: C).(drop h n c1 x3)) in (let TMP_314 \def (\lambda (c1: +C).(csubc g c c1)) in (let TMP_318 \def (\lambda (c1: C).(let TMP_315 \def (S +n) in (let TMP_316 \def (Bind x2) in (let TMP_317 \def (CHead x3 TMP_316 x4) +in (drop h TMP_315 c1 TMP_317))))) in (let TMP_324 \def (\lambda (c1: C).(let +TMP_319 \def (Bind Void) in (let TMP_320 \def (Bind Void) in (let TMP_321 +\def (r TMP_320 n) in (let TMP_322 \def (lift h TMP_321 x1) in (let TMP_323 +\def (CHead c TMP_319 TMP_322) in (csubc g TMP_323 c1))))))) in (let TMP_325 +\def (ex2 C TMP_318 TMP_324) in (let TMP_345 \def (\lambda (x: C).(\lambda +(H18: (drop h n x x3)).(\lambda (H19: (csubc g c x)).(let TMP_329 \def +(\lambda (c1: C).(let TMP_326 \def (S n) in (let TMP_327 \def (Bind x2) in +(let TMP_328 \def (CHead x3 TMP_327 x4) in (drop h TMP_326 c1 TMP_328))))) in +(let TMP_335 \def (\lambda (c1: C).(let TMP_330 \def (Bind Void) in (let +TMP_331 \def (Bind Void) in (let TMP_332 \def (r TMP_331 n) in (let TMP_333 +\def (lift h TMP_332 x1) in (let TMP_334 \def (CHead c TMP_330 TMP_333) in +(csubc g TMP_334 c1))))))) in (let TMP_336 \def (Bind x2) in (let TMP_337 +\def (lift h n x4) in (let TMP_338 \def (CHead x TMP_336 TMP_337) in (let +TMP_339 \def (drop_skip_bind h n x x3 H18 x2 x4) in (let TMP_340 \def (Bind +Void) in (let TMP_341 \def (r TMP_340 n) in (let TMP_342 \def (lift h TMP_341 +x1) in (let TMP_343 \def (lift h n x4) in (let TMP_344 \def (csubc_void g c x +H19 x2 H13 TMP_342 TMP_343) in (ex_intro2 C TMP_329 TMP_335 TMP_338 TMP_339 +TMP_344))))))))))))))) in (let TMP_346 \def (ex2_ind C TMP_313 TMP_314 +TMP_325 TMP_345 H17) in (let TMP_347 \def (eq_ind_r K TMP_301 TMP_310 TMP_346 +k H12) in (eq_ind_r C TMP_283 TMP_290 TMP_347 e1 +H11))))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_269 TMP_271 +TMP_273 TMP_274 TMP_281 TMP_348 H10)))))))))) in (let TMP_350 \def (or3_ind +TMP_103 TMP_113 TMP_122 TMP_129 TMP_177 TMP_266 TMP_349 H9) in (eq_ind_r T +TMP_94 TMP_99 TMP_350 t H4)))))))))))))))))))))))))))))))))))))))))) in (let +TMP_352 \def (drop_gen_skip_l c e2 t h n k H1) in (ex3_2_ind C T TMP_69 +TMP_72 TMP_74 TMP_79 TMP_351 TMP_352))))))))))))))) in (nat_ind TMP_34 TMP_67 +TMP_353 d)))))))))) in (C_ind TMP_3 TMP_30 TMP_354 c2))))). theorem csubc_drop_conf_rev: \forall (g: G).(\forall (c2: C).(\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 c2)))))))))) \def - \lambda (g: G).(\lambda (c2: C).(C_ind (\lambda (c: C).(\forall (e2: -C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall (e1: -C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda -(c1: C).(csubc g c1 c)))))))))) (\lambda (n: nat).(\lambda (e2: C).(\lambda -(d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) e2)).(\lambda -(e1: C).(\lambda (H0: (csubc g e1 e2)).(and3_ind (eq C e2 (CSort n)) (eq nat -h O) (eq nat d O) (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: -C).(csubc g c1 (CSort n)))) (\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: -(eq nat h O)).(\lambda (H3: (eq nat d O)).(eq_ind_r nat O (\lambda (n0: -nat).(ex2 C (\lambda (c1: C).(drop n0 d c1 e1)) (\lambda (c1: C).(csubc g c1 -(CSort n))))) (eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (c1: -C).(drop O n0 c1 e1)) (\lambda (c1: C).(csubc g c1 (CSort n))))) (let H4 \def -(eq_ind C e2 (\lambda (c: C).(csubc g e1 c)) H0 (CSort n) H1) in (ex_intro2 C -(\lambda (c1: C).(drop O O c1 e1)) (\lambda (c1: C).(csubc g c1 (CSort n))) -e1 (drop_refl e1) H4)) d H3) h H2)))) (drop_gen_sort n h d e2 H))))))))) -(\lambda (c: C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: -nat).((drop h d c e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C -(\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 -c))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: -nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) -e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop h -n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))) (\lambda (h: -nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e2) \to (\forall -(e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) -(\lambda (c1: C).(csubc g c1 (CHead c k t)))))))) (\lambda (H0: (drop O O -(CHead c k t) e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e1 e2)).(let H2 -\def (eq_ind_r C e2 (\lambda (c0: C).(csubc g e1 c0)) H1 (CHead c k t) -(drop_gen_refl (CHead c k t) e2 H0)) in (ex_intro2 C (\lambda (c1: C).(drop O -O c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))) e1 (drop_refl e1) -H2))))) (\lambda (n: nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to -(\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 -e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))).(\lambda (H1: (drop -(S n) O (CHead c k t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 -e2)).(let H_x \def (H e2 O (r k n) (drop_gen_drop k c e2 t n H1) e1 H2) in -(let H3 \def H_x in (ex2_ind C (\lambda (c1: C).(drop (r k n) O c1 e1)) -(\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: C).(drop (S n) O c1 -e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t)))) (\lambda (x: C).(\lambda -(H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g x c)).(ex_intro2 C -(\lambda (c1: C).(drop (S n) O c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c -k t))) (CHead x k t) (drop_drop k n x e1 H4 t) (csubc_head g x c H5 k t))))) -H3)))))))) h)) (\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n -(CHead c k t) e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda -(c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k -t)))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) -e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(ex3_2_ind C T (\lambda -(e: C).(\lambda (v: T).(eq C e2 (CHead e k v)))) (\lambda (_: C).(\lambda (v: -T).(eq T t (lift h (r k n) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k -n) c e))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: -C).(csubc g c1 (CHead c k t)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r k n) -x1))).(\lambda (H5: (drop h (r k n) c x0)).(let H6 \def (eq_ind C e2 (\lambda -(c0: C).(csubc g e1 c0)) H2 (CHead x0 k x1) H3) in (let H7 \def (eq_ind C e2 -(\lambda (c0: C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to -(\forall (e3: C).((csubc g e3 c0) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 -e3)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))) H0 (CHead x0 k x1) -H3) in (let H8 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: nat).((drop h0 -n (CHead c k t0) (CHead x0 k x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 -k x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda (c1: C).(csubc -g c1 (CHead c k t0))))))))) H7 (lift h (r k n) x1) H4) in (eq_ind_r T (lift h -(r k n) x1) (\lambda (t0: T).(ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) -(\lambda (c1: C).(csubc g c1 (CHead c k t0))))) (let H_x \def -(csubc_gen_head_r g x0 e1 x1 k H6) in (let H9 \def H_x in (or3_ind (ex2 C -(\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 -x0))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k -(Bind Abbr))))) (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C e1 -(CHead c1 (Bind Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: -A).(csubc g c1 x0)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g -(asucc g a) c1 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a -x0 x1))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq -C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda -(_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: -T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: C).(\lambda (_: -T).(csubc g c1 x0))))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda -(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (H10: (ex2 C -(\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 -x0)))).(ex2_ind C (\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: -C).(csubc g c1 x0)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda -(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (x: -C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: (csubc g x -x0)).(eq_ind_r C (CHead x k x1) (\lambda (c0: C).(ex2 C (\lambda (c1: -C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k -n) x1)))))) (let H_x0 \def (H x0 (r k n) h H5 x H12) in (let H13 \def H_x0 in -(ex2_ind C (\lambda (c1: C).(drop h (r k n) c1 x)) (\lambda (c1: C).(csubc g -c1 c)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda -(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (x2: -C).(\lambda (H14: (drop h (r k n) x2 x)).(\lambda (H15: (csubc g x2 -c)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda -(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))) (CHead x2 k (lift h (r -k n) x1)) (drop_skip k h n x2 x H14 x1) (csubc_head g x2 c H15 k (lift h (r k -n) x1)))))) H13))) e1 H11)))) H10)) (\lambda (H10: (ex5_3 C T A (\lambda (_: -C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c1: -C).(\lambda (v: T).(\lambda (_: A).(eq C e1 (CHead c1 (Bind Abst) v))))) -(\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 x0)))) (\lambda -(c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a x0 x1)))))).(ex5_3_ind C T A -(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) -(\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C e1 (CHead c1 (Bind -Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 -x0)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 -v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a x0 x1)))) (ex2 -C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead -c k (lift h (r k n) x1))))) (\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: -A).(\lambda (H11: (eq K k (Bind Abbr))).(\lambda (H12: (eq C e1 (CHead x2 -(Bind Abst) x3))).(\lambda (H13: (csubc g x2 x0)).(\lambda (H14: (sc3 g -(asucc g x4) x2 x3)).(\lambda (H15: (sc3 g x4 x0 x1)).(eq_ind_r C (CHead x2 -(Bind Abst) x3) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S n) c1 -c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))))) (let -H16 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c -k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g e3 -(CHead x0 k0 x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda -(c1: C).(csubc g c1 (CHead c k0 (lift h (r k0 n) x1)))))))))) H8 (Bind Abbr) -H11) in (let H17 \def (eq_ind K k (\lambda (k0: K).(drop h (r k0 n) c x0)) H5 -(Bind Abbr) H11) in (eq_ind_r K (Bind Abbr) (\lambda (k0: K).(ex2 C (\lambda -(c1: C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: C).(csubc -g c1 (CHead c k0 (lift h (r k0 n) x1)))))) (let H_x0 \def (H x0 (r (Bind -Abbr) n) h H17 x2 H13) in (let H18 \def H_x0 in (ex2_ind C (\lambda (c1: -C).(drop h n c1 x2)) (\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: -C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: C).(csubc g c1 -(CHead c (Bind Abbr) (lift h (r (Bind Abbr) n) x1))))) (\lambda (x: -C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g x c)).(ex_intro2 C -(\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: -C).(csubc g c1 (CHead c (Bind Abbr) (lift h (r (Bind Abbr) n) x1)))) (CHead x -(Bind Abst) (lift h n x3)) (drop_skip_bind h n x x2 H19 Abst x3) (csubc_abst -g x c H20 (lift h n x3) x4 (sc3_lift g (asucc g x4) x2 x3 H14 x h n H19) -(lift h (r (Bind Abbr) n) x1) (sc3_lift g x4 x0 x1 H15 c h (r (Bind Abbr) n) -H17)))))) H18))) k H11))) e1 H12))))))))) H10)) (\lambda (H10: (ex4_3 B C T -(\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C e1 (CHead c1 (Bind -Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind -b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) -(\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 -x0)))))).(ex4_3_ind B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: -T).(eq C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: -C).(\lambda (_: T).(csubc g c1 x0)))) (ex2 C (\lambda (c1: C).(drop h (S n) -c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) -(\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: (eq C e1 -(CHead x3 (Bind Void) x4))).(\lambda (H12: (eq K k (Bind x2))).(\lambda (H13: -(not (eq B x2 Void))).(\lambda (H14: (csubc g x3 x0)).(eq_ind_r C (CHead x3 -(Bind Void) x4) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S n) c1 -c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))))) (let -H15 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c -k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g e3 -(CHead x0 k0 x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda -(c1: C).(csubc g c1 (CHead c k0 (lift h (r k0 n) x1)))))))))) H8 (Bind x2) -H12) in (let H16 \def (eq_ind K k (\lambda (k0: K).(drop h (r k0 n) c x0)) H5 -(Bind x2) H12) in (eq_ind_r K (Bind x2) (\lambda (k0: K).(ex2 C (\lambda (c1: -C).(drop h (S n) c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 -(CHead c k0 (lift h (r k0 n) x1)))))) (let H_x0 \def (H x0 (r (Bind x2) n) h -H16 x3 H14) in (let H17 \def H_x0 in (ex2_ind C (\lambda (c1: C).(drop h n c1 -x3)) (\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: C).(drop h (S n) -c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 (CHead c (Bind -x2) (lift h (r (Bind x2) n) x1))))) (\lambda (x: C).(\lambda (H18: (drop h n -x x3)).(\lambda (H19: (csubc g x c)).(ex_intro2 C (\lambda (c1: C).(drop h (S -n) c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 (CHead c (Bind -x2) (lift h (r (Bind x2) n) x1)))) (CHead x (Bind Void) (lift h n x4)) -(drop_skip_bind h n x x3 H18 Void x4) (csubc_void g x c H19 x2 H13 (lift h n -x4) (lift h (r (Bind x2) n) x1)))))) H17))) k H12))) e1 H11)))))))) H10)) -H9))) t H4))))))))) (drop_gen_skip_l c e2 t h n k H1)))))))) d))))))) c2)). -(* COMMENTS -Initial nodes: 3747 -END *) + \lambda (g: G).(\lambda (c2: C).(let TMP_3 \def (\lambda (c: C).(\forall +(e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall +(e1: C).((csubc g e1 e2) \to (let TMP_1 \def (\lambda (c1: C).(drop h d c1 +e1)) in (let TMP_2 \def (\lambda (c1: C).(csubc g c1 c)) in (ex2 C TMP_1 +TMP_2)))))))))) in (let TMP_30 \def (\lambda (n: nat).(\lambda (e2: +C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) +e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let TMP_4 \def (CSort +n) in (let TMP_5 \def (eq C e2 TMP_4) in (let TMP_6 \def (eq nat h O) in (let +TMP_7 \def (eq nat d O) in (let TMP_8 \def (\lambda (c1: C).(drop h d c1 e1)) +in (let TMP_10 \def (\lambda (c1: C).(let TMP_9 \def (CSort n) in (csubc g c1 +TMP_9))) in (let TMP_11 \def (ex2 C TMP_8 TMP_10) in (let TMP_28 \def +(\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (H3: +(eq nat d O)).(let TMP_15 \def (\lambda (n0: nat).(let TMP_12 \def (\lambda +(c1: C).(drop n0 d c1 e1)) in (let TMP_14 \def (\lambda (c1: C).(let TMP_13 +\def (CSort n) in (csubc g c1 TMP_13))) in (ex2 C TMP_12 TMP_14)))) in (let +TMP_19 \def (\lambda (n0: nat).(let TMP_16 \def (\lambda (c1: C).(drop O n0 +c1 e1)) in (let TMP_18 \def (\lambda (c1: C).(let TMP_17 \def (CSort n) in +(csubc g c1 TMP_17))) in (ex2 C TMP_16 TMP_18)))) in (let TMP_20 \def +(\lambda (c: C).(csubc g e1 c)) in (let TMP_21 \def (CSort n) in (let H4 \def +(eq_ind C e2 TMP_20 H0 TMP_21 H1) in (let TMP_22 \def (\lambda (c1: C).(drop +O O c1 e1)) in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (CSort n) +in (csubc g c1 TMP_23))) in (let TMP_25 \def (drop_refl e1) in (let TMP_26 +\def (ex_intro2 C TMP_22 TMP_24 e1 TMP_25 H4) in (let TMP_27 \def (eq_ind_r +nat O TMP_19 TMP_26 d H3) in (eq_ind_r nat O TMP_15 TMP_27 h H2)))))))))))))) +in (let TMP_29 \def (drop_gen_sort n h d e2 H) in (and3_ind TMP_5 TMP_6 TMP_7 +TMP_11 TMP_28 TMP_29))))))))))))))))) in (let TMP_354 \def (\lambda (c: +C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop +h d c e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: +C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 c))))))))))).(\lambda (k: +K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: nat).(let TMP_34 \def +(\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) e2) \to (\forall +(e1: C).((csubc g e1 e2) \to (let TMP_31 \def (\lambda (c1: C).(drop h n c1 +e1)) in (let TMP_33 \def (\lambda (c1: C).(let TMP_32 \def (CHead c k t) in +(csubc g c1 TMP_32))) in (ex2 C TMP_31 TMP_33)))))))) in (let TMP_67 \def +(\lambda (h: nat).(let TMP_38 \def (\lambda (n: nat).((drop n O (CHead c k t) +e2) \to (\forall (e1: C).((csubc g e1 e2) \to (let TMP_35 \def (\lambda (c1: +C).(drop n O c1 e1)) in (let TMP_37 \def (\lambda (c1: C).(let TMP_36 \def +(CHead c k t) in (csubc g c1 TMP_36))) in (ex2 C TMP_35 TMP_37))))))) in (let +TMP_47 \def (\lambda (H0: (drop O O (CHead c k t) e2)).(\lambda (e1: +C).(\lambda (H1: (csubc g e1 e2)).(let TMP_39 \def (\lambda (c0: C).(csubc g +e1 c0)) in (let TMP_40 \def (CHead c k t) in (let TMP_41 \def (CHead c k t) +in (let TMP_42 \def (drop_gen_refl TMP_41 e2 H0) in (let H2 \def (eq_ind_r C +e2 TMP_39 H1 TMP_40 TMP_42) in (let TMP_43 \def (\lambda (c1: C).(drop O O c1 +e1)) in (let TMP_45 \def (\lambda (c1: C).(let TMP_44 \def (CHead c k t) in +(csubc g c1 TMP_44))) in (let TMP_46 \def (drop_refl e1) in (ex_intro2 C +TMP_43 TMP_45 e1 TMP_46 H2)))))))))))) in (let TMP_66 \def (\lambda (n: +nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to (\forall (e1: C).((csubc +g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) (\lambda (c1: +C).(csubc g c1 (CHead c k t))))))))).(\lambda (H1: (drop (S n) O (CHead c k +t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(let TMP_48 \def (r k +n) in (let TMP_49 \def (drop_gen_drop k c e2 t n H1) in (let H_x \def (H e2 O +TMP_48 TMP_49 e1 H2) in (let H3 \def H_x in (let TMP_51 \def (\lambda (c1: +C).(let TMP_50 \def (r k n) in (drop TMP_50 O c1 e1))) in (let TMP_52 \def +(\lambda (c1: C).(csubc g c1 c)) in (let TMP_54 \def (\lambda (c1: C).(let +TMP_53 \def (S n) in (drop TMP_53 O c1 e1))) in (let TMP_56 \def (\lambda +(c1: C).(let TMP_55 \def (CHead c k t) in (csubc g c1 TMP_55))) in (let +TMP_57 \def (ex2 C TMP_54 TMP_56) in (let TMP_65 \def (\lambda (x: +C).(\lambda (H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g x c)).(let +TMP_59 \def (\lambda (c1: C).(let TMP_58 \def (S n) in (drop TMP_58 O c1 +e1))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_60 \def (CHead c k t) in +(csubc g c1 TMP_60))) in (let TMP_62 \def (CHead x k t) in (let TMP_63 \def +(drop_drop k n x e1 H4 t) in (let TMP_64 \def (csubc_head g x c H5 k t) in +(ex_intro2 C TMP_59 TMP_61 TMP_62 TMP_63 TMP_64))))))))) in (ex2_ind C TMP_51 +TMP_52 TMP_57 TMP_65 H3)))))))))))))))) in (nat_ind TMP_38 TMP_47 TMP_66 +h))))) in (let TMP_353 \def (\lambda (n: nat).(\lambda (H0: ((\forall (h: +nat).((drop h n (CHead c k t) e2) \to (\forall (e1: C).((csubc g e1 e2) \to +(ex2 C (\lambda (c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead +c k t)))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) +e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(let TMP_69 \def +(\lambda (e: C).(\lambda (v: T).(let TMP_68 \def (CHead e k v) in (eq C e2 +TMP_68)))) in (let TMP_72 \def (\lambda (_: C).(\lambda (v: T).(let TMP_70 +\def (r k n) in (let TMP_71 \def (lift h TMP_70 v) in (eq T t TMP_71))))) in +(let TMP_74 \def (\lambda (e: C).(\lambda (_: T).(let TMP_73 \def (r k n) in +(drop h TMP_73 c e)))) in (let TMP_76 \def (\lambda (c1: C).(let TMP_75 \def +(S n) in (drop h TMP_75 c1 e1))) in (let TMP_78 \def (\lambda (c1: C).(let +TMP_77 \def (CHead c k t) in (csubc g c1 TMP_77))) in (let TMP_79 \def (ex2 C +TMP_76 TMP_78) in (let TMP_351 \def (\lambda (x0: C).(\lambda (x1: +T).(\lambda (H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r +k n) x1))).(\lambda (H5: (drop h (r k n) c x0)).(let TMP_80 \def (\lambda +(c0: C).(csubc g e1 c0)) in (let TMP_81 \def (CHead x0 k x1) in (let H6 \def +(eq_ind C e2 TMP_80 H2 TMP_81 H3) in (let TMP_85 \def (\lambda (c0: +C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to (\forall (e3: +C).((csubc g e3 c0) \to (let TMP_82 \def (\lambda (c1: C).(drop h0 n c1 e3)) +in (let TMP_84 \def (\lambda (c1: C).(let TMP_83 \def (CHead c k t) in (csubc +g c1 TMP_83))) in (ex2 C TMP_82 TMP_84)))))))) in (let TMP_86 \def (CHead x0 +k x1) in (let H7 \def (eq_ind C e2 TMP_85 H0 TMP_86 H3) in (let TMP_90 \def +(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c k t0) (CHead x0 k +x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 k x1)) \to (let TMP_87 \def +(\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_89 \def (\lambda (c1: C).(let +TMP_88 \def (CHead c k t0) in (csubc g c1 TMP_88))) in (ex2 C TMP_87 +TMP_89)))))))) in (let TMP_91 \def (r k n) in (let TMP_92 \def (lift h TMP_91 +x1) in (let H8 \def (eq_ind T t TMP_90 H7 TMP_92 H4) in (let TMP_93 \def (r k +n) in (let TMP_94 \def (lift h TMP_93 x1) in (let TMP_99 \def (\lambda (t0: +T).(let TMP_96 \def (\lambda (c1: C).(let TMP_95 \def (S n) in (drop h TMP_95 +c1 e1))) in (let TMP_98 \def (\lambda (c1: C).(let TMP_97 \def (CHead c k t0) +in (csubc g c1 TMP_97))) in (ex2 C TMP_96 TMP_98)))) in (let H_x \def +(csubc_gen_head_r g x0 e1 x1 k H6) in (let H9 \def H_x in (let TMP_101 \def +(\lambda (c1: C).(let TMP_100 \def (CHead c1 k x1) in (eq C e1 TMP_100))) in +(let TMP_102 \def (\lambda (c1: C).(csubc g c1 x0)) in (let TMP_103 \def (ex2 +C TMP_101 TMP_102) in (let TMP_105 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(let TMP_104 \def (Bind Abbr) in (eq K k TMP_104))))) in +(let TMP_108 \def (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(let +TMP_106 \def (Bind Abst) in (let TMP_107 \def (CHead c1 TMP_106 v) in (eq C +e1 TMP_107)))))) in (let TMP_109 \def (\lambda (c1: C).(\lambda (_: +T).(\lambda (_: A).(csubc g c1 x0)))) in (let TMP_111 \def (\lambda (c1: +C).(\lambda (v: T).(\lambda (a: A).(let TMP_110 \def (asucc g a) in (sc3 g +TMP_110 c1 v))))) in (let TMP_112 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (a: A).(sc3 g a x0 x1)))) in (let TMP_113 \def (ex5_3 C T A +TMP_105 TMP_108 TMP_109 TMP_111 TMP_112) in (let TMP_116 \def (\lambda (_: +B).(\lambda (c1: C).(\lambda (v1: T).(let TMP_114 \def (Bind Void) in (let +TMP_115 \def (CHead c1 TMP_114 v1) in (eq C e1 TMP_115)))))) in (let TMP_118 +\def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_117 \def (Bind +b) in (eq K k TMP_117))))) in (let TMP_120 \def (\lambda (b: B).(\lambda (_: +C).(\lambda (_: T).(let TMP_119 \def (eq B b Void) in (not TMP_119))))) in +(let TMP_121 \def (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g +c1 x0)))) in (let TMP_122 \def (ex4_3 B C T TMP_116 TMP_118 TMP_120 TMP_121) +in (let TMP_124 \def (\lambda (c1: C).(let TMP_123 \def (S n) in (drop h +TMP_123 c1 e1))) in (let TMP_128 \def (\lambda (c1: C).(let TMP_125 \def (r k +n) in (let TMP_126 \def (lift h TMP_125 x1) in (let TMP_127 \def (CHead c k +TMP_126) in (csubc g c1 TMP_127))))) in (let TMP_129 \def (ex2 C TMP_124 +TMP_128) in (let TMP_177 \def (\lambda (H10: (ex2 C (\lambda (c1: C).(eq C e1 +(CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 x0)))).(let TMP_131 \def +(\lambda (c1: C).(let TMP_130 \def (CHead c1 k x1) in (eq C e1 TMP_130))) in +(let TMP_132 \def (\lambda (c1: C).(csubc g c1 x0)) in (let TMP_134 \def +(\lambda (c1: C).(let TMP_133 \def (S n) in (drop h TMP_133 c1 e1))) in (let +TMP_138 \def (\lambda (c1: C).(let TMP_135 \def (r k n) in (let TMP_136 \def +(lift h TMP_135 x1) in (let TMP_137 \def (CHead c k TMP_136) in (csubc g c1 +TMP_137))))) in (let TMP_139 \def (ex2 C TMP_134 TMP_138) in (let TMP_176 +\def (\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: +(csubc g x x0)).(let TMP_140 \def (CHead x k x1) in (let TMP_147 \def +(\lambda (c0: C).(let TMP_142 \def (\lambda (c1: C).(let TMP_141 \def (S n) +in (drop h TMP_141 c1 c0))) in (let TMP_146 \def (\lambda (c1: C).(let +TMP_143 \def (r k n) in (let TMP_144 \def (lift h TMP_143 x1) in (let TMP_145 +\def (CHead c k TMP_144) in (csubc g c1 TMP_145))))) in (ex2 C TMP_142 +TMP_146)))) in (let TMP_148 \def (r k n) in (let H_x0 \def (H x0 TMP_148 h H5 +x H12) in (let H13 \def H_x0 in (let TMP_150 \def (\lambda (c1: C).(let +TMP_149 \def (r k n) in (drop h TMP_149 c1 x))) in (let TMP_151 \def (\lambda +(c1: C).(csubc g c1 c)) in (let TMP_154 \def (\lambda (c1: C).(let TMP_152 +\def (S n) in (let TMP_153 \def (CHead x k x1) in (drop h TMP_152 c1 +TMP_153)))) in (let TMP_158 \def (\lambda (c1: C).(let TMP_155 \def (r k n) +in (let TMP_156 \def (lift h TMP_155 x1) in (let TMP_157 \def (CHead c k +TMP_156) in (csubc g c1 TMP_157))))) in (let TMP_159 \def (ex2 C TMP_154 +TMP_158) in (let TMP_174 \def (\lambda (x2: C).(\lambda (H14: (drop h (r k n) +x2 x)).(\lambda (H15: (csubc g x2 c)).(let TMP_162 \def (\lambda (c1: C).(let +TMP_160 \def (S n) in (let TMP_161 \def (CHead x k x1) in (drop h TMP_160 c1 +TMP_161)))) in (let TMP_166 \def (\lambda (c1: C).(let TMP_163 \def (r k n) +in (let TMP_164 \def (lift h TMP_163 x1) in (let TMP_165 \def (CHead c k +TMP_164) in (csubc g c1 TMP_165))))) in (let TMP_167 \def (r k n) in (let +TMP_168 \def (lift h TMP_167 x1) in (let TMP_169 \def (CHead x2 k TMP_168) in +(let TMP_170 \def (drop_skip k h n x2 x H14 x1) in (let TMP_171 \def (r k n) +in (let TMP_172 \def (lift h TMP_171 x1) in (let TMP_173 \def (csubc_head g +x2 c H15 k TMP_172) in (ex_intro2 C TMP_162 TMP_166 TMP_169 TMP_170 +TMP_173))))))))))))) in (let TMP_175 \def (ex2_ind C TMP_150 TMP_151 TMP_159 +TMP_174 H13) in (eq_ind_r C TMP_140 TMP_147 TMP_175 e1 H11)))))))))))))))) in +(ex2_ind C TMP_131 TMP_132 TMP_139 TMP_176 H10)))))))) in (let TMP_266 \def +(\lambda (H10: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: +A).(eq K k (Bind Abbr))))) (\lambda (c1: C).(\lambda (v: T).(\lambda (_: +A).(eq C e1 (CHead c1 (Bind Abst) v))))) (\lambda (c1: C).(\lambda (_: +T).(\lambda (_: A).(csubc g c1 x0)))) (\lambda (c1: C).(\lambda (v: +T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (_: C).(\lambda (_: +T).(\lambda (a: A).(sc3 g a x0 x1)))))).(let TMP_179 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(let TMP_178 \def (Bind Abbr) in (eq K k +TMP_178))))) in (let TMP_182 \def (\lambda (c1: C).(\lambda (v: T).(\lambda +(_: A).(let TMP_180 \def (Bind Abst) in (let TMP_181 \def (CHead c1 TMP_180 +v) in (eq C e1 TMP_181)))))) in (let TMP_183 \def (\lambda (c1: C).(\lambda +(_: T).(\lambda (_: A).(csubc g c1 x0)))) in (let TMP_185 \def (\lambda (c1: +C).(\lambda (v: T).(\lambda (a: A).(let TMP_184 \def (asucc g a) in (sc3 g +TMP_184 c1 v))))) in (let TMP_186 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (a: A).(sc3 g a x0 x1)))) in (let TMP_188 \def (\lambda (c1: +C).(let TMP_187 \def (S n) in (drop h TMP_187 c1 e1))) in (let TMP_192 \def +(\lambda (c1: C).(let TMP_189 \def (r k n) in (let TMP_190 \def (lift h +TMP_189 x1) in (let TMP_191 \def (CHead c k TMP_190) in (csubc g c1 +TMP_191))))) in (let TMP_193 \def (ex2 C TMP_188 TMP_192) in (let TMP_265 +\def (\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: A).(\lambda (H11: (eq K +k (Bind Abbr))).(\lambda (H12: (eq C e1 (CHead x2 (Bind Abst) x3))).(\lambda +(H13: (csubc g x2 x0)).(\lambda (H14: (sc3 g (asucc g x4) x2 x3)).(\lambda +(H15: (sc3 g x4 x0 x1)).(let TMP_194 \def (Bind Abst) in (let TMP_195 \def +(CHead x2 TMP_194 x3) in (let TMP_202 \def (\lambda (c0: C).(let TMP_197 \def +(\lambda (c1: C).(let TMP_196 \def (S n) in (drop h TMP_196 c1 c0))) in (let +TMP_201 \def (\lambda (c1: C).(let TMP_198 \def (r k n) in (let TMP_199 \def +(lift h TMP_198 x1) in (let TMP_200 \def (CHead c k TMP_199) in (csubc g c1 +TMP_200))))) in (ex2 C TMP_197 TMP_201)))) in (let TMP_208 \def (\lambda (k0: +K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 +k0 x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 k0 x1)) \to (let TMP_203 +\def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_207 \def (\lambda (c1: +C).(let TMP_204 \def (r k0 n) in (let TMP_205 \def (lift h TMP_204 x1) in +(let TMP_206 \def (CHead c k0 TMP_205) in (csubc g c1 TMP_206))))) in (ex2 C +TMP_203 TMP_207)))))))) in (let TMP_209 \def (Bind Abbr) in (let H16 \def +(eq_ind K k TMP_208 H8 TMP_209 H11) in (let TMP_211 \def (\lambda (k0: +K).(let TMP_210 \def (r k0 n) in (drop h TMP_210 c x0))) in (let TMP_212 \def +(Bind Abbr) in (let H17 \def (eq_ind K k TMP_211 H5 TMP_212 H11) in (let +TMP_213 \def (Bind Abbr) in (let TMP_222 \def (\lambda (k0: K).(let TMP_217 +\def (\lambda (c1: C).(let TMP_214 \def (S n) in (let TMP_215 \def (Bind +Abst) in (let TMP_216 \def (CHead x2 TMP_215 x3) in (drop h TMP_214 c1 +TMP_216))))) in (let TMP_221 \def (\lambda (c1: C).(let TMP_218 \def (r k0 n) +in (let TMP_219 \def (lift h TMP_218 x1) in (let TMP_220 \def (CHead c k0 +TMP_219) in (csubc g c1 TMP_220))))) in (ex2 C TMP_217 TMP_221)))) in (let +TMP_223 \def (Bind Abbr) in (let TMP_224 \def (r TMP_223 n) in (let H_x0 \def +(H x0 TMP_224 h H17 x2 H13) in (let H18 \def H_x0 in (let TMP_225 \def +(\lambda (c1: C).(drop h n c1 x2)) in (let TMP_226 \def (\lambda (c1: +C).(csubc g c1 c)) in (let TMP_230 \def (\lambda (c1: C).(let TMP_227 \def (S +n) in (let TMP_228 \def (Bind Abst) in (let TMP_229 \def (CHead x2 TMP_228 +x3) in (drop h TMP_227 c1 TMP_229))))) in (let TMP_236 \def (\lambda (c1: +C).(let TMP_231 \def (Bind Abbr) in (let TMP_232 \def (Bind Abbr) in (let +TMP_233 \def (r TMP_232 n) in (let TMP_234 \def (lift h TMP_233 x1) in (let +TMP_235 \def (CHead c TMP_231 TMP_234) in (csubc g c1 TMP_235))))))) in (let +TMP_237 \def (ex2 C TMP_230 TMP_236) in (let TMP_262 \def (\lambda (x: +C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g x c)).(let TMP_241 +\def (\lambda (c1: C).(let TMP_238 \def (S n) in (let TMP_239 \def (Bind +Abst) in (let TMP_240 \def (CHead x2 TMP_239 x3) in (drop h TMP_238 c1 +TMP_240))))) in (let TMP_247 \def (\lambda (c1: C).(let TMP_242 \def (Bind +Abbr) in (let TMP_243 \def (Bind Abbr) in (let TMP_244 \def (r TMP_243 n) in +(let TMP_245 \def (lift h TMP_244 x1) in (let TMP_246 \def (CHead c TMP_242 +TMP_245) in (csubc g c1 TMP_246))))))) in (let TMP_248 \def (Bind Abst) in +(let TMP_249 \def (lift h n x3) in (let TMP_250 \def (CHead x TMP_248 +TMP_249) in (let TMP_251 \def (drop_skip_bind h n x x2 H19 Abst x3) in (let +TMP_252 \def (lift h n x3) in (let TMP_253 \def (asucc g x4) in (let TMP_254 +\def (sc3_lift g TMP_253 x2 x3 H14 x h n H19) in (let TMP_255 \def (Bind +Abbr) in (let TMP_256 \def (r TMP_255 n) in (let TMP_257 \def (lift h TMP_256 +x1) in (let TMP_258 \def (Bind Abbr) in (let TMP_259 \def (r TMP_258 n) in +(let TMP_260 \def (sc3_lift g x4 x0 x1 H15 c h TMP_259 H17) in (let TMP_261 +\def (csubc_abst g x c H20 TMP_252 x4 TMP_254 TMP_257 TMP_260) in (ex_intro2 +C TMP_241 TMP_247 TMP_250 TMP_251 TMP_261)))))))))))))))))))) in (let TMP_263 +\def (ex2_ind C TMP_225 TMP_226 TMP_237 TMP_262 H18) in (let TMP_264 \def +(eq_ind_r K TMP_213 TMP_222 TMP_263 k H11) in (eq_ind_r C TMP_195 TMP_202 +TMP_264 e1 H12)))))))))))))))))))))))))))))))) in (ex5_3_ind C T A TMP_179 +TMP_182 TMP_183 TMP_185 TMP_186 TMP_193 TMP_265 H10))))))))))) in (let +TMP_349 \def (\lambda (H10: (ex4_3 B C T (\lambda (_: B).(\lambda (c1: +C).(\lambda (v1: T).(eq C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: +B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: +B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: +B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 x0)))))).(let TMP_269 \def +(\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(let TMP_267 \def (Bind +Void) in (let TMP_268 \def (CHead c1 TMP_267 v1) in (eq C e1 TMP_268)))))) in +(let TMP_271 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let +TMP_270 \def (Bind b) in (eq K k TMP_270))))) in (let TMP_273 \def (\lambda +(b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_272 \def (eq B b Void) in +(not TMP_272))))) in (let TMP_274 \def (\lambda (_: B).(\lambda (c1: +C).(\lambda (_: T).(csubc g c1 x0)))) in (let TMP_276 \def (\lambda (c1: +C).(let TMP_275 \def (S n) in (drop h TMP_275 c1 e1))) in (let TMP_280 \def +(\lambda (c1: C).(let TMP_277 \def (r k n) in (let TMP_278 \def (lift h +TMP_277 x1) in (let TMP_279 \def (CHead c k TMP_278) in (csubc g c1 +TMP_279))))) in (let TMP_281 \def (ex2 C TMP_276 TMP_280) in (let TMP_348 +\def (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: (eq C +e1 (CHead x3 (Bind Void) x4))).(\lambda (H12: (eq K k (Bind x2))).(\lambda +(H13: (not (eq B x2 Void))).(\lambda (H14: (csubc g x3 x0)).(let TMP_282 \def +(Bind Void) in (let TMP_283 \def (CHead x3 TMP_282 x4) in (let TMP_290 \def +(\lambda (c0: C).(let TMP_285 \def (\lambda (c1: C).(let TMP_284 \def (S n) +in (drop h TMP_284 c1 c0))) in (let TMP_289 \def (\lambda (c1: C).(let +TMP_286 \def (r k n) in (let TMP_287 \def (lift h TMP_286 x1) in (let TMP_288 +\def (CHead c k TMP_287) in (csubc g c1 TMP_288))))) in (ex2 C TMP_285 +TMP_289)))) in (let TMP_296 \def (\lambda (k0: K).(\forall (h0: nat).((drop +h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: +C).((csubc g e3 (CHead x0 k0 x1)) \to (let TMP_291 \def (\lambda (c1: +C).(drop h0 n c1 e3)) in (let TMP_295 \def (\lambda (c1: C).(let TMP_292 \def +(r k0 n) in (let TMP_293 \def (lift h TMP_292 x1) in (let TMP_294 \def (CHead +c k0 TMP_293) in (csubc g c1 TMP_294))))) in (ex2 C TMP_291 TMP_295)))))))) +in (let TMP_297 \def (Bind x2) in (let H15 \def (eq_ind K k TMP_296 H8 +TMP_297 H12) in (let TMP_299 \def (\lambda (k0: K).(let TMP_298 \def (r k0 n) +in (drop h TMP_298 c x0))) in (let TMP_300 \def (Bind x2) in (let H16 \def +(eq_ind K k TMP_299 H5 TMP_300 H12) in (let TMP_301 \def (Bind x2) in (let +TMP_310 \def (\lambda (k0: K).(let TMP_305 \def (\lambda (c1: C).(let TMP_302 +\def (S n) in (let TMP_303 \def (Bind Void) in (let TMP_304 \def (CHead x3 +TMP_303 x4) in (drop h TMP_302 c1 TMP_304))))) in (let TMP_309 \def (\lambda +(c1: C).(let TMP_306 \def (r k0 n) in (let TMP_307 \def (lift h TMP_306 x1) +in (let TMP_308 \def (CHead c k0 TMP_307) in (csubc g c1 TMP_308))))) in (ex2 +C TMP_305 TMP_309)))) in (let TMP_311 \def (Bind x2) in (let TMP_312 \def (r +TMP_311 n) in (let H_x0 \def (H x0 TMP_312 h H16 x3 H14) in (let H17 \def +H_x0 in (let TMP_313 \def (\lambda (c1: C).(drop h n c1 x3)) in (let TMP_314 +\def (\lambda (c1: C).(csubc g c1 c)) in (let TMP_318 \def (\lambda (c1: +C).(let TMP_315 \def (S n) in (let TMP_316 \def (Bind Void) in (let TMP_317 +\def (CHead x3 TMP_316 x4) in (drop h TMP_315 c1 TMP_317))))) in (let TMP_324 +\def (\lambda (c1: C).(let TMP_319 \def (Bind x2) in (let TMP_320 \def (Bind +x2) in (let TMP_321 \def (r TMP_320 n) in (let TMP_322 \def (lift h TMP_321 +x1) in (let TMP_323 \def (CHead c TMP_319 TMP_322) in (csubc g c1 +TMP_323))))))) in (let TMP_325 \def (ex2 C TMP_318 TMP_324) in (let TMP_345 +\def (\lambda (x: C).(\lambda (H18: (drop h n x x3)).(\lambda (H19: (csubc g +x c)).(let TMP_329 \def (\lambda (c1: C).(let TMP_326 \def (S n) in (let +TMP_327 \def (Bind Void) in (let TMP_328 \def (CHead x3 TMP_327 x4) in (drop +h TMP_326 c1 TMP_328))))) in (let TMP_335 \def (\lambda (c1: C).(let TMP_330 +\def (Bind x2) in (let TMP_331 \def (Bind x2) in (let TMP_332 \def (r TMP_331 +n) in (let TMP_333 \def (lift h TMP_332 x1) in (let TMP_334 \def (CHead c +TMP_330 TMP_333) in (csubc g c1 TMP_334))))))) in (let TMP_336 \def (Bind +Void) in (let TMP_337 \def (lift h n x4) in (let TMP_338 \def (CHead x +TMP_336 TMP_337) in (let TMP_339 \def (drop_skip_bind h n x x3 H18 Void x4) +in (let TMP_340 \def (lift h n x4) in (let TMP_341 \def (Bind x2) in (let +TMP_342 \def (r TMP_341 n) in (let TMP_343 \def (lift h TMP_342 x1) in (let +TMP_344 \def (csubc_void g x c H19 x2 H13 TMP_340 TMP_343) in (ex_intro2 C +TMP_329 TMP_335 TMP_338 TMP_339 TMP_344))))))))))))))) in (let TMP_346 \def +(ex2_ind C TMP_313 TMP_314 TMP_325 TMP_345 H17) in (let TMP_347 \def +(eq_ind_r K TMP_301 TMP_310 TMP_346 k H12) in (eq_ind_r C TMP_283 TMP_290 +TMP_347 e1 H11))))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_269 +TMP_271 TMP_273 TMP_274 TMP_281 TMP_348 H10)))))))))) in (let TMP_350 \def +(or3_ind TMP_103 TMP_113 TMP_122 TMP_129 TMP_177 TMP_266 TMP_349 H9) in +(eq_ind_r T TMP_94 TMP_99 TMP_350 t +H4)))))))))))))))))))))))))))))))))))))))))) in (let TMP_352 \def +(drop_gen_skip_l c e2 t h n k H1) in (ex3_2_ind C T TMP_69 TMP_72 TMP_74 +TMP_79 TMP_351 TMP_352))))))))))))))) in (nat_ind TMP_34 TMP_67 TMP_353 +d)))))))))) in (C_ind TMP_3 TMP_30 TMP_354 c2))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/drop1.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/drop1.ma index 7c539cb4a..54465953f 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/drop1.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/drop1.ma @@ -14,79 +14,98 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/drop.ma". +include "basic_1/csubc/drop.ma". theorem drop1_csubc_trans: \forall (g: G).(\forall (hds: PList).(\forall (c2: C).(\forall (e2: C).((drop1 hds c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop1 hds c1 e1)) (\lambda (c1: C).(csubc g c2 c1))))))))) \def - \lambda (g: G).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall -(c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 -e1) \to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 -c1))))))))) (\lambda (c2: C).(\lambda (e2: C).(\lambda (H: (drop1 PNil c2 -e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let H_y \def -(drop1_gen_pnil c2 e2 H) in (let H1 \def (eq_ind_r C e2 (\lambda (c: -C).(csubc g c e1)) H0 c2 H_y) in (ex_intro2 C (\lambda (c1: C).(drop1 PNil c1 -e1)) (\lambda (c1: C).(csubc g c2 c1)) e1 (drop1_nil e1) H1)))))))) (\lambda -(n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: -C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 e1) -\to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 -c1)))))))))).(\lambda (c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n -n0 p) c2 e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e2 e1)).(let H_x \def -(drop1_gen_pcons c2 e2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda -(c3: C).(drop n n0 c2 c3)) (\lambda (c3: C).(drop1 p c3 e2)) (ex2 C (\lambda -(c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 c1))) -(\lambda (x: C).(\lambda (H3: (drop n n0 c2 x)).(\lambda (H4: (drop1 p x -e2)).(let H_x0 \def (H x e2 H4 e1 H1) in (let H5 \def H_x0 in (ex2_ind C -(\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g x c1)) (ex2 C -(\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 -c1))) (\lambda (x0: C).(\lambda (H6: (drop1 p x0 e1)).(\lambda (H7: (csubc g -x x0)).(let H_x1 \def (drop_csubc_trans g c2 x n0 n H3 x0 H7) in (let H8 \def -H_x1 in (ex2_ind C (\lambda (c1: C).(drop n n0 c1 x0)) (\lambda (c1: -C).(csubc g c2 c1)) (ex2 C (\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) -(\lambda (c1: C).(csubc g c2 c1))) (\lambda (x1: C).(\lambda (H9: (drop n n0 -x1 x0)).(\lambda (H10: (csubc g c2 x1)).(ex_intro2 C (\lambda (c1: C).(drop1 -(PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 c1)) x1 (drop1_cons x1 x0 -n n0 H9 e1 p H6) H10)))) H8)))))) H5)))))) H2)))))))))))) hds)). -(* COMMENTS -Initial nodes: 551 -END *) + \lambda (g: G).(\lambda (hds: PList).(let TMP_3 \def (\lambda (p: +PList).(\forall (c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: +C).((csubc g e2 e1) \to (let TMP_1 \def (\lambda (c1: C).(drop1 p c1 e1)) in +(let TMP_2 \def (\lambda (c1: C).(csubc g c2 c1)) in (ex2 C TMP_1 +TMP_2))))))))) in (let TMP_8 \def (\lambda (c2: C).(\lambda (e2: C).(\lambda +(H: (drop1 PNil c2 e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let +H_y \def (drop1_gen_pnil c2 e2 H) in (let TMP_4 \def (\lambda (c: C).(csubc g +c e1)) in (let H1 \def (eq_ind_r C e2 TMP_4 H0 c2 H_y) in (let TMP_5 \def +(\lambda (c1: C).(drop1 PNil c1 e1)) in (let TMP_6 \def (\lambda (c1: +C).(csubc g c2 c1)) in (let TMP_7 \def (drop1_nil e1) in (ex_intro2 C TMP_5 +TMP_6 e1 TMP_7 H1)))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda +(n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: C).(\forall (e2: +C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda +(c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 c1)))))))))).(\lambda +(c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n n0 p) c2 e2)).(\lambda +(e1: C).(\lambda (H1: (csubc g e2 e1)).(let H_x \def (drop1_gen_pcons c2 e2 p +n n0 H0) in (let H2 \def H_x in (let TMP_9 \def (\lambda (c3: C).(drop n n0 +c2 c3)) in (let TMP_10 \def (\lambda (c3: C).(drop1 p c3 e2)) in (let TMP_12 +\def (\lambda (c1: C).(let TMP_11 \def (PCons n n0 p) in (drop1 TMP_11 c1 +e1))) in (let TMP_13 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_14 +\def (ex2 C TMP_12 TMP_13) in (let TMP_33 \def (\lambda (x: C).(\lambda (H3: +(drop n n0 c2 x)).(\lambda (H4: (drop1 p x e2)).(let H_x0 \def (H x e2 H4 e1 +H1) in (let H5 \def H_x0 in (let TMP_15 \def (\lambda (c1: C).(drop1 p c1 +e1)) in (let TMP_16 \def (\lambda (c1: C).(csubc g x c1)) in (let TMP_18 \def +(\lambda (c1: C).(let TMP_17 \def (PCons n n0 p) in (drop1 TMP_17 c1 e1))) in +(let TMP_19 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_20 \def (ex2 C +TMP_18 TMP_19) in (let TMP_32 \def (\lambda (x0: C).(\lambda (H6: (drop1 p x0 +e1)).(\lambda (H7: (csubc g x x0)).(let H_x1 \def (drop_csubc_trans g c2 x n0 +n H3 x0 H7) in (let H8 \def H_x1 in (let TMP_21 \def (\lambda (c1: C).(drop n +n0 c1 x0)) in (let TMP_22 \def (\lambda (c1: C).(csubc g c2 c1)) in (let +TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (PCons n n0 p) in (drop1 TMP_23 +c1 e1))) in (let TMP_25 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_26 +\def (ex2 C TMP_24 TMP_25) in (let TMP_31 \def (\lambda (x1: C).(\lambda (H9: +(drop n n0 x1 x0)).(\lambda (H10: (csubc g c2 x1)).(let TMP_28 \def (\lambda +(c1: C).(let TMP_27 \def (PCons n n0 p) in (drop1 TMP_27 c1 e1))) in (let +TMP_29 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_30 \def (drop1_cons +x1 x0 n n0 H9 e1 p H6) in (ex_intro2 C TMP_28 TMP_29 x1 TMP_30 H10))))))) in +(ex2_ind C TMP_21 TMP_22 TMP_26 TMP_31 H8)))))))))))) in (ex2_ind C TMP_15 +TMP_16 TMP_20 TMP_32 H5)))))))))))) in (ex2_ind C TMP_9 TMP_10 TMP_14 TMP_33 +H2)))))))))))))))))) in (PList_ind TMP_3 TMP_8 TMP_34 hds))))). theorem csubc_drop1_conf_rev: \forall (g: G).(\forall (hds: PList).(\forall (c2: C).(\forall (e2: C).((drop1 hds c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop1 hds c1 e1)) (\lambda (c1: C).(csubc g c1 c2))))))))) \def - \lambda (g: G).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall -(c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 -e2) \to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 -c2))))))))) (\lambda (c2: C).(\lambda (e2: C).(\lambda (H: (drop1 PNil c2 -e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let H_y \def -(drop1_gen_pnil c2 e2 H) in (let H1 \def (eq_ind_r C e2 (\lambda (c: -C).(csubc g e1 c)) H0 c2 H_y) in (ex_intro2 C (\lambda (c1: C).(drop1 PNil c1 -e1)) (\lambda (c1: C).(csubc g c1 c2)) e1 (drop1_nil e1) H1)))))))) (\lambda -(n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: -C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 e2) -\to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 -c2)))))))))).(\lambda (c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n -n0 p) c2 e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e1 e2)).(let H_x \def -(drop1_gen_pcons c2 e2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda -(c3: C).(drop n n0 c2 c3)) (\lambda (c3: C).(drop1 p c3 e2)) (ex2 C (\lambda -(c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 c2))) -(\lambda (x: C).(\lambda (H3: (drop n n0 c2 x)).(\lambda (H4: (drop1 p x -e2)).(let H_x0 \def (H x e2 H4 e1 H1) in (let H5 \def H_x0 in (ex2_ind C -(\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 x)) (ex2 C -(\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 -c2))) (\lambda (x0: C).(\lambda (H6: (drop1 p x0 e1)).(\lambda (H7: (csubc g -x0 x)).(let H_x1 \def (csubc_drop_conf_rev g c2 x n0 n H3 x0 H7) in (let H8 -\def H_x1 in (ex2_ind C (\lambda (c1: C).(drop n n0 c1 x0)) (\lambda (c1: -C).(csubc g c1 c2)) (ex2 C (\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) -(\lambda (c1: C).(csubc g c1 c2))) (\lambda (x1: C).(\lambda (H9: (drop n n0 -x1 x0)).(\lambda (H10: (csubc g x1 c2)).(ex_intro2 C (\lambda (c1: C).(drop1 -(PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 c2)) x1 (drop1_cons x1 x0 -n n0 H9 e1 p H6) H10)))) H8)))))) H5)))))) H2)))))))))))) hds)). -(* COMMENTS -Initial nodes: 551 -END *) + \lambda (g: G).(\lambda (hds: PList).(let TMP_3 \def (\lambda (p: +PList).(\forall (c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: +C).((csubc g e1 e2) \to (let TMP_1 \def (\lambda (c1: C).(drop1 p c1 e1)) in +(let TMP_2 \def (\lambda (c1: C).(csubc g c1 c2)) in (ex2 C TMP_1 +TMP_2))))))))) in (let TMP_8 \def (\lambda (c2: C).(\lambda (e2: C).(\lambda +(H: (drop1 PNil c2 e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let +H_y \def (drop1_gen_pnil c2 e2 H) in (let TMP_4 \def (\lambda (c: C).(csubc g +e1 c)) in (let H1 \def (eq_ind_r C e2 TMP_4 H0 c2 H_y) in (let TMP_5 \def +(\lambda (c1: C).(drop1 PNil c1 e1)) in (let TMP_6 \def (\lambda (c1: +C).(csubc g c1 c2)) in (let TMP_7 \def (drop1_nil e1) in (ex_intro2 C TMP_5 +TMP_6 e1 TMP_7 H1)))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda +(n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: C).(\forall (e2: +C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda +(c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 c2)))))))))).(\lambda +(c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n n0 p) c2 e2)).(\lambda +(e1: C).(\lambda (H1: (csubc g e1 e2)).(let H_x \def (drop1_gen_pcons c2 e2 p +n n0 H0) in (let H2 \def H_x in (let TMP_9 \def (\lambda (c3: C).(drop n n0 +c2 c3)) in (let TMP_10 \def (\lambda (c3: C).(drop1 p c3 e2)) in (let TMP_12 +\def (\lambda (c1: C).(let TMP_11 \def (PCons n n0 p) in (drop1 TMP_11 c1 +e1))) in (let TMP_13 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_14 +\def (ex2 C TMP_12 TMP_13) in (let TMP_33 \def (\lambda (x: C).(\lambda (H3: +(drop n n0 c2 x)).(\lambda (H4: (drop1 p x e2)).(let H_x0 \def (H x e2 H4 e1 +H1) in (let H5 \def H_x0 in (let TMP_15 \def (\lambda (c1: C).(drop1 p c1 +e1)) in (let TMP_16 \def (\lambda (c1: C).(csubc g c1 x)) in (let TMP_18 \def +(\lambda (c1: C).(let TMP_17 \def (PCons n n0 p) in (drop1 TMP_17 c1 e1))) in +(let TMP_19 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_20 \def (ex2 C +TMP_18 TMP_19) in (let TMP_32 \def (\lambda (x0: C).(\lambda (H6: (drop1 p x0 +e1)).(\lambda (H7: (csubc g x0 x)).(let H_x1 \def (csubc_drop_conf_rev g c2 x +n0 n H3 x0 H7) in (let H8 \def H_x1 in (let TMP_21 \def (\lambda (c1: +C).(drop n n0 c1 x0)) in (let TMP_22 \def (\lambda (c1: C).(csubc g c1 c2)) +in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (PCons n n0 p) in +(drop1 TMP_23 c1 e1))) in (let TMP_25 \def (\lambda (c1: C).(csubc g c1 c2)) +in (let TMP_26 \def (ex2 C TMP_24 TMP_25) in (let TMP_31 \def (\lambda (x1: +C).(\lambda (H9: (drop n n0 x1 x0)).(\lambda (H10: (csubc g x1 c2)).(let +TMP_28 \def (\lambda (c1: C).(let TMP_27 \def (PCons n n0 p) in (drop1 TMP_27 +c1 e1))) in (let TMP_29 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_30 +\def (drop1_cons x1 x0 n n0 H9 e1 p H6) in (ex_intro2 C TMP_28 TMP_29 x1 +TMP_30 H10))))))) in (ex2_ind C TMP_21 TMP_22 TMP_26 TMP_31 H8)))))))))))) in +(ex2_ind C TMP_15 TMP_16 TMP_20 TMP_32 H5)))))))))))) in (ex2_ind C TMP_9 +TMP_10 TMP_14 TMP_33 H2)))))))))))))))))) in (PList_ind TMP_3 TMP_8 TMP_34 +hds))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/fwd.ma index fe04ddd45..01312eb8b 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/fwd.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/fwd.ma @@ -14,7 +14,23 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/defs.ma". +include "basic_1/csubc/defs.ma". + +let rec csubc_ind (g: G) (P: (C \to (C \to Prop))) (f: (\forall (n: nat).(P +(CSort n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csubc g c1 +c2) \to ((P c1 c2) \to (\forall (k: K).(\forall (v: T).(P (CHead c1 k v) +(CHead c2 k v))))))))) (f1: (\forall (c1: C).(\forall (c2: C).((csubc g c1 +c2) \to ((P c1 c2) \to (\forall (b: B).((not (eq B b Void)) \to (\forall (u1: +T).(\forall (u2: T).(P (CHead c1 (Bind Void) u1) (CHead c2 (Bind b) +u2))))))))))) (f2: (\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to ((P +c1 c2) \to (\forall (v: T).(\forall (a: A).((sc3 g (asucc g a) c1 v) \to +(\forall (w: T).((sc3 g a c2 w) \to (P (CHead c1 (Bind Abst) v) (CHead c2 +(Bind Abbr) w)))))))))))) (c: C) (c0: C) (c1: csubc g c c0) on c1: P c c0 +\def match c1 with [(csubc_sort n) \Rightarrow (f n) | (csubc_head c2 c3 c4 k +v) \Rightarrow (f0 c2 c3 c4 ((csubc_ind g P f f0 f1 f2) c2 c3 c4) k v) | +(csubc_void c2 c3 c4 b n u1 u2) \Rightarrow (f1 c2 c3 c4 ((csubc_ind g P f f0 +f1 f2) c2 c3 c4) b n u1 u2) | (csubc_abst c2 c3 c4 v a s0 w s1) \Rightarrow +(f2 c2 c3 c4 ((csubc_ind g P f f0 f1 f2) c2 c3 c4) v a s0 w s1)]. theorem csubc_gen_sort_l: \forall (g: G).(\forall (x: C).(\forall (n: nat).((csubc g (CSort n) x) \to @@ -25,34 +41,29 @@ theorem csubc_gen_sort_l: (c: C).(eq C x c)) (\lambda (y: C).(\lambda (H0: (csubc g y x)).(csubc_ind g (\lambda (c: C).(\lambda (c0: C).((eq C c (CSort n)) \to (eq C c0 c)))) (\lambda (n0: nat).(\lambda (H1: (eq C (CSort n0) (CSort n))).(let H2 \def -(f_equal C nat (\lambda (e: C).(match e in C return (\lambda (_: C).nat) with -[(CSort n1) \Rightarrow n1 | (CHead _ _ _) \Rightarrow n0])) (CSort n0) -(CSort n) H1) in (eq_ind_r nat n (\lambda (n1: nat).(eq C (CSort n1) (CSort -n1))) (refl_equal C (CSort n)) n0 H2)))) (\lambda (c1: C).(\lambda (c2: -C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C -c2 c1)))).(\lambda (k: K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c1 k v) -(CSort n))).(let H4 \def (eq_ind C (CHead c1 k v) (\lambda (ee: C).(match ee -in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead -_ _ _) \Rightarrow True])) I (CSort n) H3) in (False_ind (eq C (CHead c2 k v) -(CHead c1 k v)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: -(csubc g c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C c2 -c1)))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CSort -n))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u1) (\lambda (ee: C).(match -ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | -(CHead _ _ _) \Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead -c2 (Bind b) u2) (CHead c1 (Bind Void) u1)) H5))))))))))) (\lambda (c1: +(f_equal C nat (\lambda (e: C).(match e with [(CSort n1) \Rightarrow n1 | +(CHead _ _ _) \Rightarrow n0])) (CSort n0) (CSort n) H1) in (eq_ind_r nat n +(\lambda (n1: nat).(eq C (CSort n1) (CSort n1))) (refl_equal C (CSort n)) n0 +H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1 +c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C c2 c1)))).(\lambda (k: +K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c1 k v) (CSort n))).(let H4 +\def (eq_ind C (CHead c1 k v) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in +(False_ind (eq C (CHead c2 k v) (CHead c1 k v)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c1 -(CSort n)) \to (eq C c2 c1)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: -(sc3 g (asucc g a) c1 v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 -w)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) v) (CSort n))).(let H6 \def -(eq_ind C (CHead c1 (Bind Abst) v) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ _ _) +(CSort n)) \to (eq C c2 c1)))).(\lambda (b: B).(\lambda (_: (not (eq B b +Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind +Void) u1) (CSort n))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u1) +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) +\Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead c2 (Bind b) +u2) (CHead c1 (Bind Void) u1)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C +c2 c1)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: (sc3 g (asucc g a) c1 +v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 w)).(\lambda (H5: (eq C (CHead +c1 (Bind Abst) v) (CSort n))).(let H6 \def (eq_ind C (CHead c1 (Bind Abst) v) +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H5) in (False_ind (eq C (CHead c2 (Bind Abbr) w) (CHead c1 (Bind Abst) v)) H6)))))))))))) y x H0))) H)))). -(* COMMENTS -Initial nodes: 533 -END *) theorem csubc_gen_head_l: \forall (g: G).(\forall (c1: C).(\forall (x: C).(\forall (v: T).(\forall (k: @@ -96,65 +107,90 @@ T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_: T).(csubc g c1 c2))))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead c1 k v))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee -in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ -_ _) \Rightarrow False])) I (CHead c1 k v) H1) in (False_ind (or3 (ex2 C -(\lambda (c2: C).(eq C (CSort n) (CHead c2 k v))) (\lambda (c2: C).(csubc g -c1 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k -(Bind Abst))))) (\lambda (c2: C).(\lambda (w: T).(\lambda (_: A).(eq C (CSort -n) (CHead c2 (Bind Abbr) w))))) (\lambda (c2: C).(\lambda (_: T).(\lambda (_: -A).(csubc g c1 c2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g -(asucc g a) c1 v)))) (\lambda (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g -a c2 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: -T).(eq C (CSort n) (CHead c2 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c2: -C).(\lambda (_: T).(csubc g c1 c2)))))) H2)))) (\lambda (c0: C).(\lambda (c2: -C).(\lambda (H1: (csubc g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k v)) -\to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: +with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I +(CHead c1 k v) H1) in (False_ind (or3 (ex2 C (\lambda (c2: C).(eq C (CSort n) +(CHead c2 k v))) (\lambda (c2: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c2: +C).(\lambda (w: T).(\lambda (_: A).(eq C (CSort n) (CHead c2 (Bind Abbr) +w))))) (\lambda (c2: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2)))) +(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) +(\lambda (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B +C T (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: T).(eq C (CSort n) (CHead +c2 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k +(Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b +Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_: T).(csubc g c1 +c2)))))) H2)))) (\lambda (c0: C).(\lambda (c2: C).(\lambda (H1: (csubc g c0 +c2)).(\lambda (H2: (((eq C c0 (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: +C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A +(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) +(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind +Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 +c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 +v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) +(ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 +(CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: +T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: +T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: +T).(csubc g c1 c3))))))))).(\lambda (k0: K).(\lambda (v0: T).(\lambda (H3: +(eq C (CHead c0 k0 v0) (CHead c1 k v))).(let H4 \def (f_equal C C (\lambda +(e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow +c])) (CHead c0 k0 v0) (CHead c1 k v) H3) in ((let H5 \def (f_equal C K +(\lambda (e: C).(match e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) +\Rightarrow k1])) (CHead c0 k0 v0) (CHead c1 k v) H3) in ((let H6 \def +(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow v0 | (CHead +_ _ t) \Rightarrow t])) (CHead c0 k0 v0) (CHead c1 k v) H3) in (\lambda (H7: +(eq K k0 k)).(\lambda (H8: (eq C c0 c1)).(eq_ind_r T v (\lambda (t: T).(or3 +(ex2 C (\lambda (c3: C).(eq C (CHead c2 k0 t) (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: -A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: -T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: C).(\lambda (w: -T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda -(c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: -B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: -B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3))))))))).(\lambda (k0: -K).(\lambda (v0: T).(\lambda (H3: (eq C (CHead c0 k0 v0) (CHead c1 k -v))).(let H4 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) -(CHead c0 k0 v0) (CHead c1 k v) H3) in ((let H5 \def (f_equal C K (\lambda -(e: C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k0 -| (CHead _ k1 _) \Rightarrow k1])) (CHead c0 k0 v0) (CHead c1 k v) H3) in -((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow v0 | (CHead _ _ t) \Rightarrow t])) (CHead -c0 k0 v0) (CHead c1 k v) H3) in (\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq -C c0 c1)).(eq_ind_r T v (\lambda (t: T).(or3 (ex2 C (\lambda (c3: C).(eq C -(CHead c2 k0 t) (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C +A).(eq C (CHead c2 k0 t) (CHead c3 (Bind Abbr) w))))) (\lambda (c3: +C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: +C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda +(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k0 t) (CHead c3 +(Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k +(Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b +Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 +c3))))))) (eq_ind_r K k (\lambda (k1: K).(or3 (ex2 C (\lambda (c3: C).(eq C +(CHead c2 k1 v) (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) -(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C (CHead c2 k0 t) (CHead +(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C (CHead c2 k1 v) (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C -(CHead c2 k0 t) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: +(CHead c2 k1 v) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g c1 c3))))))) (eq_ind_r K k (\lambda (k1: K).(or3 -(ex2 C (\lambda (c3: C).(eq C (CHead c2 k1 v) (CHead c3 k v))) (\lambda (c3: -C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda -(_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: -A).(eq C (CHead c2 k1 v) (CHead c3 (Bind Abbr) w))))) (\lambda (c3: -C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda -(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k1 v) (CHead c3 -(Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k -(Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b +C).(\lambda (_: T).(csubc g c1 c3))))))) (let H9 \def (eq_ind C c0 (\lambda +(c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 +(CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: +C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda +(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) +v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind +Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 -c3))))))) (let H9 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k v)) -\to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: +c3)))))))) H2 c1 H8) in (let H10 \def (eq_ind C c0 (\lambda (c: C).(csubc g c +c2)) H1 c1 H8) in (or3_intro0 (ex2 C (\lambda (c3: C).(eq C (CHead c2 k v) +(CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: +C).(\lambda (w: T).(\lambda (_: A).(eq C (CHead c2 k v) (CHead c3 (Bind Abbr) +w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) +(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) +(\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B +C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k v) +(CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: +T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: +T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: +T).(csubc g c1 c3))))) (ex_intro2 C (\lambda (c3: C).(eq C (CHead c2 k v) +(CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3)) c2 (refl_equal C (CHead c2 +k v)) H10)))) k0 H7) v0 H6)))) H5)) H4))))))))) (\lambda (c0: C).(\lambda +(c2: C).(\lambda (H1: (csubc g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k +v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: @@ -164,45 +200,17 @@ T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3)))))))) H2 c1 H8) in (let -H10 \def (eq_ind C c0 (\lambda (c: C).(csubc g c c2)) H1 c1 H8) in -(or3_intro0 (ex2 C (\lambda (c3: C).(eq C (CHead c2 k v) (CHead c3 k v))) -(\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: -T).(\lambda (_: A).(eq C (CHead c2 k v) (CHead c3 (Bind Abbr) w))))) (\lambda -(c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda -(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k v) (CHead c3 (Bind -b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind -Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 -c3))))) (ex_intro2 C (\lambda (c3: C).(eq C (CHead c2 k v) (CHead c3 k v))) -(\lambda (c3: C).(csubc g c1 c3)) c2 (refl_equal C (CHead c2 k v)) H10)))) k0 -H7) v0 H6)))) H5)) H4))))))))) (\lambda (c0: C).(\lambda (c2: C).(\lambda -(H1: (csubc g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k v)) \to (or3 (ex2 -C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 -c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k -(Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 -(CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: -A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g -(asucc g a) c1 v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g -a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g c1 c3))))))))).(\lambda (b: B).(\lambda (H3: (not -(eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead -c0 (Bind Void) u1) (CHead c1 k v))).(let H5 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c0 | +B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3))))))))).(\lambda (b: +B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: +T).(\lambda (H4: (eq C (CHead c0 (Bind Void) u1) (CHead c1 k v))).(let H5 +\def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind Void) u1) (CHead c1 k v) H4) -in ((let H6 \def (f_equal C K (\lambda (e: C).(match e in C return (\lambda -(_: C).K) with [(CSort _) \Rightarrow (Bind Void) | (CHead _ k0 _) -\Rightarrow k0])) (CHead c0 (Bind Void) u1) (CHead c1 k v) H4) in ((let H7 -\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) -with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t])) (CHead c0 -(Bind Void) u1) (CHead c1 k v) H4) in (\lambda (H8: (eq K (Bind Void) -k)).(\lambda (H9: (eq C c0 c1)).(let H10 \def (eq_ind C c0 (\lambda (c: +in ((let H6 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) +\Rightarrow (Bind Void) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind +Void) u1) (CHead c1 k v) H4) in ((let H7 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t])) +(CHead c0 (Bind Void) u1) (CHead c1 k v) H4) in (\lambda (H8: (eq K (Bind +Void) k)).(\lambda (H9: (eq C c0 c1)).(let H10 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: @@ -272,52 +280,51 @@ T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3))))))))).(\lambda (v0: T).(\lambda (a: A).(\lambda (H3: (sc3 g (asucc g a) c0 v0)).(\lambda (w: T).(\lambda (H4: (sc3 g a c2 w)).(\lambda (H5: (eq C (CHead c0 (Bind Abst) v0) (CHead c1 k v))).(let H6 -\def (f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) -with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 -(Bind Abst) v0) (CHead c1 k v) H5) in ((let H7 \def (f_equal C K (\lambda (e: -C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow (Bind -Abst) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind Abst) v0) (CHead c1 -k v) H5) in ((let H8 \def (f_equal C T (\lambda (e: C).(match e in C return -(\lambda (_: C).T) with [(CSort _) \Rightarrow v0 | (CHead _ _ t) \Rightarrow -t])) (CHead c0 (Bind Abst) v0) (CHead c1 k v) H5) in (\lambda (H9: (eq K -(Bind Abst) k)).(\lambda (H10: (eq C c0 c1)).(let H11 \def (eq_ind T v0 -(\lambda (t: T).(sc3 g (asucc g a) c0 t)) H3 v H8) in (let H12 \def (eq_ind C -c0 (\lambda (c: C).(sc3 g (asucc g a) c v)) H11 c1 H10) in (let H13 \def -(eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C -(\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) -(ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind -Abst))))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (_: A).(eq C c2 (CHead -c3 (Bind Abbr) w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: -A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g -(asucc g a0) c1 v)))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 -g a0 c3 w0))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g c1 c3)))))))) H2 c1 H10) in (let H14 \def (eq_ind -C c0 (\lambda (c: C).(csubc g c c2)) H1 c1 H10) in (let H15 \def (eq_ind_r K -k (\lambda (k0: K).((eq C c1 (CHead c1 k0 v)) \to (or3 (ex2 C (\lambda (c3: -C).(eq C c2 (CHead c3 k0 v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A -(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abst))))) +\def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | +(CHead c _ _) \Rightarrow c])) (CHead c0 (Bind Abst) v0) (CHead c1 k v) H5) +in ((let H7 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) +\Rightarrow (Bind Abst) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind +Abst) v0) (CHead c1 k v) H5) in ((let H8 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow v0 | (CHead _ _ t) \Rightarrow t])) +(CHead c0 (Bind Abst) v0) (CHead c1 k v) H5) in (\lambda (H9: (eq K (Bind +Abst) k)).(\lambda (H10: (eq C c0 c1)).(let H11 \def (eq_ind T v0 (\lambda +(t: T).(sc3 g (asucc g a) c0 t)) H3 v H8) in (let H12 \def (eq_ind C c0 +(\lambda (c: C).(sc3 g (asucc g a) c v)) H11 c1 H10) in (let H13 \def (eq_ind +C c0 (\lambda (c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: +C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A +(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v)))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: -T).(eq K k0 (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: +T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: -T).(csubc g c1 c3)))))))) H13 (Bind Abst) H9) in (eq_ind K (Bind Abst) -(\lambda (k0: K).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c2 (Bind Abbr) w) +T).(csubc g c1 c3)))))))) H2 c1 H10) in (let H14 \def (eq_ind C c0 (\lambda +(c: C).(csubc g c c2)) H1 c1 H10) in (let H15 \def (eq_ind_r K k (\lambda +(k0: K).((eq C c1 (CHead c1 k0 v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k0 v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3: -C).(\lambda (w0: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 -(Bind Abbr) w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g -c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g -a0) c1 v)))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 -w0))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C -(CHead c2 (Bind Abbr) w) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda -(_: C).(\lambda (_: T).(eq K k0 (Bind Void))))) (\lambda (b: B).(\lambda (_: +C).(\lambda (w0: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w0))))) +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v)))) (\lambda +(c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0))))) (ex4_3 B C T +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) +v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k0 (Bind +Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b +Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 +c3)))))))) H13 (Bind Abst) H9) in (eq_ind K (Bind Abst) (\lambda (k0: K).(or3 +(ex2 C (\lambda (c3: C).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 k0 v))) +(\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3: C).(\lambda (w0: +T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 (Bind Abbr) +w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) +(\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v)))) +(\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0))))) +(ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead +c2 (Bind Abbr) w) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: +C).(\lambda (_: T).(eq K k0 (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3))))))) (or3_intro1 (ex2 C (\lambda (c3: C).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 (Bind Abst) v))) (\lambda (c3: @@ -340,9 +347,6 @@ A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g g a0 c3 w0)))) c2 w a (refl_equal K (Bind Abst)) (refl_equal C (CHead c2 (Bind Abbr) w)) H14 H12 H4)) k H9))))))))) H7)) H6)))))))))))) y x H0))) H)))))). -(* COMMENTS -Initial nodes: 5205 -END *) theorem csubc_gen_sort_r: \forall (g: G).(\forall (x: C).(\forall (n: nat).((csubc g x (CSort n)) \to @@ -353,34 +357,29 @@ theorem csubc_gen_sort_r: (c: C).(eq C x c)) (\lambda (y: C).(\lambda (H0: (csubc g x y)).(csubc_ind g (\lambda (c: C).(\lambda (c0: C).((eq C c0 (CSort n)) \to (eq C c c0)))) (\lambda (n0: nat).(\lambda (H1: (eq C (CSort n0) (CSort n))).(let H2 \def -(f_equal C nat (\lambda (e: C).(match e in C return (\lambda (_: C).nat) with -[(CSort n1) \Rightarrow n1 | (CHead _ _ _) \Rightarrow n0])) (CSort n0) -(CSort n) H1) in (eq_ind_r nat n (\lambda (n1: nat).(eq C (CSort n1) (CSort -n1))) (refl_equal C (CSort n)) n0 H2)))) (\lambda (c1: C).(\lambda (c2: -C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C -c1 c2)))).(\lambda (k: K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c2 k v) -(CSort n))).(let H4 \def (eq_ind C (CHead c2 k v) (\lambda (ee: C).(match ee -in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead -_ _ _) \Rightarrow True])) I (CSort n) H3) in (False_ind (eq C (CHead c1 k v) -(CHead c2 k v)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: -(csubc g c1 c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C c1 -c2)))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CSort -n))).(let H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda (ee: C).(match ee -in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead -_ _ _) \Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead c1 -(Bind Void) u1) (CHead c2 (Bind b) u2)) H5))))))))))) (\lambda (c1: +(f_equal C nat (\lambda (e: C).(match e with [(CSort n1) \Rightarrow n1 | +(CHead _ _ _) \Rightarrow n0])) (CSort n0) (CSort n) H1) in (eq_ind_r nat n +(\lambda (n1: nat).(eq C (CSort n1) (CSort n1))) (refl_equal C (CSort n)) n0 +H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1 +c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C c1 c2)))).(\lambda (k: +K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c2 k v) (CSort n))).(let H4 +\def (eq_ind C (CHead c2 k v) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in +(False_ind (eq C (CHead c1 k v) (CHead c2 k v)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c2 -(CSort n)) \to (eq C c1 c2)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: -(sc3 g (asucc g a) c1 v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 -w)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) w) (CSort n))).(let H6 \def -(eq_ind C (CHead c2 (Bind Abbr) w) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ _ _) +(CSort n)) \to (eq C c1 c2)))).(\lambda (b: B).(\lambda (_: (not (eq B b +Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind +b) u2) (CSort n))).(let H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) +\Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead c1 (Bind Void) +u1) (CHead c2 (Bind b) u2)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C +c1 c2)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: (sc3 g (asucc g a) c1 +v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 w)).(\lambda (H5: (eq C (CHead +c2 (Bind Abbr) w) (CSort n))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) w) +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H5) in (False_ind (eq C (CHead c1 (Bind Abst) v) (CHead c2 (Bind Abbr) w)) H6)))))))))))) x y H0))) H)))). -(* COMMENTS -Initial nodes: 533 -END *) theorem csubc_gen_head_r: \forall (g: G).(\forall (c2: C).(\forall (x: C).(\forall (w: T).(\forall (k: @@ -422,41 +421,39 @@ c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 c2))))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead c2 k -w))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead c2 k w) H1) in (False_ind (or3 (ex2 C (\lambda -(c1: C).(eq C (CSort n) (CHead c1 k w))) (\lambda (c1: C).(csubc g c1 c2))) -(ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind -Abbr))))) (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C (CSort n) -(CHead c1 (Bind Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: -A).(csubc g c1 c2)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g -(asucc g a) c1 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a -c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq -C (CSort n) (CHead c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: -C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: -C).(\lambda (_: T).(csubc g c1 c2)))))) H2)))) (\lambda (c1: C).(\lambda (c0: -C).(\lambda (H1: (csubc g c1 c0)).(\lambda (H2: (((eq C c0 (CHead c2 k w)) -\to (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3: -C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda -(_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_: -A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v: -T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_: -T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda -(c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b: -B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: -B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: -B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))))).(\lambda (k0: -K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c0 k0 v) (CHead c2 k w))).(let -H4 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) -with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 k0 -v) (CHead c2 k w) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e -in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k0 | (CHead _ k1 -_) \Rightarrow k1])) (CHead c0 k0 v) (CHead c2 k w) H3) in ((let H6 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow v | (CHead _ _ t) \Rightarrow t])) (CHead c0 k0 v) -(CHead c2 k w) H3) in (\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq C c0 +w))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort +_) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead c2 k w) H1) +in (False_ind (or3 (ex2 C (\lambda (c1: C).(eq C (CSort n) (CHead c1 k w))) +(\lambda (c1: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c1: C).(\lambda (v: +T).(\lambda (_: A).(eq C (CSort n) (CHead c1 (Bind Abst) v))))) (\lambda (c1: +C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2)))) (\lambda (c1: +C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda +(_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C (CSort n) (CHead c1 (Bind +Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind +b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) +(\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 c2)))))) H2)))) +(\lambda (c1: C).(\lambda (c0: C).(\lambda (H1: (csubc g c1 c0)).(\lambda +(H2: (((eq C c0 (CHead c2 k w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1 +(CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: +C).(\lambda (v: T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind Abst) v))))) +(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda +(c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T +(\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind +Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind +b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) +(\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 +c2))))))))).(\lambda (k0: K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c0 k0 +v) (CHead c2 k w))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 k0 v) +(CHead c2 k w) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e +with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead c0 +k0 v) (CHead c2 k w) H3) in ((let H6 \def (f_equal C T (\lambda (e: C).(match +e with [(CSort _) \Rightarrow v | (CHead _ _ t) \Rightarrow t])) (CHead c0 k0 +v) (CHead c2 k w) H3) in (\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq C c0 c2)).(eq_ind_r T w (\lambda (t: T).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c1 k0 t) (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) @@ -521,50 +518,48 @@ B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c0 (Bind b) u2) (CHead c2 k w))).(let H5 \def -(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with -[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind b) -u2) (CHead c2 k w) H4) in ((let H6 \def (f_equal C K (\lambda (e: C).(match e -in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow (Bind b) | (CHead -_ k0 _) \Rightarrow k0])) (CHead c0 (Bind b) u2) (CHead c2 k w) H4) in ((let -H7 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) -with [(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c0 -(Bind b) u2) (CHead c2 k w) H4) in (\lambda (H8: (eq K (Bind b) k)).(\lambda -(H9: (eq C c0 c2)).(let H10 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead -c2 k w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda -(c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: -T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: -C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: -C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda -(_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) -v1))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind -b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 -c2)))))))) H2 c2 H9) in (let H11 \def (eq_ind C c0 (\lambda (c: C).(csubc g -c1 c)) H1 c2 H9) in (let H12 \def (eq_ind_r K k (\lambda (k0: K).((eq C c2 -(CHead c2 k0 w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k0 w))) -(\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K k0 (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: -T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: -C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: -C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda -(_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) -v1))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(eq K k0 (Bind -b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 -c2)))))))) H10 (Bind b) H8) in (eq_ind K (Bind b) (\lambda (k0: K).(or3 (ex2 -C (\lambda (c3: C).(eq C (CHead c1 (Bind Void) u1) (CHead c3 k0 w))) (\lambda -(c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K k0 (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: -T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u1) (CHead c3 (Bind Abst) -v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) -(\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C -T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 (Bind -Void) u1) (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda (_: -C).(\lambda (_: T).(eq K k0 (Bind b0))))) (\lambda (b0: B).(\lambda (_: +(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead +c _ _) \Rightarrow c])) (CHead c0 (Bind b) u2) (CHead c2 k w) H4) in ((let H6 +\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind +b) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind b) u2) (CHead c2 k w) +H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind b) u2) (CHead +c2 k w) H4) in (\lambda (H8: (eq K (Bind b) k)).(\lambda (H9: (eq C c0 +c2)).(let H10 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c2 k w)) \to +(or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3: +C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda +(_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_: +A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: +T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v: +T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_: +T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda +(c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b0: +B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b0))))) (\lambda (b0: +B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2)))))))) H2 c2 H9) in (let +H11 \def (eq_ind C c0 (\lambda (c: C).(csubc g c1 c)) H1 c2 H9) in (let H12 +\def (eq_ind_r K k (\lambda (k0: K).((eq C c2 (CHead c2 k0 w)) \to (or3 (ex2 +C (\lambda (c3: C).(eq C c1 (CHead c3 k0 w))) (\lambda (c3: C).(csubc g c3 +c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0 +(Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_: A).(eq C c1 +(CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: +A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g +(asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a +c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq +C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda (_: C).(\lambda +(_: T).(eq K k0 (Bind b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: +T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: +T).(csubc g c3 c2)))))))) H10 (Bind b) H8) in (eq_ind K (Bind b) (\lambda +(k0: K).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c1 (Bind Void) u1) (CHead +c3 k0 w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: +C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abbr))))) (\lambda (c3: +C).(\lambda (v: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u1) (CHead c3 +(Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g +c3 c2)))) (\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) +c3 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) +(ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead +c1 (Bind Void) u1) (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda +(_: C).(\lambda (_: T).(eq K k0 (Bind b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))) (or3_intro2 (ex2 C (\lambda (c3: C).(eq C (CHead c1 (Bind Void) u1) (CHead c3 (Bind b) w))) (\lambda (c3: @@ -599,22 +594,21 @@ B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))))).(\lambda (v: T).(\lambda (a: A).(\lambda (H3: (sc3 g (asucc g a) c1 v)).(\lambda (w0: T).(\lambda (H4: (sc3 g a c0 w0)).(\lambda (H5: (eq C (CHead c0 (Bind Abbr) -w0) (CHead c2 k w))).(let H6 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow c0 | (CHead c _ _) -\Rightarrow c])) (CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5) in ((let H7 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) -with [(CSort _) \Rightarrow (Bind Abbr) | (CHead _ k0 _) \Rightarrow k0])) -(CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5) in ((let H8 \def (f_equal C T -(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) -\Rightarrow w0 | (CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind Abbr) w0) -(CHead c2 k w) H5) in (\lambda (H9: (eq K (Bind Abbr) k)).(\lambda (H10: (eq -C c0 c2)).(let H11 \def (eq_ind T w0 (\lambda (t: T).(sc3 g a c0 t)) H4 w H8) -in (let H12 \def (eq_ind C c0 (\lambda (c: C).(sc3 g a c w)) H11 c2 H10) in -(let H13 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c2 k w)) \to (or3 -(ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3: C).(csubc g -c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k -(Bind Abbr))))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C c1 -(CHead c3 (Bind Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: +w0) (CHead c2 k w))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind +Abbr) w0) (CHead c2 k w) H5) in ((let H7 \def (f_equal C K (\lambda (e: +C).(match e with [(CSort _) \Rightarrow (Bind Abbr) | (CHead _ k0 _) +\Rightarrow k0])) (CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5) in ((let H8 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow w0 | +(CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5) +in (\lambda (H9: (eq K (Bind Abbr) k)).(\lambda (H10: (eq C c0 c2)).(let H11 +\def (eq_ind T w0 (\lambda (t: T).(sc3 g a c0 t)) H4 w H8) in (let H12 \def +(eq_ind C c0 (\lambda (c: C).(sc3 g a c w)) H11 c2 H10) in (let H13 \def +(eq_ind C c0 (\lambda (c: C).((eq C c (CHead c2 k w)) \to (or3 (ex2 C +(\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) +(ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind +Abbr))))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C c1 (CHead +c3 (Bind Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3 g (asucc g a0) c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g a0 c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda @@ -667,7 +661,4 @@ g (asucc g a0) c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g a0 c2 w)))) c1 v a (refl_equal K (Bind Abbr)) (refl_equal C (CHead c1 (Bind Abst) v)) H14 H3 H12)) k H9))))))))) H7)) H6)))))))))))) x y H0))) H)))))). -(* COMMENTS -Initial nodes: 5197 -END *) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/getl.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/getl.ma index 244c84927..2571766a6 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/getl.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/getl.ma @@ -14,9 +14,9 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/drop.ma". +include "basic_1/csubc/drop.ma". -include "Basic-1/csubc/clear.ma". +include "basic_1/csubc/clear.ma". theorem csubc_getl_conf: \forall (g: G).(\forall (c1: C).(\forall (e1: C).(\forall (i: nat).((getl i @@ -25,21 +25,25 @@ C).(getl i c2 e2)) (\lambda (e2: C).(csubc g e1 e2))))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (e1: C).(\lambda (i: nat).(\lambda (H: (getl i c1 e1)).(\lambda (c2: C).(\lambda (H0: (csubc g c1 c2)).(let H1 -\def (getl_gen_all c1 e1 i H) in (ex2_ind C (\lambda (e: C).(drop i O c1 e)) -(\lambda (e: C).(clear e e1)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) -(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x: C).(\lambda (H2: (drop i O c1 -x)).(\lambda (H3: (clear x e1)).(let H_x \def (csubc_drop_conf_O g c1 x i H2 -c2 H0) in (let H4 \def H_x in (ex2_ind C (\lambda (e2: C).(drop i O c2 e2)) -(\lambda (e2: C).(csubc g x e2)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) -(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x0: C).(\lambda (H5: (drop i O -c2 x0)).(\lambda (H6: (csubc g x x0)).(let H_x0 \def (csubc_clear_conf g x e1 -H3 x0 H6) in (let H7 \def H_x0 in (ex2_ind C (\lambda (e2: C).(clear x0 e2)) -(\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) -(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x1: C).(\lambda (H8: (clear x0 -x1)).(\lambda (H9: (csubc g e1 x1)).(ex_intro2 C (\lambda (e2: C).(getl i c2 -e2)) (\lambda (e2: C).(csubc g e1 e2)) x1 (getl_intro i c2 x1 x0 H5 H8) -H9)))) H7)))))) H4)))))) H1)))))))). -(* COMMENTS -Initial nodes: 315 -END *) +\def (getl_gen_all c1 e1 i H) in (let TMP_1 \def (\lambda (e: C).(drop i O c1 +e)) in (let TMP_2 \def (\lambda (e: C).(clear e e1)) in (let TMP_3 \def +(\lambda (e2: C).(getl i c2 e2)) in (let TMP_4 \def (\lambda (e2: C).(csubc g +e1 e2)) in (let TMP_5 \def (ex2 C TMP_3 TMP_4) in (let TMP_21 \def (\lambda +(x: C).(\lambda (H2: (drop i O c1 x)).(\lambda (H3: (clear x e1)).(let H_x +\def (csubc_drop_conf_O g c1 x i H2 c2 H0) in (let H4 \def H_x in (let TMP_6 +\def (\lambda (e2: C).(drop i O c2 e2)) in (let TMP_7 \def (\lambda (e2: +C).(csubc g x e2)) in (let TMP_8 \def (\lambda (e2: C).(getl i c2 e2)) in +(let TMP_9 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_10 \def (ex2 C +TMP_8 TMP_9) in (let TMP_20 \def (\lambda (x0: C).(\lambda (H5: (drop i O c2 +x0)).(\lambda (H6: (csubc g x x0)).(let H_x0 \def (csubc_clear_conf g x e1 H3 +x0 H6) in (let H7 \def H_x0 in (let TMP_11 \def (\lambda (e2: C).(clear x0 +e2)) in (let TMP_12 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_13 +\def (\lambda (e2: C).(getl i c2 e2)) in (let TMP_14 \def (\lambda (e2: +C).(csubc g e1 e2)) in (let TMP_15 \def (ex2 C TMP_13 TMP_14) in (let TMP_19 +\def (\lambda (x1: C).(\lambda (H8: (clear x0 x1)).(\lambda (H9: (csubc g e1 +x1)).(let TMP_16 \def (\lambda (e2: C).(getl i c2 e2)) in (let TMP_17 \def +(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_18 \def (getl_intro i c2 x1 x0 +H5 H8) in (ex_intro2 C TMP_16 TMP_17 x1 TMP_18 H9))))))) in (ex2_ind C TMP_11 +TMP_12 TMP_15 TMP_19 H7)))))))))))) in (ex2_ind C TMP_6 TMP_7 TMP_10 TMP_20 +H4)))))))))))) in (ex2_ind C TMP_1 TMP_2 TMP_5 TMP_21 H1)))))))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubc/props.ma b/matita/matita/contribs/lambdadelta/basic_1/csubc/props.ma index d6399181c..0637a2eee 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubc/props.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubc/props.ma @@ -14,17 +14,15 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/defs.ma". +include "basic_1/csubc/defs.ma". -include "Basic-1/sc3/props.ma". +include "basic_1/sc3/props.ma". theorem csubc_refl: \forall (g: G).(\forall (c: C).(csubc g c c)) \def - \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csubc g c0 c0)) -(\lambda (n: nat).(csubc_sort g n)) (\lambda (c0: C).(\lambda (H: (csubc g c0 -c0)).(\lambda (k: K).(\lambda (t: T).(csubc_head g c0 c0 H k t))))) c)). -(* COMMENTS -Initial nodes: 53 -END *) + \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csubc g c0 +c0)) in (let TMP_2 \def (\lambda (n: nat).(csubc_sort g n)) in (let TMP_3 +\def (\lambda (c0: C).(\lambda (H: (csubc g c0 c0)).(\lambda (k: K).(\lambda +(t: T).(csubc_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/sc3/arity.ma b/matita/matita/contribs/lambdadelta/basic_1/sc3/arity.ma index 651321580..bf6d36485 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/sc3/arity.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/sc3/arity.ma @@ -14,13 +14,13 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csubc/arity.ma". +include "basic_1/csubc/arity.ma". -include "Basic-1/csubc/getl.ma". +include "basic_1/csubc/getl.ma". -include "Basic-1/csubc/drop1.ma". +include "basic_1/csubc/drop1.ma". -include "Basic-1/csubc/props.ma". +include "basic_1/csubc/props.ma". theorem sc3_arity_csubc: \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 @@ -28,188 +28,332 @@ t a) \to (\forall (d1: C).(\forall (is: PList).((drop1 is d1 c1) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a c2 (lift1 is t))))))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: -A).(\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: -C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is t0)))))))))) (\lambda (c: -C).(\lambda (n: nat).(\lambda (d1: C).(\lambda (is: PList).(\lambda (_: -(drop1 is d1 c)).(\lambda (c2: C).(\lambda (_: (csubc g d1 c2)).(eq_ind_r T -(TSort n) (\lambda (t0: T).(land (arity g c2 t0 (ASort O n)) (sn3 c2 t0))) -(conj (arity g c2 (TSort n) (ASort O n)) (sn3 c2 (TSort n)) (arity_sort g c2 -n) (sn3_nf2 c2 (TSort n) (nf2_sort c2 n))) (lift1 is (TSort n)) (lift1_sort n -is))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: -nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: -A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall (d1: C).(\forall -(is: PList).((drop1 is d1 d) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g -a0 c2 (lift1 is u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda -(H3: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let -H_x \def (drop1_getl_trans is c d1 H3 Abbr d u i H0) in (let H5 \def H_x in -(ex2_ind C (\lambda (e2: C).(drop1 (ptrans is i) e2 d)) (\lambda (e2: -C).(getl (trans is i) d1 (CHead e2 (Bind Abbr) (lift1 (ptrans is i) u)))) -(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x: C).(\lambda (_: (drop1 -(ptrans is i) x d)).(\lambda (H7: (getl (trans is i) d1 (CHead x (Bind Abbr) -(lift1 (ptrans is i) u)))).(let H_x0 \def (csubc_getl_conf g d1 (CHead x -(Bind Abbr) (lift1 (ptrans is i) u)) (trans is i) H7 c2 H4) in (let H8 \def -H_x0 in (ex2_ind C (\lambda (e2: C).(getl (trans is i) c2 e2)) (\lambda (e2: -C).(csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) e2)) (sc3 g a0 c2 -(lift1 is (TLRef i))) (\lambda (x0: C).(\lambda (H9: (getl (trans is i) c2 -x0)).(\lambda (H10: (csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) -x0)).(let H_x1 \def (csubc_gen_head_l g x x0 (lift1 (ptrans is i) u) (Bind -Abbr) H10) in (let H11 \def H_x1 in (or3_ind (ex2 C (\lambda (c3: C).(eq C x0 -(CHead c3 (Bind Abbr) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x -c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K -(Bind Abbr) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: -A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w))))) (ex4_3 B C T (\lambda -(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) -(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind -Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3))))) -(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (H12: (ex2 C (\lambda (c3: C).(eq -C x0 (CHead c3 (Bind Abbr) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc -g x c3)))).(ex2_ind C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abbr) (lift1 -(ptrans is i) u)))) (\lambda (c3: C).(csubc g x c3)) (sc3 g a0 c2 (lift1 is -(TLRef i))) (\lambda (x1: C).(\lambda (H13: (eq C x0 (CHead x1 (Bind Abbr) -(lift1 (ptrans is i) u)))).(\lambda (_: (csubc g x x1)).(let H15 \def (eq_ind -C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) H9 (CHead x1 (Bind Abbr) -(lift1 (ptrans is i) u)) H13) in (let H_y \def (sc3_abbr g a0 TNil) in -(eq_ind_r T (TLRef (trans is i)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H_y -(trans is i) x1 (lift1 (ptrans is i) u) c2 (eq_ind T (lift1 is (lift (S i) O -u)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (eq_ind T (lift1 (PConsTail is (S i) -O) u) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H2 d1 (PConsTail is (S i) O) -(drop1_cons_tail c d (S i) O (getl_drop Abbr c d u i H0) is d1 H3) c2 H4) -(lift1 is (lift (S i) O u)) (lift1_cons_tail u (S i) O is)) (lift (S (trans -is i)) O (lift1 (ptrans is i) u)) (lift1_free is i u)) H15) (lift1 is (TLRef -i)) (lift1_lref is i))))))) H12)) (\lambda (H12: (ex5_3 C T A (\lambda (_: -C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abbr) (Bind Abst))))) (\lambda -(c3: C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans -is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 -w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq -K (Bind Abbr) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: -A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) (sc3 g a0 c2 (lift1 is -(TLRef i))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H13: -(eq K (Bind Abbr) (Bind Abst))).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abbr) -x2))).(\lambda (_: (csubc g x x1)).(\lambda (_: (sc3 g (asucc g x3) x (lift1 -(ptrans is i) u))).(\lambda (_: (sc3 g x3 x1 x2)).(let H18 \def (eq_ind C x0 -(\lambda (c0: C).(getl (trans is i) c2 c0)) H9 (CHead x1 (Bind Abbr) x2) H14) -in (let H19 \def (eq_ind K (Bind Abbr) (\lambda (ee: K).(match ee in K return -(\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B return -(\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow False | -Void \Rightarrow False]) | (Flat _) \Rightarrow False])) I (Bind Abst) H13) -in (False_ind (sc3 g a0 c2 (lift1 is (TLRef i))) H19))))))))))) H12)) -(\lambda (H12: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K (Bind Abbr) (Bind Void))))) (\lambda (b: B).(\lambda -(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g x c3)))))).(ex4_3_ind B C T (\lambda (b: -B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) -(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind -Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) -(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: B).(\lambda (x2: C).(\lambda -(x3: T).(\lambda (H13: (eq C x0 (CHead x2 (Bind x1) x3))).(\lambda (H14: (eq -K (Bind Abbr) (Bind Void))).(\lambda (_: (not (eq B x1 Void))).(\lambda (_: -(csubc g x x2)).(let H17 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is -i) c2 c0)) H9 (CHead x2 (Bind x1) x3) H13) in (let H18 \def (eq_ind K (Bind -Abbr) (\lambda (ee: K).(match ee in K return (\lambda (_: K).Prop) with -[(Bind b) \Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr -\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat -_) \Rightarrow False])) I (Bind Void) H14) in (False_ind (sc3 g a0 c2 (lift1 -is (TLRef i))) H18)))))))))) H12)) H11)))))) H8)))))) H5)))))))))))))))) -(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda -(H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H1: -(arity g d u (asucc g a0))).(\lambda (_: ((\forall (d1: C).(\forall (is: -PList).((drop1 is d1 d) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g -(asucc g a0) c2 (lift1 is u))))))))).(\lambda (d1: C).(\lambda (is: -PList).(\lambda (H3: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H4: (csubc g -d1 c2)).(let H5 \def H0 in (let H_x \def (drop1_getl_trans is c d1 H3 Abst d -u i H5) in (let H6 \def H_x in (ex2_ind C (\lambda (e2: C).(drop1 (ptrans is -i) e2 d)) (\lambda (e2: C).(getl (trans is i) d1 (CHead e2 (Bind Abst) (lift1 -(ptrans is i) u)))) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x: -C).(\lambda (H7: (drop1 (ptrans is i) x d)).(\lambda (H8: (getl (trans is i) -d1 (CHead x (Bind Abst) (lift1 (ptrans is i) u)))).(let H_x0 \def -(csubc_getl_conf g d1 (CHead x (Bind Abst) (lift1 (ptrans is i) u)) (trans is -i) H8 c2 H4) in (let H9 \def H_x0 in (ex2_ind C (\lambda (e2: C).(getl (trans -is i) c2 e2)) (\lambda (e2: C).(csubc g (CHead x (Bind Abst) (lift1 (ptrans -is i) u)) e2)) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x0: C).(\lambda -(H10: (getl (trans is i) c2 x0)).(\lambda (H11: (csubc g (CHead x (Bind Abst) -(lift1 (ptrans is i) u)) x0)).(let H_x1 \def (csubc_gen_head_l g x x0 (lift1 -(ptrans is i) u) (Bind Abst) H11) in (let H12 \def H_x1 in (or3_ind (ex2 C +(arity g c1 t a)).(let TMP_2 \def (\lambda (c: C).(\lambda (t0: T).(\lambda +(a0: A).(\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall +(c2: C).((csubc g d1 c2) \to (let TMP_1 \def (lift1 is t0) in (sc3 g a0 c2 +TMP_1)))))))))) in (let TMP_21 \def (\lambda (c: C).(\lambda (n: +nat).(\lambda (d1: C).(\lambda (is: PList).(\lambda (_: (drop1 is d1 +c)).(\lambda (c2: C).(\lambda (_: (csubc g d1 c2)).(let TMP_3 \def (TSort n) +in (let TMP_7 \def (\lambda (t0: T).(let TMP_4 \def (ASort O n) in (let TMP_5 +\def (arity g c2 t0 TMP_4) in (let TMP_6 \def (sn3 c2 t0) in (land TMP_5 +TMP_6))))) in (let TMP_8 \def (TSort n) in (let TMP_9 \def (ASort O n) in +(let TMP_10 \def (arity g c2 TMP_8 TMP_9) in (let TMP_11 \def (TSort n) in +(let TMP_12 \def (sn3 c2 TMP_11) in (let TMP_13 \def (arity_sort g c2 n) in +(let TMP_14 \def (TSort n) in (let TMP_15 \def (nf2_sort c2 n) in (let TMP_16 +\def (sn3_nf2 c2 TMP_14 TMP_15) in (let TMP_17 \def (conj TMP_10 TMP_12 +TMP_13 TMP_16) in (let TMP_18 \def (TSort n) in (let TMP_19 \def (lift1 is +TMP_18) in (let TMP_20 \def (lift1_sort n is) in (eq_ind_r T TMP_3 TMP_7 +TMP_17 TMP_19 TMP_20))))))))))))))))))))))) in (let TMP_191 \def (\lambda (c: +C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c +(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u +a0)).(\lambda (H2: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 d) +\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is +u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 +c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let H_x \def +(drop1_getl_trans is c d1 H3 Abbr d u i H0) in (let H5 \def H_x in (let +TMP_23 \def (\lambda (e2: C).(let TMP_22 \def (ptrans is i) in (drop1 TMP_22 +e2 d))) in (let TMP_29 \def (\lambda (e2: C).(let TMP_24 \def (trans is i) in +(let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (ptrans is i) in (let TMP_27 +\def (lift1 TMP_26 u) in (let TMP_28 \def (CHead e2 TMP_25 TMP_27) in (getl +TMP_24 d1 TMP_28))))))) in (let TMP_30 \def (TLRef i) in (let TMP_31 \def +(lift1 is TMP_30) in (let TMP_32 \def (sc3 g a0 c2 TMP_31) in (let TMP_190 +\def (\lambda (x: C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H7: +(getl (trans is i) d1 (CHead x (Bind Abbr) (lift1 (ptrans is i) u)))).(let +TMP_33 \def (Bind Abbr) in (let TMP_34 \def (ptrans is i) in (let TMP_35 \def +(lift1 TMP_34 u) in (let TMP_36 \def (CHead x TMP_33 TMP_35) in (let TMP_37 +\def (trans is i) in (let H_x0 \def (csubc_getl_conf g d1 TMP_36 TMP_37 H7 c2 +H4) in (let H8 \def H_x0 in (let TMP_39 \def (\lambda (e2: C).(let TMP_38 +\def (trans is i) in (getl TMP_38 c2 e2))) in (let TMP_44 \def (\lambda (e2: +C).(let TMP_40 \def (Bind Abbr) in (let TMP_41 \def (ptrans is i) in (let +TMP_42 \def (lift1 TMP_41 u) in (let TMP_43 \def (CHead x TMP_40 TMP_42) in +(csubc g TMP_43 e2)))))) in (let TMP_45 \def (TLRef i) in (let TMP_46 \def +(lift1 is TMP_45) in (let TMP_47 \def (sc3 g a0 c2 TMP_46) in (let TMP_189 +\def (\lambda (x0: C).(\lambda (H9: (getl (trans is i) c2 x0)).(\lambda (H10: +(csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) x0)).(let TMP_48 \def +(ptrans is i) in (let TMP_49 \def (lift1 TMP_48 u) in (let TMP_50 \def (Bind +Abbr) in (let H_x1 \def (csubc_gen_head_l g x x0 TMP_49 TMP_50 H10) in (let +H11 \def H_x1 in (let TMP_55 \def (\lambda (c3: C).(let TMP_51 \def (Bind +Abbr) in (let TMP_52 \def (ptrans is i) in (let TMP_53 \def (lift1 TMP_52 u) +in (let TMP_54 \def (CHead c3 TMP_51 TMP_53) in (eq C x0 TMP_54)))))) in (let +TMP_56 \def (\lambda (c3: C).(csubc g x c3)) in (let TMP_57 \def (ex2 C +TMP_55 TMP_56) in (let TMP_60 \def (\lambda (_: C).(\lambda (_: T).(\lambda +(_: A).(let TMP_58 \def (Bind Abbr) in (let TMP_59 \def (Bind Abst) in (eq K +TMP_58 TMP_59)))))) in (let TMP_63 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (_: A).(let TMP_61 \def (Bind Abbr) in (let TMP_62 \def (CHead c3 +TMP_61 w) in (eq C x0 TMP_62)))))) in (let TMP_64 \def (\lambda (c3: +C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in (let TMP_68 \def +(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let TMP_65 \def (asucc g +a1) in (let TMP_66 \def (ptrans is i) in (let TMP_67 \def (lift1 TMP_66 u) in +(sc3 g TMP_65 x TMP_67))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda +(w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in (let TMP_70 \def (ex5_3 C T A +TMP_60 TMP_63 TMP_64 TMP_68 TMP_69) in (let TMP_73 \def (\lambda (b: +B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_71 \def (Bind b) in (let TMP_72 +\def (CHead c3 TMP_71 v2) in (eq C x0 TMP_72)))))) in (let TMP_76 \def +(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_74 \def (Bind Abbr) +in (let TMP_75 \def (Bind Void) in (eq K TMP_74 TMP_75)))))) in (let TMP_78 +\def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_77 \def (eq B b +Void) in (not TMP_77))))) in (let TMP_79 \def (\lambda (_: B).(\lambda (c3: +C).(\lambda (_: T).(csubc g x c3)))) in (let TMP_80 \def (ex4_3 B C T TMP_73 +TMP_76 TMP_78 TMP_79) in (let TMP_81 \def (TLRef i) in (let TMP_82 \def +(lift1 is TMP_81) in (let TMP_83 \def (sc3 g a0 c2 TMP_82) in (let TMP_137 +\def (\lambda (H12: (ex2 C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abbr) +(lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x c3)))).(let TMP_88 +\def (\lambda (c3: C).(let TMP_84 \def (Bind Abbr) in (let TMP_85 \def +(ptrans is i) in (let TMP_86 \def (lift1 TMP_85 u) in (let TMP_87 \def (CHead +c3 TMP_84 TMP_86) in (eq C x0 TMP_87)))))) in (let TMP_89 \def (\lambda (c3: +C).(csubc g x c3)) in (let TMP_90 \def (TLRef i) in (let TMP_91 \def (lift1 +is TMP_90) in (let TMP_92 \def (sc3 g a0 c2 TMP_91) in (let TMP_136 \def +(\lambda (x1: C).(\lambda (H13: (eq C x0 (CHead x1 (Bind Abbr) (lift1 (ptrans +is i) u)))).(\lambda (_: (csubc g x x1)).(let TMP_94 \def (\lambda (c0: +C).(let TMP_93 \def (trans is i) in (getl TMP_93 c2 c0))) in (let TMP_95 \def +(Bind Abbr) in (let TMP_96 \def (ptrans is i) in (let TMP_97 \def (lift1 +TMP_96 u) in (let TMP_98 \def (CHead x1 TMP_95 TMP_97) in (let H15 \def +(eq_ind C x0 TMP_94 H9 TMP_98 H13) in (let H_y \def (sc3_abbr g a0 TNil) in +(let TMP_99 \def (trans is i) in (let TMP_100 \def (TLRef TMP_99) in (let +TMP_101 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_102 \def (trans +is i) in (let TMP_103 \def (ptrans is i) in (let TMP_104 \def (lift1 TMP_103 +u) in (let TMP_105 \def (S i) in (let TMP_106 \def (lift TMP_105 O u) in (let +TMP_107 \def (lift1 is TMP_106) in (let TMP_108 \def (\lambda (t0: T).(sc3 g +a0 c2 t0)) in (let TMP_109 \def (S i) in (let TMP_110 \def (PConsTail is +TMP_109 O) in (let TMP_111 \def (lift1 TMP_110 u) in (let TMP_112 \def +(\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_113 \def (S i) in (let TMP_114 +\def (PConsTail is TMP_113 O) in (let TMP_115 \def (S i) in (let TMP_116 \def +(getl_drop Abbr c d u i H0) in (let TMP_117 \def (drop1_cons_tail c d TMP_115 +O TMP_116 is d1 H3) in (let TMP_118 \def (H2 d1 TMP_114 TMP_117 c2 H4) in +(let TMP_119 \def (S i) in (let TMP_120 \def (lift TMP_119 O u) in (let +TMP_121 \def (lift1 is TMP_120) in (let TMP_122 \def (S i) in (let TMP_123 +\def (lift1_cons_tail u TMP_122 O is) in (let TMP_124 \def (eq_ind T TMP_111 +TMP_112 TMP_118 TMP_121 TMP_123) in (let TMP_125 \def (trans is i) in (let +TMP_126 \def (S TMP_125) in (let TMP_127 \def (ptrans is i) in (let TMP_128 +\def (lift1 TMP_127 u) in (let TMP_129 \def (lift TMP_126 O TMP_128) in (let +TMP_130 \def (lift1_free is i u) in (let TMP_131 \def (eq_ind T TMP_107 +TMP_108 TMP_124 TMP_129 TMP_130) in (let TMP_132 \def (H_y TMP_102 x1 TMP_104 +c2 TMP_131 H15) in (let TMP_133 \def (TLRef i) in (let TMP_134 \def (lift1 is +TMP_133) in (let TMP_135 \def (lift1_lref is i) in (eq_ind_r T TMP_100 +TMP_101 TMP_132 TMP_134 +TMP_135)))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_ind C TMP_88 +TMP_89 TMP_92 TMP_136 H12)))))))) in (let TMP_164 \def (\lambda (H12: (ex5_3 +C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abbr) (Bind +Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 +(Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g +x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) +x (lift1 (ptrans is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: +A).(sc3 g a1 c3 w)))))).(let TMP_140 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(let TMP_138 \def (Bind Abbr) in (let TMP_139 \def (Bind +Abst) in (eq K TMP_138 TMP_139)))))) in (let TMP_143 \def (\lambda (c3: +C).(\lambda (w: T).(\lambda (_: A).(let TMP_141 \def (Bind Abbr) in (let +TMP_142 \def (CHead c3 TMP_141 w) in (eq C x0 TMP_142)))))) in (let TMP_144 +\def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in +(let TMP_148 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let +TMP_145 \def (asucc g a1) in (let TMP_146 \def (ptrans is i) in (let TMP_147 +\def (lift1 TMP_146 u) in (sc3 g TMP_145 x TMP_147))))))) in (let TMP_149 +\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in +(let TMP_150 \def (TLRef i) in (let TMP_151 \def (lift1 is TMP_150) in (let +TMP_152 \def (sc3 g a0 c2 TMP_151) in (let TMP_163 \def (\lambda (x1: +C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H13: (eq K (Bind Abbr) (Bind +Abst))).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abbr) x2))).(\lambda (_: +(csubc g x x1)).(\lambda (_: (sc3 g (asucc g x3) x (lift1 (ptrans is i) +u))).(\lambda (_: (sc3 g x3 x1 x2)).(let TMP_154 \def (\lambda (c0: C).(let +TMP_153 \def (trans is i) in (getl TMP_153 c2 c0))) in (let TMP_155 \def +(Bind Abbr) in (let TMP_156 \def (CHead x1 TMP_155 x2) in (let H18 \def +(eq_ind C x0 TMP_154 H9 TMP_156 H14) in (let TMP_157 \def (Bind Abbr) in (let +TMP_158 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b +with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow +False]) | (Flat _) \Rightarrow False])) in (let TMP_159 \def (Bind Abst) in +(let H19 \def (eq_ind K TMP_157 TMP_158 I TMP_159 H13) in (let TMP_160 \def +(TLRef i) in (let TMP_161 \def (lift1 is TMP_160) in (let TMP_162 \def (sc3 g +a0 c2 TMP_161) in (False_ind TMP_162 H19)))))))))))))))))))) in (ex5_3_ind C +T A TMP_140 TMP_143 TMP_144 TMP_148 TMP_149 TMP_152 TMP_163 H12))))))))))) in +(let TMP_188 \def (\lambda (H12: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: +C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: +B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind Void))))) (\lambda +(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))))).(let TMP_167 \def +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_165 \def (Bind b) +in (let TMP_166 \def (CHead c3 TMP_165 v2) in (eq C x0 TMP_166)))))) in (let +TMP_170 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_168 +\def (Bind Abbr) in (let TMP_169 \def (Bind Void) in (eq K TMP_168 +TMP_169)))))) in (let TMP_172 \def (\lambda (b: B).(\lambda (_: C).(\lambda +(_: T).(let TMP_171 \def (eq B b Void) in (not TMP_171))))) in (let TMP_173 +\def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) in +(let TMP_174 \def (TLRef i) in (let TMP_175 \def (lift1 is TMP_174) in (let +TMP_176 \def (sc3 g a0 c2 TMP_175) in (let TMP_187 \def (\lambda (x1: +B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H13: (eq C x0 (CHead x2 (Bind +x1) x3))).(\lambda (H14: (eq K (Bind Abbr) (Bind Void))).(\lambda (_: (not +(eq B x1 Void))).(\lambda (_: (csubc g x x2)).(let TMP_178 \def (\lambda (c0: +C).(let TMP_177 \def (trans is i) in (getl TMP_177 c2 c0))) in (let TMP_179 +\def (Bind x1) in (let TMP_180 \def (CHead x2 TMP_179 x3) in (let H17 \def +(eq_ind C x0 TMP_178 H9 TMP_180 H13) in (let TMP_181 \def (Bind Abbr) in (let +TMP_182 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b +with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow +False]) | (Flat _) \Rightarrow False])) in (let TMP_183 \def (Bind Void) in +(let H18 \def (eq_ind K TMP_181 TMP_182 I TMP_183 H14) in (let TMP_184 \def +(TLRef i) in (let TMP_185 \def (lift1 is TMP_184) in (let TMP_186 \def (sc3 g +a0 c2 TMP_185) in (False_ind TMP_186 H18))))))))))))))))))) in (ex4_3_ind B C +T TMP_167 TMP_170 TMP_172 TMP_173 TMP_176 TMP_187 H12)))))))))) in (or3_ind +TMP_57 TMP_70 TMP_80 TMP_83 TMP_137 TMP_164 TMP_188 +H11))))))))))))))))))))))))))))) in (ex2_ind C TMP_39 TMP_44 TMP_47 TMP_189 +H8))))))))))))))))) in (ex2_ind C TMP_23 TMP_29 TMP_32 TMP_190 +H5)))))))))))))))))))))) in (let TMP_371 \def (\lambda (c: C).(\lambda (d: +C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind +Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g +a0))).(\lambda (_: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 d) +\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a0) c2 (lift1 is +u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 +c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let H5 \def H0 in (let +H_x \def (drop1_getl_trans is c d1 H3 Abst d u i H5) in (let H6 \def H_x in +(let TMP_193 \def (\lambda (e2: C).(let TMP_192 \def (ptrans is i) in (drop1 +TMP_192 e2 d))) in (let TMP_199 \def (\lambda (e2: C).(let TMP_194 \def +(trans is i) in (let TMP_195 \def (Bind Abst) in (let TMP_196 \def (ptrans is +i) in (let TMP_197 \def (lift1 TMP_196 u) in (let TMP_198 \def (CHead e2 +TMP_195 TMP_197) in (getl TMP_194 d1 TMP_198))))))) in (let TMP_200 \def +(TLRef i) in (let TMP_201 \def (lift1 is TMP_200) in (let TMP_202 \def (sc3 g +a0 c2 TMP_201) in (let TMP_370 \def (\lambda (x: C).(\lambda (H7: (drop1 +(ptrans is i) x d)).(\lambda (H8: (getl (trans is i) d1 (CHead x (Bind Abst) +(lift1 (ptrans is i) u)))).(let TMP_203 \def (Bind Abst) in (let TMP_204 \def +(ptrans is i) in (let TMP_205 \def (lift1 TMP_204 u) in (let TMP_206 \def +(CHead x TMP_203 TMP_205) in (let TMP_207 \def (trans is i) in (let H_x0 \def +(csubc_getl_conf g d1 TMP_206 TMP_207 H8 c2 H4) in (let H9 \def H_x0 in (let +TMP_209 \def (\lambda (e2: C).(let TMP_208 \def (trans is i) in (getl TMP_208 +c2 e2))) in (let TMP_214 \def (\lambda (e2: C).(let TMP_210 \def (Bind Abst) +in (let TMP_211 \def (ptrans is i) in (let TMP_212 \def (lift1 TMP_211 u) in +(let TMP_213 \def (CHead x TMP_210 TMP_212) in (csubc g TMP_213 e2)))))) in +(let TMP_215 \def (TLRef i) in (let TMP_216 \def (lift1 is TMP_215) in (let +TMP_217 \def (sc3 g a0 c2 TMP_216) in (let TMP_369 \def (\lambda (x0: +C).(\lambda (H10: (getl (trans is i) c2 x0)).(\lambda (H11: (csubc g (CHead x +(Bind Abst) (lift1 (ptrans is i) u)) x0)).(let TMP_218 \def (ptrans is i) in +(let TMP_219 \def (lift1 TMP_218 u) in (let TMP_220 \def (Bind Abst) in (let +H_x1 \def (csubc_gen_head_l g x x0 TMP_219 TMP_220 H11) in (let H12 \def H_x1 +in (let TMP_225 \def (\lambda (c3: C).(let TMP_221 \def (Bind Abst) in (let +TMP_222 \def (ptrans is i) in (let TMP_223 \def (lift1 TMP_222 u) in (let +TMP_224 \def (CHead c3 TMP_221 TMP_223) in (eq C x0 TMP_224)))))) in (let +TMP_226 \def (\lambda (c3: C).(csubc g x c3)) in (let TMP_227 \def (ex2 C +TMP_225 TMP_226) in (let TMP_230 \def (\lambda (_: C).(\lambda (_: +T).(\lambda (_: A).(let TMP_228 \def (Bind Abst) in (let TMP_229 \def (Bind +Abst) in (eq K TMP_228 TMP_229)))))) in (let TMP_233 \def (\lambda (c3: +C).(\lambda (w: T).(\lambda (_: A).(let TMP_231 \def (Bind Abbr) in (let +TMP_232 \def (CHead c3 TMP_231 w) in (eq C x0 TMP_232)))))) in (let TMP_234 +\def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in +(let TMP_238 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let +TMP_235 \def (asucc g a1) in (let TMP_236 \def (ptrans is i) in (let TMP_237 +\def (lift1 TMP_236 u) in (sc3 g TMP_235 x TMP_237))))))) in (let TMP_239 +\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in +(let TMP_240 \def (ex5_3 C T A TMP_230 TMP_233 TMP_234 TMP_238 TMP_239) in +(let TMP_243 \def (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let +TMP_241 \def (Bind b) in (let TMP_242 \def (CHead c3 TMP_241 v2) in (eq C x0 +TMP_242)))))) in (let TMP_246 \def (\lambda (_: B).(\lambda (_: C).(\lambda +(_: T).(let TMP_244 \def (Bind Abst) in (let TMP_245 \def (Bind Void) in (eq +K TMP_244 TMP_245)))))) in (let TMP_248 \def (\lambda (b: B).(\lambda (_: +C).(\lambda (_: T).(let TMP_247 \def (eq B b Void) in (not TMP_247))))) in +(let TMP_249 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x +c3)))) in (let TMP_250 \def (ex4_3 B C T TMP_243 TMP_246 TMP_248 TMP_249) in +(let TMP_251 \def (TLRef i) in (let TMP_252 \def (lift1 is TMP_251) in (let +TMP_253 \def (sc3 g a0 c2 TMP_252) in (let TMP_295 \def (\lambda (H13: (ex2 C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) -(\lambda (c3: C).(csubc g x c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans -is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 -w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C -x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: -T).(eq K (Bind Abst) (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda -(_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: -T).(csubc g x c3))))) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (H13: (ex2 -C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) -(\lambda (c3: C).(csubc g x c3)))).(ex2_ind C (\lambda (c3: C).(eq C x0 -(CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x -c3)) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: C).(\lambda (H14: (eq C -x0 (CHead x1 (Bind Abst) (lift1 (ptrans is i) u)))).(\lambda (_: (csubc g x -x1)).(let H16 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) -H10 (CHead x1 (Bind Abst) (lift1 (ptrans is i) u)) H14) in (let H_y \def -(sc3_abst g a0 TNil) in (eq_ind_r T (TLRef (trans is i)) (\lambda (t0: -T).(sc3 g a0 c2 t0)) (H_y c2 (trans is i) (csubc_arity_conf g d1 c2 H4 (TLRef -(trans is i)) a0 (eq_ind T (lift1 is (TLRef i)) (\lambda (t0: T).(arity g d1 -t0 a0)) (arity_lift1 g a0 c is d1 (TLRef i) H3 (arity_abst g c d u i H0 a0 -H1)) (TLRef (trans is i)) (lift1_lref is i))) (nf2_lref_abst c2 x1 (lift1 -(ptrans is i) u) (trans is i) H16) I) (lift1 is (TLRef i)) (lift1_lref is -i))))))) H13)) (\lambda (H13: (ex5_3 C T A (\lambda (_: C).(\lambda (_: -T).(\lambda (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) -(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans -is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 -w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq -K (Bind Abst) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: -A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: -T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: -C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) (sc3 g a0 c2 (lift1 is -(TLRef i))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (_: -(eq K (Bind Abst) (Bind Abst))).(\lambda (H15: (eq C x0 (CHead x1 (Bind Abbr) -x2))).(\lambda (_: (csubc g x x1)).(\lambda (H17: (sc3 g (asucc g x3) x -(lift1 (ptrans is i) u))).(\lambda (H18: (sc3 g x3 x1 x2)).(let H19 \def -(eq_ind C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) H10 (CHead x1 (Bind -Abbr) x2) H15) in (let H_y \def (sc3_abbr g a0 TNil) in (eq_ind_r T (TLRef -(trans is i)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H_y (trans is i) x1 x2 c2 -(let H_y0 \def (arity_lift1 g (asucc g a0) d (ptrans is i) x u H7 H1) in (let -H_y1 \def (sc3_arity_gen g x (lift1 (ptrans is i) u) (asucc g x3) H17) in -(sc3_repl g x3 c2 (lift (S (trans is i)) O x2) (sc3_lift g x3 x1 x2 H18 c2 (S -(trans is i)) O (getl_drop Abbr c2 x1 x2 (trans is i) H19)) a0 (asucc_inj g -x3 a0 (arity_mono g x (lift1 (ptrans is i) u) (asucc g x3) H_y1 (asucc g a0) -H_y0))))) H19) (lift1 is (TLRef i)) (lift1_lref is i)))))))))))) H13)) -(\lambda (H13: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: -T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: -C).(\lambda (_: T).(eq K (Bind Abst) (Bind Void))))) (\lambda (b: B).(\lambda -(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: -C).(\lambda (_: T).(csubc g x c3)))))).(ex4_3_ind B C T (\lambda (b: -B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) -(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abst) (Bind -Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b -Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) -(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: B).(\lambda (x2: C).(\lambda -(x3: T).(\lambda (H14: (eq C x0 (CHead x2 (Bind x1) x3))).(\lambda (H15: (eq -K (Bind Abst) (Bind Void))).(\lambda (_: (not (eq B x1 Void))).(\lambda (_: -(csubc g x x2)).(let H18 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is -i) c2 c0)) H10 (CHead x2 (Bind x1) x3) H14) in (let H19 \def (eq_ind K (Bind -Abst) (\lambda (ee: K).(match ee in K return (\lambda (_: K).Prop) with -[(Bind b) \Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr -\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat -_) \Rightarrow False])) I (Bind Void) H15) in (False_ind (sc3 g a0 c2 (lift1 -is (TLRef i))) H19)))))))))) H13)) H12)))))) H9)))))) H6))))))))))))))))) +(\lambda (c3: C).(csubc g x c3)))).(let TMP_258 \def (\lambda (c3: C).(let +TMP_254 \def (Bind Abst) in (let TMP_255 \def (ptrans is i) in (let TMP_256 +\def (lift1 TMP_255 u) in (let TMP_257 \def (CHead c3 TMP_254 TMP_256) in (eq +C x0 TMP_257)))))) in (let TMP_259 \def (\lambda (c3: C).(csubc g x c3)) in +(let TMP_260 \def (TLRef i) in (let TMP_261 \def (lift1 is TMP_260) in (let +TMP_262 \def (sc3 g a0 c2 TMP_261) in (let TMP_294 \def (\lambda (x1: +C).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abst) (lift1 (ptrans is i) +u)))).(\lambda (_: (csubc g x x1)).(let TMP_264 \def (\lambda (c0: C).(let +TMP_263 \def (trans is i) in (getl TMP_263 c2 c0))) in (let TMP_265 \def +(Bind Abst) in (let TMP_266 \def (ptrans is i) in (let TMP_267 \def (lift1 +TMP_266 u) in (let TMP_268 \def (CHead x1 TMP_265 TMP_267) in (let H16 \def +(eq_ind C x0 TMP_264 H10 TMP_268 H14) in (let H_y \def (sc3_abst g a0 TNil) +in (let TMP_269 \def (trans is i) in (let TMP_270 \def (TLRef TMP_269) in +(let TMP_271 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_272 \def +(trans is i) in (let TMP_273 \def (trans is i) in (let TMP_274 \def (TLRef +TMP_273) in (let TMP_275 \def (TLRef i) in (let TMP_276 \def (lift1 is +TMP_275) in (let TMP_277 \def (\lambda (t0: T).(arity g d1 t0 a0)) in (let +TMP_278 \def (TLRef i) in (let TMP_279 \def (arity_abst g c d u i H0 a0 H1) +in (let TMP_280 \def (arity_lift1 g a0 c is d1 TMP_278 H3 TMP_279) in (let +TMP_281 \def (trans is i) in (let TMP_282 \def (TLRef TMP_281) in (let +TMP_283 \def (lift1_lref is i) in (let TMP_284 \def (eq_ind T TMP_276 TMP_277 +TMP_280 TMP_282 TMP_283) in (let TMP_285 \def (csubc_arity_conf g d1 c2 H4 +TMP_274 a0 TMP_284) in (let TMP_286 \def (ptrans is i) in (let TMP_287 \def +(lift1 TMP_286 u) in (let TMP_288 \def (trans is i) in (let TMP_289 \def +(nf2_lref_abst c2 x1 TMP_287 TMP_288 H16) in (let TMP_290 \def (H_y c2 +TMP_272 TMP_285 TMP_289 I) in (let TMP_291 \def (TLRef i) in (let TMP_292 +\def (lift1 is TMP_291) in (let TMP_293 \def (lift1_lref is i) in (eq_ind_r T +TMP_270 TMP_271 TMP_290 TMP_292 TMP_293)))))))))))))))))))))))))))))))))))) +in (ex2_ind C TMP_258 TMP_259 TMP_262 TMP_294 H13)))))))) in (let TMP_344 +\def (\lambda (H13: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: +A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: +T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: +C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda +(_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) +(\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))))).(let +TMP_298 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_296 +\def (Bind Abst) in (let TMP_297 \def (Bind Abst) in (eq K TMP_296 +TMP_297)))))) in (let TMP_301 \def (\lambda (c3: C).(\lambda (w: T).(\lambda +(_: A).(let TMP_299 \def (Bind Abbr) in (let TMP_300 \def (CHead c3 TMP_299 +w) in (eq C x0 TMP_300)))))) in (let TMP_302 \def (\lambda (c3: C).(\lambda +(_: T).(\lambda (_: A).(csubc g x c3)))) in (let TMP_306 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a1: A).(let TMP_303 \def (asucc g a1) in (let +TMP_304 \def (ptrans is i) in (let TMP_305 \def (lift1 TMP_304 u) in (sc3 g +TMP_303 x TMP_305))))))) in (let TMP_307 \def (\lambda (c3: C).(\lambda (w: +T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in (let TMP_308 \def (TLRef i) in (let +TMP_309 \def (lift1 is TMP_308) in (let TMP_310 \def (sc3 g a0 c2 TMP_309) in +(let TMP_343 \def (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda +(_: (eq K (Bind Abst) (Bind Abst))).(\lambda (H15: (eq C x0 (CHead x1 (Bind +Abbr) x2))).(\lambda (_: (csubc g x x1)).(\lambda (H17: (sc3 g (asucc g x3) x +(lift1 (ptrans is i) u))).(\lambda (H18: (sc3 g x3 x1 x2)).(let TMP_312 \def +(\lambda (c0: C).(let TMP_311 \def (trans is i) in (getl TMP_311 c2 c0))) in +(let TMP_313 \def (Bind Abbr) in (let TMP_314 \def (CHead x1 TMP_313 x2) in +(let H19 \def (eq_ind C x0 TMP_312 H10 TMP_314 H15) in (let H_y \def +(sc3_abbr g a0 TNil) in (let TMP_315 \def (trans is i) in (let TMP_316 \def +(TLRef TMP_315) in (let TMP_317 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in +(let TMP_318 \def (trans is i) in (let TMP_319 \def (asucc g a0) in (let +TMP_320 \def (ptrans is i) in (let H_y0 \def (arity_lift1 g TMP_319 d TMP_320 +x u H7 H1) in (let TMP_321 \def (ptrans is i) in (let TMP_322 \def (lift1 +TMP_321 u) in (let TMP_323 \def (asucc g x3) in (let H_y1 \def (sc3_arity_gen +g x TMP_322 TMP_323 H17) in (let TMP_324 \def (trans is i) in (let TMP_325 +\def (S TMP_324) in (let TMP_326 \def (lift TMP_325 O x2) in (let TMP_327 +\def (trans is i) in (let TMP_328 \def (S TMP_327) in (let TMP_329 \def +(trans is i) in (let TMP_330 \def (getl_drop Abbr c2 x1 x2 TMP_329 H19) in +(let TMP_331 \def (sc3_lift g x3 x1 x2 H18 c2 TMP_328 O TMP_330) in (let +TMP_332 \def (ptrans is i) in (let TMP_333 \def (lift1 TMP_332 u) in (let +TMP_334 \def (asucc g x3) in (let TMP_335 \def (asucc g a0) in (let TMP_336 +\def (arity_mono g x TMP_333 TMP_334 H_y1 TMP_335 H_y0) in (let TMP_337 \def +(asucc_inj g x3 a0 TMP_336) in (let TMP_338 \def (sc3_repl g x3 c2 TMP_326 +TMP_331 a0 TMP_337) in (let TMP_339 \def (H_y TMP_318 x1 x2 c2 TMP_338 H19) +in (let TMP_340 \def (TLRef i) in (let TMP_341 \def (lift1 is TMP_340) in +(let TMP_342 \def (lift1_lref is i) in (eq_ind_r T TMP_316 TMP_317 TMP_339 +TMP_341 TMP_342)))))))))))))))))))))))))))))))))))))))))))) in (ex5_3_ind C T +A TMP_298 TMP_301 TMP_302 TMP_306 TMP_307 TMP_310 TMP_343 H13))))))))))) in +(let TMP_368 \def (\lambda (H13: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: +C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: +B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abst) (Bind Void))))) (\lambda +(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: +B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))))).(let TMP_347 \def +(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_345 \def (Bind b) +in (let TMP_346 \def (CHead c3 TMP_345 v2) in (eq C x0 TMP_346)))))) in (let +TMP_350 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_348 +\def (Bind Abst) in (let TMP_349 \def (Bind Void) in (eq K TMP_348 +TMP_349)))))) in (let TMP_352 \def (\lambda (b: B).(\lambda (_: C).(\lambda +(_: T).(let TMP_351 \def (eq B b Void) in (not TMP_351))))) in (let TMP_353 +\def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) in +(let TMP_354 \def (TLRef i) in (let TMP_355 \def (lift1 is TMP_354) in (let +TMP_356 \def (sc3 g a0 c2 TMP_355) in (let TMP_367 \def (\lambda (x1: +B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H14: (eq C x0 (CHead x2 (Bind +x1) x3))).(\lambda (H15: (eq K (Bind Abst) (Bind Void))).(\lambda (_: (not +(eq B x1 Void))).(\lambda (_: (csubc g x x2)).(let TMP_358 \def (\lambda (c0: +C).(let TMP_357 \def (trans is i) in (getl TMP_357 c2 c0))) in (let TMP_359 +\def (Bind x1) in (let TMP_360 \def (CHead x2 TMP_359 x3) in (let H18 \def +(eq_ind C x0 TMP_358 H10 TMP_360 H14) in (let TMP_361 \def (Bind Abst) in +(let TMP_362 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow +(match b with [Abbr \Rightarrow False | Abst \Rightarrow True | Void +\Rightarrow False]) | (Flat _) \Rightarrow False])) in (let TMP_363 \def +(Bind Void) in (let H19 \def (eq_ind K TMP_361 TMP_362 I TMP_363 H15) in (let +TMP_364 \def (TLRef i) in (let TMP_365 \def (lift1 is TMP_364) in (let +TMP_366 \def (sc3 g a0 c2 TMP_365) in (False_ind TMP_366 +H19))))))))))))))))))) in (ex4_3_ind B C T TMP_347 TMP_350 TMP_352 TMP_353 +TMP_356 TMP_367 H13)))))))))) in (or3_ind TMP_227 TMP_240 TMP_250 TMP_253 +TMP_295 TMP_344 TMP_368 H12))))))))))))))))))))))))))))) in (ex2_ind C +TMP_209 TMP_214 TMP_217 TMP_369 H9))))))))))))))))) in (ex2_ind C TMP_193 +TMP_199 TMP_202 TMP_370 H6))))))))))))))))))))))) in (let TMP_399 \def (\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: @@ -219,104 +363,189 @@ a2)).(\lambda (H4: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 (CHead c (Bind b) u)) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a2 c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H5: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H6: (csubc g d1 c2)).(let H_y -\def (sc3_bind g b H0 a1 a2 TNil) in (eq_ind_r T (THead (Bind b) (lift1 is u) -(lift1 (Ss is) t0)) (\lambda (t1: T).(sc3 g a2 c2 t1)) (H_y c2 (lift1 is u) -(lift1 (Ss is) t0) (H4 (CHead d1 (Bind b) (lift1 is u)) (Ss is) -(drop1_skip_bind b c is d1 u H5) (CHead c2 (Bind b) (lift1 is u)) (csubc_head -g d1 c2 H6 (Bind b) (lift1 is u))) (H2 d1 is H5 c2 H6)) (lift1 is (THead -(Bind b) u t0)) (lift1_bind b is u t0))))))))))))))))))) (\lambda (c: -C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c u (asucc g -a1))).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) -\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a1) c2 (lift1 is -u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H2: (arity g (CHead c -(Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (d1: C).(\forall (is: +\def (sc3_bind g b H0 a1 a2 TNil) in (let TMP_372 \def (Bind b) in (let +TMP_373 \def (lift1 is u) in (let TMP_374 \def (Ss is) in (let TMP_375 \def +(lift1 TMP_374 t0) in (let TMP_376 \def (THead TMP_372 TMP_373 TMP_375) in +(let TMP_377 \def (\lambda (t1: T).(sc3 g a2 c2 t1)) in (let TMP_378 \def +(lift1 is u) in (let TMP_379 \def (Ss is) in (let TMP_380 \def (lift1 TMP_379 +t0) in (let TMP_381 \def (Bind b) in (let TMP_382 \def (lift1 is u) in (let +TMP_383 \def (CHead d1 TMP_381 TMP_382) in (let TMP_384 \def (Ss is) in (let +TMP_385 \def (drop1_skip_bind b c is d1 u H5) in (let TMP_386 \def (Bind b) +in (let TMP_387 \def (lift1 is u) in (let TMP_388 \def (CHead c2 TMP_386 +TMP_387) in (let TMP_389 \def (Bind b) in (let TMP_390 \def (lift1 is u) in +(let TMP_391 \def (csubc_head g d1 c2 H6 TMP_389 TMP_390) in (let TMP_392 +\def (H4 TMP_383 TMP_384 TMP_385 TMP_388 TMP_391) in (let TMP_393 \def (H2 d1 +is H5 c2 H6) in (let TMP_394 \def (H_y c2 TMP_378 TMP_380 TMP_392 TMP_393) in +(let TMP_395 \def (Bind b) in (let TMP_396 \def (THead TMP_395 u t0) in (let +TMP_397 \def (lift1 is TMP_396) in (let TMP_398 \def (lift1_bind b is u t0) +in (eq_ind_r T TMP_376 TMP_377 TMP_394 TMP_397 +TMP_398))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_547 \def +(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c u +(asucc g a1))).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 +is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a1) c2 +(lift1 is u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H2: (arity g +(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 (CHead c (Bind Abst) u)) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a2 c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g -d1 c2)).(eq_ind_r T (THead (Bind Abst) (lift1 is u) (lift1 (Ss is) t0)) -(\lambda (t1: T).(land (arity g c2 t1 (AHead a1 a2)) (\forall (d: C).(\forall -(w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g -a2 d (THead (Flat Appl) w (lift1 is0 t1)))))))))) (conj (arity g c2 (THead -(Bind Abst) (lift1 is u) (lift1 (Ss is) t0)) (AHead a1 a2)) (\forall (d: -C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d -c2) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is0 (THead (Bind Abst) (lift1 -is u) (lift1 (Ss is) t0)))))))))) (csubc_arity_conf g d1 c2 H5 (THead (Bind -Abst) (lift1 is u) (lift1 (Ss is) t0)) (AHead a1 a2) (arity_head g d1 (lift1 -is u) a1 (arity_lift1 g (asucc g a1) c is d1 u H4 H0) (lift1 (Ss is) t0) a2 -(arity_lift1 g a2 (CHead c (Bind Abst) u) (Ss is) (CHead d1 (Bind Abst) -(lift1 is u)) t0 (drop1_skip_bind Abst c is d1 u H4) H2))) (\lambda (d: -C).(\lambda (w: T).(\lambda (H6: (sc3 g a1 d w)).(\lambda (is0: -PList).(\lambda (H7: (drop1 is0 d c2)).(eq_ind_r T (THead (Bind Abst) (lift1 -is0 (lift1 is u)) (lift1 (Ss is0) (lift1 (Ss is) t0))) (\lambda (t1: T).(sc3 -g a2 d (THead (Flat Appl) w t1))) (let H8 \def (sc3_appl g a1 a2 TNil) in (H8 -d w (lift1 (Ss is0) (lift1 (Ss is) t0)) (let H_y \def (sc3_bind g Abbr -(\lambda (H9: (eq B Abbr Abst)).(not_abbr_abst H9)) a1 a2 TNil) in (H_y d w -(lift1 (Ss is0) (lift1 (Ss is) t0)) (let H_x \def (csubc_drop1_conf_rev g is0 -d c2 H7 d1 H5) in (let H9 \def H_x in (ex2_ind C (\lambda (c3: C).(drop1 is0 -c3 d1)) (\lambda (c3: C).(csubc g c3 d)) (sc3 g a2 (CHead d (Bind Abbr) w) -(lift1 (Ss is0) (lift1 (Ss is) t0))) (\lambda (x: C).(\lambda (H10: (drop1 -is0 x d1)).(\lambda (H11: (csubc g x d)).(eq_ind_r T (lift1 (papp (Ss is0) -(Ss is)) t0) (\lambda (t1: T).(sc3 g a2 (CHead d (Bind Abbr) w) t1)) -(eq_ind_r PList (Ss (papp is0 is)) (\lambda (p: PList).(sc3 g a2 (CHead d -(Bind Abbr) w) (lift1 p t0))) (H3 (CHead x (Bind Abst) (lift1 (papp is0 is) -u)) (Ss (papp is0 is)) (drop1_skip_bind Abst c (papp is0 is) x u (drop1_trans -is0 x d1 H10 is c H4)) (CHead d (Bind Abbr) w) (csubc_abst g x d H11 (lift1 -(papp is0 is) u) a1 (H1 x (papp is0 is) (drop1_trans is0 x d1 H10 is c H4) x -(csubc_refl g x)) w H6)) (papp (Ss is0) (Ss is)) (papp_ss is0 is)) (lift1 (Ss -is0) (lift1 (Ss is) t0)) (lift1_lift1 (Ss is0) (Ss is) t0))))) H9))) H6)) H6 -(lift1 is0 (lift1 is u)) (sc3_lift1 g c2 (asucc g a1) is0 d (lift1 is u) (H1 -d1 is H4 c2 H5) H7))) (lift1 is0 (THead (Bind Abst) (lift1 is u) (lift1 (Ss -is) t0))) (lift1_bind Abst is0 (lift1 is u) (lift1 (Ss is) t0))))))))) (lift1 -is (THead (Bind Abst) u t0)) (lift1_bind Abst is u t0)))))))))))))))) -(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u -a1)).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) -\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 c2 (lift1 is -u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 -(AHead a1 a2))).(\lambda (H3: ((\forall (d1: C).(\forall (is: PList).((drop1 -is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (AHead a1 a2) c2 -(lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H4: -(drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g d1 c2)).(let H_y -\def (H1 d1 is H4 c2 H5) in (let H_y0 \def (H3 d1 is H4 c2 H5) in (let H6 -\def H_y0 in (land_ind (arity g c2 (lift1 is t0) (AHead a1 a2)) (\forall (d: -C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d -c2) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is0 (lift1 is t0))))))))) -(sc3 g a2 c2 (lift1 is (THead (Flat Appl) u t0))) (\lambda (_: (arity g c2 -(lift1 is t0) (AHead a1 a2))).(\lambda (H8: ((\forall (d: C).(\forall (w: -T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g a2 -d (THead (Flat Appl) w (lift1 is0 (lift1 is t0))))))))))).(let H_y1 \def (H8 -c2 (lift1 is u) H_y PNil) in (eq_ind_r T (THead (Flat Appl) (lift1 is u) -(lift1 is t0)) (\lambda (t1: T).(sc3 g a2 c2 t1)) (H_y1 (drop1_nil c2)) -(lift1 is (THead (Flat Appl) u t0)) (lift1_flat Appl is u t0))))) -H6)))))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: -A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (d1: -C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 -c2) \to (sc3 g (asucc g a0) c2 (lift1 is u))))))))).(\lambda (t0: T).(\lambda -(_: (arity g c t0 a0)).(\lambda (H3: ((\forall (d1: C).(\forall (is: -PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a0 -c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H4: -(drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g d1 c2)).(let H_y -\def (sc3_cast g a0 TNil) in (eq_ind_r T (THead (Flat Cast) (lift1 is u) -(lift1 is t0)) (\lambda (t1: T).(sc3 g a0 c2 t1)) (H_y c2 (lift1 is u) (H1 d1 -is H4 c2 H5) (lift1 is t0) (H3 d1 is H4 c2 H5)) (lift1 is (THead (Flat Cast) -u t0)) (lift1_flat Cast is u t0)))))))))))))))) (\lambda (c: C).(\lambda (t0: -T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall -(d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g -d1 c2) \to (sc3 g a1 c2 (lift1 is t0))))))))).(\lambda (a2: A).(\lambda (H2: -(leq g a1 a2)).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is -d1 c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(sc3_repl g a1 c2 -(lift1 is t0) (H1 d1 is H3 c2 H4) a2 H2))))))))))))) c1 t a H))))). -(* COMMENTS -Initial nodes: 5940 -END *) +d1 c2)).(let TMP_400 \def (Bind Abst) in (let TMP_401 \def (lift1 is u) in +(let TMP_402 \def (Ss is) in (let TMP_403 \def (lift1 TMP_402 t0) in (let +TMP_404 \def (THead TMP_400 TMP_401 TMP_403) in (let TMP_411 \def (\lambda +(t1: T).(let TMP_405 \def (AHead a1 a2) in (let TMP_406 \def (arity g c2 t1 +TMP_405) in (let TMP_410 \def (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) +\to (\forall (is0: PList).((drop1 is0 d c2) \to (let TMP_407 \def (Flat Appl) +in (let TMP_408 \def (lift1 is0 t1) in (let TMP_409 \def (THead TMP_407 w +TMP_408) in (sc3 g a2 d TMP_409))))))))) in (land TMP_406 TMP_410))))) in +(let TMP_412 \def (Bind Abst) in (let TMP_413 \def (lift1 is u) in (let +TMP_414 \def (Ss is) in (let TMP_415 \def (lift1 TMP_414 t0) in (let TMP_416 +\def (THead TMP_412 TMP_413 TMP_415) in (let TMP_417 \def (AHead a1 a2) in +(let TMP_418 \def (arity g c2 TMP_416 TMP_417) in (let TMP_427 \def (\forall +(d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 +d c2) \to (let TMP_419 \def (Flat Appl) in (let TMP_420 \def (Bind Abst) in +(let TMP_421 \def (lift1 is u) in (let TMP_422 \def (Ss is) in (let TMP_423 +\def (lift1 TMP_422 t0) in (let TMP_424 \def (THead TMP_420 TMP_421 TMP_423) +in (let TMP_425 \def (lift1 is0 TMP_424) in (let TMP_426 \def (THead TMP_419 +w TMP_425) in (sc3 g a2 d TMP_426)))))))))))))) in (let TMP_428 \def (Bind +Abst) in (let TMP_429 \def (lift1 is u) in (let TMP_430 \def (Ss is) in (let +TMP_431 \def (lift1 TMP_430 t0) in (let TMP_432 \def (THead TMP_428 TMP_429 +TMP_431) in (let TMP_433 \def (AHead a1 a2) in (let TMP_434 \def (lift1 is u) +in (let TMP_435 \def (asucc g a1) in (let TMP_436 \def (arity_lift1 g TMP_435 +c is d1 u H4 H0) in (let TMP_437 \def (Ss is) in (let TMP_438 \def (lift1 +TMP_437 t0) in (let TMP_439 \def (Bind Abst) in (let TMP_440 \def (CHead c +TMP_439 u) in (let TMP_441 \def (Ss is) in (let TMP_442 \def (Bind Abst) in +(let TMP_443 \def (lift1 is u) in (let TMP_444 \def (CHead d1 TMP_442 +TMP_443) in (let TMP_445 \def (drop1_skip_bind Abst c is d1 u H4) in (let +TMP_446 \def (arity_lift1 g a2 TMP_440 TMP_441 TMP_444 t0 TMP_445 H2) in (let +TMP_447 \def (arity_head g d1 TMP_434 a1 TMP_436 TMP_438 a2 TMP_446) in (let +TMP_448 \def (csubc_arity_conf g d1 c2 H5 TMP_432 TMP_433 TMP_447) in (let +TMP_541 \def (\lambda (d: C).(\lambda (w: T).(\lambda (H6: (sc3 g a1 d +w)).(\lambda (is0: PList).(\lambda (H7: (drop1 is0 d c2)).(let TMP_449 \def +(Bind Abst) in (let TMP_450 \def (lift1 is u) in (let TMP_451 \def (lift1 is0 +TMP_450) in (let TMP_452 \def (Ss is0) in (let TMP_453 \def (Ss is) in (let +TMP_454 \def (lift1 TMP_453 t0) in (let TMP_455 \def (lift1 TMP_452 TMP_454) +in (let TMP_456 \def (THead TMP_449 TMP_451 TMP_455) in (let TMP_459 \def +(\lambda (t1: T).(let TMP_457 \def (Flat Appl) in (let TMP_458 \def (THead +TMP_457 w t1) in (sc3 g a2 d TMP_458)))) in (let H8 \def (sc3_appl g a1 a2 +TNil) in (let TMP_460 \def (Ss is0) in (let TMP_461 \def (Ss is) in (let +TMP_462 \def (lift1 TMP_461 t0) in (let TMP_463 \def (lift1 TMP_460 TMP_462) +in (let H_y \def (sc3_bind g Abbr not_abbr_abst a1 a2 TNil) in (let TMP_464 +\def (Ss is0) in (let TMP_465 \def (Ss is) in (let TMP_466 \def (lift1 +TMP_465 t0) in (let TMP_467 \def (lift1 TMP_464 TMP_466) in (let H_x \def +(csubc_drop1_conf_rev g is0 d c2 H7 d1 H5) in (let H9 \def H_x in (let +TMP_468 \def (\lambda (c3: C).(drop1 is0 c3 d1)) in (let TMP_469 \def +(\lambda (c3: C).(csubc g c3 d)) in (let TMP_470 \def (Bind Abbr) in (let +TMP_471 \def (CHead d TMP_470 w) in (let TMP_472 \def (Ss is0) in (let +TMP_473 \def (Ss is) in (let TMP_474 \def (lift1 TMP_473 t0) in (let TMP_475 +\def (lift1 TMP_472 TMP_474) in (let TMP_476 \def (sc3 g a2 TMP_471 TMP_475) +in (let TMP_521 \def (\lambda (x: C).(\lambda (H10: (drop1 is0 x +d1)).(\lambda (H11: (csubc g x d)).(let TMP_477 \def (Ss is0) in (let TMP_478 +\def (Ss is) in (let TMP_479 \def (papp TMP_477 TMP_478) in (let TMP_480 \def +(lift1 TMP_479 t0) in (let TMP_483 \def (\lambda (t1: T).(let TMP_481 \def +(Bind Abbr) in (let TMP_482 \def (CHead d TMP_481 w) in (sc3 g a2 TMP_482 +t1)))) in (let TMP_484 \def (papp is0 is) in (let TMP_485 \def (Ss TMP_484) +in (let TMP_489 \def (\lambda (p: PList).(let TMP_486 \def (Bind Abbr) in +(let TMP_487 \def (CHead d TMP_486 w) in (let TMP_488 \def (lift1 p t0) in +(sc3 g a2 TMP_487 TMP_488))))) in (let TMP_490 \def (Bind Abst) in (let +TMP_491 \def (papp is0 is) in (let TMP_492 \def (lift1 TMP_491 u) in (let +TMP_493 \def (CHead x TMP_490 TMP_492) in (let TMP_494 \def (papp is0 is) in +(let TMP_495 \def (Ss TMP_494) in (let TMP_496 \def (papp is0 is) in (let +TMP_497 \def (drop1_trans is0 x d1 H10 is c H4) in (let TMP_498 \def +(drop1_skip_bind Abst c TMP_496 x u TMP_497) in (let TMP_499 \def (Bind Abbr) +in (let TMP_500 \def (CHead d TMP_499 w) in (let TMP_501 \def (papp is0 is) +in (let TMP_502 \def (lift1 TMP_501 u) in (let TMP_503 \def (papp is0 is) in +(let TMP_504 \def (drop1_trans is0 x d1 H10 is c H4) in (let TMP_505 \def +(csubc_refl g x) in (let TMP_506 \def (H1 x TMP_503 TMP_504 x TMP_505) in +(let TMP_507 \def (csubc_abst g x d H11 TMP_502 a1 TMP_506 w H6) in (let +TMP_508 \def (H3 TMP_493 TMP_495 TMP_498 TMP_500 TMP_507) in (let TMP_509 +\def (Ss is0) in (let TMP_510 \def (Ss is) in (let TMP_511 \def (papp TMP_509 +TMP_510) in (let TMP_512 \def (papp_ss is0 is) in (let TMP_513 \def (eq_ind_r +PList TMP_485 TMP_489 TMP_508 TMP_511 TMP_512) in (let TMP_514 \def (Ss is0) +in (let TMP_515 \def (Ss is) in (let TMP_516 \def (lift1 TMP_515 t0) in (let +TMP_517 \def (lift1 TMP_514 TMP_516) in (let TMP_518 \def (Ss is0) in (let +TMP_519 \def (Ss is) in (let TMP_520 \def (lift1_lift1 TMP_518 TMP_519 t0) in +(eq_ind_r T TMP_480 TMP_483 TMP_513 TMP_517 +TMP_520))))))))))))))))))))))))))))))))))))))))))) in (let TMP_522 \def +(ex2_ind C TMP_468 TMP_469 TMP_476 TMP_521 H9) in (let TMP_523 \def (H_y d w +TMP_467 TMP_522 H6) in (let TMP_524 \def (lift1 is u) in (let TMP_525 \def +(lift1 is0 TMP_524) in (let TMP_526 \def (asucc g a1) in (let TMP_527 \def +(lift1 is u) in (let TMP_528 \def (H1 d1 is H4 c2 H5) in (let TMP_529 \def +(sc3_lift1 g c2 TMP_526 is0 d TMP_527 TMP_528 H7) in (let TMP_530 \def (H8 d +w TMP_463 TMP_523 H6 TMP_525 TMP_529) in (let TMP_531 \def (Bind Abst) in +(let TMP_532 \def (lift1 is u) in (let TMP_533 \def (Ss is) in (let TMP_534 +\def (lift1 TMP_533 t0) in (let TMP_535 \def (THead TMP_531 TMP_532 TMP_534) +in (let TMP_536 \def (lift1 is0 TMP_535) in (let TMP_537 \def (lift1 is u) in +(let TMP_538 \def (Ss is) in (let TMP_539 \def (lift1 TMP_538 t0) in (let +TMP_540 \def (lift1_bind Abst is0 TMP_537 TMP_539) in (eq_ind_r T TMP_456 +TMP_459 TMP_530 TMP_536 +TMP_540)))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let +TMP_542 \def (conj TMP_418 TMP_427 TMP_448 TMP_541) in (let TMP_543 \def +(Bind Abst) in (let TMP_544 \def (THead TMP_543 u t0) in (let TMP_545 \def +(lift1 is TMP_544) in (let TMP_546 \def (lift1_bind Abst is u t0) in +(eq_ind_r T TMP_404 TMP_411 TMP_542 TMP_545 +TMP_546)))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let +TMP_573 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: +(arity g c u a1)).(\lambda (H1: ((\forall (d1: C).(\forall (is: +PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 +c2 (lift1 is u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity +g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (d1: C).(\forall (is: +PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g +(AHead a1 a2) c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: +PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g +d1 c2)).(let H_y \def (H1 d1 is H4 c2 H5) in (let H_y0 \def (H3 d1 is H4 c2 +H5) in (let H6 \def H_y0 in (let TMP_548 \def (lift1 is t0) in (let TMP_549 +\def (AHead a1 a2) in (let TMP_550 \def (arity g c2 TMP_548 TMP_549) in (let +TMP_555 \def (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall +(is0: PList).((drop1 is0 d c2) \to (let TMP_551 \def (Flat Appl) in (let +TMP_552 \def (lift1 is t0) in (let TMP_553 \def (lift1 is0 TMP_552) in (let +TMP_554 \def (THead TMP_551 w TMP_553) in (sc3 g a2 d TMP_554)))))))))) in +(let TMP_556 \def (Flat Appl) in (let TMP_557 \def (THead TMP_556 u t0) in +(let TMP_558 \def (lift1 is TMP_557) in (let TMP_559 \def (sc3 g a2 c2 +TMP_558) in (let TMP_572 \def (\lambda (_: (arity g c2 (lift1 is t0) (AHead +a1 a2))).(\lambda (H8: ((\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to +(\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g a2 d (THead (Flat Appl) w +(lift1 is0 (lift1 is t0))))))))))).(let TMP_560 \def (lift1 is u) in (let +H_y1 \def (H8 c2 TMP_560 H_y PNil) in (let TMP_561 \def (Flat Appl) in (let +TMP_562 \def (lift1 is u) in (let TMP_563 \def (lift1 is t0) in (let TMP_564 +\def (THead TMP_561 TMP_562 TMP_563) in (let TMP_565 \def (\lambda (t1: +T).(sc3 g a2 c2 t1)) in (let TMP_566 \def (drop1_nil c2) in (let TMP_567 \def +(H_y1 TMP_566) in (let TMP_568 \def (Flat Appl) in (let TMP_569 \def (THead +TMP_568 u t0) in (let TMP_570 \def (lift1 is TMP_569) in (let TMP_571 \def +(lift1_flat Appl is u t0) in (eq_ind_r T TMP_564 TMP_565 TMP_567 TMP_570 +TMP_571)))))))))))))))) in (land_ind TMP_550 TMP_555 TMP_559 TMP_572 +H6))))))))))))))))))))))))))) in (let TMP_588 \def (\lambda (c: C).(\lambda +(u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda +(H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall +(c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a0) c2 (lift1 is +u))))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: +((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: +C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is t0))))))))).(\lambda (d1: +C).(\lambda (is: PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: +C).(\lambda (H5: (csubc g d1 c2)).(let H_y \def (sc3_cast g a0 TNil) in (let +TMP_574 \def (Flat Cast) in (let TMP_575 \def (lift1 is u) in (let TMP_576 +\def (lift1 is t0) in (let TMP_577 \def (THead TMP_574 TMP_575 TMP_576) in +(let TMP_578 \def (\lambda (t1: T).(sc3 g a0 c2 t1)) in (let TMP_579 \def +(lift1 is u) in (let TMP_580 \def (H1 d1 is H4 c2 H5) in (let TMP_581 \def +(lift1 is t0) in (let TMP_582 \def (H3 d1 is H4 c2 H5) in (let TMP_583 \def +(H_y c2 TMP_579 TMP_580 TMP_581 TMP_582) in (let TMP_584 \def (Flat Cast) in +(let TMP_585 \def (THead TMP_584 u t0) in (let TMP_586 \def (lift1 is +TMP_585) in (let TMP_587 \def (lift1_flat Cast is u t0) in (eq_ind_r T +TMP_577 TMP_578 TMP_583 TMP_586 TMP_587))))))))))))))))))))))))))))) in (let +TMP_591 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: +(arity g c t0 a1)).(\lambda (H1: ((\forall (d1: C).(\forall (is: +PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 +c2 (lift1 is t0))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 +a2)).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 +c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let TMP_589 \def (lift1 +is t0) in (let TMP_590 \def (H1 d1 is H3 c2 H4) in (sc3_repl g a1 c2 TMP_589 +TMP_590 a2 H2))))))))))))))) in (arity_ind g TMP_2 TMP_21 TMP_191 TMP_371 +TMP_399 TMP_547 TMP_573 TMP_588 TMP_591 c1 t a H)))))))))))))). theorem sc3_arity: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t a) \to (sc3 g a c t))))) \def \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c t a)).(let H_y \def (sc3_arity_csubc g c t a H c PNil) in (H_y -(drop1_nil c) c (csubc_refl g c))))))). -(* COMMENTS -Initial nodes: 47 -END *) +(arity g c t a)).(let H_y \def (sc3_arity_csubc g c t a H c PNil) in (let +TMP_1 \def (drop1_nil c) in (let TMP_2 \def (csubc_refl g c) in (H_y TMP_1 c +TMP_2)))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/sc3/defs.ma b/matita/matita/contribs/lambdadelta/basic_1/sc3/defs.ma index 32fdfda84..13b7cdea2 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/sc3/defs.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/sc3/defs.ma @@ -14,19 +14,19 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/sn3/defs.ma". +include "basic_1/sn3/defs.ma". -include "Basic-1/arity/defs.ma". +include "basic_1/arity/defs.ma". -include "Basic-1/drop1/defs.ma". +include "basic_1/drop1/defs.ma". -definition sc3: - G \to (A \to (C \to (T \to Prop))) -\def - let rec sc3 (g: G) (a: A) on a: (C \to (T \to Prop)) \def (\lambda (c: -C).(\lambda (t: T).(match a with [(ASort h n) \Rightarrow (land (arity g c t -(ASort h n)) (sn3 c t)) | (AHead a1 a2) \Rightarrow (land (arity g c t (AHead -a1 a2)) (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is -t)))))))))]))) in sc3. +let rec sc3 (g: G) (a: A) on a: C \to (T \to Prop) \def \lambda (c: +C).(\lambda (t: T).(match a with [(ASort h n) \Rightarrow (let TMP_7 \def +(ASort h n) in (let TMP_8 \def (arity g c t TMP_7) in (let TMP_9 \def (sn3 c +t) in (land TMP_8 TMP_9)))) | (AHead a1 a2) \Rightarrow (let TMP_1 \def +(AHead a1 a2) in (let TMP_2 \def (arity g c t TMP_1) in (let TMP_6 \def +(\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is: +PList).((drop1 is d c) \to (let TMP_3 \def (Flat Appl) in (let TMP_4 \def +(lift1 is t) in (let TMP_5 \def (THead TMP_3 w TMP_4) in (sc3 g a2 d +TMP_5))))))))) in (land TMP_2 TMP_6))))])). diff --git a/matita/matita/contribs/lambdadelta/basic_1/sc3/props.ma b/matita/matita/contribs/lambdadelta/basic_1/sc3/props.ma index e1d909251..67d97963b 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/sc3/props.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/sc3/props.ma @@ -14,188 +14,237 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/sc3/defs.ma". +include "basic_1/sc3/defs.ma". -include "Basic-1/sn3/lift1.ma". +include "basic_1/sn3/lift1.ma". -include "Basic-1/nf2/lift1.ma". +include "basic_1/nf2/lift1.ma". -include "Basic-1/csuba/arity.ma". +include "basic_1/csuba/arity.ma". -include "Basic-1/arity/lift1.ma". +include "basic_1/arity/lift1.ma". -include "Basic-1/arity/aprem.ma". +include "basic_1/arity/aprem.ma". -include "Basic-1/llt/props.ma". +include "basic_1/llt/props.ma". -include "Basic-1/drop1/getl.ma". +include "basic_1/llt/fwd.ma". -include "Basic-1/drop1/props.ma". +include "basic_1/drop1/getl.ma". -include "Basic-1/lift1/props.ma". +include "basic_1/drop1/props.ma". + +include "basic_1/lift1/drop1.ma". theorem sc3_arity_gen: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((sc3 g a c t) \to (arity g c t a))))) \def - \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(A_ind -(\lambda (a0: A).((sc3 g a0 c t) \to (arity g c t a0))) (\lambda (n: -nat).(\lambda (n0: nat).(\lambda (H: (land (arity g c t (ASort n n0)) (sn3 c -t))).(let H0 \def H in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (arity -g c t (ASort n n0)) (\lambda (H1: (arity g c t (ASort n n0))).(\lambda (_: -(sn3 c t)).H1)) H0))))) (\lambda (a0: A).(\lambda (_: (((sc3 g a0 c t) \to -(arity g c t a0)))).(\lambda (a1: A).(\lambda (_: (((sc3 g a1 c t) \to (arity -g c t a1)))).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: + \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(let TMP_1 +\def (\lambda (a0: A).((sc3 g a0 c t) \to (arity g c t a0))) in (let TMP_8 +\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (H: (land (arity g c t +(ASort n n0)) (sn3 c t))).(let H0 \def H in (let TMP_2 \def (ASort n n0) in +(let TMP_3 \def (arity g c t TMP_2) in (let TMP_4 \def (sn3 c t) in (let +TMP_5 \def (ASort n n0) in (let TMP_6 \def (arity g c t TMP_5) in (let TMP_7 +\def (\lambda (H1: (arity g c t (ASort n n0))).(\lambda (_: (sn3 c t)).H1)) +in (land_ind TMP_3 TMP_4 TMP_6 TMP_7 H0))))))))))) in (let TMP_18 \def +(\lambda (a0: A).(\lambda (_: (((sc3 g a0 c t) \to (arity g c t +a0)))).(\lambda (a1: A).(\lambda (_: (((sc3 g a1 c t) \to (arity g c t +a1)))).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H1 in -(land_ind (arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g -a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat -Appl) w (lift1 is t)))))))) (arity g c t (AHead a0 a1)) (\lambda (H3: (arity -g c t (AHead a0 a1))).(\lambda (_: ((\forall (d: C).(\forall (w: T).((sc3 g -a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat -Appl) w (lift1 is t)))))))))).H3)) H2))))))) a)))). -(* COMMENTS -Initial nodes: 369 -END *) +(let TMP_9 \def (AHead a0 a1) in (let TMP_10 \def (arity g c t TMP_9) in (let +TMP_14 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: +PList).((drop1 is d c) \to (let TMP_11 \def (Flat Appl) in (let TMP_12 \def +(lift1 is t) in (let TMP_13 \def (THead TMP_11 w TMP_12) in (sc3 g a1 d +TMP_13))))))))) in (let TMP_15 \def (AHead a0 a1) in (let TMP_16 \def (arity +g c t TMP_15) in (let TMP_17 \def (\lambda (H3: (arity g c t (AHead a0 +a1))).(\lambda (_: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to +(\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w +(lift1 is t)))))))))).H3)) in (land_ind TMP_10 TMP_14 TMP_16 TMP_17 +H2))))))))))))) in (A_ind TMP_1 TMP_8 TMP_18 a))))))). theorem sc3_repl: \forall (g: G).(\forall (a1: A).(\forall (c: C).(\forall (t: T).((sc3 g a1 c t) \to (\forall (a2: A).((leq g a1 a2) \to (sc3 g a2 c t))))))) \def - \lambda (g: G).(\lambda (a1: A).(llt_wf_ind (\lambda (a: A).(\forall (c: + \lambda (g: G).(\lambda (a1: A).(let TMP_1 \def (\lambda (a: A).(\forall (c: C).(\forall (t: T).((sc3 g a c t) \to (\forall (a2: A).((leq g a a2) \to (sc3 -g a2 c t))))))) (\lambda (a2: A).(A_ind (\lambda (a: A).(((\forall (a3: -A).((llt a3 a) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 c t) \to -(\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c t))))))))) \to (\forall (c: -C).(\forall (t: T).((sc3 g a c t) \to (\forall (a3: A).((leq g a a3) \to (sc3 -g a3 c t)))))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (_: ((\forall -(a3: A).((llt a3 (ASort n n0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 -c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c t)))))))))).(\lambda -(c: C).(\lambda (t: T).(\lambda (H0: (land (arity g c t (ASort n n0)) (sn3 c -t))).(\lambda (a3: A).(\lambda (H1: (leq g (ASort n n0) a3)).(let H2 \def H0 -in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (sc3 g a3 c t) (\lambda -(H3: (arity g c t (ASort n n0))).(\lambda (H4: (sn3 c t)).(let H_y \def -(arity_repl g c t (ASort n n0) H3 a3 H1) in (let H_x \def (leq_gen_sort1 g n -n0 a3 H1) in (let H5 \def H_x in (ex2_3_ind nat nat nat (\lambda (n2: -nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort n n0) k) -(aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda -(_: nat).(eq A a3 (ASort h2 n2))))) (sc3 g a3 c t) (\lambda (x0: -nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (_: (eq A (aplus g (ASort -n n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H7: (eq A a3 (ASort x1 -x0))).(let H8 \def (f_equal A A (\lambda (e: A).e) a3 (ASort x1 x0) H7) in -(let H9 \def (eq_ind A a3 (\lambda (a: A).(arity g c t a)) H_y (ASort x1 x0) -H8) in (eq_ind_r A (ASort x1 x0) (\lambda (a: A).(sc3 g a c t)) (conj (arity -g c t (ASort x1 x0)) (sn3 c t) H9 H4) a3 H8)))))))) H5)))))) H2)))))))))) -(\lambda (a: A).(\lambda (_: ((((\forall (a3: A).((llt a3 a) \to (\forall (c: -C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to -(sc3 g a4 c t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to -(\forall (a3: A).((leq g a a3) \to (sc3 g a3 c t))))))))).(\lambda (a0: -A).(\lambda (H0: ((((\forall (a3: A).((llt a3 a0) \to (\forall (c: -C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to -(sc3 g a4 c t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) -\to (\forall (a3: A).((leq g a0 a3) \to (sc3 g a3 c t))))))))).(\lambda (H1: -((\forall (a3: A).((llt a3 (AHead a a0)) \to (\forall (c: C).(\forall (t: +g a2 c t))))))) in (let TMP_73 \def (\lambda (a2: A).(let TMP_2 \def (\lambda +(a: A).(((\forall (a3: A).((llt a3 a) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c -t)))))))))).(\lambda (c: C).(\lambda (t: T).(\lambda (H2: (land (arity g c t -(AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall -(is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is +t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to (\forall +(a3: A).((leq g a a3) \to (sc3 g a3 c t)))))))) in (let TMP_28 \def (\lambda +(n: nat).(\lambda (n0: nat).(\lambda (_: ((\forall (a3: A).((llt a3 (ASort n +n0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: +A).((leq g a3 a4) \to (sc3 g a4 c t)))))))))).(\lambda (c: C).(\lambda (t: +T).(\lambda (H0: (land (arity g c t (ASort n n0)) (sn3 c t))).(\lambda (a3: +A).(\lambda (H1: (leq g (ASort n n0) a3)).(let H2 \def H0 in (let TMP_3 \def +(ASort n n0) in (let TMP_4 \def (arity g c t TMP_3) in (let TMP_5 \def (sn3 c +t) in (let TMP_6 \def (sc3 g a3 c t) in (let TMP_27 \def (\lambda (H3: (arity +g c t (ASort n n0))).(\lambda (H4: (sn3 c t)).(let TMP_7 \def (ASort n n0) in +(let H_y \def (arity_repl g c t TMP_7 H3 a3 H1) in (let H_x \def +(leq_gen_sort1 g n n0 a3 H1) in (let H5 \def H_x in (let TMP_12 \def (\lambda +(n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_8 \def (ASort n n0) +in (let TMP_9 \def (aplus g TMP_8 k) in (let TMP_10 \def (ASort h2 n2) in +(let TMP_11 \def (aplus g TMP_10 k) in (eq A TMP_9 TMP_11)))))))) in (let +TMP_14 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let +TMP_13 \def (ASort h2 n2) in (eq A a3 TMP_13))))) in (let TMP_15 \def (sc3 g +a3 c t) in (let TMP_26 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda +(x2: nat).(\lambda (_: (eq A (aplus g (ASort n n0) x2) (aplus g (ASort x1 x0) +x2))).(\lambda (H7: (eq A a3 (ASort x1 x0))).(let TMP_16 \def (\lambda (e: +A).e) in (let TMP_17 \def (ASort x1 x0) in (let H8 \def (f_equal A A TMP_16 +a3 TMP_17 H7) in (let TMP_18 \def (\lambda (a: A).(arity g c t a)) in (let +TMP_19 \def (ASort x1 x0) in (let H9 \def (eq_ind A a3 TMP_18 H_y TMP_19 H8) +in (let TMP_20 \def (ASort x1 x0) in (let TMP_21 \def (\lambda (a: A).(sc3 g +a c t)) in (let TMP_22 \def (ASort x1 x0) in (let TMP_23 \def (arity g c t +TMP_22) in (let TMP_24 \def (sn3 c t) in (let TMP_25 \def (conj TMP_23 TMP_24 +H9 H4) in (eq_ind_r A TMP_20 TMP_21 TMP_25 a3 H8)))))))))))))))))) in +(ex2_3_ind nat nat nat TMP_12 TMP_14 TMP_15 TMP_26 H5))))))))))) in (land_ind +TMP_4 TMP_5 TMP_6 TMP_27 H2))))))))))))))) in (let TMP_72 \def (\lambda (a: +A).(\lambda (_: ((((\forall (a3: A).((llt a3 a) \to (\forall (c: C).(\forall +(t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c +t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to (\forall +(a3: A).((leq g a a3) \to (sc3 g a3 c t))))))))).(\lambda (a0: A).(\lambda +(H0: ((((\forall (a3: A).((llt a3 a0) \to (\forall (c: C).(\forall (t: +T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c +t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (\forall +(a3: A).((leq g a0 a3) \to (sc3 g a3 c t))))))))).(\lambda (H1: ((\forall +(a3: A).((llt a3 (AHead a a0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 +c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c t)))))))))).(\lambda +(c: C).(\lambda (t: T).(\lambda (H2: (land (arity g c t (AHead a a0)) +(\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: +PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is t)))))))))).(\lambda (a3: A).(\lambda (H3: (leq g (AHead a a0) a3)).(let H4 -\def H2 in (land_ind (arity g c t (AHead a a0)) (\forall (d: C).(\forall (w: -T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d -(THead (Flat Appl) w (lift1 is t)))))))) (sc3 g a3 c t) (\lambda (H5: (arity -g c t (AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w: T).((sc3 g a -d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat -Appl) w (lift1 is t)))))))))).(let H_x \def (leq_gen_head1 g a a0 a3 H3) in -(let H7 \def H_x in (ex3_2_ind A A (\lambda (a4: A).(\lambda (_: A).(leq g a -a4))) (\lambda (_: A).(\lambda (a5: A).(leq g a0 a5))) (\lambda (a4: -A).(\lambda (a5: A).(eq A a3 (AHead a4 a5)))) (sc3 g a3 c t) (\lambda (x0: -A).(\lambda (x1: A).(\lambda (H8: (leq g a x0)).(\lambda (H9: (leq g a0 -x1)).(\lambda (H10: (eq A a3 (AHead x0 x1))).(let H11 \def (f_equal A A -(\lambda (e: A).e) a3 (AHead x0 x1) H10) in (eq_ind_r A (AHead x0 x1) -(\lambda (a4: A).(sc3 g a4 c t)) (conj (arity g c t (AHead x0 x1)) (\forall -(d: C).(\forall (w: T).((sc3 g x0 d w) \to (\forall (is: PList).((drop1 is d -c) \to (sc3 g x1 d (THead (Flat Appl) w (lift1 is t)))))))) (arity_repl g c t -(AHead a a0) H5 (AHead x0 x1) (leq_head g a x0 H8 a0 x1 H9)) (\lambda (d: -C).(\lambda (w: T).(\lambda (H12: (sc3 g x0 d w)).(\lambda (is: -PList).(\lambda (H13: (drop1 is d c)).(H0 (\lambda (a4: A).(\lambda (H14: -(llt a4 a0)).(\lambda (c0: C).(\lambda (t0: T).(\lambda (H15: (sc3 g a4 c0 -t0)).(\lambda (a5: A).(\lambda (H16: (leq g a4 a5)).(H1 a4 (llt_trans a4 a0 -(AHead a a0) H14 (llt_head_dx a a0)) c0 t0 H15 a5 H16)))))))) d (THead (Flat -Appl) w (lift1 is t)) (H6 d w (H1 x0 (llt_repl g a x0 H8 (AHead a a0) -(llt_head_sx a a0)) d w H12 a (leq_sym g a x0 H8)) is H13) x1 H9))))))) a3 -H11))))))) H7))))) H4)))))))))))) a2)) a1)). -(* COMMENTS -Initial nodes: 1359 -END *) +\def H2 in (let TMP_29 \def (AHead a a0) in (let TMP_30 \def (arity g c t +TMP_29) in (let TMP_34 \def (\forall (d: C).(\forall (w: T).((sc3 g a d w) +\to (\forall (is: PList).((drop1 is d c) \to (let TMP_31 \def (Flat Appl) in +(let TMP_32 \def (lift1 is t) in (let TMP_33 \def (THead TMP_31 w TMP_32) in +(sc3 g a0 d TMP_33))))))))) in (let TMP_35 \def (sc3 g a3 c t) in (let TMP_71 +\def (\lambda (H5: (arity g c t (AHead a a0))).(\lambda (H6: ((\forall (d: +C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) +\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is t)))))))))).(let H_x \def +(leq_gen_head1 g a a0 a3 H3) in (let H7 \def H_x in (let TMP_36 \def (\lambda +(a4: A).(\lambda (_: A).(leq g a a4))) in (let TMP_37 \def (\lambda (_: +A).(\lambda (a5: A).(leq g a0 a5))) in (let TMP_39 \def (\lambda (a4: +A).(\lambda (a5: A).(let TMP_38 \def (AHead a4 a5) in (eq A a3 TMP_38)))) in +(let TMP_40 \def (sc3 g a3 c t) in (let TMP_70 \def (\lambda (x0: A).(\lambda +(x1: A).(\lambda (H8: (leq g a x0)).(\lambda (H9: (leq g a0 x1)).(\lambda +(H10: (eq A a3 (AHead x0 x1))).(let TMP_41 \def (\lambda (e: A).e) in (let +TMP_42 \def (AHead x0 x1) in (let H11 \def (f_equal A A TMP_41 a3 TMP_42 H10) +in (let TMP_43 \def (AHead x0 x1) in (let TMP_44 \def (\lambda (a4: A).(sc3 g +a4 c t)) in (let TMP_45 \def (AHead x0 x1) in (let TMP_46 \def (arity g c t +TMP_45) in (let TMP_50 \def (\forall (d: C).(\forall (w: T).((sc3 g x0 d w) +\to (\forall (is: PList).((drop1 is d c) \to (let TMP_47 \def (Flat Appl) in +(let TMP_48 \def (lift1 is t) in (let TMP_49 \def (THead TMP_47 w TMP_48) in +(sc3 g x1 d TMP_49))))))))) in (let TMP_51 \def (AHead a a0) in (let TMP_52 +\def (AHead x0 x1) in (let TMP_53 \def (leq_head g a x0 H8 a0 x1 H9) in (let +TMP_54 \def (arity_repl g c t TMP_51 H5 TMP_52 TMP_53) in (let TMP_68 \def +(\lambda (d: C).(\lambda (w: T).(\lambda (H12: (sc3 g x0 d w)).(\lambda (is: +PList).(\lambda (H13: (drop1 is d c)).(let TMP_58 \def (\lambda (a4: +A).(\lambda (H14: (llt a4 a0)).(\lambda (c0: C).(\lambda (t0: T).(\lambda +(H15: (sc3 g a4 c0 t0)).(\lambda (a5: A).(\lambda (H16: (leq g a4 a5)).(let +TMP_55 \def (AHead a a0) in (let TMP_56 \def (llt_head_dx a a0) in (let +TMP_57 \def (llt_trans a4 a0 TMP_55 H14 TMP_56) in (H1 a4 TMP_57 c0 t0 H15 a5 +H16))))))))))) in (let TMP_59 \def (Flat Appl) in (let TMP_60 \def (lift1 is +t) in (let TMP_61 \def (THead TMP_59 w TMP_60) in (let TMP_62 \def (AHead a +a0) in (let TMP_63 \def (llt_head_sx a a0) in (let TMP_64 \def (llt_repl g a +x0 H8 TMP_62 TMP_63) in (let TMP_65 \def (leq_sym g a x0 H8) in (let TMP_66 +\def (H1 x0 TMP_64 d w H12 a TMP_65) in (let TMP_67 \def (H6 d w TMP_66 is +H13) in (H0 TMP_58 d TMP_61 TMP_67 x1 H9)))))))))))))))) in (let TMP_69 \def +(conj TMP_46 TMP_50 TMP_54 TMP_68) in (eq_ind_r A TMP_43 TMP_44 TMP_69 a3 +H11)))))))))))))))))))) in (ex3_2_ind A A TMP_36 TMP_37 TMP_39 TMP_40 TMP_70 +H7)))))))))) in (land_ind TMP_30 TMP_34 TMP_35 TMP_71 H4))))))))))))))))) in +(A_ind TMP_2 TMP_28 TMP_72 a2))))) in (llt_wf_ind TMP_1 TMP_73 a1)))). theorem sc3_lift: \forall (g: G).(\forall (a: A).(\forall (e: C).(\forall (t: T).((sc3 g a e t) \to (\forall (c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a c (lift h d t)))))))))) \def - \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (e: + \lambda (g: G).(\lambda (a: A).(let TMP_2 \def (\lambda (a0: A).(\forall (e: C).(\forall (t: T).((sc3 g a0 e t) \to (\forall (c: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c (lift h d t)))))))))) -(\lambda (n: nat).(\lambda (n0: nat).(\lambda (e: C).(\lambda (t: T).(\lambda -(H: (land (arity g e t (ASort n n0)) (sn3 e t))).(\lambda (c: C).(\lambda (h: -nat).(\lambda (d: nat).(\lambda (H0: (drop h d c e)).(let H1 \def H in -(land_ind (arity g e t (ASort n n0)) (sn3 e t) (land (arity g c (lift h d t) -(ASort n n0)) (sn3 c (lift h d t))) (\lambda (H2: (arity g e t (ASort n -n0))).(\lambda (H3: (sn3 e t)).(conj (arity g c (lift h d t) (ASort n n0)) -(sn3 c (lift h d t)) (arity_lift g e t (ASort n n0) H2 c h d H0) (sn3_lift e -t H3 c h d H0)))) H1))))))))))) (\lambda (a0: A).(\lambda (_: ((\forall (e: -C).(\forall (t: T).((sc3 g a0 e t) \to (\forall (c: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c (lift h d -t))))))))))).(\lambda (a1: A).(\lambda (_: ((\forall (e: C).(\forall (t: -T).((sc3 g a1 e t) \to (\forall (c: C).(\forall (h: nat).(\forall (d: -nat).((drop h d c e) \to (sc3 g a1 c (lift h d t))))))))))).(\lambda (e: -C).(\lambda (t: T).(\lambda (H1: (land (arity g e t (AHead a0 a1)) (\forall -(d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d -e) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t)))))))))).(\lambda (c: -C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: (drop h d c e)).(let H3 -\def H1 in (land_ind (arity g e t (AHead a0 a1)) (\forall (d0: C).(\forall -(w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) \to (sc3 g -a1 d0 (THead (Flat Appl) w (lift1 is t)))))))) (land (arity g c (lift h d t) -(AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall -(is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is -(lift h d t)))))))))) (\lambda (H4: (arity g e t (AHead a0 a1))).(\lambda -(H5: ((\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: -PList).((drop1 is d0 e) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is -t)))))))))).(conj (arity g c (lift h d t) (AHead a0 a1)) (\forall (d0: -C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) -\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (lift h d t))))))))) -(arity_lift g e t (AHead a0 a1) H4 c h d H2) (\lambda (d0: C).(\lambda (w: +nat).(\forall (d: nat).((drop h d c e) \to (let TMP_1 \def (lift h d t) in +(sc3 g a0 c TMP_1)))))))))) in (let TMP_21 \def (\lambda (n: nat).(\lambda +(n0: nat).(\lambda (e: C).(\lambda (t: T).(\lambda (H: (land (arity g e t +(ASort n n0)) (sn3 e t))).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: +nat).(\lambda (H0: (drop h d c e)).(let H1 \def H in (let TMP_3 \def (ASort n +n0) in (let TMP_4 \def (arity g e t TMP_3) in (let TMP_5 \def (sn3 e t) in +(let TMP_6 \def (lift h d t) in (let TMP_7 \def (ASort n n0) in (let TMP_8 +\def (arity g c TMP_6 TMP_7) in (let TMP_9 \def (lift h d t) in (let TMP_10 +\def (sn3 c TMP_9) in (let TMP_11 \def (land TMP_8 TMP_10) in (let TMP_20 +\def (\lambda (H2: (arity g e t (ASort n n0))).(\lambda (H3: (sn3 e t)).(let +TMP_12 \def (lift h d t) in (let TMP_13 \def (ASort n n0) in (let TMP_14 \def +(arity g c TMP_12 TMP_13) in (let TMP_15 \def (lift h d t) in (let TMP_16 +\def (sn3 c TMP_15) in (let TMP_17 \def (ASort n n0) in (let TMP_18 \def +(arity_lift g e t TMP_17 H2 c h d H0) in (let TMP_19 \def (sn3_lift e t H3 c +h d H0) in (conj TMP_14 TMP_16 TMP_18 TMP_19))))))))))) in (land_ind TMP_4 +TMP_5 TMP_11 TMP_20 H1))))))))))))))))))))) in (let TMP_60 \def (\lambda (a0: +A).(\lambda (_: ((\forall (e: C).(\forall (t: T).((sc3 g a0 e t) \to (\forall +(c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c +(lift h d t))))))))))).(\lambda (a1: A).(\lambda (_: ((\forall (e: +C).(\forall (t: T).((sc3 g a1 e t) \to (\forall (c: C).(\forall (h: +nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a1 c (lift h d +t))))))))))).(\lambda (e: C).(\lambda (t: T).(\lambda (H1: (land (arity g e t +(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall +(is: PList).((drop1 is d e) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is +t)))))))))).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: +(drop h d c e)).(let H3 \def H1 in (let TMP_22 \def (AHead a0 a1) in (let +TMP_23 \def (arity g e t TMP_22) in (let TMP_27 \def (\forall (d0: +C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) +\to (let TMP_24 \def (Flat Appl) in (let TMP_25 \def (lift1 is t) in (let +TMP_26 \def (THead TMP_24 w TMP_25) in (sc3 g a1 d0 TMP_26))))))))) in (let +TMP_28 \def (lift h d t) in (let TMP_29 \def (AHead a0 a1) in (let TMP_30 +\def (arity g c TMP_28 TMP_29) in (let TMP_35 \def (\forall (d0: C).(\forall +(w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (let +TMP_31 \def (Flat Appl) in (let TMP_32 \def (lift h d t) in (let TMP_33 \def +(lift1 is TMP_32) in (let TMP_34 \def (THead TMP_31 w TMP_33) in (sc3 g a1 d0 +TMP_34)))))))))) in (let TMP_36 \def (land TMP_30 TMP_35) in (let TMP_59 \def +(\lambda (H4: (arity g e t (AHead a0 a1))).(\lambda (H5: ((\forall (d0: +C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) +\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is t)))))))))).(let TMP_37 \def +(lift h d t) in (let TMP_38 \def (AHead a0 a1) in (let TMP_39 \def (arity g c +TMP_37 TMP_38) in (let TMP_44 \def (\forall (d0: C).(\forall (w: T).((sc3 g +a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (let TMP_40 \def (Flat +Appl) in (let TMP_41 \def (lift h d t) in (let TMP_42 \def (lift1 is TMP_41) +in (let TMP_43 \def (THead TMP_40 w TMP_42) in (sc3 g a1 d0 TMP_43)))))))))) +in (let TMP_45 \def (AHead a0 a1) in (let TMP_46 \def (arity_lift g e t +TMP_45 H4 c h d H2) in (let TMP_58 \def (\lambda (d0: C).(\lambda (w: T).(\lambda (H6: (sc3 g a0 d0 w)).(\lambda (is: PList).(\lambda (H7: (drop1 -is d0 c)).(let H_y \def (H5 d0 w H6 (PConsTail is h d)) in (eq_ind T (lift1 -(PConsTail is h d) t) (\lambda (t0: T).(sc3 g a1 d0 (THead (Flat Appl) w -t0))) (H_y (drop1_cons_tail c e h d H2 is d0 H7)) (lift1 is (lift h d t)) -(lift1_cons_tail t h d is))))))))))) H3))))))))))))) a)). -(* COMMENTS -Initial nodes: 849 -END *) +is d0 c)).(let TMP_47 \def (PConsTail is h d) in (let H_y \def (H5 d0 w H6 +TMP_47) in (let TMP_48 \def (PConsTail is h d) in (let TMP_49 \def (lift1 +TMP_48 t) in (let TMP_52 \def (\lambda (t0: T).(let TMP_50 \def (Flat Appl) +in (let TMP_51 \def (THead TMP_50 w t0) in (sc3 g a1 d0 TMP_51)))) in (let +TMP_53 \def (drop1_cons_tail c e h d H2 is d0 H7) in (let TMP_54 \def (H_y +TMP_53) in (let TMP_55 \def (lift h d t) in (let TMP_56 \def (lift1 is +TMP_55) in (let TMP_57 \def (lift1_cons_tail t h d is) in (eq_ind T TMP_49 +TMP_52 TMP_54 TMP_56 TMP_57)))))))))))))))) in (conj TMP_39 TMP_44 TMP_46 +TMP_58)))))))))) in (land_ind TMP_23 TMP_27 TMP_36 TMP_59 +H3)))))))))))))))))))))) in (A_ind TMP_2 TMP_21 TMP_60 a))))). theorem sc3_lift1: \forall (g: G).(\forall (e: C).(\forall (a: A).(\forall (hds: PList).(\forall (c: C).(\forall (t: T).((sc3 g a e t) \to ((drop1 hds c e) \to (sc3 g a c (lift1 hds t))))))))) \def - \lambda (g: G).(\lambda (e: C).(\lambda (a: A).(\lambda (hds: -PList).(PList_ind (\lambda (p: PList).(\forall (c: C).(\forall (t: T).((sc3 g -a e t) \to ((drop1 p c e) \to (sc3 g a c (lift1 p t))))))) (\lambda (c: -C).(\lambda (t: T).(\lambda (H: (sc3 g a e t)).(\lambda (H0: (drop1 PNil c -e)).(let H_y \def (drop1_gen_pnil c e H0) in (eq_ind_r C e (\lambda (c0: -C).(sc3 g a c0 t)) H c H_y)))))) (\lambda (n: nat).(\lambda (n0: -nat).(\lambda (p: PList).(\lambda (H: ((\forall (c: C).(\forall (t: T).((sc3 -g a e t) \to ((drop1 p c e) \to (sc3 g a c (lift1 p t)))))))).(\lambda (c: -C).(\lambda (t: T).(\lambda (H0: (sc3 g a e t)).(\lambda (H1: (drop1 (PCons n -n0 p) c e)).(let H_x \def (drop1_gen_pcons c e p n n0 H1) in (let H2 \def H_x -in (ex2_ind C (\lambda (c2: C).(drop n n0 c c2)) (\lambda (c2: C).(drop1 p c2 -e)) (sc3 g a c (lift n n0 (lift1 p t))) (\lambda (x: C).(\lambda (H3: (drop n -n0 c x)).(\lambda (H4: (drop1 p x e)).(sc3_lift g a x (lift1 p t) (H x t H0 -H4) c n n0 H3)))) H2))))))))))) hds)))). -(* COMMENTS -Initial nodes: 289 -END *) + \lambda (g: G).(\lambda (e: C).(\lambda (a: A).(\lambda (hds: PList).(let +TMP_2 \def (\lambda (p: PList).(\forall (c: C).(\forall (t: T).((sc3 g a e t) +\to ((drop1 p c e) \to (let TMP_1 \def (lift1 p t) in (sc3 g a c TMP_1))))))) +in (let TMP_4 \def (\lambda (c: C).(\lambda (t: T).(\lambda (H: (sc3 g a e +t)).(\lambda (H0: (drop1 PNil c e)).(let H_y \def (drop1_gen_pnil c e H0) in +(let TMP_3 \def (\lambda (c0: C).(sc3 g a c0 t)) in (eq_ind_r C e TMP_3 H c +H_y))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda +(p: PList).(\lambda (H: ((\forall (c: C).(\forall (t: T).((sc3 g a e t) \to +((drop1 p c e) \to (sc3 g a c (lift1 p t)))))))).(\lambda (c: C).(\lambda (t: +T).(\lambda (H0: (sc3 g a e t)).(\lambda (H1: (drop1 (PCons n n0 p) c +e)).(let H_x \def (drop1_gen_pcons c e p n n0 H1) in (let H2 \def H_x in (let +TMP_5 \def (\lambda (c2: C).(drop n n0 c c2)) in (let TMP_6 \def (\lambda +(c2: C).(drop1 p c2 e)) in (let TMP_7 \def (lift1 p t) in (let TMP_8 \def +(lift n n0 TMP_7) in (let TMP_9 \def (sc3 g a c TMP_8) in (let TMP_12 \def +(\lambda (x: C).(\lambda (H3: (drop n n0 c x)).(\lambda (H4: (drop1 p x +e)).(let TMP_10 \def (lift1 p t) in (let TMP_11 \def (H x t H0 H4) in +(sc3_lift g a x TMP_10 TMP_11 c n n0 H3)))))) in (ex2_ind C TMP_5 TMP_6 TMP_9 +TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 hds))))))). theorem sc3_abbr: \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (i: @@ -203,28 +252,42 @@ nat).(\forall (d: C).(\forall (v: T).(\forall (c: C).((sc3 g a c (THeads (Flat Appl) vs (lift (S i) O v))) \to ((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a c (THeads (Flat Appl) vs (TLRef i))))))))))) \def - \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (vs: -TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: + \lambda (g: G).(\lambda (a: A).(let TMP_4 \def (\lambda (a0: A).(\forall +(vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: C).((sc3 g a0 c (THeads (Flat Appl) vs (lift (S i) O v))) \to ((getl i c -(CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads (Flat Appl) vs (TLRef -i))))))))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (vs: -TList).(\lambda (i: nat).(\lambda (d: C).(\lambda (v: T).(\lambda (c: -C).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs (lift (S i) O v)) -(ASort n n0)) (sn3 c (THeads (Flat Appl) vs (lift (S i) O v))))).(\lambda -(H0: (getl i c (CHead d (Bind Abbr) v))).(let H1 \def H in (land_ind (arity g -c (THeads (Flat Appl) vs (lift (S i) O v)) (ASort n n0)) (sn3 c (THeads (Flat -Appl) vs (lift (S i) O v))) (land (arity g c (THeads (Flat Appl) vs (TLRef -i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i)))) (\lambda (H2: -(arity g c (THeads (Flat Appl) vs (lift (S i) O v)) (ASort n n0))).(\lambda -(H3: (sn3 c (THeads (Flat Appl) vs (lift (S i) O v)))).(conj (arity g c -(THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs -(TLRef i))) (arity_appls_abbr g c d v i H0 vs (ASort n n0) H2) -(sn3_appls_abbr c d v i H0 vs H3)))) H1))))))))))) (\lambda (a0: A).(\lambda -(_: ((\forall (vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: -T).(\forall (c: C).((sc3 g a0 c (THeads (Flat Appl) vs (lift (S i) O v))) \to -((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads (Flat Appl) vs -(TLRef i)))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall (vs: -TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: +(CHead d (Bind Abbr) v)) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def +(TLRef i) in (let TMP_3 \def (THeads TMP_1 vs TMP_2) in (sc3 g a0 c +TMP_3)))))))))))) in (let TMP_39 \def (\lambda (n: nat).(\lambda (n0: +nat).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda (v: +T).(\lambda (c: C).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs (lift +(S i) O v)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (lift (S i) O +v))))).(\lambda (H0: (getl i c (CHead d (Bind Abbr) v))).(let H1 \def H in +(let TMP_5 \def (Flat Appl) in (let TMP_6 \def (S i) in (let TMP_7 \def (lift +TMP_6 O v) in (let TMP_8 \def (THeads TMP_5 vs TMP_7) in (let TMP_9 \def +(ASort n n0) in (let TMP_10 \def (arity g c TMP_8 TMP_9) in (let TMP_11 \def +(Flat Appl) in (let TMP_12 \def (S i) in (let TMP_13 \def (lift TMP_12 O v) +in (let TMP_14 \def (THeads TMP_11 vs TMP_13) in (let TMP_15 \def (sn3 c +TMP_14) in (let TMP_16 \def (Flat Appl) in (let TMP_17 \def (TLRef i) in (let +TMP_18 \def (THeads TMP_16 vs TMP_17) in (let TMP_19 \def (ASort n n0) in +(let TMP_20 \def (arity g c TMP_18 TMP_19) in (let TMP_21 \def (Flat Appl) in +(let TMP_22 \def (TLRef i) in (let TMP_23 \def (THeads TMP_21 vs TMP_22) in +(let TMP_24 \def (sn3 c TMP_23) in (let TMP_25 \def (land TMP_20 TMP_24) in +(let TMP_38 \def (\lambda (H2: (arity g c (THeads (Flat Appl) vs (lift (S i) +O v)) (ASort n n0))).(\lambda (H3: (sn3 c (THeads (Flat Appl) vs (lift (S i) +O v)))).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let +TMP_28 \def (THeads TMP_26 vs TMP_27) in (let TMP_29 \def (ASort n n0) in +(let TMP_30 \def (arity g c TMP_28 TMP_29) in (let TMP_31 \def (Flat Appl) in +(let TMP_32 \def (TLRef i) in (let TMP_33 \def (THeads TMP_31 vs TMP_32) in +(let TMP_34 \def (sn3 c TMP_33) in (let TMP_35 \def (ASort n n0) in (let +TMP_36 \def (arity_appls_abbr g c d v i H0 vs TMP_35 H2) in (let TMP_37 \def +(sn3_appls_abbr c d v i H0 vs H3) in (conj TMP_30 TMP_34 TMP_36 +TMP_37))))))))))))))) in (land_ind TMP_10 TMP_15 TMP_25 TMP_38 +H1))))))))))))))))))))))))))))))))) in (let TMP_166 \def (\lambda (a0: +A).(\lambda (_: ((\forall (vs: TList).(\forall (i: nat).(\forall (d: +C).(\forall (v: T).(\forall (c: C).((sc3 g a0 c (THeads (Flat Appl) vs (lift +(S i) O v))) \to ((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads +(Flat Appl) vs (TLRef i)))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall +(vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: C).((sc3 g a1 c (THeads (Flat Appl) vs (lift (S i) O v))) \to ((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a1 c (THeads (Flat Appl) vs (TLRef i)))))))))))).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda @@ -232,45 +295,91 @@ i)))))))))))).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda (lift (S i) O v)) (AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (lift (S i) O v)))))))))))).(\lambda -(H2: (getl i c (CHead d (Bind Abbr) v))).(let H3 \def H1 in (land_ind (arity -g c (THeads (Flat Appl) vs (lift (S i) O v)) (AHead a0 a1)) (\forall (d0: +(H2: (getl i c (CHead d (Bind Abbr) v))).(let H3 \def H1 in (let TMP_40 \def +(Flat Appl) in (let TMP_41 \def (S i) in (let TMP_42 \def (lift TMP_41 O v) +in (let TMP_43 \def (THeads TMP_40 vs TMP_42) in (let TMP_44 \def (AHead a0 +a1) in (let TMP_45 \def (arity g c TMP_43 TMP_44) in (let TMP_53 \def +(\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: +PList).((drop1 is d0 c) \to (let TMP_46 \def (Flat Appl) in (let TMP_47 \def +(Flat Appl) in (let TMP_48 \def (S i) in (let TMP_49 \def (lift TMP_48 O v) +in (let TMP_50 \def (THeads TMP_47 vs TMP_49) in (let TMP_51 \def (lift1 is +TMP_50) in (let TMP_52 \def (THead TMP_46 w TMP_51) in (sc3 g a1 d0 +TMP_52))))))))))))) in (let TMP_54 \def (Flat Appl) in (let TMP_55 \def +(TLRef i) in (let TMP_56 \def (THeads TMP_54 vs TMP_55) in (let TMP_57 \def +(AHead a0 a1) in (let TMP_58 \def (arity g c TMP_56 TMP_57) in (let TMP_65 +\def (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: +PList).((drop1 is d0 c) \to (let TMP_59 \def (Flat Appl) in (let TMP_60 \def +(Flat Appl) in (let TMP_61 \def (TLRef i) in (let TMP_62 \def (THeads TMP_60 +vs TMP_61) in (let TMP_63 \def (lift1 is TMP_62) in (let TMP_64 \def (THead +TMP_59 w TMP_63) in (sc3 g a1 d0 TMP_64)))))))))))) in (let TMP_66 \def (land +TMP_58 TMP_65) in (let TMP_165 \def (\lambda (H4: (arity g c (THeads (Flat +Appl) vs (lift (S i) O v)) (AHead a0 a1))).(\lambda (H5: ((\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (lift -(S i) O v)))))))))) (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead -a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: -PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is -(THeads (Flat Appl) vs (TLRef i))))))))))) (\lambda (H4: (arity g c (THeads -(Flat Appl) vs (lift (S i) O v)) (AHead a0 a1))).(\lambda (H5: ((\forall (d0: -C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) -\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (lift -(S i) O v)))))))))))).(conj (arity g c (THeads (Flat Appl) vs (TLRef i)) -(AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall -(is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is -(THeads (Flat Appl) vs (TLRef i)))))))))) (arity_appls_abbr g c d v i H2 vs -(AHead a0 a1) H4) (\lambda (d0: C).(\lambda (w: T).(\lambda (H6: (sc3 g a0 d0 -w)).(\lambda (is: PList).(\lambda (H7: (drop1 is d0 c)).(let H_x \def -(drop1_getl_trans is c d0 H7 Abbr d v i H2) in (let H8 \def H_x in (ex2_ind C -(\lambda (e2: C).(drop1 (ptrans is i) e2 d)) (\lambda (e2: C).(getl (trans is -i) d0 (CHead e2 (Bind Abbr) (lift1 (ptrans is i) v)))) (sc3 g a1 d0 (THead -(Flat Appl) w (lift1 is (THeads (Flat Appl) vs (TLRef i))))) (\lambda (x: -C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H10: (getl (trans is i) -d0 (CHead x (Bind Abbr) (lift1 (ptrans is i) v)))).(let H_y \def (H0 (TCons w -(lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 is vs) (lift1 is -(TLRef i))) (\lambda (t: T).(sc3 g a1 d0 (THead (Flat Appl) w t))) (eq_ind_r -T (TLRef (trans is i)) (\lambda (t: T).(sc3 g a1 d0 (THead (Flat Appl) w -(THeads (Flat Appl) (lifts1 is vs) t)))) (H_y (trans is i) x (lift1 (ptrans -is i) v) d0 (eq_ind T (lift1 is (lift (S i) O v)) (\lambda (t: T).(sc3 g a1 -d0 (THead (Flat Appl) w (THeads (Flat Appl) (lifts1 is vs) t)))) (eq_ind T -(lift1 is (THeads (Flat Appl) vs (lift (S i) O v))) (\lambda (t: T).(sc3 g a1 -d0 (THead (Flat Appl) w t))) (H5 d0 w H6 is H7) (THeads (Flat Appl) (lifts1 -is vs) (lift1 is (lift (S i) O v))) (lifts1_flat Appl is (lift (S i) O v) -vs)) (lift (S (trans is i)) O (lift1 (ptrans is i) v)) (lift1_free is i v)) -H10) (lift1 is (TLRef i)) (lift1_lref is i)) (lift1 is (THeads (Flat Appl) vs -(TLRef i))) (lifts1_flat Appl is (TLRef i) vs)))))) H8))))))))))) -H3))))))))))))) a)). -(* COMMENTS -Initial nodes: 1563 -END *) +(S i) O v)))))))))))).(let TMP_67 \def (Flat Appl) in (let TMP_68 \def (TLRef +i) in (let TMP_69 \def (THeads TMP_67 vs TMP_68) in (let TMP_70 \def (AHead +a0 a1) in (let TMP_71 \def (arity g c TMP_69 TMP_70) in (let TMP_78 \def +(\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: +PList).((drop1 is d0 c) \to (let TMP_72 \def (Flat Appl) in (let TMP_73 \def +(Flat Appl) in (let TMP_74 \def (TLRef i) in (let TMP_75 \def (THeads TMP_73 +vs TMP_74) in (let TMP_76 \def (lift1 is TMP_75) in (let TMP_77 \def (THead +TMP_72 w TMP_76) in (sc3 g a1 d0 TMP_77)))))))))))) in (let TMP_79 \def +(AHead a0 a1) in (let TMP_80 \def (arity_appls_abbr g c d v i H2 vs TMP_79 +H4) in (let TMP_164 \def (\lambda (d0: C).(\lambda (w: T).(\lambda (H6: (sc3 +g a0 d0 w)).(\lambda (is: PList).(\lambda (H7: (drop1 is d0 c)).(let H_x \def +(drop1_getl_trans is c d0 H7 Abbr d v i H2) in (let H8 \def H_x in (let +TMP_82 \def (\lambda (e2: C).(let TMP_81 \def (ptrans is i) in (drop1 TMP_81 +e2 d))) in (let TMP_88 \def (\lambda (e2: C).(let TMP_83 \def (trans is i) in +(let TMP_84 \def (Bind Abbr) in (let TMP_85 \def (ptrans is i) in (let TMP_86 +\def (lift1 TMP_85 v) in (let TMP_87 \def (CHead e2 TMP_84 TMP_86) in (getl +TMP_83 d0 TMP_87))))))) in (let TMP_89 \def (Flat Appl) in (let TMP_90 \def +(Flat Appl) in (let TMP_91 \def (TLRef i) in (let TMP_92 \def (THeads TMP_90 +vs TMP_91) in (let TMP_93 \def (lift1 is TMP_92) in (let TMP_94 \def (THead +TMP_89 w TMP_93) in (let TMP_95 \def (sc3 g a1 d0 TMP_94) in (let TMP_163 +\def (\lambda (x: C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H10: +(getl (trans is i) d0 (CHead x (Bind Abbr) (lift1 (ptrans is i) v)))).(let +TMP_96 \def (lifts1 is vs) in (let TMP_97 \def (TCons w TMP_96) in (let H_y +\def (H0 TMP_97) in (let TMP_98 \def (Flat Appl) in (let TMP_99 \def (lifts1 +is vs) in (let TMP_100 \def (TLRef i) in (let TMP_101 \def (lift1 is TMP_100) +in (let TMP_102 \def (THeads TMP_98 TMP_99 TMP_101) in (let TMP_105 \def +(\lambda (t: T).(let TMP_103 \def (Flat Appl) in (let TMP_104 \def (THead +TMP_103 w t) in (sc3 g a1 d0 TMP_104)))) in (let TMP_106 \def (trans is i) in +(let TMP_107 \def (TLRef TMP_106) in (let TMP_113 \def (\lambda (t: T).(let +TMP_108 \def (Flat Appl) in (let TMP_109 \def (Flat Appl) in (let TMP_110 +\def (lifts1 is vs) in (let TMP_111 \def (THeads TMP_109 TMP_110 t) in (let +TMP_112 \def (THead TMP_108 w TMP_111) in (sc3 g a1 d0 TMP_112))))))) in (let +TMP_114 \def (trans is i) in (let TMP_115 \def (ptrans is i) in (let TMP_116 +\def (lift1 TMP_115 v) in (let TMP_117 \def (S i) in (let TMP_118 \def (lift +TMP_117 O v) in (let TMP_119 \def (lift1 is TMP_118) in (let TMP_125 \def +(\lambda (t: T).(let TMP_120 \def (Flat Appl) in (let TMP_121 \def (Flat +Appl) in (let TMP_122 \def (lifts1 is vs) in (let TMP_123 \def (THeads +TMP_121 TMP_122 t) in (let TMP_124 \def (THead TMP_120 w TMP_123) in (sc3 g +a1 d0 TMP_124))))))) in (let TMP_126 \def (Flat Appl) in (let TMP_127 \def (S +i) in (let TMP_128 \def (lift TMP_127 O v) in (let TMP_129 \def (THeads +TMP_126 vs TMP_128) in (let TMP_130 \def (lift1 is TMP_129) in (let TMP_133 +\def (\lambda (t: T).(let TMP_131 \def (Flat Appl) in (let TMP_132 \def +(THead TMP_131 w t) in (sc3 g a1 d0 TMP_132)))) in (let TMP_134 \def (H5 d0 w +H6 is H7) in (let TMP_135 \def (Flat Appl) in (let TMP_136 \def (lifts1 is +vs) in (let TMP_137 \def (S i) in (let TMP_138 \def (lift TMP_137 O v) in +(let TMP_139 \def (lift1 is TMP_138) in (let TMP_140 \def (THeads TMP_135 +TMP_136 TMP_139) in (let TMP_141 \def (S i) in (let TMP_142 \def (lift +TMP_141 O v) in (let TMP_143 \def (lifts1_flat Appl is TMP_142 vs) in (let +TMP_144 \def (eq_ind T TMP_130 TMP_133 TMP_134 TMP_140 TMP_143) in (let +TMP_145 \def (trans is i) in (let TMP_146 \def (S TMP_145) in (let TMP_147 +\def (ptrans is i) in (let TMP_148 \def (lift1 TMP_147 v) in (let TMP_149 +\def (lift TMP_146 O TMP_148) in (let TMP_150 \def (lift1_free is i v) in +(let TMP_151 \def (eq_ind T TMP_119 TMP_125 TMP_144 TMP_149 TMP_150) in (let +TMP_152 \def (H_y TMP_114 x TMP_116 d0 TMP_151 H10) in (let TMP_153 \def +(TLRef i) in (let TMP_154 \def (lift1 is TMP_153) in (let TMP_155 \def +(lift1_lref is i) in (let TMP_156 \def (eq_ind_r T TMP_107 TMP_113 TMP_152 +TMP_154 TMP_155) in (let TMP_157 \def (Flat Appl) in (let TMP_158 \def (TLRef +i) in (let TMP_159 \def (THeads TMP_157 vs TMP_158) in (let TMP_160 \def +(lift1 is TMP_159) in (let TMP_161 \def (TLRef i) in (let TMP_162 \def +(lifts1_flat Appl is TMP_161 vs) in (eq_ind_r T TMP_102 TMP_105 TMP_156 +TMP_160 TMP_162)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in +(ex2_ind C TMP_82 TMP_88 TMP_95 TMP_163 H8)))))))))))))))))) in (conj TMP_71 +TMP_78 TMP_80 TMP_164)))))))))))) in (land_ind TMP_45 TMP_53 TMP_66 TMP_165 +H3)))))))))))))))))))))))))))) in (A_ind TMP_4 TMP_39 TMP_166 a))))). theorem sc3_cast: \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (c: C).(\forall @@ -278,114 +387,217 @@ theorem sc3_cast: T).((sc3 g a c (THeads (Flat Appl) vs t)) \to (sc3 g a c (THeads (Flat Appl) vs (THead (Flat Cast) u t)))))))))) \def - \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (vs: -TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads (Flat -Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs t)) \to -(sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Cast) u t)))))))))) (\lambda -(n: nat).(\lambda (n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: -T).(\lambda (H: (sc3 g (match n with [O \Rightarrow (ASort O (next g n0)) | -(S h) \Rightarrow (ASort h n0)]) c (THeads (Flat Appl) vs u))).(\lambda (t: -T).(\lambda (H0: (land (arity g c (THeads (Flat Appl) vs t) (ASort n n0)) -(sn3 c (THeads (Flat Appl) vs t)))).(nat_ind (\lambda (n1: nat).((sc3 g -(match n1 with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow -(ASort h n0)]) c (THeads (Flat Appl) vs u)) \to ((land (arity g c (THeads -(Flat Appl) vs t) (ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (land -(arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort n1 n0)) -(sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u t))))))) (\lambda (H1: -(sc3 g (ASort O (next g n0)) c (THeads (Flat Appl) vs u))).(\lambda (H2: -(land (arity g c (THeads (Flat Appl) vs t) (ASort O n0)) (sn3 c (THeads (Flat -Appl) vs t)))).(let H3 \def H1 in (land_ind (arity g c (THeads (Flat Appl) vs -u) (ASort O (next g n0))) (sn3 c (THeads (Flat Appl) vs u)) (land (arity g c -(THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort O n0)) (sn3 c (THeads -(Flat Appl) vs (THead (Flat Cast) u t)))) (\lambda (H4: (arity g c (THeads -(Flat Appl) vs u) (ASort O (next g n0)))).(\lambda (H5: (sn3 c (THeads (Flat -Appl) vs u))).(let H6 \def H2 in (land_ind (arity g c (THeads (Flat Appl) vs -t) (ASort O n0)) (sn3 c (THeads (Flat Appl) vs t)) (land (arity g c (THeads -(Flat Appl) vs (THead (Flat Cast) u t)) (ASort O n0)) (sn3 c (THeads (Flat -Appl) vs (THead (Flat Cast) u t)))) (\lambda (H7: (arity g c (THeads (Flat -Appl) vs t) (ASort O n0))).(\lambda (H8: (sn3 c (THeads (Flat Appl) vs -t))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort -O n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u t))) -(arity_appls_cast g c u t vs (ASort O n0) H4 H7) (sn3_appls_cast c vs u H5 t -H8)))) H6)))) H3)))) (\lambda (n1: nat).(\lambda (_: (((sc3 g (match n1 with -[O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) c + \lambda (g: G).(\lambda (a: A).(let TMP_5 \def (\lambda (a0: A).(\forall +(vs: TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads +(Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs +t)) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Cast) in (let +TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THeads TMP_1 vs TMP_3) in +(sc3 g a0 c TMP_4)))))))))))) in (let TMP_134 \def (\lambda (n: nat).(\lambda +(n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: T).(\lambda (H: +(sc3 g (match n with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow +(ASort h n0)]) c (THeads (Flat Appl) vs u))).(\lambda (t: T).(\lambda (H0: +(land (arity g c (THeads (Flat Appl) vs t) (ASort n n0)) (sn3 c (THeads (Flat +Appl) vs t)))).(let TMP_17 \def (\lambda (n1: nat).((sc3 g (match n1 with [O +\Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) c (THeads (Flat Appl) vs u)) \to ((land (arity g c (THeads (Flat Appl) vs t) -(ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (land (arity g c -(THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort n1 n0)) (sn3 c (THeads -(Flat Appl) vs (THead (Flat Cast) u t)))))))).(\lambda (H1: (sc3 g (ASort n1 -n0) c (THeads (Flat Appl) vs u))).(\lambda (H2: (land (arity g c (THeads -(Flat Appl) vs t) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs t)))).(let -H3 \def H1 in (land_ind (arity g c (THeads (Flat Appl) vs u) (ASort n1 n0)) -(sn3 c (THeads (Flat Appl) vs u)) (land (arity g c (THeads (Flat Appl) vs -(THead (Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs -(THead (Flat Cast) u t)))) (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) -(ASort n1 n0))).(\lambda (H5: (sn3 c (THeads (Flat Appl) vs u))).(let H6 \def -H2 in (land_ind (arity g c (THeads (Flat Appl) vs t) (ASort (S n1) n0)) (sn3 -c (THeads (Flat Appl) vs t)) (land (arity g c (THeads (Flat Appl) vs (THead -(Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs (THead -(Flat Cast) u t)))) (\lambda (H7: (arity g c (THeads (Flat Appl) vs t) (ASort -(S n1) n0))).(\lambda (H8: (sn3 c (THeads (Flat Appl) vs t))).(conj (arity g -c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c -(THeads (Flat Appl) vs (THead (Flat Cast) u t))) (arity_appls_cast g c u t vs -(ASort (S n1) n0) H4 H7) (sn3_appls_cast c vs u H5 t H8)))) H6)))) H3)))))) n -H H0))))))))) (\lambda (a0: A).(\lambda (_: ((\forall (vs: TList).(\forall -(c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads (Flat Appl) vs u)) \to -(\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs t)) \to (sc3 g a0 c -(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))).(\lambda (a1: -A).(\lambda (H0: ((\forall (vs: TList).(\forall (c: C).(\forall (u: T).((sc3 -g (asucc g a1) c (THeads (Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a1 c -(THeads (Flat Appl) vs t)) \to (sc3 g a1 c (THeads (Flat Appl) vs (THead -(Flat Cast) u t))))))))))).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: -T).(\lambda (H1: (land (arity g c (THeads (Flat Appl) vs u) (AHead a0 (asucc -g a1))) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead (Flat Appl) w (lift1 -is (THeads (Flat Appl) vs u))))))))))).(\lambda (t: T).(\lambda (H2: (land -(arity g c (THeads (Flat Appl) vs t) (AHead a0 a1)) (\forall (d: C).(\forall -(w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 -d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs t))))))))))).(let H3 -\def H1 in (land_ind (arity g c (THeads (Flat Appl) vs u) (AHead a0 (asucc g -a1))) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead (Flat Appl) w (lift1 -is (THeads (Flat Appl) vs u))))))))) (land (arity g c (THeads (Flat Appl) vs -(THead (Flat Cast) u t)) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 -g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead -(Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead (Flat Cast) u -t))))))))))) (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) (AHead a0 -(asucc g a1)))).(\lambda (H5: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d -w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead -(Flat Appl) w (lift1 is (THeads (Flat Appl) vs u))))))))))).(let H6 \def H2 -in (land_ind (arity g c (THeads (Flat Appl) vs t) (AHead a0 a1)) (\forall (d: +(ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (let TMP_6 \def (Flat +Appl) in (let TMP_7 \def (Flat Cast) in (let TMP_8 \def (THead TMP_7 u t) in +(let TMP_9 \def (THeads TMP_6 vs TMP_8) in (let TMP_10 \def (ASort n1 n0) in +(let TMP_11 \def (arity g c TMP_9 TMP_10) in (let TMP_12 \def (Flat Appl) in +(let TMP_13 \def (Flat Cast) in (let TMP_14 \def (THead TMP_13 u t) in (let +TMP_15 \def (THeads TMP_12 vs TMP_14) in (let TMP_16 \def (sn3 c TMP_15) in +(land TMP_11 TMP_16))))))))))))))) in (let TMP_73 \def (\lambda (H1: (sc3 g +(ASort O (next g n0)) c (THeads (Flat Appl) vs u))).(\lambda (H2: (land +(arity g c (THeads (Flat Appl) vs t) (ASort O n0)) (sn3 c (THeads (Flat Appl) +vs t)))).(let H3 \def H1 in (let TMP_18 \def (Flat Appl) in (let TMP_19 \def +(THeads TMP_18 vs u) in (let TMP_20 \def (next g n0) in (let TMP_21 \def +(ASort O TMP_20) in (let TMP_22 \def (arity g c TMP_19 TMP_21) in (let TMP_23 +\def (Flat Appl) in (let TMP_24 \def (THeads TMP_23 vs u) in (let TMP_25 \def +(sn3 c TMP_24) in (let TMP_26 \def (Flat Appl) in (let TMP_27 \def (Flat +Cast) in (let TMP_28 \def (THead TMP_27 u t) in (let TMP_29 \def (THeads +TMP_26 vs TMP_28) in (let TMP_30 \def (ASort O n0) in (let TMP_31 \def (arity +g c TMP_29 TMP_30) in (let TMP_32 \def (Flat Appl) in (let TMP_33 \def (Flat +Cast) in (let TMP_34 \def (THead TMP_33 u t) in (let TMP_35 \def (THeads +TMP_32 vs TMP_34) in (let TMP_36 \def (sn3 c TMP_35) in (let TMP_37 \def +(land TMP_31 TMP_36) in (let TMP_72 \def (\lambda (H4: (arity g c (THeads +(Flat Appl) vs u) (ASort O (next g n0)))).(\lambda (H5: (sn3 c (THeads (Flat +Appl) vs u))).(let H6 \def H2 in (let TMP_38 \def (Flat Appl) in (let TMP_39 +\def (THeads TMP_38 vs t) in (let TMP_40 \def (ASort O n0) in (let TMP_41 +\def (arity g c TMP_39 TMP_40) in (let TMP_42 \def (Flat Appl) in (let TMP_43 +\def (THeads TMP_42 vs t) in (let TMP_44 \def (sn3 c TMP_43) in (let TMP_45 +\def (Flat Appl) in (let TMP_46 \def (Flat Cast) in (let TMP_47 \def (THead +TMP_46 u t) in (let TMP_48 \def (THeads TMP_45 vs TMP_47) in (let TMP_49 \def +(ASort O n0) in (let TMP_50 \def (arity g c TMP_48 TMP_49) in (let TMP_51 +\def (Flat Appl) in (let TMP_52 \def (Flat Cast) in (let TMP_53 \def (THead +TMP_52 u t) in (let TMP_54 \def (THeads TMP_51 vs TMP_53) in (let TMP_55 \def +(sn3 c TMP_54) in (let TMP_56 \def (land TMP_50 TMP_55) in (let TMP_71 \def +(\lambda (H7: (arity g c (THeads (Flat Appl) vs t) (ASort O n0))).(\lambda +(H8: (sn3 c (THeads (Flat Appl) vs t))).(let TMP_57 \def (Flat Appl) in (let +TMP_58 \def (Flat Cast) in (let TMP_59 \def (THead TMP_58 u t) in (let TMP_60 +\def (THeads TMP_57 vs TMP_59) in (let TMP_61 \def (ASort O n0) in (let +TMP_62 \def (arity g c TMP_60 TMP_61) in (let TMP_63 \def (Flat Appl) in (let +TMP_64 \def (Flat Cast) in (let TMP_65 \def (THead TMP_64 u t) in (let TMP_66 +\def (THeads TMP_63 vs TMP_65) in (let TMP_67 \def (sn3 c TMP_66) in (let +TMP_68 \def (ASort O n0) in (let TMP_69 \def (arity_appls_cast g c u t vs +TMP_68 H4 H7) in (let TMP_70 \def (sn3_appls_cast c vs u H5 t H8) in (conj +TMP_62 TMP_67 TMP_69 TMP_70))))))))))))))))) in (land_ind TMP_41 TMP_44 +TMP_56 TMP_71 H6)))))))))))))))))))))))) in (land_ind TMP_22 TMP_25 TMP_37 +TMP_72 H3))))))))))))))))))))))))) in (let TMP_133 \def (\lambda (n1: +nat).(\lambda (_: (((sc3 g (match n1 with [O \Rightarrow (ASort O (next g +n0)) | (S h) \Rightarrow (ASort h n0)]) c (THeads (Flat Appl) vs u)) \to +((land (arity g c (THeads (Flat Appl) vs t) (ASort n1 n0)) (sn3 c (THeads +(Flat Appl) vs t))) \to (land (arity g c (THeads (Flat Appl) vs (THead (Flat +Cast) u t)) (ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u +t)))))))).(\lambda (H1: (sc3 g (ASort n1 n0) c (THeads (Flat Appl) vs +u))).(\lambda (H2: (land (arity g c (THeads (Flat Appl) vs t) (ASort (S n1) +n0)) (sn3 c (THeads (Flat Appl) vs t)))).(let H3 \def H1 in (let TMP_74 \def +(Flat Appl) in (let TMP_75 \def (THeads TMP_74 vs u) in (let TMP_76 \def +(ASort n1 n0) in (let TMP_77 \def (arity g c TMP_75 TMP_76) in (let TMP_78 +\def (Flat Appl) in (let TMP_79 \def (THeads TMP_78 vs u) in (let TMP_80 \def +(sn3 c TMP_79) in (let TMP_81 \def (Flat Appl) in (let TMP_82 \def (Flat +Cast) in (let TMP_83 \def (THead TMP_82 u t) in (let TMP_84 \def (THeads +TMP_81 vs TMP_83) in (let TMP_85 \def (S n1) in (let TMP_86 \def (ASort +TMP_85 n0) in (let TMP_87 \def (arity g c TMP_84 TMP_86) in (let TMP_88 \def +(Flat Appl) in (let TMP_89 \def (Flat Cast) in (let TMP_90 \def (THead TMP_89 +u t) in (let TMP_91 \def (THeads TMP_88 vs TMP_90) in (let TMP_92 \def (sn3 c +TMP_91) in (let TMP_93 \def (land TMP_87 TMP_92) in (let TMP_132 \def +(\lambda (H4: (arity g c (THeads (Flat Appl) vs u) (ASort n1 n0))).(\lambda +(H5: (sn3 c (THeads (Flat Appl) vs u))).(let H6 \def H2 in (let TMP_94 \def +(Flat Appl) in (let TMP_95 \def (THeads TMP_94 vs t) in (let TMP_96 \def (S +n1) in (let TMP_97 \def (ASort TMP_96 n0) in (let TMP_98 \def (arity g c +TMP_95 TMP_97) in (let TMP_99 \def (Flat Appl) in (let TMP_100 \def (THeads +TMP_99 vs t) in (let TMP_101 \def (sn3 c TMP_100) in (let TMP_102 \def (Flat +Appl) in (let TMP_103 \def (Flat Cast) in (let TMP_104 \def (THead TMP_103 u +t) in (let TMP_105 \def (THeads TMP_102 vs TMP_104) in (let TMP_106 \def (S +n1) in (let TMP_107 \def (ASort TMP_106 n0) in (let TMP_108 \def (arity g c +TMP_105 TMP_107) in (let TMP_109 \def (Flat Appl) in (let TMP_110 \def (Flat +Cast) in (let TMP_111 \def (THead TMP_110 u t) in (let TMP_112 \def (THeads +TMP_109 vs TMP_111) in (let TMP_113 \def (sn3 c TMP_112) in (let TMP_114 \def +(land TMP_108 TMP_113) in (let TMP_131 \def (\lambda (H7: (arity g c (THeads +(Flat Appl) vs t) (ASort (S n1) n0))).(\lambda (H8: (sn3 c (THeads (Flat +Appl) vs t))).(let TMP_115 \def (Flat Appl) in (let TMP_116 \def (Flat Cast) +in (let TMP_117 \def (THead TMP_116 u t) in (let TMP_118 \def (THeads TMP_115 +vs TMP_117) in (let TMP_119 \def (S n1) in (let TMP_120 \def (ASort TMP_119 +n0) in (let TMP_121 \def (arity g c TMP_118 TMP_120) in (let TMP_122 \def +(Flat Appl) in (let TMP_123 \def (Flat Cast) in (let TMP_124 \def (THead +TMP_123 u t) in (let TMP_125 \def (THeads TMP_122 vs TMP_124) in (let TMP_126 +\def (sn3 c TMP_125) in (let TMP_127 \def (S n1) in (let TMP_128 \def (ASort +TMP_127 n0) in (let TMP_129 \def (arity_appls_cast g c u t vs TMP_128 H4 H7) +in (let TMP_130 \def (sn3_appls_cast c vs u H5 t H8) in (conj TMP_121 TMP_126 +TMP_129 TMP_130))))))))))))))))))) in (land_ind TMP_98 TMP_101 TMP_114 +TMP_131 H6)))))))))))))))))))))))))) in (land_ind TMP_77 TMP_80 TMP_93 +TMP_132 H3))))))))))))))))))))))))))) in (nat_ind TMP_17 TMP_73 TMP_133 n H +H0)))))))))))) in (let TMP_270 \def (\lambda (a0: A).(\lambda (_: ((\forall +(vs: TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads +(Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs +t)) \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Cast) u +t))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall (vs: TList).(\forall +(c: C).(\forall (u: T).((sc3 g (asucc g a1) c (THeads (Flat Appl) vs u)) \to +(\forall (t: T).((sc3 g a1 c (THeads (Flat Appl) vs t)) \to (sc3 g a1 c +(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))).(\lambda (vs: +TList).(\lambda (c: C).(\lambda (u: T).(\lambda (H1: (land (arity g c (THeads +(Flat Appl) vs u) (AHead a0 (asucc g a1))) (\forall (d: C).(\forall (w: +T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc +g a1) d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs +u))))))))))).(\lambda (t: T).(\lambda (H2: (land (arity g c (THeads (Flat +Appl) vs t) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) +\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w +(lift1 is (THeads (Flat Appl) vs t))))))))))).(let H3 \def H1 in (let TMP_135 +\def (Flat Appl) in (let TMP_136 \def (THeads TMP_135 vs u) in (let TMP_137 +\def (asucc g a1) in (let TMP_138 \def (AHead a0 TMP_137) in (let TMP_139 +\def (arity g c TMP_136 TMP_138) in (let TMP_146 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) -\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs -t))))))))) (land (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) -(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall -(is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is -(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))) (\lambda (H7: (arity -g c (THeads (Flat Appl) vs t) (AHead a0 a1))).(\lambda (H8: ((\forall (d: +\to (let TMP_140 \def (asucc g a1) in (let TMP_141 \def (Flat Appl) in (let +TMP_142 \def (Flat Appl) in (let TMP_143 \def (THeads TMP_142 vs u) in (let +TMP_144 \def (lift1 is TMP_143) in (let TMP_145 \def (THead TMP_141 w +TMP_144) in (sc3 g TMP_140 d TMP_145)))))))))))) in (let TMP_147 \def (Flat +Appl) in (let TMP_148 \def (Flat Cast) in (let TMP_149 \def (THead TMP_148 u +t) in (let TMP_150 \def (THeads TMP_147 vs TMP_149) in (let TMP_151 \def +(AHead a0 a1) in (let TMP_152 \def (arity g c TMP_150 TMP_151) in (let +TMP_160 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall +(is: PList).((drop1 is d c) \to (let TMP_153 \def (Flat Appl) in (let TMP_154 +\def (Flat Appl) in (let TMP_155 \def (Flat Cast) in (let TMP_156 \def (THead +TMP_155 u t) in (let TMP_157 \def (THeads TMP_154 vs TMP_156) in (let TMP_158 +\def (lift1 is TMP_157) in (let TMP_159 \def (THead TMP_153 w TMP_158) in +(sc3 g a1 d TMP_159))))))))))))) in (let TMP_161 \def (land TMP_152 TMP_160) +in (let TMP_269 \def (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) +(AHead a0 (asucc g a1)))).(\lambda (H5: ((\forall (d: C).(\forall (w: +T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc +g a1) d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs +u))))))))))).(let H6 \def H2 in (let TMP_162 \def (Flat Appl) in (let TMP_163 +\def (THeads TMP_162 vs t) in (let TMP_164 \def (AHead a0 a1) in (let TMP_165 +\def (arity g c TMP_163 TMP_164) in (let TMP_171 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) -\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs -t))))))))))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) -(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall -(is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is -(THeads (Flat Appl) vs (THead (Flat Cast) u t)))))))))) (arity_appls_cast g c -u t vs (AHead a0 a1) H4 H7) (\lambda (d: C).(\lambda (w: T).(\lambda (H9: -(sc3 g a0 d w)).(\lambda (is: PList).(\lambda (H10: (drop1 is d c)).(let H_y -\def (H0 (TCons w (lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 -is vs) (lift1 is (THead (Flat Cast) u t))) (\lambda (t0: T).(sc3 g a1 d -(THead (Flat Appl) w t0))) (eq_ind_r T (THead (Flat Cast) (lift1 is u) (lift1 -is t)) (\lambda (t0: T).(sc3 g a1 d (THead (Flat Appl) w (THeads (Flat Appl) -(lifts1 is vs) t0)))) (H_y d (lift1 is u) (eq_ind T (lift1 is (THeads (Flat -Appl) vs u)) (\lambda (t0: T).(sc3 g (asucc g a1) d (THead (Flat Appl) w -t0))) (H5 d w H9 is H10) (THeads (Flat Appl) (lifts1 is vs) (lift1 is u)) -(lifts1_flat Appl is u vs)) (lift1 is t) (eq_ind T (lift1 is (THeads (Flat -Appl) vs t)) (\lambda (t0: T).(sc3 g a1 d (THead (Flat Appl) w t0))) (H8 d w -H9 is H10) (THeads (Flat Appl) (lifts1 is vs) (lift1 is t)) (lifts1_flat Appl -is t vs))) (lift1 is (THead (Flat Cast) u t)) (lift1_flat Cast is u t)) -(lift1 is (THeads (Flat Appl) vs (THead (Flat Cast) u t))) (lifts1_flat Appl -is (THead (Flat Cast) u t) vs))))))))))) H6)))) H3)))))))))))) a)). -(* COMMENTS -Initial nodes: 2625 -END *) +\to (let TMP_166 \def (Flat Appl) in (let TMP_167 \def (Flat Appl) in (let +TMP_168 \def (THeads TMP_167 vs t) in (let TMP_169 \def (lift1 is TMP_168) in +(let TMP_170 \def (THead TMP_166 w TMP_169) in (sc3 g a1 d TMP_170))))))))))) +in (let TMP_172 \def (Flat Appl) in (let TMP_173 \def (Flat Cast) in (let +TMP_174 \def (THead TMP_173 u t) in (let TMP_175 \def (THeads TMP_172 vs +TMP_174) in (let TMP_176 \def (AHead a0 a1) in (let TMP_177 \def (arity g c +TMP_175 TMP_176) in (let TMP_185 \def (\forall (d: C).(\forall (w: T).((sc3 g +a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_178 \def (Flat +Appl) in (let TMP_179 \def (Flat Appl) in (let TMP_180 \def (Flat Cast) in +(let TMP_181 \def (THead TMP_180 u t) in (let TMP_182 \def (THeads TMP_179 vs +TMP_181) in (let TMP_183 \def (lift1 is TMP_182) in (let TMP_184 \def (THead +TMP_178 w TMP_183) in (sc3 g a1 d TMP_184))))))))))))) in (let TMP_186 \def +(land TMP_177 TMP_185) in (let TMP_268 \def (\lambda (H7: (arity g c (THeads +(Flat Appl) vs t) (AHead a0 a1))).(\lambda (H8: ((\forall (d: C).(\forall (w: +T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d +(THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs t))))))))))).(let +TMP_187 \def (Flat Appl) in (let TMP_188 \def (Flat Cast) in (let TMP_189 +\def (THead TMP_188 u t) in (let TMP_190 \def (THeads TMP_187 vs TMP_189) in +(let TMP_191 \def (AHead a0 a1) in (let TMP_192 \def (arity g c TMP_190 +TMP_191) in (let TMP_200 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) +\to (\forall (is: PList).((drop1 is d c) \to (let TMP_193 \def (Flat Appl) in +(let TMP_194 \def (Flat Appl) in (let TMP_195 \def (Flat Cast) in (let +TMP_196 \def (THead TMP_195 u t) in (let TMP_197 \def (THeads TMP_194 vs +TMP_196) in (let TMP_198 \def (lift1 is TMP_197) in (let TMP_199 \def (THead +TMP_193 w TMP_198) in (sc3 g a1 d TMP_199))))))))))))) in (let TMP_201 \def +(AHead a0 a1) in (let TMP_202 \def (arity_appls_cast g c u t vs TMP_201 H4 +H7) in (let TMP_267 \def (\lambda (d: C).(\lambda (w: T).(\lambda (H9: (sc3 g +a0 d w)).(\lambda (is: PList).(\lambda (H10: (drop1 is d c)).(let TMP_203 +\def (lifts1 is vs) in (let TMP_204 \def (TCons w TMP_203) in (let H_y \def +(H0 TMP_204) in (let TMP_205 \def (Flat Appl) in (let TMP_206 \def (lifts1 is +vs) in (let TMP_207 \def (Flat Cast) in (let TMP_208 \def (THead TMP_207 u t) +in (let TMP_209 \def (lift1 is TMP_208) in (let TMP_210 \def (THeads TMP_205 +TMP_206 TMP_209) in (let TMP_213 \def (\lambda (t0: T).(let TMP_211 \def +(Flat Appl) in (let TMP_212 \def (THead TMP_211 w t0) in (sc3 g a1 d +TMP_212)))) in (let TMP_214 \def (Flat Cast) in (let TMP_215 \def (lift1 is +u) in (let TMP_216 \def (lift1 is t) in (let TMP_217 \def (THead TMP_214 +TMP_215 TMP_216) in (let TMP_223 \def (\lambda (t0: T).(let TMP_218 \def +(Flat Appl) in (let TMP_219 \def (Flat Appl) in (let TMP_220 \def (lifts1 is +vs) in (let TMP_221 \def (THeads TMP_219 TMP_220 t0) in (let TMP_222 \def +(THead TMP_218 w TMP_221) in (sc3 g a1 d TMP_222))))))) in (let TMP_224 \def +(lift1 is u) in (let TMP_225 \def (Flat Appl) in (let TMP_226 \def (THeads +TMP_225 vs u) in (let TMP_227 \def (lift1 is TMP_226) in (let TMP_231 \def +(\lambda (t0: T).(let TMP_228 \def (asucc g a1) in (let TMP_229 \def (Flat +Appl) in (let TMP_230 \def (THead TMP_229 w t0) in (sc3 g TMP_228 d +TMP_230))))) in (let TMP_232 \def (H5 d w H9 is H10) in (let TMP_233 \def +(Flat Appl) in (let TMP_234 \def (lifts1 is vs) in (let TMP_235 \def (lift1 +is u) in (let TMP_236 \def (THeads TMP_233 TMP_234 TMP_235) in (let TMP_237 +\def (lifts1_flat Appl is u vs) in (let TMP_238 \def (eq_ind T TMP_227 +TMP_231 TMP_232 TMP_236 TMP_237) in (let TMP_239 \def (lift1 is t) in (let +TMP_240 \def (Flat Appl) in (let TMP_241 \def (THeads TMP_240 vs t) in (let +TMP_242 \def (lift1 is TMP_241) in (let TMP_245 \def (\lambda (t0: T).(let +TMP_243 \def (Flat Appl) in (let TMP_244 \def (THead TMP_243 w t0) in (sc3 g +a1 d TMP_244)))) in (let TMP_246 \def (H8 d w H9 is H10) in (let TMP_247 \def +(Flat Appl) in (let TMP_248 \def (lifts1 is vs) in (let TMP_249 \def (lift1 +is t) in (let TMP_250 \def (THeads TMP_247 TMP_248 TMP_249) in (let TMP_251 +\def (lifts1_flat Appl is t vs) in (let TMP_252 \def (eq_ind T TMP_242 +TMP_245 TMP_246 TMP_250 TMP_251) in (let TMP_253 \def (H_y d TMP_224 TMP_238 +TMP_239 TMP_252) in (let TMP_254 \def (Flat Cast) in (let TMP_255 \def (THead +TMP_254 u t) in (let TMP_256 \def (lift1 is TMP_255) in (let TMP_257 \def +(lift1_flat Cast is u t) in (let TMP_258 \def (eq_ind_r T TMP_217 TMP_223 +TMP_253 TMP_256 TMP_257) in (let TMP_259 \def (Flat Appl) in (let TMP_260 +\def (Flat Cast) in (let TMP_261 \def (THead TMP_260 u t) in (let TMP_262 +\def (THeads TMP_259 vs TMP_261) in (let TMP_263 \def (lift1 is TMP_262) in +(let TMP_264 \def (Flat Cast) in (let TMP_265 \def (THead TMP_264 u t) in +(let TMP_266 \def (lifts1_flat Appl is TMP_265 vs) in (eq_ind_r T TMP_210 +TMP_213 TMP_258 TMP_263 +TMP_266))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (conj +TMP_192 TMP_200 TMP_202 TMP_267))))))))))))) in (land_ind TMP_165 TMP_171 +TMP_186 TMP_268 H6)))))))))))))))))) in (land_ind TMP_139 TMP_146 TMP_161 +TMP_269 H3))))))))))))))))))))))))))) in (A_ind TMP_5 TMP_134 TMP_270 a))))). theorem sc3_props__sc3_sn3_abst: \forall (g: G).(\forall (a: A).(land (\forall (c: C).(\forall (t: T).((sc3 g @@ -393,24 +605,36 @@ a c t) \to (sn3 c t)))) (\forall (vs: TList).(\forall (i: nat).(let t \def (THeads (Flat Appl) vs (TLRef i)) in (\forall (c: C).((arity g c t a) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a c t)))))))))) \def - \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(land (\forall (c: -C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) (\forall (vs: -TList).(\forall (i: nat).(let t \def (THeads (Flat Appl) vs (TLRef i)) in + \lambda (g: G).(\lambda (a: A).(let TMP_5 \def (\lambda (a0: A).(let TMP_1 +\def (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) in (let +TMP_4 \def (\forall (vs: TList).(\forall (i: nat).(let TMP_2 \def (Flat Appl) +in (let TMP_3 \def (TLRef i) in (let t \def (THeads TMP_2 vs TMP_3) in (\forall (c: C).((arity g c t a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to -(sc3 g a0 c t)))))))))) (\lambda (n: nat).(\lambda (n0: nat).(conj (\forall -(c: C).(\forall (t: T).((land (arity g c t (ASort n n0)) (sn3 c t)) \to (sn3 -c t)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c -(THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) \to ((nf2 c (TLRef i)) \to -((sns3 c vs) \to (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (ASort n -n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i)))))))))) (\lambda (c: -C).(\lambda (t: T).(\lambda (H: (land (arity g c t (ASort n n0)) (sn3 c -t))).(let H0 \def H in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (sn3 c -t) (\lambda (_: (arity g c t (ASort n n0))).(\lambda (H2: (sn3 c t)).H2)) -H0))))) (\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda (H: -(arity g c (THeads (Flat Appl) vs (TLRef i)) (ASort n n0))).(\lambda (H0: -(nf2 c (TLRef i))).(\lambda (H1: (sns3 c vs)).(conj (arity g c (THeads (Flat -Appl) vs (TLRef i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i))) H -(sn3_appls_lref c i H0 vs H1))))))))))) (\lambda (a0: A).(\lambda (H: (land +(sc3 g a0 c t)))))))))) in (land TMP_1 TMP_4)))) in (let TMP_34 \def (\lambda +(n: nat).(\lambda (n0: nat).(let TMP_6 \def (\forall (c: C).(\forall (t: +T).((land (arity g c t (ASort n n0)) (sn3 c t)) \to (sn3 c t)))) in (let +TMP_16 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g +c (THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) \to ((nf2 c (TLRef i)) \to +((sns3 c vs) \to (let TMP_7 \def (Flat Appl) in (let TMP_8 \def (TLRef i) in +(let TMP_9 \def (THeads TMP_7 vs TMP_8) in (let TMP_10 \def (ASort n n0) in +(let TMP_11 \def (arity g c TMP_9 TMP_10) in (let TMP_12 \def (Flat Appl) in +(let TMP_13 \def (TLRef i) in (let TMP_14 \def (THeads TMP_12 vs TMP_13) in +(let TMP_15 \def (sn3 c TMP_14) in (land TMP_11 TMP_15)))))))))))))))) in +(let TMP_22 \def (\lambda (c: C).(\lambda (t: T).(\lambda (H: (land (arity g +c t (ASort n n0)) (sn3 c t))).(let H0 \def H in (let TMP_17 \def (ASort n n0) +in (let TMP_18 \def (arity g c t TMP_17) in (let TMP_19 \def (sn3 c t) in +(let TMP_20 \def (sn3 c t) in (let TMP_21 \def (\lambda (_: (arity g c t +(ASort n n0))).(\lambda (H2: (sn3 c t)).H2)) in (land_ind TMP_18 TMP_19 +TMP_20 TMP_21 H0)))))))))) in (let TMP_33 \def (\lambda (vs: TList).(\lambda +(i: nat).(\lambda (c: C).(\lambda (H: (arity g c (THeads (Flat Appl) vs +(TLRef i)) (ASort n n0))).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: +(sns3 c vs)).(let TMP_23 \def (Flat Appl) in (let TMP_24 \def (TLRef i) in +(let TMP_25 \def (THeads TMP_23 vs TMP_24) in (let TMP_26 \def (ASort n n0) +in (let TMP_27 \def (arity g c TMP_25 TMP_26) in (let TMP_28 \def (Flat Appl) +in (let TMP_29 \def (TLRef i) in (let TMP_30 \def (THeads TMP_28 vs TMP_29) +in (let TMP_31 \def (sn3 c TMP_30) in (let TMP_32 \def (sn3_appls_lref c i H0 +vs H1) in (conj TMP_27 TMP_31 H TMP_32))))))))))))))))) in (conj TMP_6 TMP_16 +TMP_22 TMP_33))))))) in (let TMP_254 \def (\lambda (a0: A).(\lambda (H: (land (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads (Flat Appl) vs (TLRef i)) a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a0 c @@ -418,106 +642,190 @@ vs (TLRef i)) a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a0 c (land (\forall (c: C).(\forall (t: T).((sc3 g a1 c t) \to (sn3 c t)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads (Flat Appl) vs (TLRef i)) a1) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to -(sc3 g a1 c (THeads (Flat Appl) vs (TLRef i))))))))))).(conj (\forall (c: -C).(\forall (t: T).((land (arity g c t (AHead a0 a1)) (\forall (d: -C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) -\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t))))))))) \to (sn3 c t)))) -(\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads -(Flat Appl) vs (TLRef i)) (AHead a0 a1)) \to ((nf2 c (TLRef i)) \to ((sns3 c -vs) \to (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1)) -(\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads -(Flat Appl) vs (TLRef i))))))))))))))))) (\lambda (c: C).(\lambda (t: +(sc3 g a1 c (THeads (Flat Appl) vs (TLRef i))))))))))).(let TMP_35 \def +(\forall (c: C).(\forall (t: T).((land (arity g c t (AHead a0 a1)) (\forall +(d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d +c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t))))))))) \to (sn3 c t)))) +in (let TMP_48 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c: +C).((arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1)) \to ((nf2 c +(TLRef i)) \to ((sns3 c vs) \to (let TMP_36 \def (Flat Appl) in (let TMP_37 +\def (TLRef i) in (let TMP_38 \def (THeads TMP_36 vs TMP_37) in (let TMP_39 +\def (AHead a0 a1) in (let TMP_40 \def (arity g c TMP_38 TMP_39) in (let +TMP_47 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: +PList).((drop1 is d c) \to (let TMP_41 \def (Flat Appl) in (let TMP_42 \def +(Flat Appl) in (let TMP_43 \def (TLRef i) in (let TMP_44 \def (THeads TMP_42 +vs TMP_43) in (let TMP_45 \def (lift1 is TMP_44) in (let TMP_46 \def (THead +TMP_41 w TMP_45) in (sc3 g a1 d TMP_46)))))))))))) in (land TMP_40 +TMP_47))))))))))))) in (let TMP_130 \def (\lambda (c: C).(\lambda (t: T).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 -d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H in (land_ind -(\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 t0)))) -(\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads -(Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to -(sc3 g a0 c0 (THeads (Flat Appl) vs (TLRef i))))))))) (sn3 c t) (\lambda (_: -((\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 +d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H in (let TMP_49 +\def (\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 t0)))) +in (let TMP_53 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c0: +C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) +\to ((sns3 c0 vs) \to (let TMP_50 \def (Flat Appl) in (let TMP_51 \def (TLRef +i) in (let TMP_52 \def (THeads TMP_50 vs TMP_51) in (sc3 g a0 c0 +TMP_52)))))))))) in (let TMP_54 \def (sn3 c t) in (let TMP_129 \def (\lambda +(_: ((\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 t0)))))).(\lambda (H4: ((\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a0 c0 (THeads (Flat Appl) vs (TLRef -i))))))))))).(let H5 \def H0 in (land_ind (\forall (c0: C).(\forall (t0: -T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))) (\forall (vs: TList).(\forall (i: -nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a1) \to -((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a1 c0 (THeads (Flat Appl) vs -(TLRef i))))))))) (sn3 c t) (\lambda (H6: ((\forall (c0: C).(\forall (t0: -T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))))).(\lambda (_: ((\forall (vs: +i))))))))))).(let H5 \def H0 in (let TMP_55 \def (\forall (c0: C).(\forall +(t0: T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))) in (let TMP_59 \def (\forall +(vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat +Appl) vs (TLRef i)) a1) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (let +TMP_56 \def (Flat Appl) in (let TMP_57 \def (TLRef i) in (let TMP_58 \def +(THeads TMP_56 vs TMP_57) in (sc3 g a1 c0 TMP_58)))))))))) in (let TMP_60 +\def (sn3 c t) in (let TMP_128 \def (\lambda (H6: ((\forall (c0: C).(\forall +(t0: T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))))).(\lambda (_: ((\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a1) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a1 c0 -(THeads (Flat Appl) vs (TLRef i))))))))))).(let H8 \def H1 in (land_ind -(arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) -\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w -(lift1 is t)))))))) (sn3 c t) (\lambda (H9: (arity g c t (AHead a0 -a1))).(\lambda (H10: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to -(\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w -(lift1 is t)))))))))).(let H_y \def (arity_aprem g c t (AHead a0 a1) H9 O a0) -in (let H11 \def (H_y (aprem_zero a0 a1)) in (ex2_3_ind C T nat (\lambda (d: -C).(\lambda (_: T).(\lambda (j: nat).(drop j O d c)))) (\lambda (d: -C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g a0))))) (sn3 c t) -(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H12: (drop x2 -O x0 c)).(\lambda (H13: (arity g x0 x1 (asucc g a0))).(let H_y0 \def (H10 -(CHead x0 (Bind Abst) x1) (TLRef O) (H4 TNil O (CHead x0 (Bind Abst) x1) -(arity_abst g (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 x1) a0 -H13) (nf2_lref_abst (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 x1)) -I) (PCons (S x2) O PNil)) in (let H_y1 \def (H6 (CHead x0 (Bind Abst) x1) -(THead (Flat Appl) (TLRef O) (lift (S x2) O t)) (H_y0 (drop1_cons (CHead x0 -(Bind Abst) x1) c (S x2) O (drop_drop (Bind Abst) x2 x0 c H12 x1) c PNil -(drop1_nil c)))) in (let H_x \def (sn3_gen_flat Appl (CHead x0 (Bind Abst) -x1) (TLRef O) (lift (S x2) O t) H_y1) in (let H14 \def H_x in (land_ind (sn3 -(CHead x0 (Bind Abst) x1) (TLRef O)) (sn3 (CHead x0 (Bind Abst) x1) (lift (S -x2) O t)) (sn3 c t) (\lambda (_: (sn3 (CHead x0 (Bind Abst) x1) (TLRef -O))).(\lambda (H16: (sn3 (CHead x0 (Bind Abst) x1) (lift (S x2) O -t))).(sn3_gen_lift (CHead x0 (Bind Abst) x1) t (S x2) O H16 c (drop_drop -(Bind Abst) x2 x0 c H12 x1)))) H14)))))))))) H11))))) H8)))) H5)))) H2))))) -(\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda (H1: (arity g -c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1))).(\lambda (H2: (nf2 c -(TLRef i))).(\lambda (H3: (sns3 c vs)).(conj (arity g c (THeads (Flat Appl) -vs (TLRef i)) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) -\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w -(lift1 is (THeads (Flat Appl) vs (TLRef i)))))))))) H1 (\lambda (d: -C).(\lambda (w: T).(\lambda (H4: (sc3 g a0 d w)).(\lambda (is: -PList).(\lambda (H5: (drop1 is d c)).(let H6 \def H in (land_ind (\forall -(c0: C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 t)))) (\forall (vs0: +(THeads (Flat Appl) vs (TLRef i))))))))))).(let H8 \def H1 in (let TMP_61 +\def (AHead a0 a1) in (let TMP_62 \def (arity g c t TMP_61) in (let TMP_66 +\def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: +PList).((drop1 is d c) \to (let TMP_63 \def (Flat Appl) in (let TMP_64 \def +(lift1 is t) in (let TMP_65 \def (THead TMP_63 w TMP_64) in (sc3 g a1 d +TMP_65))))))))) in (let TMP_67 \def (sn3 c t) in (let TMP_127 \def (\lambda +(H9: (arity g c t (AHead a0 a1))).(\lambda (H10: ((\forall (d: C).(\forall +(w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 +d (THead (Flat Appl) w (lift1 is t)))))))))).(let TMP_68 \def (AHead a0 a1) +in (let H_y \def (arity_aprem g c t TMP_68 H9 O a0) in (let TMP_69 \def +(aprem_zero a0 a1) in (let H11 \def (H_y TMP_69) in (let TMP_70 \def (\lambda +(d: C).(\lambda (_: T).(\lambda (j: nat).(drop j O d c)))) in (let TMP_72 +\def (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_71 \def +(asucc g a0) in (arity g d u TMP_71))))) in (let TMP_73 \def (sn3 c t) in +(let TMP_126 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: +nat).(\lambda (H12: (drop x2 O x0 c)).(\lambda (H13: (arity g x0 x1 (asucc g +a0))).(let TMP_74 \def (Bind Abst) in (let TMP_75 \def (CHead x0 TMP_74 x1) +in (let TMP_76 \def (TLRef O) in (let TMP_77 \def (Bind Abst) in (let TMP_78 +\def (CHead x0 TMP_77 x1) in (let TMP_79 \def (Bind Abst) in (let TMP_80 \def +(CHead x0 TMP_79 x1) in (let TMP_81 \def (getl_refl Abst x0 x1) in (let +TMP_82 \def (arity_abst g TMP_80 x0 x1 O TMP_81 a0 H13) in (let TMP_83 \def +(Bind Abst) in (let TMP_84 \def (CHead x0 TMP_83 x1) in (let TMP_85 \def +(getl_refl Abst x0 x1) in (let TMP_86 \def (nf2_lref_abst TMP_84 x0 x1 O +TMP_85) in (let TMP_87 \def (H4 TNil O TMP_78 TMP_82 TMP_86 I) in (let TMP_88 +\def (S x2) in (let TMP_89 \def (PCons TMP_88 O PNil) in (let H_y0 \def (H10 +TMP_75 TMP_76 TMP_87 TMP_89) in (let TMP_90 \def (Bind Abst) in (let TMP_91 +\def (CHead x0 TMP_90 x1) in (let TMP_92 \def (Flat Appl) in (let TMP_93 \def +(TLRef O) in (let TMP_94 \def (S x2) in (let TMP_95 \def (lift TMP_94 O t) in +(let TMP_96 \def (THead TMP_92 TMP_93 TMP_95) in (let TMP_97 \def (Bind Abst) +in (let TMP_98 \def (CHead x0 TMP_97 x1) in (let TMP_99 \def (S x2) in (let +TMP_100 \def (Bind Abst) in (let TMP_101 \def (drop_drop TMP_100 x2 x0 c H12 +x1) in (let TMP_102 \def (drop1_nil c) in (let TMP_103 \def (drop1_cons +TMP_98 c TMP_99 O TMP_101 c PNil TMP_102) in (let TMP_104 \def (H_y0 TMP_103) +in (let H_y1 \def (H6 TMP_91 TMP_96 TMP_104) in (let TMP_105 \def (Bind Abst) +in (let TMP_106 \def (CHead x0 TMP_105 x1) in (let TMP_107 \def (TLRef O) in +(let TMP_108 \def (S x2) in (let TMP_109 \def (lift TMP_108 O t) in (let H_x +\def (sn3_gen_flat Appl TMP_106 TMP_107 TMP_109 H_y1) in (let H14 \def H_x in +(let TMP_110 \def (Bind Abst) in (let TMP_111 \def (CHead x0 TMP_110 x1) in +(let TMP_112 \def (TLRef O) in (let TMP_113 \def (sn3 TMP_111 TMP_112) in +(let TMP_114 \def (Bind Abst) in (let TMP_115 \def (CHead x0 TMP_114 x1) in +(let TMP_116 \def (S x2) in (let TMP_117 \def (lift TMP_116 O t) in (let +TMP_118 \def (sn3 TMP_115 TMP_117) in (let TMP_119 \def (sn3 c t) in (let +TMP_125 \def (\lambda (_: (sn3 (CHead x0 (Bind Abst) x1) (TLRef O))).(\lambda +(H16: (sn3 (CHead x0 (Bind Abst) x1) (lift (S x2) O t))).(let TMP_120 \def +(Bind Abst) in (let TMP_121 \def (CHead x0 TMP_120 x1) in (let TMP_122 \def +(S x2) in (let TMP_123 \def (Bind Abst) in (let TMP_124 \def (drop_drop +TMP_123 x2 x0 c H12 x1) in (sn3_gen_lift TMP_121 t TMP_122 O H16 c +TMP_124)))))))) in (land_ind TMP_113 TMP_118 TMP_119 TMP_125 +H14))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_3_ind C +T nat TMP_70 TMP_72 TMP_73 TMP_126 H11))))))))))) in (land_ind TMP_62 TMP_66 +TMP_67 TMP_127 H8))))))))) in (land_ind TMP_55 TMP_59 TMP_60 TMP_128 +H5)))))))) in (land_ind TMP_49 TMP_53 TMP_54 TMP_129 H2))))))))) in (let +TMP_253 \def (\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda +(H1: (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1))).(\lambda +(H2: (nf2 c (TLRef i))).(\lambda (H3: (sns3 c vs)).(let TMP_131 \def (Flat +Appl) in (let TMP_132 \def (TLRef i) in (let TMP_133 \def (THeads TMP_131 vs +TMP_132) in (let TMP_134 \def (AHead a0 a1) in (let TMP_135 \def (arity g c +TMP_133 TMP_134) in (let TMP_142 \def (\forall (d: C).(\forall (w: T).((sc3 g +a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_136 \def (Flat +Appl) in (let TMP_137 \def (Flat Appl) in (let TMP_138 \def (TLRef i) in (let +TMP_139 \def (THeads TMP_137 vs TMP_138) in (let TMP_140 \def (lift1 is +TMP_139) in (let TMP_141 \def (THead TMP_136 w TMP_140) in (sc3 g a1 d +TMP_141)))))))))))) in (let TMP_252 \def (\lambda (d: C).(\lambda (w: +T).(\lambda (H4: (sc3 g a0 d w)).(\lambda (is: PList).(\lambda (H5: (drop1 is +d c)).(let H6 \def H in (let TMP_143 \def (\forall (c0: C).(\forall (t: +T).((sc3 g a0 c0 t) \to (sn3 c0 t)))) in (let TMP_147 \def (\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) -vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a0 -c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))) (sc3 g a1 d (THead (Flat Appl) -w (lift1 is (THeads (Flat Appl) vs (TLRef i))))) (\lambda (H7: ((\forall (c0: -C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 t)))))).(\lambda (_: -((\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 -(THeads (Flat Appl) vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 -c0 vs0) \to (sc3 g a0 c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))))).(let H9 -\def H0 in (land_ind (\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) \to -(sn3 c0 t)))) (\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: -C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) \to ((nf2 c0 (TLRef -i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat Appl) vs0 (TLRef -i0))))))))) (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs -(TLRef i))))) (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) -\to (sn3 c0 t)))))).(\lambda (H11: ((\forall (vs0: TList).(\forall (i0: -nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) -\to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat -Appl) vs0 (TLRef i0))))))))))).(let H_y \def (H11 (TCons w (lifts1 is vs))) -in (eq_ind_r T (THeads (Flat Appl) (lifts1 is vs) (lift1 is (TLRef i))) -(\lambda (t: T).(sc3 g a1 d (THead (Flat Appl) w t))) (eq_ind_r T (TLRef -(trans is i)) (\lambda (t: T).(sc3 g a1 d (THead (Flat Appl) w (THeads (Flat -Appl) (lifts1 is vs) t)))) (H_y (trans is i) d (eq_ind T (lift1 is (TLRef i)) -(\lambda (t: T).(arity g d (THead (Flat Appl) w (THeads (Flat Appl) (lifts1 -is vs) t)) a1)) (eq_ind T (lift1 is (THeads (Flat Appl) vs (TLRef i))) -(\lambda (t: T).(arity g d (THead (Flat Appl) w t) a1)) (arity_appl g d w a0 -(sc3_arity_gen g d w a0 H4) (lift1 is (THeads (Flat Appl) vs (TLRef i))) a1 -(arity_lift1 g (AHead a0 a1) c is d (THeads (Flat Appl) vs (TLRef i)) H5 H1)) -(THeads (Flat Appl) (lifts1 is vs) (lift1 is (TLRef i))) (lifts1_flat Appl is -(TLRef i) vs)) (TLRef (trans is i)) (lift1_lref is i)) (eq_ind T (lift1 is -(TLRef i)) (\lambda (t: T).(nf2 d t)) (nf2_lift1 c is d (TLRef i) H5 H2) -(TLRef (trans is i)) (lift1_lref is i)) (conj (sn3 d w) (sns3 d (lifts1 is -vs)) (H7 d w H4) (sns3_lifts1 c is d H5 vs H3))) (lift1 is (TLRef i)) -(lift1_lref is i)) (lift1 is (THeads (Flat Appl) vs (TLRef i))) (lifts1_flat -Appl is (TLRef i) vs))))) H9)))) H6))))))))))))))))))) a)). -(* COMMENTS -Initial nodes: 2737 -END *) +vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (let +TMP_144 \def (Flat Appl) in (let TMP_145 \def (TLRef i0) in (let TMP_146 \def +(THeads TMP_144 vs0 TMP_145) in (sc3 g a0 c0 TMP_146)))))))))) in (let +TMP_148 \def (Flat Appl) in (let TMP_149 \def (Flat Appl) in (let TMP_150 +\def (TLRef i) in (let TMP_151 \def (THeads TMP_149 vs TMP_150) in (let +TMP_152 \def (lift1 is TMP_151) in (let TMP_153 \def (THead TMP_148 w +TMP_152) in (let TMP_154 \def (sc3 g a1 d TMP_153) in (let TMP_251 \def +(\lambda (H7: ((\forall (c0: C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 +t)))))).(\lambda (_: ((\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: +C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef +i0)) \to ((sns3 c0 vs0) \to (sc3 g a0 c0 (THeads (Flat Appl) vs0 (TLRef +i0))))))))))).(let H9 \def H0 in (let TMP_155 \def (\forall (c0: C).(\forall +(t: T).((sc3 g a1 c0 t) \to (sn3 c0 t)))) in (let TMP_159 \def (\forall (vs0: +TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) +vs0 (TLRef i0)) a1) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (let +TMP_156 \def (Flat Appl) in (let TMP_157 \def (TLRef i0) in (let TMP_158 \def +(THeads TMP_156 vs0 TMP_157) in (sc3 g a1 c0 TMP_158)))))))))) in (let +TMP_160 \def (Flat Appl) in (let TMP_161 \def (Flat Appl) in (let TMP_162 +\def (TLRef i) in (let TMP_163 \def (THeads TMP_161 vs TMP_162) in (let +TMP_164 \def (lift1 is TMP_163) in (let TMP_165 \def (THead TMP_160 w +TMP_164) in (let TMP_166 \def (sc3 g a1 d TMP_165) in (let TMP_250 \def +(\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) \to (sn3 c0 +t)))))).(\lambda (H11: ((\forall (vs0: TList).(\forall (i0: nat).(\forall +(c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) \to ((nf2 c0 +(TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat Appl) vs0 +(TLRef i0))))))))))).(let TMP_167 \def (lifts1 is vs) in (let TMP_168 \def +(TCons w TMP_167) in (let H_y \def (H11 TMP_168) in (let TMP_169 \def (Flat +Appl) in (let TMP_170 \def (lifts1 is vs) in (let TMP_171 \def (TLRef i) in +(let TMP_172 \def (lift1 is TMP_171) in (let TMP_173 \def (THeads TMP_169 +TMP_170 TMP_172) in (let TMP_176 \def (\lambda (t: T).(let TMP_174 \def (Flat +Appl) in (let TMP_175 \def (THead TMP_174 w t) in (sc3 g a1 d TMP_175)))) in +(let TMP_177 \def (trans is i) in (let TMP_178 \def (TLRef TMP_177) in (let +TMP_184 \def (\lambda (t: T).(let TMP_179 \def (Flat Appl) in (let TMP_180 +\def (Flat Appl) in (let TMP_181 \def (lifts1 is vs) in (let TMP_182 \def +(THeads TMP_180 TMP_181 t) in (let TMP_183 \def (THead TMP_179 w TMP_182) in +(sc3 g a1 d TMP_183))))))) in (let TMP_185 \def (trans is i) in (let TMP_186 +\def (TLRef i) in (let TMP_187 \def (lift1 is TMP_186) in (let TMP_193 \def +(\lambda (t: T).(let TMP_188 \def (Flat Appl) in (let TMP_189 \def (Flat +Appl) in (let TMP_190 \def (lifts1 is vs) in (let TMP_191 \def (THeads +TMP_189 TMP_190 t) in (let TMP_192 \def (THead TMP_188 w TMP_191) in (arity g +d TMP_192 a1))))))) in (let TMP_194 \def (Flat Appl) in (let TMP_195 \def +(TLRef i) in (let TMP_196 \def (THeads TMP_194 vs TMP_195) in (let TMP_197 +\def (lift1 is TMP_196) in (let TMP_200 \def (\lambda (t: T).(let TMP_198 +\def (Flat Appl) in (let TMP_199 \def (THead TMP_198 w t) in (arity g d +TMP_199 a1)))) in (let TMP_201 \def (sc3_arity_gen g d w a0 H4) in (let +TMP_202 \def (Flat Appl) in (let TMP_203 \def (TLRef i) in (let TMP_204 \def +(THeads TMP_202 vs TMP_203) in (let TMP_205 \def (lift1 is TMP_204) in (let +TMP_206 \def (AHead a0 a1) in (let TMP_207 \def (Flat Appl) in (let TMP_208 +\def (TLRef i) in (let TMP_209 \def (THeads TMP_207 vs TMP_208) in (let +TMP_210 \def (arity_lift1 g TMP_206 c is d TMP_209 H5 H1) in (let TMP_211 +\def (arity_appl g d w a0 TMP_201 TMP_205 a1 TMP_210) in (let TMP_212 \def +(Flat Appl) in (let TMP_213 \def (lifts1 is vs) in (let TMP_214 \def (TLRef +i) in (let TMP_215 \def (lift1 is TMP_214) in (let TMP_216 \def (THeads +TMP_212 TMP_213 TMP_215) in (let TMP_217 \def (TLRef i) in (let TMP_218 \def +(lifts1_flat Appl is TMP_217 vs) in (let TMP_219 \def (eq_ind T TMP_197 +TMP_200 TMP_211 TMP_216 TMP_218) in (let TMP_220 \def (trans is i) in (let +TMP_221 \def (TLRef TMP_220) in (let TMP_222 \def (lift1_lref is i) in (let +TMP_223 \def (eq_ind T TMP_187 TMP_193 TMP_219 TMP_221 TMP_222) in (let +TMP_224 \def (TLRef i) in (let TMP_225 \def (lift1 is TMP_224) in (let +TMP_226 \def (\lambda (t: T).(nf2 d t)) in (let TMP_227 \def (TLRef i) in +(let TMP_228 \def (nf2_lift1 c is d TMP_227 H5 H2) in (let TMP_229 \def +(trans is i) in (let TMP_230 \def (TLRef TMP_229) in (let TMP_231 \def +(lift1_lref is i) in (let TMP_232 \def (eq_ind T TMP_225 TMP_226 TMP_228 +TMP_230 TMP_231) in (let TMP_233 \def (sn3 d w) in (let TMP_234 \def (lifts1 +is vs) in (let TMP_235 \def (sns3 d TMP_234) in (let TMP_236 \def (H7 d w H4) +in (let TMP_237 \def (sns3_lifts1 c is d H5 vs H3) in (let TMP_238 \def (conj +TMP_233 TMP_235 TMP_236 TMP_237) in (let TMP_239 \def (H_y TMP_185 d TMP_223 +TMP_232 TMP_238) in (let TMP_240 \def (TLRef i) in (let TMP_241 \def (lift1 +is TMP_240) in (let TMP_242 \def (lift1_lref is i) in (let TMP_243 \def +(eq_ind_r T TMP_178 TMP_184 TMP_239 TMP_241 TMP_242) in (let TMP_244 \def +(Flat Appl) in (let TMP_245 \def (TLRef i) in (let TMP_246 \def (THeads +TMP_244 vs TMP_245) in (let TMP_247 \def (lift1 is TMP_246) in (let TMP_248 +\def (TLRef i) in (let TMP_249 \def (lifts1_flat Appl is TMP_248 vs) in +(eq_ind_r T TMP_173 TMP_176 TMP_243 TMP_247 +TMP_249))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +)) in (land_ind TMP_155 TMP_159 TMP_166 TMP_250 H9)))))))))))))) in (land_ind +TMP_143 TMP_147 TMP_154 TMP_251 H6))))))))))))))))) in (conj TMP_135 TMP_142 +H1 TMP_252)))))))))))))) in (conj TMP_35 TMP_48 TMP_130 TMP_253))))))))) in +(A_ind TMP_5 TMP_34 TMP_254 a))))). theorem sc3_sn3: \forall (g: G).(\forall (a: A).(\forall (c: C).(\forall (t: T).((sc3 g a c @@ -525,18 +833,17 @@ t) \to (sn3 c t))))) \def \lambda (g: G).(\lambda (a: A).(\lambda (c: C).(\lambda (t: T).(\lambda (H: (sc3 g a c t)).(let H_x \def (sc3_props__sc3_sn3_abst g a) in (let H0 \def -H_x in (land_ind (\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 -c0 t0)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g -c0 (THeads (Flat Appl) vs (TLRef i)) a) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 -vs) \to (sc3 g a c0 (THeads (Flat Appl) vs (TLRef i))))))))) (sn3 c t) -(\lambda (H1: ((\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 c0 +H_x in (let TMP_1 \def (\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to +(sn3 c0 t0)))) in (let TMP_5 \def (\forall (vs: TList).(\forall (i: +nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a) \to +((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (let TMP_2 \def (Flat Appl) in (let +TMP_3 \def (TLRef i) in (let TMP_4 \def (THeads TMP_2 vs TMP_3) in (sc3 g a +c0 TMP_4)))))))))) in (let TMP_6 \def (sn3 c t) in (let TMP_7 \def (\lambda +(H1: ((\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 c0 t0)))))).(\lambda (_: ((\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a c0 (THeads (Flat Appl) vs (TLRef -i))))))))))).(H1 c t H))) H0))))))). -(* COMMENTS -Initial nodes: 203 -END *) +i))))))))))).(H1 c t H))) in (land_ind TMP_1 TMP_5 TMP_6 TMP_7 H0))))))))))). theorem sc3_abst: \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (c: C).(\forall @@ -546,19 +853,20 @@ i)) \to ((sns3 c vs) \to (sc3 g a c (THeads (Flat Appl) vs (TLRef i)))))))))) \lambda (g: G).(\lambda (a: A).(\lambda (vs: TList).(\lambda (c: C).(\lambda (i: nat).(\lambda (H: (arity g c (THeads (Flat Appl) vs (TLRef i)) a)).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: (sns3 c vs)).(let H_x \def -(sc3_props__sc3_sn3_abst g a) in (let H2 \def H_x in (land_ind (\forall (c0: -C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 c0 t)))) (\forall (vs0: -TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) -vs0 (TLRef i0)) a) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a -c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))) (sc3 g a c (THeads (Flat Appl) -vs (TLRef i))) (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a c0 t) -\to (sn3 c0 t)))))).(\lambda (H4: ((\forall (vs0: TList).(\forall (i0: -nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a) \to -((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a c0 (THeads (Flat Appl) -vs0 (TLRef i0))))))))))).(H4 vs i c H H0 H1))) H2)))))))))). -(* COMMENTS -Initial nodes: 249 -END *) +(sc3_props__sc3_sn3_abst g a) in (let H2 \def H_x in (let TMP_1 \def (\forall +(c0: C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 c0 t)))) in (let TMP_5 \def +(\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 +(THeads (Flat Appl) vs0 (TLRef i0)) a) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 +vs0) \to (let TMP_2 \def (Flat Appl) in (let TMP_3 \def (TLRef i0) in (let +TMP_4 \def (THeads TMP_2 vs0 TMP_3) in (sc3 g a c0 TMP_4)))))))))) in (let +TMP_6 \def (Flat Appl) in (let TMP_7 \def (TLRef i) in (let TMP_8 \def +(THeads TMP_6 vs TMP_7) in (let TMP_9 \def (sc3 g a c TMP_8) in (let TMP_10 +\def (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 +c0 t)))))).(\lambda (H4: ((\forall (vs0: TList).(\forall (i0: nat).(\forall +(c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a) \to ((nf2 c0 +(TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a c0 (THeads (Flat Appl) vs0 (TLRef +i0))))))))))).(H4 vs i c H H0 H1))) in (land_ind TMP_1 TMP_5 TMP_9 TMP_10 +H2))))))))))))))))). theorem sc3_bind: \forall (g: G).(\forall (b: B).((not (eq B b Abst)) \to (\forall (a1: @@ -568,76 +876,154 @@ T).(\forall (t: T).((sc3 g a2 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (THead (Bind b) v t))))))))))))) \def \lambda (g: G).(\lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda -(a1: A).(\lambda (a2: A).(A_ind (\lambda (a: A).(\forall (vs: TList).(\forall -(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads -(Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads -(Flat Appl) vs (THead (Bind b) v t)))))))))) (\lambda (n: nat).(\lambda (n0: +(a1: A).(\lambda (a2: A).(let TMP_5 \def (\lambda (a: A).(\forall (vs: +TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a (CHead c +(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) +\to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Bind b) in (let TMP_3 +\def (THead TMP_2 v t) in (let TMP_4 \def (THeads TMP_1 vs TMP_3) in (sc3 g a +c TMP_4)))))))))))) in (let TMP_50 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H0: (land (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) (ASort n n0)) (sn3 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)))).(\lambda (H1: (sc3 g a1 c v)).(let H2 \def H0 -in (land_ind (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O -vs) t) (ASort n n0)) (sn3 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S -O) O vs) t)) (land (arity g c (THeads (Flat Appl) vs (THead (Bind b) v t)) -(ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Bind b) v t)))) (\lambda -(H3: (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) -(ASort n n0))).(\lambda (H4: (sn3 (CHead c (Bind b) v) (THeads (Flat Appl) -(lifts (S O) O vs) t))).(conj (arity g c (THeads (Flat Appl) vs (THead (Bind -b) v t)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Bind b) v t))) -(arity_appls_bind g b H c v a1 (sc3_arity_gen g c v a1 H1) t vs (ASort n n0) -H3) (sn3_appls_bind b H c v (sc3_sn3 g a1 c v H1) vs t H4)))) H2)))))))))) -(\lambda (a: A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall -(v: T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads (Flat Appl) -(lifts (S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads (Flat Appl) -vs (THead (Bind b) v t))))))))))).(\lambda (a0: A).(\lambda (H1: ((\forall -(vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 (CHead -c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) +in (let TMP_6 \def (Bind b) in (let TMP_7 \def (CHead c TMP_6 v) in (let +TMP_8 \def (Flat Appl) in (let TMP_9 \def (S O) in (let TMP_10 \def (lifts +TMP_9 O vs) in (let TMP_11 \def (THeads TMP_8 TMP_10 t) in (let TMP_12 \def +(ASort n n0) in (let TMP_13 \def (arity g TMP_7 TMP_11 TMP_12) in (let TMP_14 +\def (Bind b) in (let TMP_15 \def (CHead c TMP_14 v) in (let TMP_16 \def +(Flat Appl) in (let TMP_17 \def (S O) in (let TMP_18 \def (lifts TMP_17 O vs) +in (let TMP_19 \def (THeads TMP_16 TMP_18 t) in (let TMP_20 \def (sn3 TMP_15 +TMP_19) in (let TMP_21 \def (Flat Appl) in (let TMP_22 \def (Bind b) in (let +TMP_23 \def (THead TMP_22 v t) in (let TMP_24 \def (THeads TMP_21 vs TMP_23) +in (let TMP_25 \def (ASort n n0) in (let TMP_26 \def (arity g c TMP_24 +TMP_25) in (let TMP_27 \def (Flat Appl) in (let TMP_28 \def (Bind b) in (let +TMP_29 \def (THead TMP_28 v t) in (let TMP_30 \def (THeads TMP_27 vs TMP_29) +in (let TMP_31 \def (sn3 c TMP_30) in (let TMP_32 \def (land TMP_26 TMP_31) +in (let TMP_49 \def (\lambda (H3: (arity g (CHead c (Bind b) v) (THeads (Flat +Appl) (lifts (S O) O vs) t) (ASort n n0))).(\lambda (H4: (sn3 (CHead c (Bind +b) v) (THeads (Flat Appl) (lifts (S O) O vs) t))).(let TMP_33 \def (Flat +Appl) in (let TMP_34 \def (Bind b) in (let TMP_35 \def (THead TMP_34 v t) in +(let TMP_36 \def (THeads TMP_33 vs TMP_35) in (let TMP_37 \def (ASort n n0) +in (let TMP_38 \def (arity g c TMP_36 TMP_37) in (let TMP_39 \def (Flat Appl) +in (let TMP_40 \def (Bind b) in (let TMP_41 \def (THead TMP_40 v t) in (let +TMP_42 \def (THeads TMP_39 vs TMP_41) in (let TMP_43 \def (sn3 c TMP_42) in +(let TMP_44 \def (sc3_arity_gen g c v a1 H1) in (let TMP_45 \def (ASort n n0) +in (let TMP_46 \def (arity_appls_bind g b H c v a1 TMP_44 t vs TMP_45 H3) in +(let TMP_47 \def (sc3_sn3 g a1 c v H1) in (let TMP_48 \def (sn3_appls_bind b +H c v TMP_47 vs t H4) in (conj TMP_38 TMP_43 TMP_46 TMP_48))))))))))))))))))) +in (land_ind TMP_13 TMP_20 TMP_32 TMP_49 +H2)))))))))))))))))))))))))))))))))))))) in (let TMP_206 \def (\lambda (a: +A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall (v: +T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads (Flat Appl) (lifts +(S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads (Flat Appl) vs +(THead (Bind b) v t))))))))))).(\lambda (a0: A).(\lambda (H1: ((\forall (vs: +TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 (CHead c +(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Bind b) v t))))))))))).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H2: (land (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) (AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) -t))))))))))).(\lambda (H3: (sc3 g a1 c v)).(let H4 \def H2 in (land_ind -(arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) -(AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall -(is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d (THead (Flat -Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) t))))))))) (land -(arity g c (THeads (Flat Appl) vs (THead (Bind b) v t)) (AHead a a0)) +t))))))))))).(\lambda (H3: (sc3 g a1 c v)).(let H4 \def H2 in (let TMP_51 +\def (Bind b) in (let TMP_52 \def (CHead c TMP_51 v) in (let TMP_53 \def +(Flat Appl) in (let TMP_54 \def (S O) in (let TMP_55 \def (lifts TMP_54 O vs) +in (let TMP_56 \def (THeads TMP_53 TMP_55 t) in (let TMP_57 \def (AHead a a0) +in (let TMP_58 \def (arity g TMP_52 TMP_56 TMP_57) in (let TMP_66 \def (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads -(Flat Appl) vs (THead (Bind b) v t))))))))))) (\lambda (H5: (arity g (CHead c -(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) (AHead a a0))).(\lambda -(H6: ((\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: -PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d (THead (Flat Appl) -w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) t))))))))))).(conj (arity -g c (THeads (Flat Appl) vs (THead (Bind b) v t)) (AHead a a0)) (\forall (d: +PList).((drop1 is d (CHead c (Bind b) v)) \to (let TMP_59 \def (Flat Appl) in +(let TMP_60 \def (Flat Appl) in (let TMP_61 \def (S O) in (let TMP_62 \def +(lifts TMP_61 O vs) in (let TMP_63 \def (THeads TMP_60 TMP_62 t) in (let +TMP_64 \def (lift1 is TMP_63) in (let TMP_65 \def (THead TMP_59 w TMP_64) in +(sc3 g a0 d TMP_65))))))))))))) in (let TMP_67 \def (Flat Appl) in (let +TMP_68 \def (Bind b) in (let TMP_69 \def (THead TMP_68 v t) in (let TMP_70 +\def (THeads TMP_67 vs TMP_69) in (let TMP_71 \def (AHead a a0) in (let +TMP_72 \def (arity g c TMP_70 TMP_71) in (let TMP_80 \def (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) -\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead -(Bind b) v t)))))))))) (arity_appls_bind g b H c v a1 (sc3_arity_gen g c v a1 -H3) t vs (AHead a a0) H5) (\lambda (d: C).(\lambda (w: T).(\lambda (H7: (sc3 -g a d w)).(\lambda (is: PList).(\lambda (H8: (drop1 is d c)).(let H_y \def -(H1 (TCons w (lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 is -vs) (lift1 is (THead (Bind b) v t))) (\lambda (t0: T).(sc3 g a0 d (THead -(Flat Appl) w t0))) (eq_ind_r T (THead (Bind b) (lift1 is v) (lift1 (Ss is) -t)) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w (THeads (Flat Appl) -(lifts1 is vs) t0)))) (H_y d (lift1 is v) (lift1 (Ss is) t) (eq_ind TList -(lifts1 (Ss is) (lifts (S O) O vs)) (\lambda (t0: TList).(sc3 g a0 (CHead d -(Bind b) (lift1 is v)) (THead (Flat Appl) (lift (S O) O w) (THeads (Flat -Appl) t0 (lift1 (Ss is) t))))) (eq_ind T (lift1 (Ss is) (THeads (Flat Appl) -(lifts (S O) O vs) t)) (\lambda (t0: T).(sc3 g a0 (CHead d (Bind b) (lift1 is -v)) (THead (Flat Appl) (lift (S O) O w) t0))) (H6 (CHead d (Bind b) (lift1 is -v)) (lift (S O) O w) (sc3_lift g a d w H7 (CHead d (Bind b) (lift1 is v)) (S -O) O (drop_drop (Bind b) O d d (drop_refl d) (lift1 is v))) (Ss is) -(drop1_skip_bind b c is d v H8)) (THeads (Flat Appl) (lifts1 (Ss is) (lifts -(S O) O vs)) (lift1 (Ss is) t)) (lifts1_flat Appl (Ss is) t (lifts (S O) O -vs))) (lifts (S O) O (lifts1 is vs)) (lifts1_xhg is vs)) (sc3_lift1 g c a1 is -d v H3 H8)) (lift1 is (THead (Bind b) v t)) (lift1_bind b is v t)) (lift1 is -(THeads (Flat Appl) vs (THead (Bind b) v t))) (lifts1_flat Appl is (THead -(Bind b) v t) vs))))))))))) H4)))))))))))) a2))))). -(* COMMENTS -Initial nodes: 1797 -END *) +\to (let TMP_73 \def (Flat Appl) in (let TMP_74 \def (Flat Appl) in (let +TMP_75 \def (Bind b) in (let TMP_76 \def (THead TMP_75 v t) in (let TMP_77 +\def (THeads TMP_74 vs TMP_76) in (let TMP_78 \def (lift1 is TMP_77) in (let +TMP_79 \def (THead TMP_73 w TMP_78) in (sc3 g a0 d TMP_79))))))))))))) in +(let TMP_81 \def (land TMP_72 TMP_80) in (let TMP_205 \def (\lambda (H5: +(arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) +(AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w: T).((sc3 g a d w) +\to (\forall (is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d +(THead (Flat Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) +t))))))))))).(let TMP_82 \def (Flat Appl) in (let TMP_83 \def (Bind b) in +(let TMP_84 \def (THead TMP_83 v t) in (let TMP_85 \def (THeads TMP_82 vs +TMP_84) in (let TMP_86 \def (AHead a a0) in (let TMP_87 \def (arity g c +TMP_85 TMP_86) in (let TMP_95 \def (\forall (d: C).(\forall (w: T).((sc3 g a +d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_88 \def (Flat +Appl) in (let TMP_89 \def (Flat Appl) in (let TMP_90 \def (Bind b) in (let +TMP_91 \def (THead TMP_90 v t) in (let TMP_92 \def (THeads TMP_89 vs TMP_91) +in (let TMP_93 \def (lift1 is TMP_92) in (let TMP_94 \def (THead TMP_88 w +TMP_93) in (sc3 g a0 d TMP_94))))))))))))) in (let TMP_96 \def (sc3_arity_gen +g c v a1 H3) in (let TMP_97 \def (AHead a a0) in (let TMP_98 \def +(arity_appls_bind g b H c v a1 TMP_96 t vs TMP_97 H5) in (let TMP_204 \def +(\lambda (d: C).(\lambda (w: T).(\lambda (H7: (sc3 g a d w)).(\lambda (is: +PList).(\lambda (H8: (drop1 is d c)).(let TMP_99 \def (lifts1 is vs) in (let +TMP_100 \def (TCons w TMP_99) in (let H_y \def (H1 TMP_100) in (let TMP_101 +\def (Flat Appl) in (let TMP_102 \def (lifts1 is vs) in (let TMP_103 \def +(Bind b) in (let TMP_104 \def (THead TMP_103 v t) in (let TMP_105 \def (lift1 +is TMP_104) in (let TMP_106 \def (THeads TMP_101 TMP_102 TMP_105) in (let +TMP_109 \def (\lambda (t0: T).(let TMP_107 \def (Flat Appl) in (let TMP_108 +\def (THead TMP_107 w t0) in (sc3 g a0 d TMP_108)))) in (let TMP_110 \def +(Bind b) in (let TMP_111 \def (lift1 is v) in (let TMP_112 \def (Ss is) in +(let TMP_113 \def (lift1 TMP_112 t) in (let TMP_114 \def (THead TMP_110 +TMP_111 TMP_113) in (let TMP_120 \def (\lambda (t0: T).(let TMP_115 \def +(Flat Appl) in (let TMP_116 \def (Flat Appl) in (let TMP_117 \def (lifts1 is +vs) in (let TMP_118 \def (THeads TMP_116 TMP_117 t0) in (let TMP_119 \def +(THead TMP_115 w TMP_118) in (sc3 g a0 d TMP_119))))))) in (let TMP_121 \def +(lift1 is v) in (let TMP_122 \def (Ss is) in (let TMP_123 \def (lift1 TMP_122 +t) in (let TMP_124 \def (Ss is) in (let TMP_125 \def (S O) in (let TMP_126 +\def (lifts TMP_125 O vs) in (let TMP_127 \def (lifts1 TMP_124 TMP_126) in +(let TMP_139 \def (\lambda (t0: TList).(let TMP_128 \def (Bind b) in (let +TMP_129 \def (lift1 is v) in (let TMP_130 \def (CHead d TMP_128 TMP_129) in +(let TMP_131 \def (Flat Appl) in (let TMP_132 \def (S O) in (let TMP_133 \def +(lift TMP_132 O w) in (let TMP_134 \def (Flat Appl) in (let TMP_135 \def (Ss +is) in (let TMP_136 \def (lift1 TMP_135 t) in (let TMP_137 \def (THeads +TMP_134 t0 TMP_136) in (let TMP_138 \def (THead TMP_131 TMP_133 TMP_137) in +(sc3 g a0 TMP_130 TMP_138))))))))))))) in (let TMP_140 \def (Ss is) in (let +TMP_141 \def (Flat Appl) in (let TMP_142 \def (S O) in (let TMP_143 \def +(lifts TMP_142 O vs) in (let TMP_144 \def (THeads TMP_141 TMP_143 t) in (let +TMP_145 \def (lift1 TMP_140 TMP_144) in (let TMP_153 \def (\lambda (t0: +T).(let TMP_146 \def (Bind b) in (let TMP_147 \def (lift1 is v) in (let +TMP_148 \def (CHead d TMP_146 TMP_147) in (let TMP_149 \def (Flat Appl) in +(let TMP_150 \def (S O) in (let TMP_151 \def (lift TMP_150 O w) in (let +TMP_152 \def (THead TMP_149 TMP_151 t0) in (sc3 g a0 TMP_148 TMP_152))))))))) +in (let TMP_154 \def (Bind b) in (let TMP_155 \def (lift1 is v) in (let +TMP_156 \def (CHead d TMP_154 TMP_155) in (let TMP_157 \def (S O) in (let +TMP_158 \def (lift TMP_157 O w) in (let TMP_159 \def (Bind b) in (let TMP_160 +\def (lift1 is v) in (let TMP_161 \def (CHead d TMP_159 TMP_160) in (let +TMP_162 \def (S O) in (let TMP_163 \def (Bind b) in (let TMP_164 \def +(drop_refl d) in (let TMP_165 \def (lift1 is v) in (let TMP_166 \def +(drop_drop TMP_163 O d d TMP_164 TMP_165) in (let TMP_167 \def (sc3_lift g a +d w H7 TMP_161 TMP_162 O TMP_166) in (let TMP_168 \def (Ss is) in (let +TMP_169 \def (drop1_skip_bind b c is d v H8) in (let TMP_170 \def (H6 TMP_156 +TMP_158 TMP_167 TMP_168 TMP_169) in (let TMP_171 \def (Flat Appl) in (let +TMP_172 \def (Ss is) in (let TMP_173 \def (S O) in (let TMP_174 \def (lifts +TMP_173 O vs) in (let TMP_175 \def (lifts1 TMP_172 TMP_174) in (let TMP_176 +\def (Ss is) in (let TMP_177 \def (lift1 TMP_176 t) in (let TMP_178 \def +(THeads TMP_171 TMP_175 TMP_177) in (let TMP_179 \def (Ss is) in (let TMP_180 +\def (S O) in (let TMP_181 \def (lifts TMP_180 O vs) in (let TMP_182 \def +(lifts1_flat Appl TMP_179 t TMP_181) in (let TMP_183 \def (eq_ind T TMP_145 +TMP_153 TMP_170 TMP_178 TMP_182) in (let TMP_184 \def (S O) in (let TMP_185 +\def (lifts1 is vs) in (let TMP_186 \def (lifts TMP_184 O TMP_185) in (let +TMP_187 \def (lifts1_xhg is vs) in (let TMP_188 \def (eq_ind TList TMP_127 +TMP_139 TMP_183 TMP_186 TMP_187) in (let TMP_189 \def (sc3_lift1 g c a1 is d +v H3 H8) in (let TMP_190 \def (H_y d TMP_121 TMP_123 TMP_188 TMP_189) in (let +TMP_191 \def (Bind b) in (let TMP_192 \def (THead TMP_191 v t) in (let +TMP_193 \def (lift1 is TMP_192) in (let TMP_194 \def (lift1_bind b is v t) in +(let TMP_195 \def (eq_ind_r T TMP_114 TMP_120 TMP_190 TMP_193 TMP_194) in +(let TMP_196 \def (Flat Appl) in (let TMP_197 \def (Bind b) in (let TMP_198 +\def (THead TMP_197 v t) in (let TMP_199 \def (THeads TMP_196 vs TMP_198) in +(let TMP_200 \def (lift1 is TMP_199) in (let TMP_201 \def (Bind b) in (let +TMP_202 \def (THead TMP_201 v t) in (let TMP_203 \def (lifts1_flat Appl is +TMP_202 vs) in (eq_ind_r T TMP_106 TMP_109 TMP_195 TMP_200 +TMP_203))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +)))))))))))))))) in (conj TMP_87 TMP_95 TMP_98 TMP_204)))))))))))))) in +(land_ind TMP_58 TMP_66 TMP_81 TMP_205 H4)))))))))))))))))))))))))))))) in +(A_ind TMP_5 TMP_50 TMP_206 a2)))))))). theorem sc3_appl: \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (vs: @@ -646,83 +1032,167 @@ TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a2 c (THeads T).((sc3 g (asucc g a1) c w) \to (sc3 g a2 c (THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t)))))))))))))) \def - \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(A_ind (\lambda (a: -A).(\forall (vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 -g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) -\to (\forall (w: T).((sc3 g (asucc g a1) c w) \to (sc3 g a c (THeads (Flat -Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))))))))))))) (\lambda -(n: nat).(\lambda (n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: -T).(\lambda (t: T).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs -(THead (Bind Abbr) v t)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead -(Bind Abbr) v t))))).(\lambda (H0: (sc3 g a1 c v)).(\lambda (w: T).(\lambda -(H1: (sc3 g (asucc g a1) c w)).(let H2 \def H in (land_ind (arity g c (THeads -(Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0)) (sn3 c (THeads (Flat -Appl) vs (THead (Bind Abbr) v t))) (land (arity g c (THeads (Flat Appl) vs -(THead (Flat Appl) v (THead (Bind Abst) w t))) (ASort n n0)) (sn3 c (THeads -(Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))))) (\lambda (H3: -(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n -n0))).(\lambda (H4: (sn3 c (THeads (Flat Appl) vs (THead (Bind Abbr) v -t)))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Appl) v (THead -(Bind Abst) w t))) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat -Appl) v (THead (Bind Abst) w t)))) (arity_appls_appl g c v a1 (sc3_arity_gen -g c v a1 H0) w (sc3_arity_gen g c w (asucc g a1) H1) t vs (ASort n n0) H3) -(sn3_appls_beta c v t vs H4 w (sc3_sn3 g (asucc g a1) c w H1))))) -H2)))))))))))) (\lambda (a: A).(\lambda (_: ((\forall (vs: TList).(\forall -(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a c (THeads (Flat Appl) vs + \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(let TMP_7 \def (\lambda +(a: A).(\forall (vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: +T).((sc3 g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g +a1 c v) \to (\forall (w: T).((sc3 g (asucc g a1) c w) \to (let TMP_1 \def +(Flat Appl) in (let TMP_2 \def (Flat Appl) in (let TMP_3 \def (Bind Abst) in +(let TMP_4 \def (THead TMP_3 w t) in (let TMP_5 \def (THead TMP_2 v TMP_4) in +(let TMP_6 \def (THeads TMP_1 vs TMP_5) in (sc3 g a c TMP_6)))))))))))))))) +in (let TMP_59 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (vs: +TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H: (land +(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0)) (sn3 +c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))))).(\lambda (H0: (sc3 g a1 +c v)).(\lambda (w: T).(\lambda (H1: (sc3 g (asucc g a1) c w)).(let H2 \def H +in (let TMP_8 \def (Flat Appl) in (let TMP_9 \def (Bind Abbr) in (let TMP_10 +\def (THead TMP_9 v t) in (let TMP_11 \def (THeads TMP_8 vs TMP_10) in (let +TMP_12 \def (ASort n n0) in (let TMP_13 \def (arity g c TMP_11 TMP_12) in +(let TMP_14 \def (Flat Appl) in (let TMP_15 \def (Bind Abbr) in (let TMP_16 +\def (THead TMP_15 v t) in (let TMP_17 \def (THeads TMP_14 vs TMP_16) in (let +TMP_18 \def (sn3 c TMP_17) in (let TMP_19 \def (Flat Appl) in (let TMP_20 +\def (Flat Appl) in (let TMP_21 \def (Bind Abst) in (let TMP_22 \def (THead +TMP_21 w t) in (let TMP_23 \def (THead TMP_20 v TMP_22) in (let TMP_24 \def +(THeads TMP_19 vs TMP_23) in (let TMP_25 \def (ASort n n0) in (let TMP_26 +\def (arity g c TMP_24 TMP_25) in (let TMP_27 \def (Flat Appl) in (let TMP_28 +\def (Flat Appl) in (let TMP_29 \def (Bind Abst) in (let TMP_30 \def (THead +TMP_29 w t) in (let TMP_31 \def (THead TMP_28 v TMP_30) in (let TMP_32 \def +(THeads TMP_27 vs TMP_31) in (let TMP_33 \def (sn3 c TMP_32) in (let TMP_34 +\def (land TMP_26 TMP_33) in (let TMP_58 \def (\lambda (H3: (arity g c +(THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0))).(\lambda (H4: +(sn3 c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)))).(let TMP_35 \def +(Flat Appl) in (let TMP_36 \def (Flat Appl) in (let TMP_37 \def (Bind Abst) +in (let TMP_38 \def (THead TMP_37 w t) in (let TMP_39 \def (THead TMP_36 v +TMP_38) in (let TMP_40 \def (THeads TMP_35 vs TMP_39) in (let TMP_41 \def +(ASort n n0) in (let TMP_42 \def (arity g c TMP_40 TMP_41) in (let TMP_43 +\def (Flat Appl) in (let TMP_44 \def (Flat Appl) in (let TMP_45 \def (Bind +Abst) in (let TMP_46 \def (THead TMP_45 w t) in (let TMP_47 \def (THead +TMP_44 v TMP_46) in (let TMP_48 \def (THeads TMP_43 vs TMP_47) in (let TMP_49 +\def (sn3 c TMP_48) in (let TMP_50 \def (sc3_arity_gen g c v a1 H0) in (let +TMP_51 \def (asucc g a1) in (let TMP_52 \def (sc3_arity_gen g c w TMP_51 H1) +in (let TMP_53 \def (ASort n n0) in (let TMP_54 \def (arity_appls_appl g c v +a1 TMP_50 w TMP_52 t vs TMP_53 H3) in (let TMP_55 \def (asucc g a1) in (let +TMP_56 \def (sc3_sn3 g TMP_55 c w H1) in (let TMP_57 \def (sn3_appls_beta c v +t vs H4 w TMP_56) in (conj TMP_42 TMP_49 TMP_54 +TMP_57)))))))))))))))))))))))))) in (land_ind TMP_13 TMP_18 TMP_34 TMP_58 +H2)))))))))))))))))))))))))))))))))))))))) in (let TMP_226 \def (\lambda (a: +A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall (v: +T).(\forall (t: T).((sc3 g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v +t))) \to ((sc3 g a1 c v) \to (\forall (w: T).((sc3 g (asucc g a1) c w) \to +(sc3 g a c (THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w +t)))))))))))))).(\lambda (a0: A).(\lambda (H0: ((\forall (vs: TList).(\forall +(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) \to (\forall (w: T).((sc3 g -(asucc g a1) c w) \to (sc3 g a c (THeads (Flat Appl) vs (THead (Flat Appl) v -(THead (Bind Abst) w t)))))))))))))).(\lambda (a0: A).(\lambda (H0: ((\forall -(vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 c -(THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) \to -(\forall (w: T).((sc3 g (asucc g a1) c w) \to (sc3 g a0 c (THeads (Flat Appl) -vs (THead (Flat Appl) v (THead (Bind Abst) w t)))))))))))))).(\lambda (vs: -TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H1: (land -(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (AHead a a0)) -(\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads -(Flat Appl) vs (THead (Bind Abbr) v t)))))))))))).(\lambda (H2: (sc3 g a1 c -v)).(\lambda (w: T).(\lambda (H3: (sc3 g (asucc g a1) c w)).(let H4 \def H1 -in (land_ind (arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) -(AHead a a0)) (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall -(is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is -(THeads (Flat Appl) vs (THead (Bind Abbr) v t)))))))))) (land (arity g c -(THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))) (AHead -a a0)) (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: -PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is -(THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w -t)))))))))))) (\lambda (H5: (arity g c (THeads (Flat Appl) vs (THead (Bind -Abbr) v t)) (AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w0: -T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d -(THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead (Bind Abbr) v -t)))))))))))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Appl) v -(THead (Bind Abst) w t))) (AHead a a0)) (\forall (d: C).(\forall (w0: -T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d -(THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead (Flat Appl) v -(THead (Bind Abst) w t))))))))))) (arity_appls_appl g c v a1 (sc3_arity_gen g -c v a1 H2) w (sc3_arity_gen g c w (asucc g a1) H3) t vs (AHead a a0) H5) -(\lambda (d: C).(\lambda (w0: T).(\lambda (H7: (sc3 g a d w0)).(\lambda (is: -PList).(\lambda (H8: (drop1 is d c)).(eq_ind_r T (THeads (Flat Appl) (lifts1 -is vs) (lift1 is (THead (Flat Appl) v (THead (Bind Abst) w t)))) (\lambda -(t0: T).(sc3 g a0 d (THead (Flat Appl) w0 t0))) (eq_ind_r T (THead (Flat -Appl) (lift1 is v) (lift1 is (THead (Bind Abst) w t))) (\lambda (t0: T).(sc3 -g a0 d (THead (Flat Appl) w0 (THeads (Flat Appl) (lifts1 is vs) t0)))) -(eq_ind_r T (THead (Bind Abst) (lift1 is w) (lift1 (Ss is) t)) (\lambda (t0: -T).(sc3 g a0 d (THead (Flat Appl) w0 (THeads (Flat Appl) (lifts1 is vs) -(THead (Flat Appl) (lift1 is v) t0))))) (let H_y \def (H0 (TCons w0 (lifts1 -is vs))) in (H_y d (lift1 is v) (lift1 (Ss is) t) (eq_ind T (lift1 is (THead -(Bind Abbr) v t)) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w0 (THeads -(Flat Appl) (lifts1 is vs) t0)))) (eq_ind T (lift1 is (THeads (Flat Appl) vs -(THead (Bind Abbr) v t))) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w0 -t0))) (H6 d w0 H7 is H8) (THeads (Flat Appl) (lifts1 is vs) (lift1 is (THead -(Bind Abbr) v t))) (lifts1_flat Appl is (THead (Bind Abbr) v t) vs)) (THead -(Bind Abbr) (lift1 is v) (lift1 (Ss is) t)) (lift1_bind Abbr is v t)) -(sc3_lift1 g c a1 is d v H2 H8) (lift1 is w) (sc3_lift1 g c (asucc g a1) is d -w H3 H8))) (lift1 is (THead (Bind Abst) w t)) (lift1_bind Abst is w t)) -(lift1 is (THead (Flat Appl) v (THead (Bind Abst) w t))) (lift1_flat Appl is -v (THead (Bind Abst) w t))) (lift1 is (THeads (Flat Appl) vs (THead (Flat -Appl) v (THead (Bind Abst) w t)))) (lifts1_flat Appl is (THead (Flat Appl) v -(THead (Bind Abst) w t)) vs)))))))))) H4)))))))))))))) a2))). -(* COMMENTS -Initial nodes: 1901 -END *) +(asucc g a1) c w) \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Appl) v +(THead (Bind Abst) w t)))))))))))))).(\lambda (vs: TList).(\lambda (c: +C).(\lambda (v: T).(\lambda (t: T).(\lambda (H1: (land (arity g c (THeads +(Flat Appl) vs (THead (Bind Abbr) v t)) (AHead a a0)) (\forall (d: +C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) +\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead +(Bind Abbr) v t)))))))))))).(\lambda (H2: (sc3 g a1 c v)).(\lambda (w: +T).(\lambda (H3: (sc3 g (asucc g a1) c w)).(let H4 \def H1 in (let TMP_60 +\def (Flat Appl) in (let TMP_61 \def (Bind Abbr) in (let TMP_62 \def (THead +TMP_61 v t) in (let TMP_63 \def (THeads TMP_60 vs TMP_62) in (let TMP_64 \def +(AHead a a0) in (let TMP_65 \def (arity g c TMP_63 TMP_64) in (let TMP_73 +\def (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: +PList).((drop1 is d c) \to (let TMP_66 \def (Flat Appl) in (let TMP_67 \def +(Flat Appl) in (let TMP_68 \def (Bind Abbr) in (let TMP_69 \def (THead TMP_68 +v t) in (let TMP_70 \def (THeads TMP_67 vs TMP_69) in (let TMP_71 \def (lift1 +is TMP_70) in (let TMP_72 \def (THead TMP_66 w0 TMP_71) in (sc3 g a0 d +TMP_72))))))))))))) in (let TMP_74 \def (Flat Appl) in (let TMP_75 \def (Flat +Appl) in (let TMP_76 \def (Bind Abst) in (let TMP_77 \def (THead TMP_76 w t) +in (let TMP_78 \def (THead TMP_75 v TMP_77) in (let TMP_79 \def (THeads +TMP_74 vs TMP_78) in (let TMP_80 \def (AHead a a0) in (let TMP_81 \def (arity +g c TMP_79 TMP_80) in (let TMP_91 \def (\forall (d: C).(\forall (w0: T).((sc3 +g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_82 \def (Flat +Appl) in (let TMP_83 \def (Flat Appl) in (let TMP_84 \def (Flat Appl) in (let +TMP_85 \def (Bind Abst) in (let TMP_86 \def (THead TMP_85 w t) in (let TMP_87 +\def (THead TMP_84 v TMP_86) in (let TMP_88 \def (THeads TMP_83 vs TMP_87) in +(let TMP_89 \def (lift1 is TMP_88) in (let TMP_90 \def (THead TMP_82 w0 +TMP_89) in (sc3 g a0 d TMP_90))))))))))))))) in (let TMP_92 \def (land TMP_81 +TMP_91) in (let TMP_225 \def (\lambda (H5: (arity g c (THeads (Flat Appl) vs +(THead (Bind Abbr) v t)) (AHead a a0))).(\lambda (H6: ((\forall (d: +C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) +\to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead +(Bind Abbr) v t)))))))))))).(let TMP_93 \def (Flat Appl) in (let TMP_94 \def +(Flat Appl) in (let TMP_95 \def (Bind Abst) in (let TMP_96 \def (THead TMP_95 +w t) in (let TMP_97 \def (THead TMP_94 v TMP_96) in (let TMP_98 \def (THeads +TMP_93 vs TMP_97) in (let TMP_99 \def (AHead a a0) in (let TMP_100 \def +(arity g c TMP_98 TMP_99) in (let TMP_110 \def (\forall (d: C).(\forall (w0: +T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_101 +\def (Flat Appl) in (let TMP_102 \def (Flat Appl) in (let TMP_103 \def (Flat +Appl) in (let TMP_104 \def (Bind Abst) in (let TMP_105 \def (THead TMP_104 w +t) in (let TMP_106 \def (THead TMP_103 v TMP_105) in (let TMP_107 \def +(THeads TMP_102 vs TMP_106) in (let TMP_108 \def (lift1 is TMP_107) in (let +TMP_109 \def (THead TMP_101 w0 TMP_108) in (sc3 g a0 d TMP_109))))))))))))))) +in (let TMP_111 \def (sc3_arity_gen g c v a1 H2) in (let TMP_112 \def (asucc +g a1) in (let TMP_113 \def (sc3_arity_gen g c w TMP_112 H3) in (let TMP_114 +\def (AHead a a0) in (let TMP_115 \def (arity_appls_appl g c v a1 TMP_111 w +TMP_113 t vs TMP_114 H5) in (let TMP_224 \def (\lambda (d: C).(\lambda (w0: +T).(\lambda (H7: (sc3 g a d w0)).(\lambda (is: PList).(\lambda (H8: (drop1 is +d c)).(let TMP_116 \def (Flat Appl) in (let TMP_117 \def (lifts1 is vs) in +(let TMP_118 \def (Flat Appl) in (let TMP_119 \def (Bind Abst) in (let +TMP_120 \def (THead TMP_119 w t) in (let TMP_121 \def (THead TMP_118 v +TMP_120) in (let TMP_122 \def (lift1 is TMP_121) in (let TMP_123 \def (THeads +TMP_116 TMP_117 TMP_122) in (let TMP_126 \def (\lambda (t0: T).(let TMP_124 +\def (Flat Appl) in (let TMP_125 \def (THead TMP_124 w0 t0) in (sc3 g a0 d +TMP_125)))) in (let TMP_127 \def (Flat Appl) in (let TMP_128 \def (lift1 is +v) in (let TMP_129 \def (Bind Abst) in (let TMP_130 \def (THead TMP_129 w t) +in (let TMP_131 \def (lift1 is TMP_130) in (let TMP_132 \def (THead TMP_127 +TMP_128 TMP_131) in (let TMP_138 \def (\lambda (t0: T).(let TMP_133 \def +(Flat Appl) in (let TMP_134 \def (Flat Appl) in (let TMP_135 \def (lifts1 is +vs) in (let TMP_136 \def (THeads TMP_134 TMP_135 t0) in (let TMP_137 \def +(THead TMP_133 w0 TMP_136) in (sc3 g a0 d TMP_137))))))) in (let TMP_139 \def +(Bind Abst) in (let TMP_140 \def (lift1 is w) in (let TMP_141 \def (Ss is) in +(let TMP_142 \def (lift1 TMP_141 t) in (let TMP_143 \def (THead TMP_139 +TMP_140 TMP_142) in (let TMP_152 \def (\lambda (t0: T).(let TMP_144 \def +(Flat Appl) in (let TMP_145 \def (Flat Appl) in (let TMP_146 \def (lifts1 is +vs) in (let TMP_147 \def (Flat Appl) in (let TMP_148 \def (lift1 is v) in +(let TMP_149 \def (THead TMP_147 TMP_148 t0) in (let TMP_150 \def (THeads +TMP_145 TMP_146 TMP_149) in (let TMP_151 \def (THead TMP_144 w0 TMP_150) in +(sc3 g a0 d TMP_151)))))))))) in (let TMP_153 \def (lifts1 is vs) in (let +TMP_154 \def (TCons w0 TMP_153) in (let H_y \def (H0 TMP_154) in (let TMP_155 +\def (lift1 is v) in (let TMP_156 \def (Ss is) in (let TMP_157 \def (lift1 +TMP_156 t) in (let TMP_158 \def (Bind Abbr) in (let TMP_159 \def (THead +TMP_158 v t) in (let TMP_160 \def (lift1 is TMP_159) in (let TMP_166 \def +(\lambda (t0: T).(let TMP_161 \def (Flat Appl) in (let TMP_162 \def (Flat +Appl) in (let TMP_163 \def (lifts1 is vs) in (let TMP_164 \def (THeads +TMP_162 TMP_163 t0) in (let TMP_165 \def (THead TMP_161 w0 TMP_164) in (sc3 g +a0 d TMP_165))))))) in (let TMP_167 \def (Flat Appl) in (let TMP_168 \def +(Bind Abbr) in (let TMP_169 \def (THead TMP_168 v t) in (let TMP_170 \def +(THeads TMP_167 vs TMP_169) in (let TMP_171 \def (lift1 is TMP_170) in (let +TMP_174 \def (\lambda (t0: T).(let TMP_172 \def (Flat Appl) in (let TMP_173 +\def (THead TMP_172 w0 t0) in (sc3 g a0 d TMP_173)))) in (let TMP_175 \def +(H6 d w0 H7 is H8) in (let TMP_176 \def (Flat Appl) in (let TMP_177 \def +(lifts1 is vs) in (let TMP_178 \def (Bind Abbr) in (let TMP_179 \def (THead +TMP_178 v t) in (let TMP_180 \def (lift1 is TMP_179) in (let TMP_181 \def +(THeads TMP_176 TMP_177 TMP_180) in (let TMP_182 \def (Bind Abbr) in (let +TMP_183 \def (THead TMP_182 v t) in (let TMP_184 \def (lifts1_flat Appl is +TMP_183 vs) in (let TMP_185 \def (eq_ind T TMP_171 TMP_174 TMP_175 TMP_181 +TMP_184) in (let TMP_186 \def (Bind Abbr) in (let TMP_187 \def (lift1 is v) +in (let TMP_188 \def (Ss is) in (let TMP_189 \def (lift1 TMP_188 t) in (let +TMP_190 \def (THead TMP_186 TMP_187 TMP_189) in (let TMP_191 \def (lift1_bind +Abbr is v t) in (let TMP_192 \def (eq_ind T TMP_160 TMP_166 TMP_185 TMP_190 +TMP_191) in (let TMP_193 \def (sc3_lift1 g c a1 is d v H2 H8) in (let TMP_194 +\def (lift1 is w) in (let TMP_195 \def (asucc g a1) in (let TMP_196 \def +(sc3_lift1 g c TMP_195 is d w H3 H8) in (let TMP_197 \def (H_y d TMP_155 +TMP_157 TMP_192 TMP_193 TMP_194 TMP_196) in (let TMP_198 \def (Bind Abst) in +(let TMP_199 \def (THead TMP_198 w t) in (let TMP_200 \def (lift1 is TMP_199) +in (let TMP_201 \def (lift1_bind Abst is w t) in (let TMP_202 \def (eq_ind_r +T TMP_143 TMP_152 TMP_197 TMP_200 TMP_201) in (let TMP_203 \def (Flat Appl) +in (let TMP_204 \def (Bind Abst) in (let TMP_205 \def (THead TMP_204 w t) in +(let TMP_206 \def (THead TMP_203 v TMP_205) in (let TMP_207 \def (lift1 is +TMP_206) in (let TMP_208 \def (Bind Abst) in (let TMP_209 \def (THead TMP_208 +w t) in (let TMP_210 \def (lift1_flat Appl is v TMP_209) in (let TMP_211 \def +(eq_ind_r T TMP_132 TMP_138 TMP_202 TMP_207 TMP_210) in (let TMP_212 \def +(Flat Appl) in (let TMP_213 \def (Flat Appl) in (let TMP_214 \def (Bind Abst) +in (let TMP_215 \def (THead TMP_214 w t) in (let TMP_216 \def (THead TMP_213 +v TMP_215) in (let TMP_217 \def (THeads TMP_212 vs TMP_216) in (let TMP_218 +\def (lift1 is TMP_217) in (let TMP_219 \def (Flat Appl) in (let TMP_220 \def +(Bind Abst) in (let TMP_221 \def (THead TMP_220 w t) in (let TMP_222 \def +(THead TMP_219 v TMP_221) in (let TMP_223 \def (lifts1_flat Appl is TMP_222 +vs) in (eq_ind_r T TMP_123 TMP_126 TMP_211 TMP_218 +TMP_223))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +)))))))))))))))))))))) in (conj TMP_100 TMP_110 TMP_115 +TMP_224)))))))))))))))))) in (land_ind TMP_65 TMP_73 TMP_92 TMP_225 +H4)))))))))))))))))))))))))))))))) in (A_ind TMP_7 TMP_59 TMP_226 a2)))))). -- 2.39.2