DEFINITION sn3_gen_head()
TYPE =
       k:K.c:C.u:T.t:T.(sn3 c (THead k u t))(sn3 c u)
BODY =
       assume kK
          we proceed by induction on k to prove c:C.u:T.t:T.(sn3 c (THead k u t))(sn3 c u)
             case Bind : b:B 
                the thesis becomes c:C.u:T.t:T.H:(sn3 c (THead (Bind b) u t)).(sn3 c u)
                    assume cC
                    assume uT
                    assume tT
                    suppose Hsn3 c (THead (Bind b) u t)
                      (H_x
                         by (sn3_gen_bind . . . . H)
land (sn3 c u) (sn3 (CHead c (Bind b) u) t)
                      end of H_x
                      (H0consider H_x
                      we proceed by induction on H0 to prove sn3 c u
                         case conj : H1:sn3 c u :sn3 (CHead c (Bind b) u) t 
                            the thesis becomes the hypothesis H1
                      we proved sn3 c u
c:C.u:T.t:T.H:(sn3 c (THead (Bind b) u t)).(sn3 c u)
             case Flat : f:F 
                the thesis becomes c:C.u:T.t:T.H:(sn3 c (THead (Flat f) u t)).(sn3 c u)
                    assume cC
                    assume uT
                    assume tT
                    suppose Hsn3 c (THead (Flat f) u t)
                      (H_x
                         by (sn3_gen_flat . . . . H)
land (sn3 c u) (sn3 c t)
                      end of H_x
                      (H0consider H_x
                      we proceed by induction on H0 to prove sn3 c u
                         case conj : H1:sn3 c u :sn3 c t 
                            the thesis becomes the hypothesis H1
                      we proved sn3 c u
c:C.u:T.t:T.H:(sn3 c (THead (Flat f) u t)).(sn3 c u)
          we proved c:C.u:T.t:T.(sn3 c (THead k u t))(sn3 c u)
       we proved k:K.c:C.u:T.t:T.(sn3 c (THead k u t))(sn3 c u)