DEFINITION ty3_typecheck()
TYPE =
       g:G.c:C.t:T.v:T.(ty3 g c t v)(ex T λu:T.ty3 g c (THead (Flat Cast) v t) u)
BODY =
        assume gG
        assume cC
        assume tT
        assume vT
        suppose Hty3 g c t v
          by (ty3_correct . . . . H)
          we proved ex T λt:T.ty3 g c v t
          we proceed by induction on the previous result to prove ex T λu:T.ty3 g c (THead (Flat Cast) v t) u
             case ex_intro : x:T H0:ty3 g c v x 
                the thesis becomes ex T λu:T.ty3 g c (THead (Flat Cast) v t) u
                   by (ty3_cast . . . . H . H0)
                   we proved ty3 g c (THead (Flat Cast) v t) (THead (Flat Cast) x v)
                   by (ex_intro . . . previous)
ex T λu:T.ty3 g c (THead (Flat Cast) v t) u
          we proved ex T λu:T.ty3 g c (THead (Flat Cast) v t) u
       we proved 
          g:G.c:C.t:T.v:T.(ty3 g c t v)(ex T λu:T.ty3 g c (THead (Flat Cast) v t) u)