DEFINITION csubst0_ind()
TYPE =
       P:natTCCProp
         .k:K.n:nat.t:T.t1:T.t2:T.(subst0 n t t1 t2)c:C.(P (s k n) t (CHead c k t1) (CHead c k t2))
           (k:K
                  .n:nat
                    .c:C
                      .c1:C
                        .t:T
                          .(csubst0 n t c c1)(P n t c c1)t1:T.(P (s k n) t (CHead c k t1) (CHead c1 k t1))
                (k:K
                       .n:nat
                         .t:T
                           .t1:T
                             .t2:T
                               .subst0 n t t1 t2
                                 c:C
                                      .c1:C.(csubst0 n t c c1)(P n t c c1)(P (s k n) t (CHead c k t1) (CHead c1 k t2))
                     n:nat.t:T.c:C.c1:C.(csubst0 n t c c1)(P n t c c1)))
BODY =
        assume PnatTCCProp
        suppose Hk:K.n:nat.t:T.t1:T.t2:T.(subst0 n t t1 t2)c:C.(P (s k n) t (CHead c k t1) (CHead c k t2))
        suppose H1
           k:K
             .n:nat
               .c:C
                 .c1:C
                   .t:T
                     .(csubst0 n t c c1)(P n t c c1)t1:T.(P (s k n) t (CHead c k t1) (CHead c1 k t1))
        suppose H2
           k:K
             .n:nat
               .t:T
                 .t1:T
                   .t2:T
                     .subst0 n t t1 t2
                       c:C
                            .c1:C.(csubst0 n t c c1)(P n t c c1)(P (s k n) t (CHead c k t1) (CHead c1 k t2))
          (aux) by well-founded reasoning we prove n:nat.t:T.c:C.c1:C.(csubst0 n t c c1)(P n t c c1)
           assume nnat
           assume tT
           assume cC
           assume c1C
           suppose H3csubst0 n t c c1
             by cases on H3 we prove P n t c c1
                case csubst0_snd k:K n1:nat t1:T t2:T t3:T H4:subst0 n1 t1 t2 t3 c2:C 
                   the thesis becomes P (s k n1) t1 (CHead c2 k t2) (CHead c2 k t3)
                   by (H . . . . . H4 .)
P (s k n1) t1 (CHead c2 k t2) (CHead c2 k t3)
                case csubst0_fst k:K n1:nat c2:C c3:C t1:T H4:csubst0 n1 t1 c2 c3 t2:T 
                   the thesis becomes P (s k n1) t1 (CHead c2 k t2) (CHead c3 k t2)
                   by (aux . . . . H4)
                   we proved P n1 t1 c2 c3
                   by (H1 . . . . . H4 previous .)
P (s k n1) t1 (CHead c2 k t2) (CHead c3 k t2)
                case csubst0_both k:K n1:nat t1:T t2:T t3:T H4:subst0 n1 t1 t2 t3 c2:C c3:C H5:csubst0 n1 t1 c2 c3 
                   the thesis becomes P (s k n1) t1 (CHead c2 k t2) (CHead c3 k t3)
                   by (aux . . . . H5)
                   we proved P n1 t1 c2 c3
                   by (H2 . . . . . H4 . . H5 previous)
P (s k n1) t1 (CHead c2 k t2) (CHead c3 k t3)
             we proved P n t c c1
n:nat.t:T.c:C.c1:C.(csubst0 n t c c1)(P n t c c1)
          done
          consider aux
          we proved n:nat.t:T.c:C.c1:C.(csubst0 n t c c1)(P n t c c1)
       we proved 
          P:natTCCProp
            .k:K.n:nat.t:T.t1:T.t2:T.(subst0 n t t1 t2)c:C.(P (s k n) t (CHead c k t1) (CHead c k t2))
              (k:K
                     .n:nat
                       .c:C
                         .c1:C
                           .t:T
                             .(csubst0 n t c c1)(P n t c c1)t1:T.(P (s k n) t (CHead c k t1) (CHead c1 k t1))
                   (k:K
                          .n:nat
                            .t:T
                              .t1:T
                                .t2:T
                                  .subst0 n t t1 t2
                                    c:C
                                         .c1:C.(csubst0 n t c c1)(P n t c c1)(P (s k n) t (CHead c k t1) (CHead c1 k t2))
                        n:nat.t:T.c:C.c1:C.(csubst0 n t c c1)(P n t c c1)))