DEFINITION sn3_appls_beta()
TYPE =
       c:C
         .v:T
           .t:T
             .us:TList
               .sn3 c (THeads (Flat Appl) us (THead (Bind Abbr) v t))
                 w:T
                      .sn3 c w
                        (sn3
                             c
                             THeads
                               Flat Appl
                               us
                               THead (Flat Appl) v (THead (Bind Abst) w t))
BODY =
        assume cC
        assume vT
        assume tT
        assume usTList
          we proceed by induction on us to prove 
             sn3 c (THeads (Flat Appl) us (THead (Bind Abbr) v t))
               w:T
                    .sn3 c w
                      (sn3
                           c
                           THeads
                             Flat Appl
                             us
                             THead (Flat Appl) v (THead (Bind Abst) w t))
             case TNil : 
                the thesis becomes 
                sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                  w:T
                       .sn3 c w
                         (sn3
                              c
                              THeads
                                Flat Appl
                                TNil
                                THead (Flat Appl) v (THead (Bind Abst) w t))
                   we must prove 
                         sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                           w:T
                                .sn3 c w
                                  (sn3
                                       c
                                       THeads
                                         Flat Appl
                                         TNil
                                         THead (Flat Appl) v (THead (Bind Abst) w t))
                   or equivalently 
                         sn3 c (THead (Bind Abbr) v t)
                           w:T
                                .sn3 c w
                                  (sn3
                                       c
                                       THeads
                                         Flat Appl
                                         TNil
                                         THead (Flat Appl) v (THead (Bind Abst) w t))
                    suppose Hsn3 c (THead (Bind Abbr) v t)
                    assume wT
                    suppose H0sn3 c w
                      by (sn3_beta . . . H . H0)
                      we proved sn3 c (THead (Flat Appl) v (THead (Bind Abst) w t))
                      that is equivalent to 
                         sn3
                           c
                           THeads
                             Flat Appl
                             TNil
                             THead (Flat Appl) v (THead (Bind Abst) w t)
                   we proved 
                      sn3 c (THead (Bind Abbr) v t)
                        w:T
                             .sn3 c w
                               (sn3
                                    c
                                    THeads
                                      Flat Appl
                                      TNil
                                      THead (Flat Appl) v (THead (Bind Abst) w t))

                      sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                        w:T
                             .sn3 c w
                               (sn3
                                    c
                                    THeads
                                      Flat Appl
                                      TNil
                                      THead (Flat Appl) v (THead (Bind Abst) w t))
             case TCons 
                we need to prove 
                u:T
                  .us0:TList
                    .sn3 c (THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                        w:T
                             .sn3 c w
                               (sn3
                                    c
                                    THeads
                                      Flat Appl
                                      us0
                                      THead (Flat Appl) v (THead (Bind Abst) w t))
                      (sn3 c (THeads (Flat Appl) (TCons u us0) (THead (Bind Abbr) v t))
                           w:T
                                .sn3 c w
                                  (sn3
                                       c
                                       THeads
                                         Flat Appl
                                         TCons u us0
                                         THead (Flat Appl) v (THead (Bind Abst) w t)))
                    assume uT
                    assume us0TList
                      we proceed by induction on us0 to prove 
                         sn3 c (THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                             w:T
                                  .sn3 c w
                                    (sn3
                                         c
                                         THeads
                                           Flat Appl
                                           us0
                                           THead (Flat Appl) v (THead (Bind Abst) w t))
                           ((sn3
                                  c
                                  THead
                                    Flat Appl
                                    u
                                    THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                                w:T
                                     .sn3 c w
                                       (sn3
                                            c
                                            THead
                                              Flat Appl
                                              u
                                              THeads
                                                Flat Appl
                                                us0
                                                THead (Flat Appl) v (THead (Bind Abst) w t)))
                         case TNil : 
                            the thesis becomes 
                            sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                                w:T
                                     .sn3 c w
                                       (sn3
                                            c
                                            THeads
                                              Flat Appl
                                              TNil
                                              THead (Flat Appl) v (THead (Bind Abst) w t))
                              ((sn3
                                     c
                                     THead
                                       Flat Appl
                                       u
                                       THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                                   w:T
                                        .sn3 c w
                                          (sn3
                                               c
                                               THead
                                                 Flat Appl
                                                 u
                                                 THeads
                                                   Flat Appl
                                                   TNil
                                                   THead (Flat Appl) v (THead (Bind Abst) w t)))
                                suppose 
                                   sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                                     w:T
                                          .sn3 c w
                                            (sn3
                                                 c
                                                 THeads
                                                   Flat Appl
                                                   TNil
                                                   THead (Flat Appl) v (THead (Bind Abst) w t))
                                suppose H0
                                   sn3
                                     c
                                     THead
                                       Flat Appl
                                       u
                                       THeads (Flat ApplTNil (THead (Bind Abbr) v t)
                                assume wT
                                suppose H1sn3 c w
                                  consider H0
                                  we proved 
                                     sn3
                                       c
                                       THead
                                         Flat Appl
                                         u
                                         THeads (Flat ApplTNil (THead (Bind Abbr) v t)
                                  that is equivalent to sn3 c (THead (Flat Appl) u (THead (Bind Abbr) v t))
                                  by (sn3_appl_beta . . . . previous . H1)
                                  we proved 
                                     sn3
                                       c
                                       THead
                                         Flat Appl
                                         u
                                         THead (Flat Appl) v (THead (Bind Abst) w t)
                                  that is equivalent to 
                                     sn3
                                       c
                                       THead
                                         Flat Appl
                                         u
                                         THeads
                                           Flat Appl
                                           TNil
                                           THead (Flat Appl) v (THead (Bind Abst) w t)

                                  sn3 c (THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                                      w:T
                                           .sn3 c w
                                             (sn3
                                                  c
                                                  THeads
                                                    Flat Appl
                                                    TNil
                                                    THead (Flat Appl) v (THead (Bind Abst) w t))
                                    ((sn3
                                           c
                                           THead
                                             Flat Appl
                                             u
                                             THeads (Flat ApplTNil (THead (Bind Abbr) v t))
                                         w:T
                                              .sn3 c w
                                                (sn3
                                                     c
                                                     THead
                                                       Flat Appl
                                                       u
                                                       THeads
                                                         Flat Appl
                                                         TNil
                                                         THead (Flat Appl) v (THead (Bind Abst) w t)))
                         case TCons : t0:T t1:TList 
                            the thesis becomes 
                            H0:sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                       w:T
                                            .sn3 c w
                                              (sn3
                                                   c
                                                   THeads
                                                     Flat Appl
                                                     TCons t0 t1
                                                     THead (Flat Appl) v (THead (Bind Abst) w t))
                              .H1:sn3
                                         c
                                         THead
                                           Flat Appl
                                           u
                                           THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t)
                                .w:T
                                  .H2:sn3 c w
                                    .sn3
                                      c
                                      THead
                                        Flat Appl
                                        u
                                        THeads
                                          Flat Appl
                                          TCons t0 t1
                                          THead (Flat Appl) v (THead (Bind Abst) w t)
                            () by induction hypothesis we know 
                               sn3 c (THeads (Flat Appl) t1 (THead (Bind Abbr) v t))
                                   w:T
                                        .sn3 c w
                                          (sn3
                                               c
                                               THeads
                                                 Flat Appl
                                                 t1
                                                 THead (Flat Appl) v (THead (Bind Abst) w t))
                                 ((sn3
                                        c
                                        THead
                                          Flat Appl
                                          u
                                          THeads (Flat Appl) t1 (THead (Bind Abbr) v t))
                                      w:T
                                           .sn3 c w
                                             (sn3
                                                  c
                                                  THead
                                                    Flat Appl
                                                    u
                                                    THeads
                                                      Flat Appl
                                                      t1
                                                      THead (Flat Appl) v (THead (Bind Abst) w t)))
                                suppose H0
                                   sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                     w:T
                                          .sn3 c w
                                            (sn3
                                                 c
                                                 THeads
                                                   Flat Appl
                                                   TCons t0 t1
                                                   THead (Flat Appl) v (THead (Bind Abst) w t))
                                suppose H1
                                   sn3
                                     c
                                     THead
                                       Flat Appl
                                       u
                                       THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t)
                                assume wT
                                suppose H2sn3 c w
                                  (H_x
                                     by (sn3_gen_flat . . . . H1)

                                        land
                                          sn3 c u
                                          sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                  end of H_x
                                  (H3consider H_x
                                  consider H3
                                  we proved 
                                     land
                                       sn3 c u
                                       sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                  that is equivalent to 
                                     land
                                       sn3 c u
                                       sn3
                                         c
                                         THead
                                           Flat Appl
                                           t0
                                           THeads (Flat Appl) t1 (THead (Bind Abbr) v t)
                                  we proceed by induction on the previous result to prove 
                                     sn3
                                       c
                                       THead
                                         Flat Appl
                                         u
                                         THeads
                                           Flat Appl
                                           TCons t0 t1
                                           THead (Flat Appl) v (THead (Bind Abst) w t)
                                     case conj : H4:sn3 c u H5:sn3 c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Bind Abbr) v t))) 
                                        the thesis becomes 
                                        sn3
                                          c
                                          THead
                                            Flat Appl
                                            u
                                            THeads
                                              Flat Appl
                                              TCons t0 t1
                                              THead (Flat Appl) v (THead (Bind Abst) w t)
                                           (h1
                                              consider H5
                                              we proved 
                                                 sn3
                                                   c
                                                   THead
                                                     Flat Appl
                                                     t0
                                                     THeads (Flat Appl) t1 (THead (Bind Abbr) v t)
                                              that is equivalent to sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                              by (H0 previous . H2)

                                                 sn3
                                                   c
                                                   THeads
                                                     Flat Appl
                                                     TCons t0 t1
                                                     THead (Flat Appl) v (THead (Bind Abst) w t)
                                           end of h1
                                           (h2
                                               assume u2T
                                               suppose H6
                                                  pr3
                                                    c
                                                    THeads
                                                      Flat Appl
                                                      TCons t0 t1
                                                      THead (Flat Appl) v (THead (Bind Abst) w t)
                                                    u2
                                               suppose H7
                                                  (iso
                                                      THeads
                                                        Flat Appl
                                                        TCons t0 t1
                                                        THead (Flat Appl) v (THead (Bind Abst) w t)
                                                      u2)
                                                    P:Prop.P
                                                 (H8
                                                    by (pr3_iso_appls_beta . . . . . . H6 H7)
pr3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t)) u2
                                                 end of H8
                                                 by (pr3_thin_dx . . . H8 . .)
                                                 we proved 
                                                    pr3
                                                      c
                                                      THead
                                                        Flat Appl
                                                        u
                                                        THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t)
                                                      THead (Flat Appl) u u2
                                                 by (sn3_pr3_trans . . H1 . previous)
                                                 we proved sn3 c (THead (Flat Appl) u u2)

                                                 u2:T
                                                   .(pr3
                                                       c
                                                       THeads
                                                         Flat Appl
                                                         TCons t0 t1
                                                         THead (Flat Appl) v (THead (Bind Abst) w t)
                                                       u2)
                                                     ((iso
                                                              THeads
                                                                Flat Appl
                                                                TCons t0 t1
                                                                THead (Flat Appl) v (THead (Bind Abst) w t)
                                                              u2)
                                                            P:Prop.P
                                                          sn3 c (THead (Flat Appl) u u2))
                                           end of h2
                                           by (sn3_appl_appls . . . . h1 . H4 h2)

                                              sn3
                                                c
                                                THead
                                                  Flat Appl
                                                  u
                                                  THeads
                                                    Flat Appl
                                                    TCons t0 t1
                                                    THead (Flat Appl) v (THead (Bind Abst) w t)
                                  we proved 
                                     sn3
                                       c
                                       THead
                                         Flat Appl
                                         u
                                         THeads
                                           Flat Appl
                                           TCons t0 t1
                                           THead (Flat Appl) v (THead (Bind Abst) w t)

                                  H0:sn3 c (THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t))
                                             w:T
                                                  .sn3 c w
                                                    (sn3
                                                         c
                                                         THeads
                                                           Flat Appl
                                                           TCons t0 t1
                                                           THead (Flat Appl) v (THead (Bind Abst) w t))
                                    .H1:sn3
                                               c
                                               THead
                                                 Flat Appl
                                                 u
                                                 THeads (Flat Appl) (TCons t0 t1) (THead (Bind Abbr) v t)
                                      .w:T
                                        .H2:sn3 c w
                                          .sn3
                                            c
                                            THead
                                              Flat Appl
                                              u
                                              THeads
                                                Flat Appl
                                                TCons t0 t1
                                                THead (Flat Appl) v (THead (Bind Abst) w t)
                      we proved 
                         sn3 c (THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                             w:T
                                  .sn3 c w
                                    (sn3
                                         c
                                         THeads
                                           Flat Appl
                                           us0
                                           THead (Flat Appl) v (THead (Bind Abst) w t))
                           ((sn3
                                  c
                                  THead
                                    Flat Appl
                                    u
                                    THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                                w:T
                                     .sn3 c w
                                       (sn3
                                            c
                                            THead
                                              Flat Appl
                                              u
                                              THeads
                                                Flat Appl
                                                us0
                                                THead (Flat Appl) v (THead (Bind Abst) w t)))
                      that is equivalent to 
                         sn3 c (THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                             w:T
                                  .sn3 c w
                                    (sn3
                                         c
                                         THeads
                                           Flat Appl
                                           us0
                                           THead (Flat Appl) v (THead (Bind Abst) w t))
                           (sn3 c (THeads (Flat Appl) (TCons u us0) (THead (Bind Abbr) v t))
                                w:T
                                     .sn3 c w
                                       (sn3
                                            c
                                            THeads
                                              Flat Appl
                                              TCons u us0
                                              THead (Flat Appl) v (THead (Bind Abst) w t)))

                      u:T
                        .us0:TList
                          .sn3 c (THeads (Flat Appl) us0 (THead (Bind Abbr) v t))
                              w:T
                                   .sn3 c w
                                     (sn3
                                          c
                                          THeads
                                            Flat Appl
                                            us0
                                            THead (Flat Appl) v (THead (Bind Abst) w t))
                            (sn3 c (THeads (Flat Appl) (TCons u us0) (THead (Bind Abbr) v t))
                                 w:T
                                      .sn3 c w
                                        (sn3
                                             c
                                             THeads
                                               Flat Appl
                                               TCons u us0
                                               THead (Flat Appl) v (THead (Bind Abst) w t)))
          we proved 
             sn3 c (THeads (Flat Appl) us (THead (Bind Abbr) v t))
               w:T
                    .sn3 c w
                      (sn3
                           c
                           THeads
                             Flat Appl
                             us
                             THead (Flat Appl) v (THead (Bind Abst) w t))
       we proved 
          c:C
            .v:T
              .t:T
                .us:TList
                  .sn3 c (THeads (Flat Appl) us (THead (Bind Abbr) v t))
                    w:T
                         .sn3 c w
                           (sn3
                                c
                                THeads
                                  Flat Appl
                                  us
                                  THead (Flat Appl) v (THead (Bind Abst) w t))