DEFINITION getl_ctail_clen()
TYPE =
       b:B
         .t:T
           .c:C
             .ex
               nat
               λn:nat
                 .getl
                   clen c
                   CTail (Bind b) t c
                   CHead (CSort n) (Bind b) t
BODY =
        assume bB
        assume tT
        assume cC
          we proceed by induction on c to prove 
             ex
               nat
               λn:nat
                 .getl
                   clen c
                   CTail (Bind b) t c
                   CHead (CSort n) (Bind b) t
             case CSort : n:nat 
                the thesis becomes 
                ex
                  nat
                  λn:nat
                    .getl
                      clen (CSort n)
                      CTail (Bind b) t (CSort n)
                      CHead (CSort n) (Bind b) t
                   by (getl_refl . . .)
                   we proved 
                      getl
                        O
                        CHead (CSort n) (Bind b) t
                        CHead (CSort n) (Bind b) t
                   by (ex_intro . . . previous)
                   we proved 
                      ex
                        nat
                        λn0:nat
                          .getl
                            O
                            CHead (CSort n) (Bind b) t
                            CHead (CSort n0) (Bind b) t

                      ex
                        nat
                        λn:nat
                          .getl
                            clen (CSort n)
                            CTail (Bind b) t (CSort n)
                            CHead (CSort n) (Bind b) t
             case CHead : c0:C k:K t0:T 
                the thesis becomes 
                ex
                  nat
                  λn:nat
                    .getl
                      clen (CHead c0 k t0)
                      CTail (Bind b) t (CHead c0 k t0)
                      CHead (CSort n) (Bind b) t
                (H) by induction hypothesis we know 
                   ex
                     nat
                     λn:nat
                       .getl
                         clen c0
                         CTail (Bind b) t c0
                         CHead (CSort n) (Bind b) t
                   (H0consider H
                   we proceed by induction on H0 to prove 
                      ex
                        nat
                        λn:nat
                          .getl
                            s k (clen c0)
                            CHead (CTail (Bind b) t c0) k t0
                            CHead (CSort n) (Bind b) t
                      case ex_intro : x:nat H1:getl (clen c0) (CTail (Bind b) t c0) (CHead (CSort x) (Bind b) t) 
                         the thesis becomes 
                         ex
                           nat
                           λn:nat
                             .getl
                               s k (clen c0)
                               CHead (CTail (Bind b) t c0) k t0
                               CHead (CSort n) (Bind b) t
                            we proceed by induction on k to prove 
                               ex
                                 nat
                                 λn:nat
                                   .getl
                                     s k (clen c0)
                                     CHead (CTail (Bind b) t c0) k t0
                                     CHead (CSort n) (Bind b) t
                               case Bind : b0:B 
                                  the thesis becomes 
                                  ex
                                    nat
                                    λn:nat
                                      .getl
                                        s (Bind b0) (clen c0)
                                        CHead (CTail (Bind b) t c0) (Bind b0) t0
                                        CHead (CSort n) (Bind b) t
                                     consider H1
                                     we proved 
                                        getl
                                          clen c0
                                          CTail (Bind b) t c0
                                          CHead (CSort x) (Bind b) t
                                     that is equivalent to 
                                        getl
                                          r (Bind b0) (clen c0)
                                          CTail (Bind b) t c0
                                          CHead (CSort x) (Bind b) t
                                     by (getl_head . . . . previous .)
                                     we proved 
                                        getl
                                          S (clen c0)
                                          CHead (CTail (Bind b) t c0) (Bind b0) t0
                                          CHead (CSort x) (Bind b) t
                                     by (ex_intro . . . previous)
                                     we proved 
                                        ex
                                          nat
                                          λn:nat
                                            .getl
                                              S (clen c0)
                                              CHead (CTail (Bind b) t c0) (Bind b0) t0
                                              CHead (CSort n) (Bind b) t

                                        ex
                                          nat
                                          λn:nat
                                            .getl
                                              s (Bind b0) (clen c0)
                                              CHead (CTail (Bind b) t c0) (Bind b0) t0
                                              CHead (CSort n) (Bind b) t
                               case Flat : f:F 
                                  the thesis becomes 
                                  ex
                                    nat
                                    λn:nat
                                      .getl
                                        s (Flat f) (clen c0)
                                        CHead (CTail (Bind b) t c0) (Flat f) t0
                                        CHead (CSort n) (Bind b) t
                                     by (getl_flat . . . H1 . .)
                                     we proved 
                                        getl
                                          clen c0
                                          CHead (CTail (Bind b) t c0) (Flat f) t0
                                          CHead (CSort x) (Bind b) t
                                     by (ex_intro . . . previous)
                                     we proved 
                                        ex
                                          nat
                                          λn:nat
                                            .getl
                                              clen c0
                                              CHead (CTail (Bind b) t c0) (Flat f) t0
                                              CHead (CSort n) (Bind b) t

                                        ex
                                          nat
                                          λn:nat
                                            .getl
                                              s (Flat f) (clen c0)
                                              CHead (CTail (Bind b) t c0) (Flat f) t0
                                              CHead (CSort n) (Bind b) t

                               ex
                                 nat
                                 λn:nat
                                   .getl
                                     s k (clen c0)
                                     CHead (CTail (Bind b) t c0) k t0
                                     CHead (CSort n) (Bind b) t
                   we proved 
                      ex
                        nat
                        λn:nat
                          .getl
                            s k (clen c0)
                            CHead (CTail (Bind b) t c0) k t0
                            CHead (CSort n) (Bind b) t

                      ex
                        nat
                        λn:nat
                          .getl
                            clen (CHead c0 k t0)
                            CTail (Bind b) t (CHead c0 k t0)
                            CHead (CSort n) (Bind b) t
          we proved 
             ex
               nat
               λn:nat
                 .getl
                   clen c
                   CTail (Bind b) t c
                   CHead (CSort n) (Bind b) t
       we proved 
          b:B
            .t:T
              .c:C
                .ex
                  nat
                  λn:nat
                    .getl
                      clen c
                      CTail (Bind b) t c
                      CHead (CSort n) (Bind b) t