DEFINITION term_dec()
TYPE =
       t1:T.t2:T.(or (eq T t1 t2) (eq T t1 t2)P:Prop.P)
BODY =
       assume t1T
          we proceed by induction on t1 to prove t2:T.(or (eq T t1 t2) (eq T t1 t2)P:Prop.P)
             case TSort : n:nat 
                the thesis becomes t2:T.(or (eq T (TSort n) t2) (eq T (TSort n) t2)P:Prop.P)
                   assume t2T
                      we proceed by induction on t2 to prove or (eq T (TSort n) t2) (eq T (TSort n) t2)P:Prop.P
                         case TSort : n0:nat 
                            the thesis becomes 
                            or
                              eq T (TSort n) (TSort n0)
                              (eq T (TSort n) (TSort n0))P:Prop.P
                               (H_x
                                  by (nat_dec . .)
or (eq nat n n0) (eq nat n n0)P:Prop.P
                               end of H_x
                               (Hconsider H_x
                               we proceed by induction on H to prove 
                                  or
                                    eq T (TSort n) (TSort n0)
                                    (eq T (TSort n) (TSort n0))P:Prop.P
                                  case or_introl : H0:eq nat n n0 
                                     the thesis becomes 
                                     or
                                       eq T (TSort n) (TSort n0)
                                       (eq T (TSort n) (TSort n0))P:Prop.P
                                        we proceed by induction on H0 to prove 
                                           or
                                             eq T (TSort n) (TSort n0)
                                             (eq T (TSort n) (TSort n0))P:Prop.P
                                           case refl_equal : 
                                              the thesis becomes 
                                              or
                                                eq T (TSort n) (TSort n)
                                                (eq T (TSort n) (TSort n))P:Prop.P
                                                 by (refl_equal . .)
                                                 we proved eq T (TSort n) (TSort n)
                                                 by (or_introl . . previous)

                                                    or
                                                      eq T (TSort n) (TSort n)
                                                      (eq T (TSort n) (TSort n))P:Prop.P

                                           or
                                             eq T (TSort n) (TSort n0)
                                             (eq T (TSort n) (TSort n0))P:Prop.P
                                  case or_intror : H0:(eq nat n n0)P:Prop.P 
                                     the thesis becomes 
                                     or
                                       eq T (TSort n) (TSort n0)
                                       (eq T (TSort n) (TSort n0))P:Prop.P
                                         suppose H1eq T (TSort n) (TSort n0)
                                         assume PProp
                                           (H2
                                              by (f_equal . . . . . H1)
                                              we proved 
                                                 eq
                                                   nat
                                                   <λ:T.nat> CASE TSort n OF TSort n1n1 | TLRef n | THead   n
                                                   <λ:T.nat> CASE TSort n0 OF TSort n1n1 | TLRef n | THead   n

                                                 eq
                                                   nat
                                                   λe:T.<λ:T.nat> CASE e OF TSort n1n1 | TLRef n | THead   n (TSort n)
                                                   λe:T.<λ:T.nat> CASE e OF TSort n1n1 | TLRef n | THead   n (TSort n0)
                                           end of H2
                                           (H3
                                              consider H2
                                              we proved 
                                                 eq
                                                   nat
                                                   <λ:T.nat> CASE TSort n OF TSort n1n1 | TLRef n | THead   n
                                                   <λ:T.nat> CASE TSort n0 OF TSort n1n1 | TLRef n | THead   n
                                              that is equivalent to eq nat n n0
                                              by (eq_ind_r . . . H0 . previous)
(eq nat n n)P0:Prop.P0
                                           end of H3
                                           by (refl_equal . .)
                                           we proved eq nat n n
                                           by (H3 previous .)
                                           we proved P
                                        we proved (eq T (TSort n) (TSort n0))P:Prop.P
                                        by (or_intror . . previous)

                                           or
                                             eq T (TSort n) (TSort n0)
                                             (eq T (TSort n) (TSort n0))P:Prop.P

                                  or
                                    eq T (TSort n) (TSort n0)
                                    (eq T (TSort n) (TSort n0))P:Prop.P
                         case TLRef : n0:nat 
                            the thesis becomes 
                            or
                              eq T (TSort n) (TLRef n0)
                              (eq T (TSort n) (TLRef n0))P:Prop.P
                                suppose Heq T (TSort n) (TLRef n0)
                                assume PProp
                                  (H0
                                     we proceed by induction on H to prove 
                                        <λ:T.Prop>
                                          CASE TLRef n0 OF
                                            TSort True
                                          | TLRef False
                                          | THead   False
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE TSort n OF
                                               TSort True
                                             | TLRef False
                                             | THead   False
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE TSort n OF
                                                     TSort True
                                                   | TLRef False
                                                   | THead   False

                                        <λ:T.Prop>
                                          CASE TLRef n0 OF
                                            TSort True
                                          | TLRef False
                                          | THead   False
                                  end of H0
                                  consider H0
                                  we proved 
                                     <λ:T.Prop>
                                       CASE TLRef n0 OF
                                         TSort True
                                       | TLRef False
                                       | THead   False
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (TSort n) (TLRef n0))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (TSort n) (TLRef n0)
                                    (eq T (TSort n) (TLRef n0))P:Prop.P
                         case THead : k:K t:T t0:T 
                            the thesis becomes 
                            or
                              eq T (TSort n) (THead k t t0)
                              (eq T (TSort n) (THead k t t0))P:Prop.P
                            () by induction hypothesis we know or (eq T (TSort n) t) (eq T (TSort n) t)P:Prop.P
                            () by induction hypothesis we know or (eq T (TSort n) t0) (eq T (TSort n) t0)P:Prop.P
                                suppose H1eq T (TSort n) (THead k t t0)
                                assume PProp
                                  (H2
                                     we proceed by induction on H1 to prove 
                                        <λ:T.Prop>
                                          CASE THead k t t0 OF
                                            TSort True
                                          | TLRef False
                                          | THead   False
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE TSort n OF
                                               TSort True
                                             | TLRef False
                                             | THead   False
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE TSort n OF
                                                     TSort True
                                                   | TLRef False
                                                   | THead   False

                                        <λ:T.Prop>
                                          CASE THead k t t0 OF
                                            TSort True
                                          | TLRef False
                                          | THead   False
                                  end of H2
                                  consider H2
                                  we proved 
                                     <λ:T.Prop>
                                       CASE THead k t t0 OF
                                         TSort True
                                       | TLRef False
                                       | THead   False
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (TSort n) (THead k t t0))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (TSort n) (THead k t t0)
                                    (eq T (TSort n) (THead k t t0))P:Prop.P
                      we proved or (eq T (TSort n) t2) (eq T (TSort n) t2)P:Prop.P
t2:T.(or (eq T (TSort n) t2) (eq T (TSort n) t2)P:Prop.P)
             case TLRef : n:nat 
                the thesis becomes t2:T.(or (eq T (TLRef n) t2) (eq T (TLRef n) t2)P:Prop.P)
                   assume t2T
                      we proceed by induction on t2 to prove or (eq T (TLRef n) t2) (eq T (TLRef n) t2)P:Prop.P
                         case TSort : n0:nat 
                            the thesis becomes 
                            or
                              eq T (TLRef n) (TSort n0)
                              (eq T (TLRef n) (TSort n0))P:Prop.P
                                suppose Heq T (TLRef n) (TSort n0)
                                assume PProp
                                  (H0
                                     we proceed by induction on H to prove 
                                        <λ:T.Prop>
                                          CASE TSort n0 OF
                                            TSort False
                                          | TLRef True
                                          | THead   False
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE TLRef n OF
                                               TSort False
                                             | TLRef True
                                             | THead   False
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE TLRef n OF
                                                     TSort False
                                                   | TLRef True
                                                   | THead   False

                                        <λ:T.Prop>
                                          CASE TSort n0 OF
                                            TSort False
                                          | TLRef True
                                          | THead   False
                                  end of H0
                                  consider H0
                                  we proved 
                                     <λ:T.Prop>
                                       CASE TSort n0 OF
                                         TSort False
                                       | TLRef True
                                       | THead   False
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (TLRef n) (TSort n0))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (TLRef n) (TSort n0)
                                    (eq T (TLRef n) (TSort n0))P:Prop.P
                         case TLRef : n0:nat 
                            the thesis becomes 
                            or
                              eq T (TLRef n) (TLRef n0)
                              (eq T (TLRef n) (TLRef n0))P:Prop.P
                               (H_x
                                  by (nat_dec . .)
or (eq nat n n0) (eq nat n n0)P:Prop.P
                               end of H_x
                               (Hconsider H_x
                               we proceed by induction on H to prove 
                                  or
                                    eq T (TLRef n) (TLRef n0)
                                    (eq T (TLRef n) (TLRef n0))P:Prop.P
                                  case or_introl : H0:eq nat n n0 
                                     the thesis becomes 
                                     or
                                       eq T (TLRef n) (TLRef n0)
                                       (eq T (TLRef n) (TLRef n0))P:Prop.P
                                        we proceed by induction on H0 to prove 
                                           or
                                             eq T (TLRef n) (TLRef n0)
                                             (eq T (TLRef n) (TLRef n0))P:Prop.P
                                           case refl_equal : 
                                              the thesis becomes 
                                              or
                                                eq T (TLRef n) (TLRef n)
                                                (eq T (TLRef n) (TLRef n))P:Prop.P
                                                 by (refl_equal . .)
                                                 we proved eq T (TLRef n) (TLRef n)
                                                 by (or_introl . . previous)

                                                    or
                                                      eq T (TLRef n) (TLRef n)
                                                      (eq T (TLRef n) (TLRef n))P:Prop.P

                                           or
                                             eq T (TLRef n) (TLRef n0)
                                             (eq T (TLRef n) (TLRef n0))P:Prop.P
                                  case or_intror : H0:(eq nat n n0)P:Prop.P 
                                     the thesis becomes 
                                     or
                                       eq T (TLRef n) (TLRef n0)
                                       (eq T (TLRef n) (TLRef n0))P:Prop.P
                                         suppose H1eq T (TLRef n) (TLRef n0)
                                         assume PProp
                                           (H2
                                              by (f_equal . . . . . H1)
                                              we proved 
                                                 eq
                                                   nat
                                                   <λ:T.nat> CASE TLRef n OF TSort n | TLRef n1n1 | THead   n
                                                   <λ:T.nat> CASE TLRef n0 OF TSort n | TLRef n1n1 | THead   n

                                                 eq
                                                   nat
                                                   λe:T.<λ:T.nat> CASE e OF TSort n | TLRef n1n1 | THead   n (TLRef n)
                                                   λe:T.<λ:T.nat> CASE e OF TSort n | TLRef n1n1 | THead   n (TLRef n0)
                                           end of H2
                                           (H3
                                              consider H2
                                              we proved 
                                                 eq
                                                   nat
                                                   <λ:T.nat> CASE TLRef n OF TSort n | TLRef n1n1 | THead   n
                                                   <λ:T.nat> CASE TLRef n0 OF TSort n | TLRef n1n1 | THead   n
                                              that is equivalent to eq nat n n0
                                              by (eq_ind_r . . . H0 . previous)
(eq nat n n)P0:Prop.P0
                                           end of H3
                                           by (refl_equal . .)
                                           we proved eq nat n n
                                           by (H3 previous .)
                                           we proved P
                                        we proved (eq T (TLRef n) (TLRef n0))P:Prop.P
                                        by (or_intror . . previous)

                                           or
                                             eq T (TLRef n) (TLRef n0)
                                             (eq T (TLRef n) (TLRef n0))P:Prop.P

                                  or
                                    eq T (TLRef n) (TLRef n0)
                                    (eq T (TLRef n) (TLRef n0))P:Prop.P
                         case THead : k:K t:T t0:T 
                            the thesis becomes 
                            or
                              eq T (TLRef n) (THead k t t0)
                              (eq T (TLRef n) (THead k t t0))P:Prop.P
                            () by induction hypothesis we know or (eq T (TLRef n) t) (eq T (TLRef n) t)P:Prop.P
                            () by induction hypothesis we know or (eq T (TLRef n) t0) (eq T (TLRef n) t0)P:Prop.P
                                suppose H1eq T (TLRef n) (THead k t t0)
                                assume PProp
                                  (H2
                                     we proceed by induction on H1 to prove 
                                        <λ:T.Prop>
                                          CASE THead k t t0 OF
                                            TSort False
                                          | TLRef True
                                          | THead   False
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE TLRef n OF
                                               TSort False
                                             | TLRef True
                                             | THead   False
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE TLRef n OF
                                                     TSort False
                                                   | TLRef True
                                                   | THead   False

                                        <λ:T.Prop>
                                          CASE THead k t t0 OF
                                            TSort False
                                          | TLRef True
                                          | THead   False
                                  end of H2
                                  consider H2
                                  we proved 
                                     <λ:T.Prop>
                                       CASE THead k t t0 OF
                                         TSort False
                                       | TLRef True
                                       | THead   False
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (TLRef n) (THead k t t0))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (TLRef n) (THead k t t0)
                                    (eq T (TLRef n) (THead k t t0))P:Prop.P
                      we proved or (eq T (TLRef n) t2) (eq T (TLRef n) t2)P:Prop.P
t2:T.(or (eq T (TLRef n) t2) (eq T (TLRef n) t2)P:Prop.P)
             case THead : k:K t:T t0:T 
                the thesis becomes t2:T.(or (eq T (THead k t t0) t2) (eq T (THead k t t0) t2)P:Prop.P)
                (H) by induction hypothesis we know t2:T.(or (eq T t t2) (eq T t t2)P:Prop.P)
                (H0) by induction hypothesis we know t2:T.(or (eq T t0 t2) (eq T t0 t2)P:Prop.P)
                   assume t2T
                      we proceed by induction on t2 to prove or (eq T (THead k t t0) t2) (eq T (THead k t t0) t2)P:Prop.P
                         case TSort : n:nat 
                            the thesis becomes 
                            or
                              eq T (THead k t t0) (TSort n)
                              (eq T (THead k t t0) (TSort n))P:Prop.P
                                suppose H1eq T (THead k t t0) (TSort n)
                                assume PProp
                                  (H2
                                     we proceed by induction on H1 to prove 
                                        <λ:T.Prop>
                                          CASE TSort n OF
                                            TSort False
                                          | TLRef False
                                          | THead   True
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE THead k t t0 OF
                                               TSort False
                                             | TLRef False
                                             | THead   True
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE THead k t t0 OF
                                                     TSort False
                                                   | TLRef False
                                                   | THead   True

                                        <λ:T.Prop>
                                          CASE TSort n OF
                                            TSort False
                                          | TLRef False
                                          | THead   True
                                  end of H2
                                  consider H2
                                  we proved 
                                     <λ:T.Prop>
                                       CASE TSort n OF
                                         TSort False
                                       | TLRef False
                                       | THead   True
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (THead k t t0) (TSort n))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (THead k t t0) (TSort n)
                                    (eq T (THead k t t0) (TSort n))P:Prop.P
                         case TLRef : n:nat 
                            the thesis becomes 
                            or
                              eq T (THead k t t0) (TLRef n)
                              (eq T (THead k t t0) (TLRef n))P:Prop.P
                                suppose H1eq T (THead k t t0) (TLRef n)
                                assume PProp
                                  (H2
                                     we proceed by induction on H1 to prove 
                                        <λ:T.Prop>
                                          CASE TLRef n OF
                                            TSort False
                                          | TLRef False
                                          | THead   True
                                        case refl_equal : 
                                           the thesis becomes 
                                           <λ:T.Prop>
                                             CASE THead k t t0 OF
                                               TSort False
                                             | TLRef False
                                             | THead   True
                                              consider I
                                              we proved True

                                                 <λ:T.Prop>
                                                   CASE THead k t t0 OF
                                                     TSort False
                                                   | TLRef False
                                                   | THead   True

                                        <λ:T.Prop>
                                          CASE TLRef n OF
                                            TSort False
                                          | TLRef False
                                          | THead   True
                                  end of H2
                                  consider H2
                                  we proved 
                                     <λ:T.Prop>
                                       CASE TLRef n OF
                                         TSort False
                                       | TLRef False
                                       | THead   True
                                  that is equivalent to False
                                  we proceed by induction on the previous result to prove P
                                  we proved P
                               we proved (eq T (THead k t t0) (TLRef n))P:Prop.P
                               by (or_intror . . previous)

                                  or
                                    eq T (THead k t t0) (TLRef n)
                                    (eq T (THead k t t0) (TLRef n))P:Prop.P
                         case THead : k0:K t3:T t4:T 
                            the thesis becomes 
                            or
                              eq T (THead k t t0) (THead k0 t3 t4)
                              (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                            (H1) by induction hypothesis we know or (eq T (THead k t t0) t3) (eq T (THead k t t0) t3)P:Prop.P
                            (H2) by induction hypothesis we know or (eq T (THead k t t0) t4) (eq T (THead k t t0) t4)P:Prop.P
                               (H_x
                                  by (H .)
or (eq T t t3) (eq T t t3)P:Prop.P
                               end of H_x
                               (H3consider H_x
                               we proceed by induction on H3 to prove 
                                  or
                                    eq T (THead k t t0) (THead k0 t3 t4)
                                    (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                  case or_introl : H4:eq T t t3 
                                     the thesis becomes 
                                     or
                                       eq T (THead k t t0) (THead k0 t3 t4)
                                       (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                        we proceed by induction on H4 to prove 
                                           or
                                             eq T (THead k t t0) (THead k0 t3 t4)
                                             (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                           case refl_equal : 
                                              the thesis becomes 
                                              or
                                                eq T (THead k t t0) (THead k0 t t4)
                                                (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                 (H_x0
                                                    by (H0 .)
or (eq T t0 t4) (eq T t0 t4)P:Prop.P
                                                 end of H_x0
                                                 (H6consider H_x0
                                                 we proceed by induction on H6 to prove 
                                                    or
                                                      eq T (THead k t t0) (THead k0 t t4)
                                                      (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                    case or_introl : H7:eq T t0 t4 
                                                       the thesis becomes 
                                                       or
                                                         eq T (THead k t t0) (THead k0 t t4)
                                                         (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                          we proceed by induction on H7 to prove 
                                                             or
                                                               eq T (THead k t t0) (THead k0 t t4)
                                                               (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                             case refl_equal : 
                                                                the thesis becomes 
                                                                or
                                                                  eq T (THead k t t0) (THead k0 t t0)
                                                                  (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                   (H_x1
                                                                      by (terms_props__kind_dec . .)
or (eq K k k0) (eq K k k0)P:Prop.P
                                                                   end of H_x1
                                                                   (H9consider H_x1
                                                                   we proceed by induction on H9 to prove 
                                                                      or
                                                                        eq T (THead k t t0) (THead k0 t t0)
                                                                        (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                      case or_introl : H10:eq K k k0 
                                                                         the thesis becomes 
                                                                         or
                                                                           eq T (THead k t t0) (THead k0 t t0)
                                                                           (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                            we proceed by induction on H10 to prove 
                                                                               or
                                                                                 eq T (THead k t t0) (THead k0 t t0)
                                                                                 (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                               case refl_equal : 
                                                                                  the thesis becomes 
                                                                                  or
                                                                                    eq T (THead k t t0) (THead k t t0)
                                                                                    (eq T (THead k t t0) (THead k t t0))P:Prop.P
                                                                                     by (refl_equal . .)
                                                                                     we proved eq T (THead k t t0) (THead k t t0)
                                                                                     by (or_introl . . previous)

                                                                                        or
                                                                                          eq T (THead k t t0) (THead k t t0)
                                                                                          (eq T (THead k t t0) (THead k t t0))P:Prop.P

                                                                               or
                                                                                 eq T (THead k t t0) (THead k0 t t0)
                                                                                 (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                      case or_intror : H10:(eq K k k0)P:Prop.P 
                                                                         the thesis becomes 
                                                                         or
                                                                           eq T (THead k t t0) (THead k0 t t0)
                                                                           (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                             suppose H11eq T (THead k t t0) (THead k0 t t0)
                                                                             assume PProp
                                                                               (H12
                                                                                  by (f_equal . . . . . H11)
                                                                                  we proved 
                                                                                     eq
                                                                                       K
                                                                                       <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                                                       <λ:T.K> CASE THead k0 t t0 OF TSort k | TLRef k | THead k1  k1

                                                                                     eq
                                                                                       K
                                                                                       λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k t t0)
                                                                                       λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k0 t t0)
                                                                               end of H12
                                                                               (H13
                                                                                  consider H12
                                                                                  we proved 
                                                                                     eq
                                                                                       K
                                                                                       <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                                                       <λ:T.K> CASE THead k0 t t0 OF TSort k | TLRef k | THead k1  k1
                                                                                  that is equivalent to eq K k k0
                                                                                  by (eq_ind_r . . . H10 . previous)
(eq K k k)P0:Prop.P0
                                                                               end of H13
                                                                               by (refl_equal . .)
                                                                               we proved eq K k k
                                                                               by (H13 previous .)
                                                                               we proved P
                                                                            we proved (eq T (THead k t t0) (THead k0 t t0))P:Prop.P
                                                                            by (or_intror . . previous)

                                                                               or
                                                                                 eq T (THead k t t0) (THead k0 t t0)
                                                                                 (eq T (THead k t t0) (THead k0 t t0))P:Prop.P

                                                                      or
                                                                        eq T (THead k t t0) (THead k0 t t0)
                                                                        (eq T (THead k t t0) (THead k0 t t0))P:Prop.P

                                                             or
                                                               eq T (THead k t t0) (THead k0 t t4)
                                                               (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                    case or_intror : H7:(eq T t0 t4)P:Prop.P 
                                                       the thesis becomes 
                                                       or
                                                         eq T (THead k t t0) (THead k0 t t4)
                                                         (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                           suppose H8eq T (THead k t t0) (THead k0 t t4)
                                                           assume PProp
                                                             (H9
                                                                by (f_equal . . . . . H8)
                                                                we proved 
                                                                   eq
                                                                     K
                                                                     <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                                     <λ:T.K> CASE THead k0 t t4 OF TSort k | TLRef k | THead k1  k1

                                                                   eq
                                                                     K
                                                                     λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k t t0)
                                                                     λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k0 t t4)
                                                             end of H9
                                                             (h1
                                                                (H10
                                                                   by (f_equal . . . . . H8)
                                                                   we proved 
                                                                      eq
                                                                        T
                                                                        <λ:T.T> CASE THead k t t0 OF TSort t0 | TLRef t0 | THead   t5t5
                                                                        <λ:T.T> CASE THead k0 t t4 OF TSort t0 | TLRef t0 | THead   t5t5

                                                                      eq
                                                                        T
                                                                        λe:T.<λ:T.T> CASE e OF TSort t0 | TLRef t0 | THead   t5t5 (THead k t t0)
                                                                        λe:T.<λ:T.T> CASE e OF TSort t0 | TLRef t0 | THead   t5t5 (THead k0 t t4)
                                                                end of H10
                                                                suppose eq K k k0
                                                                   (H12
                                                                      consider H10
                                                                      we proved 
                                                                         eq
                                                                           T
                                                                           <λ:T.T> CASE THead k t t0 OF TSort t0 | TLRef t0 | THead   t5t5
                                                                           <λ:T.T> CASE THead k0 t t4 OF TSort t0 | TLRef t0 | THead   t5t5
                                                                      that is equivalent to eq T t0 t4
                                                                      by (eq_ind_r . . . H7 . previous)
(eq T t0 t0)P0:Prop.P0
                                                                   end of H12
                                                                   by (refl_equal . .)
                                                                   we proved eq T t0 t0
                                                                   by (H12 previous .)
                                                                   we proved P
(eq K k k0)P
                                                             end of h1
                                                             (h2
                                                                consider H9
                                                                we proved 
                                                                   eq
                                                                     K
                                                                     <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                                     <λ:T.K> CASE THead k0 t t4 OF TSort k | TLRef k | THead k1  k1
eq K k k0
                                                             end of h2
                                                             by (h1 h2)
                                                             we proved P
                                                          we proved (eq T (THead k t t0) (THead k0 t t4))P:Prop.P
                                                          by (or_intror . . previous)

                                                             or
                                                               eq T (THead k t t0) (THead k0 t t4)
                                                               (eq T (THead k t t0) (THead k0 t t4))P:Prop.P

                                                    or
                                                      eq T (THead k t t0) (THead k0 t t4)
                                                      (eq T (THead k t t0) (THead k0 t t4))P:Prop.P

                                           or
                                             eq T (THead k t t0) (THead k0 t3 t4)
                                             (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                  case or_intror : H4:(eq T t t3)P:Prop.P 
                                     the thesis becomes 
                                     or
                                       eq T (THead k t t0) (THead k0 t3 t4)
                                       (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                         suppose H5eq T (THead k t t0) (THead k0 t3 t4)
                                         assume PProp
                                           (H6
                                              by (f_equal . . . . . H5)
                                              we proved 
                                                 eq
                                                   K
                                                   <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                   <λ:T.K> CASE THead k0 t3 t4 OF TSort k | TLRef k | THead k1  k1

                                                 eq
                                                   K
                                                   λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k t t0)
                                                   λe:T.<λ:T.K> CASE e OF TSort k | TLRef k | THead k1  k1 (THead k0 t3 t4)
                                           end of H6
                                           (h1
                                              (H7
                                                 by (f_equal . . . . . H5)
                                                 we proved 
                                                    eq
                                                      T
                                                      <λ:T.T> CASE THead k t t0 OF TSort t | TLRef t | THead  t5 t5
                                                      <λ:T.T> CASE THead k0 t3 t4 OF TSort t | TLRef t | THead  t5 t5

                                                    eq
                                                      T
                                                      λe:T.<λ:T.T> CASE e OF TSort t | TLRef t | THead  t5 t5 (THead k t t0)
                                                      λe:T.<λ:T.T> CASE e OF TSort t | TLRef t | THead  t5 t5 (THead k0 t3 t4)
                                              end of H7
                                              (h1
                                                 (H8
                                                    by (f_equal . . . . . H5)
                                                    we proved 
                                                       eq
                                                         T
                                                         <λ:T.T> CASE THead k t t0 OF TSort t0 | TLRef t0 | THead   t5t5
                                                         <λ:T.T> CASE THead k0 t3 t4 OF TSort t0 | TLRef t0 | THead   t5t5

                                                       eq
                                                         T
                                                         λe:T.<λ:T.T> CASE e OF TSort t0 | TLRef t0 | THead   t5t5 (THead k t t0)
                                                         λe:T.<λ:T.T> CASE e OF TSort t0 | TLRef t0 | THead   t5t5 (THead k0 t3 t4)
                                                 end of H8
                                                  suppose H9eq T t t3
                                                  suppose eq K k k0
                                                    (H12
                                                       by (eq_ind_r . . . H4 . H9)
(eq T t t)P0:Prop.P0
                                                    end of H12
                                                    by (refl_equal . .)
                                                    we proved eq T t t
                                                    by (H12 previous .)
                                                    we proved P
(eq T t t3)(eq K k k0)P
                                              end of h1
                                              (h2
                                                 consider H7
                                                 we proved 
                                                    eq
                                                      T
                                                      <λ:T.T> CASE THead k t t0 OF TSort t | TLRef t | THead  t5 t5
                                                      <λ:T.T> CASE THead k0 t3 t4 OF TSort t | TLRef t | THead  t5 t5
eq T t t3
                                              end of h2
                                              by (h1 h2)
(eq K k k0)P
                                           end of h1
                                           (h2
                                              consider H6
                                              we proved 
                                                 eq
                                                   K
                                                   <λ:T.K> CASE THead k t t0 OF TSort k | TLRef k | THead k1  k1
                                                   <λ:T.K> CASE THead k0 t3 t4 OF TSort k | TLRef k | THead k1  k1
eq K k k0
                                           end of h2
                                           by (h1 h2)
                                           we proved P
                                        we proved (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                                        by (or_intror . . previous)

                                           or
                                             eq T (THead k t t0) (THead k0 t3 t4)
                                             (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P

                                  or
                                    eq T (THead k t t0) (THead k0 t3 t4)
                                    (eq T (THead k t t0) (THead k0 t3 t4))P:Prop.P
                      we proved or (eq T (THead k t t0) t2) (eq T (THead k t t0) t2)P:Prop.P
t2:T.(or (eq T (THead k t t0) t2) (eq T (THead k t t0) t2)P:Prop.P)
          we proved t2:T.(or (eq T t1 t2) (eq T t1 t2)P:Prop.P)
       we proved t1:T.t2:T.(or (eq T t1 t2) (eq T t1 t2)P:Prop.P)