DEFINITION sn3_abbr()
TYPE =
       c:C
         .d:C
           .v:T
             .i:nat
               .getl i c (CHead d (Bind Abbr) v)
                 (sn3 d v)(sn3 c (TLRef i))
BODY =
        assume cC
        assume dC
        assume vT
        assume inat
        suppose Hgetl i c (CHead d (Bind Abbr) v)
        suppose H0sn3 d v
           assume t2T
           suppose H1(eq T (TLRef i) t2)P:Prop.P
           suppose H2pr2 c (TLRef i) t2
             (H3
                by (pr2_gen_lref . . . H2)

                   or
                     eq T t2 (TLRef i)
                     ex2_2
                       C
                       T
                       λd:C.λu:T.getl i c (CHead d (Bind Abbr) u)
                       λ:C.λu:T.eq T t2 (lift (S i) O u)
             end of H3
             we proceed by induction on H3 to prove sn3 c t2
                case or_introl : H4:eq T t2 (TLRef i) 
                   the thesis becomes sn3 c t2
                      (H5
                         we proceed by induction on H4 to prove (eq T (TLRef i) (TLRef i))P:Prop.P
                            case refl_equal : 
                               the thesis becomes the hypothesis H1
(eq T (TLRef i) (TLRef i))P:Prop.P
                      end of H5
                      by (refl_equal . .)
                      we proved eq T (TLRef i) (TLRef i)
                      by (H5 previous .)
                      we proved sn3 c (TLRef i)
                      by (eq_ind_r . . . previous . H4)
sn3 c t2
                case or_intror : H4:ex2_2 C T λd0:C.λu:T.getl i c (CHead d0 (Bind Abbr) u) λ:C.λu:T.eq T t2 (lift (S i) O u) 
                   the thesis becomes sn3 c t2
                      we proceed by induction on H4 to prove sn3 c t2
                         case ex2_2_intro : x0:C x1:T H5:getl i c (CHead x0 (Bind Abbr) x1) H6:eq T t2 (lift (S i) O x1) 
                            the thesis becomes sn3 c t2
                               (H8
                                  by (getl_mono . . . H . H5)
                                  we proved eq C (CHead d (Bind Abbr) v) (CHead x0 (Bind Abbr) x1)
                                  we proceed by induction on the previous result to prove getl i c (CHead x0 (Bind Abbr) x1)
                                     case refl_equal : 
                                        the thesis becomes the hypothesis H
getl i c (CHead x0 (Bind Abbr) x1)
                               end of H8
                               (H9
                                  by (getl_mono . . . H . H5)
                                  we proved eq C (CHead d (Bind Abbr) v) (CHead x0 (Bind Abbr) x1)
                                  by (f_equal . . . . . previous)
                                  we proved 
                                     eq
                                       C
                                       <λ:C.C> CASE CHead d (Bind Abbr) v OF CSort d | CHead c0  c0
                                       <λ:C.C> CASE CHead x0 (Bind Abbr) x1 OF CSort d | CHead c0  c0

                                     eq
                                       C
                                       λe:C.<λ:C.C> CASE e OF CSort d | CHead c0  c0 (CHead d (Bind Abbr) v)
                                       λe:C.<λ:C.C> CASE e OF CSort d | CHead c0  c0 (CHead x0 (Bind Abbr) x1)
                               end of H9
                               (h1
                                  (H10
                                     by (getl_mono . . . H . H5)
                                     we proved eq C (CHead d (Bind Abbr) v) (CHead x0 (Bind Abbr) x1)
                                     by (f_equal . . . . . previous)
                                     we proved 
                                        eq
                                          T
                                          <λ:C.T> CASE CHead d (Bind Abbr) v OF CSort v | CHead   tt
                                          <λ:C.T> CASE CHead x0 (Bind Abbr) x1 OF CSort v | CHead   tt

                                        eq
                                          T
                                          λe:C.<λ:C.T> CASE e OF CSort v | CHead   tt (CHead d (Bind Abbr) v)
                                          λe:C.<λ:C.T> CASE e OF CSort v | CHead   tt (CHead x0 (Bind Abbr) x1)
                                  end of H10
                                  suppose H11eq C d x0
                                     (H12
                                        consider H10
                                        we proved 
                                           eq
                                             T
                                             <λ:C.T> CASE CHead d (Bind Abbr) v OF CSort v | CHead   tt
                                             <λ:C.T> CASE CHead x0 (Bind Abbr) x1 OF CSort v | CHead   tt
                                        that is equivalent to eq T v x1
                                        by (eq_ind_r . . . H8 . previous)
getl i c (CHead x0 (Bind Abbr) v)
                                     end of H12
                                     consider H10
                                     we proved 
                                        eq
                                          T
                                          <λ:C.T> CASE CHead d (Bind Abbr) v OF CSort v | CHead   tt
                                          <λ:C.T> CASE CHead x0 (Bind Abbr) x1 OF CSort v | CHead   tt
                                     that is equivalent to eq T v x1
                                     we proceed by induction on the previous result to prove sn3 c (lift (S i) O x1)
                                        case refl_equal : 
                                           the thesis becomes sn3 c (lift (S i) O v)
                                              (H13
                                                 by (eq_ind_r . . . H12 . H11)
getl i c (CHead d (Bind Abbr) v)
                                              end of H13
                                              by (getl_drop . . . . . H13)
                                              we proved drop (S i) O c d
                                              by (sn3_lift . . H0 . . . previous)
sn3 c (lift (S i) O v)
                                     we proved sn3 c (lift (S i) O x1)
(eq C d x0)(sn3 c (lift (S i) O x1))
                               end of h1
                               (h2
                                  consider H9
                                  we proved 
                                     eq
                                       C
                                       <λ:C.C> CASE CHead d (Bind Abbr) v OF CSort d | CHead c0  c0
                                       <λ:C.C> CASE CHead x0 (Bind Abbr) x1 OF CSort d | CHead c0  c0
eq C d x0
                               end of h2
                               by (h1 h2)
                               we proved sn3 c (lift (S i) O x1)
                               by (eq_ind_r . . . previous . H6)
sn3 c t2
sn3 c t2
             we proved sn3 c t2
          we proved t2:T.((eq T (TLRef i) t2)P:Prop.P)(pr2 c (TLRef i) t2)(sn3 c t2)
          by (sn3_pr2_intro . . previous)
          we proved sn3 c (TLRef i)
       we proved 
          c:C
            .d:C
              .v:T
                .i:nat
                  .getl i c (CHead d (Bind Abbr) v)
                    (sn3 d v)(sn3 c (TLRef i))