DEFINITION sc3_bind()
TYPE =
       g:G
         .b:B
           .not (eq B b Abst)
             a1:A
                  .a2:A
                    .vs:TList
                      .c:C
                        .v:T
                          .t:T
                            .(sc3
                                g
                                a2
                                CHead c (Bind b) v
                                THeads (Flat Appl) (lifts (S OO vs) t)
                              (sc3 g a1 c v
                                   sc3 g a2 c (THeads (Flat Appl) vs (THead (Bind b) v t)))
BODY =
        assume gG
        assume bB
        suppose Hnot (eq B b Abst)
        assume a1A
        assume a2A
          we proceed by induction on a2 to prove 
             vs:TList
               .c:C
                 .v:T
                   .t:T
                     .(sc3
                         g
                         a2
                         CHead c (Bind b) v
                         THeads (Flat Appl) (lifts (S OO vs) t)
                       (sc3 g a1 c v
                            sc3 g a2 c (THeads (Flat Appl) vs (THead (Bind b) v t)))
             case ASort : n:nat n0:nat 
                the thesis becomes 
                vs:TList
                  .c:C
                    .v:T
                      .t:T
                        .(sc3
                            g
                            ASort n n0
                            CHead c (Bind b) v
                            THeads (Flat Appl) (lifts (S OO vs) t)
                          (sc3 g a1 c v
                               sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                    assume vsTList
                    assume cC
                    assume vT
                    assume tT
                      we must prove 
                            (sc3
                                g
                                ASort n n0
                                CHead c (Bind b) v
                                THeads (Flat Appl) (lifts (S OO vs) t)
                              (sc3 g a1 c v
                                   sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                      or equivalently 
                            (land
                                arity
                                  g
                                  CHead c (Bind b) v
                                  THeads (Flat Appl) (lifts (S OO vs) t
                                  ASort n n0
                                sn3
                                  CHead c (Bind b) v
                                  THeads (Flat Appl) (lifts (S OO vs) t)
                              (sc3 g a1 c v
                                   sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                       suppose H0
                          land
                            arity
                              g
                              CHead c (Bind b) v
                              THeads (Flat Appl) (lifts (S OO vs) t
                              ASort n n0
                            sn3
                              CHead c (Bind b) v
                              THeads (Flat Appl) (lifts (S OO vs) t
                       suppose H1sc3 g a1 c v
                         (H2consider H0
                         we proceed by induction on H2 to prove 
                            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))
                            case conj : H3:arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S OO vs) t) (ASort n n0) H4:sn3 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S OO vs) t) 
                               the thesis becomes 
                               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))
                                  (h1
                                     by (sc3_arity_gen . . . . H1)
                                     we proved arity g c v a1
                                     by (arity_appls_bind . . H . . . previous . . . H3)

                                        arity
                                          g
                                          c
                                          THeads (Flat Appl) vs (THead (Bind b) v t)
                                          ASort n n0
                                  end of h1
                                  (h2
                                     by (sc3_sn3 . . . . H1)
                                     we proved sn3 c v
                                     by (sn3_appls_bind . H . . previous . . H4)
sn3 c (THeads (Flat Appl) vs (THead (Bind b) v t))
                                  end of h2
                                  by (conj . . h1 h2)

                                     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))
                         we proved 
                            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))
                         that is equivalent to sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t))
                      we proved 
                         (land
                             arity
                               g
                               CHead c (Bind b) v
                               THeads (Flat Appl) (lifts (S OO vs) t
                               ASort n n0
                             sn3
                               CHead c (Bind b) v
                               THeads (Flat Appl) (lifts (S OO vs) t)
                           (sc3 g a1 c v
                                sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                      that is equivalent to 
                         (sc3
                             g
                             ASort n n0
                             CHead c (Bind b) v
                             THeads (Flat Appl) (lifts (S OO vs) t)
                           (sc3 g a1 c v
                                sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))

                      vs:TList
                        .c:C
                          .v:T
                            .t:T
                              .(sc3
                                  g
                                  ASort n n0
                                  CHead c (Bind b) v
                                  THeads (Flat Appl) (lifts (S OO vs) t)
                                (sc3 g a1 c v
                                     sc3 g (ASort n n0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
             case AHead : a:A a0:A 
                the thesis becomes 
                vs:TList
                  .c:C
                    .v:T
                      .t:T
                        .(sc3
                            g
                            AHead a a0
                            CHead c (Bind b) v
                            THeads (Flat Appl) (lifts (S OO vs) t)
                          (sc3 g a1 c v
                               sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                () by induction hypothesis we know 
                   vs:TList
                     .c:C
                       .v:T
                         .t:T
                           .(sc3
                               g
                               a
                               CHead c (Bind b) v
                               THeads (Flat Appl) (lifts (S OO vs) t)
                             (sc3 g a1 c v
                                  sc3 g a c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                (H1) by induction hypothesis we know 
                   vs:TList
                     .c:C
                       .v:T
                         .t:T
                           .(sc3
                               g
                               a0
                               CHead c (Bind b) v
                               THeads (Flat Appl) (lifts (S OO vs) t)
                             (sc3 g a1 c v
                                  sc3 g a0 c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                    assume vsTList
                    assume cC
                    assume vT
                    assume tT
                      we must prove 
                            (sc3
                                g
                                AHead a a0
                                CHead c (Bind b) v
                                THeads (Flat Appl) (lifts (S OO vs) t)
                              (sc3 g a1 c v
                                   sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                      or equivalently 
                            (land
                                arity
                                  g
                                  CHead c (Bind b) v
                                  THeads (Flat Appl) (lifts (S OO vs) t
                                  AHead a a0
                                d:C
                                  .w:T
                                    .sc3 g a d w
                                      is:PList
                                           .drop1 is d (CHead c (Bind b) v)
                                             (sc3
                                                  g
                                                  a0
                                                  d
                                                  THead
                                                    Flat Appl
                                                    w
                                                    lift1 is (THeads (Flat Appl) (lifts (S OO vs) t)))
                              (sc3 g a1 c v
                                   sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                       suppose H2
                          land
                            arity
                              g
                              CHead c (Bind b) v
                              THeads (Flat Appl) (lifts (S OO vs) t
                              AHead a a0
                            d:C
                              .w:T
                                .sc3 g a d w
                                  is:PList
                                       .drop1 is d (CHead c (Bind b) v)
                                         (sc3
                                              g
                                              a0
                                              d
                                              THead
                                                Flat Appl
                                                w
                                                lift1 is (THeads (Flat Appl) (lifts (S OO vs) t))
                       suppose H3sc3 g a1 c v
                         (H4consider H2
                         we proceed by induction on H4 to prove 
                            land
                              arity
                                g
                                c
                                THeads (Flat Appl) vs (THead (Bind b) v t)
                                AHead a a0
                              d:C
                                .w:T
                                  .sc3 g a d w
                                    is:PList
                                         .drop1 is d c
                                           (sc3
                                                g
                                                a0
                                                d
                                                THead
                                                  Flat Appl
                                                  w
                                                  lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t)))
                            case conj : H5:arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S OO vs) t) (AHead a a0) H6:d:C.w:T.(sc3 g a d w)is:PList.(drop1 is d (CHead c (Bind b) v))(sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) (lifts (S OO vs) t)))) 
                               the thesis becomes 
                               land
                                 arity
                                   g
                                   c
                                   THeads (Flat Appl) vs (THead (Bind b) v t)
                                   AHead a a0
                                 d:C
                                   .w:T
                                     .sc3 g a d w
                                       is:PList
                                            .drop1 is d c
                                              (sc3
                                                   g
                                                   a0
                                                   d
                                                   THead
                                                     Flat Appl
                                                     w
                                                     lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t)))
                                  (h1
                                     by (sc3_arity_gen . . . . H3)
                                     we proved arity g c v a1
                                     by (arity_appls_bind . . H . . . previous . . . H5)

                                        arity
                                          g
                                          c
                                          THeads (Flat Appl) vs (THead (Bind b) v t)
                                          AHead a a0
                                  end of h1
                                  (h2
                                      assume dC
                                      assume wT
                                      suppose H7sc3 g a d w
                                      assume isPList
                                      suppose H8drop1 is d c
                                        (H_y
                                           by (H1 .)

                                              c:C
                                                .v:T
                                                  .t:T
                                                    .(sc3
                                                        g
                                                        a0
                                                        CHead c (Bind b) v
                                                        THeads (Flat Appl) (lifts (S OO (TCons w (lifts1 is vs))) t)
                                                      (sc3 g a1 c v
                                                           (sc3
                                                                g
                                                                a0
                                                                c
                                                                THeads (Flat Appl) (TCons w (lifts1 is vs)) (THead (Bind b) v t)))
                                        end of H_y
                                        (h1
                                           (h1
                                              (h1
                                                 by (lifts1_xhg . .)
                                                 we proved 
                                                    eq
                                                      TList
                                                      lifts1 (Ss is) (lifts (S OO vs)
                                                      lifts (S OO (lifts1 is vs)
                                                 we proceed by induction on the previous result to prove 
                                                    sc3
                                                      g
                                                      a0
                                                      CHead d (Bind b) (lift1 is v)
                                                      THead
                                                        Flat Appl
                                                        lift (S OO w
                                                        THeads (Flat Appl) (lifts (S OO (lifts1 is vs)) (lift1 (Ss is) t)
                                                    case refl_equal : 
                                                       the thesis becomes 
                                                       sc3
                                                         g
                                                         a0
                                                         CHead d (Bind b) (lift1 is v)
                                                         THead
                                                           Flat Appl
                                                           lift (S OO w
                                                           THeads
                                                             Flat Appl
                                                             lifts1 (Ss is) (lifts (S OO vs)
                                                             lift1 (Ss is) t
                                                          by (lifts1_flat . . . .)
                                                          we proved 
                                                             eq
                                                               T
                                                               lift1 (Ss is) (THeads (Flat Appl) (lifts (S OO vs) t)
                                                               THeads
                                                                 Flat Appl
                                                                 lifts1 (Ss is) (lifts (S OO vs)
                                                                 lift1 (Ss is) t
                                                          we proceed by induction on the previous result to prove 
                                                             sc3
                                                               g
                                                               a0
                                                               CHead d (Bind b) (lift1 is v)
                                                               THead
                                                                 Flat Appl
                                                                 lift (S OO w
                                                                 THeads
                                                                   Flat Appl
                                                                   lifts1 (Ss is) (lifts (S OO vs)
                                                                   lift1 (Ss is) t
                                                             case refl_equal : 
                                                                the thesis becomes 
                                                                sc3
                                                                  g
                                                                  a0
                                                                  CHead d (Bind b) (lift1 is v)
                                                                  THead
                                                                    Flat Appl
                                                                    lift (S OO w
                                                                    lift1 (Ss is) (THeads (Flat Appl) (lifts (S OO vs) t)
                                                                   (h1
                                                                      by (drop_refl .)
                                                                      we proved drop O O d d
                                                                      that is equivalent to drop (r (Bind b) OO d d
                                                                      by (drop_drop . . . . previous .)
                                                                      we proved drop (S OO (CHead d (Bind b) (lift1 is v)) d
                                                                      by (sc3_lift . . . . H7 . . . previous)
sc3 g a (CHead d (Bind b) (lift1 is v)) (lift (S OO w)
                                                                   end of h1
                                                                   (h2
                                                                      by (drop1_skip_bind . . . . . H8)
drop1 (Ss is) (CHead d (Bind b) (lift1 is v)) (CHead c (Bind b) v)
                                                                   end of h2
                                                                   by (H6 . . h1 . h2)

                                                                      sc3
                                                                        g
                                                                        a0
                                                                        CHead d (Bind b) (lift1 is v)
                                                                        THead
                                                                          Flat Appl
                                                                          lift (S OO w
                                                                          lift1 (Ss is) (THeads (Flat Appl) (lifts (S OO vs) t)

                                                             sc3
                                                               g
                                                               a0
                                                               CHead d (Bind b) (lift1 is v)
                                                               THead
                                                                 Flat Appl
                                                                 lift (S OO w
                                                                 THeads
                                                                   Flat Appl
                                                                   lifts1 (Ss is) (lifts (S OO vs)
                                                                   lift1 (Ss is) t
                                                 we proved 
                                                    sc3
                                                      g
                                                      a0
                                                      CHead d (Bind b) (lift1 is v)
                                                      THead
                                                        Flat Appl
                                                        lift (S OO w
                                                        THeads (Flat Appl) (lifts (S OO (lifts1 is vs)) (lift1 (Ss is) t)

                                                    sc3
                                                      g
                                                      a0
                                                      CHead d (Bind b) (lift1 is v)
                                                      THeads
                                                        Flat Appl
                                                        lifts (S OO (TCons w (lifts1 is vs))
                                                        lift1 (Ss is) t
                                              end of h1
                                              (h2
                                                 by (sc3_lift1 . . . . . . H3 H8)
sc3 g a1 d (lift1 is v)
                                              end of h2
                                              by (H_y . . . h1 h2)
                                              we proved 
                                                 sc3
                                                   g
                                                   a0
                                                   d
                                                   THeads
                                                     Flat Appl
                                                     TCons w (lifts1 is vs)
                                                     THead (Bind b) (lift1 is v) (lift1 (Ss is) t)

                                                 sc3
                                                   g
                                                   a0
                                                   d
                                                   THead
                                                     Flat Appl
                                                     w
                                                     THeads
                                                       Flat Appl
                                                       lifts1 is vs
                                                       THead (Bind b) (lift1 is v) (lift1 (Ss is) t)
                                           end of h1
                                           (h2
                                              by (lift1_bind . . . .)

                                                 eq
                                                   T
                                                   lift1 is (THead (Bind b) v t)
                                                   THead (Bind b) (lift1 is v) (lift1 (Ss is) t)
                                           end of h2
                                           by (eq_ind_r . . . h1 . h2)

                                              sc3
                                                g
                                                a0
                                                d
                                                THead
                                                  Flat Appl
                                                  w
                                                  THeads (Flat Appl) (lifts1 is vs) (lift1 is (THead (Bind b) v t))
                                        end of h1
                                        (h2
                                           by (lifts1_flat . . . .)

                                              eq
                                                T
                                                lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t))
                                                THeads (Flat Appl) (lifts1 is vs) (lift1 is (THead (Bind b) v t))
                                        end of h2
                                        by (eq_ind_r . . . h1 . h2)
                                        we proved 
                                           sc3
                                             g
                                             a0
                                             d
                                             THead
                                               Flat Appl
                                               w
                                               lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t))

                                        d:C
                                          .w:T
                                            .sc3 g a d w
                                              is:PList
                                                   .drop1 is d c
                                                     (sc3
                                                          g
                                                          a0
                                                          d
                                                          THead
                                                            Flat Appl
                                                            w
                                                            lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t)))
                                  end of h2
                                  by (conj . . h1 h2)

                                     land
                                       arity
                                         g
                                         c
                                         THeads (Flat Appl) vs (THead (Bind b) v t)
                                         AHead a a0
                                       d:C
                                         .w:T
                                           .sc3 g a d w
                                             is:PList
                                                  .drop1 is d c
                                                    (sc3
                                                         g
                                                         a0
                                                         d
                                                         THead
                                                           Flat Appl
                                                           w
                                                           lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t)))
                         we proved 
                            land
                              arity
                                g
                                c
                                THeads (Flat Appl) vs (THead (Bind b) v t)
                                AHead a a0
                              d:C
                                .w:T
                                  .sc3 g a d w
                                    is:PList
                                         .drop1 is d c
                                           (sc3
                                                g
                                                a0
                                                d
                                                THead
                                                  Flat Appl
                                                  w
                                                  lift1 is (THeads (Flat Appl) vs (THead (Bind b) v t)))
                         that is equivalent to sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t))
                      we proved 
                         (land
                             arity
                               g
                               CHead c (Bind b) v
                               THeads (Flat Appl) (lifts (S OO vs) t
                               AHead a a0
                             d:C
                               .w:T
                                 .sc3 g a d w
                                   is:PList
                                        .drop1 is d (CHead c (Bind b) v)
                                          (sc3
                                               g
                                               a0
                                               d
                                               THead
                                                 Flat Appl
                                                 w
                                                 lift1 is (THeads (Flat Appl) (lifts (S OO vs) t)))
                           (sc3 g a1 c v
                                sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
                      that is equivalent to 
                         (sc3
                             g
                             AHead a a0
                             CHead c (Bind b) v
                             THeads (Flat Appl) (lifts (S OO vs) t)
                           (sc3 g a1 c v
                                sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))

                      vs:TList
                        .c:C
                          .v:T
                            .t:T
                              .(sc3
                                  g
                                  AHead a a0
                                  CHead c (Bind b) v
                                  THeads (Flat Appl) (lifts (S OO vs) t)
                                (sc3 g a1 c v
                                     sc3 g (AHead a a0) c (THeads (Flat Appl) vs (THead (Bind b) v t)))
          we proved 
             vs:TList
               .c:C
                 .v:T
                   .t:T
                     .(sc3
                         g
                         a2
                         CHead c (Bind b) v
                         THeads (Flat Appl) (lifts (S OO vs) t)
                       (sc3 g a1 c v
                            sc3 g a2 c (THeads (Flat Appl) vs (THead (Bind b) v t)))
       we proved 
          g:G
            .b:B
              .not (eq B b Abst)
                a1:A
                     .a2:A
                       .vs:TList
                         .c:C
                           .v:T
                             .t:T
                               .(sc3
                                   g
                                   a2
                                   CHead c (Bind b) v
                                   THeads (Flat Appl) (lifts (S OO vs) t)
                                 (sc3 g a1 c v
                                      sc3 g a2 c (THeads (Flat Appl) vs (THead (Bind b) v t)))