DEFINITION fsubst0_ind()
TYPE =
       i:nat
         .v:T
           .c1:C
             .t1:T
               .P:CTProp
                 .t:T.(subst0 i v t1 t)(P c1 t)
                   (c:C.(csubst0 i v c1 c)(P c t1)
                        (t:T.(subst0 i v t1 t)c:C.(csubst0 i v c1 c)(P c t)
                             c:C.t:T.(fsubst0 i v c1 t1 c t)(P c t)))
BODY =
        assume inat
        assume vT
        assume c1C
        assume t1T
        assume PCTProp
        suppose Ht:T.(subst0 i v t1 t)(P c1 t)
        suppose H1c:C.(csubst0 i v c1 c)(P c t1)
        suppose H2t:T.(subst0 i v t1 t)c:C.(csubst0 i v c1 c)(P c t)
        assume cC
        assume tT
        suppose H3fsubst0 i v c1 t1 c t
          by cases on H3 we prove P c t
             case fsubst0_snd t2:T H4:subst0 i v t1 t2 
                the thesis becomes P c1 t2
                by (H . H4)
P c1 t2
             case fsubst0_fst c2:C H4:csubst0 i v c1 c2 
                the thesis becomes P c2 t1
                by (H1 . H4)
P c2 t1
             case fsubst0_both t2:T H4:subst0 i v t1 t2 c2:C H5:csubst0 i v c1 c2 
                the thesis becomes P c2 t2
                by (H2 . H4 . H5)
P c2 t2
          we proved P c t
       we proved 
          i:nat
            .v:T
              .c1:C
                .t1:T
                  .P:CTProp
                    .t:T.(subst0 i v t1 t)(P c1 t)
                      (c:C.(csubst0 i v c1 c)(P c t1)
                           (t:T.(subst0 i v t1 t)c:C.(csubst0 i v c1 c)(P c t)
                                c:C.t:T.(fsubst0 i v c1 t1 c t)(P c t)))