DEFINITION T_rect()
TYPE =
       ΠP:T
                (Type:91437:cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/T_rect.con)
         .Πn:nat.(P (TSort n))
           (Πn:nat.(P (TLRef n))
                (Πk:K.Πt:T.(P t)Πt1:T.(P t1)(P (THead k t t1))
                     Πt:T.(P t)))
BODY =
λP:T
               (Type:91437:cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/T_rect.con)
         .λf:Πn:nat.(P (TSort n))
           .λf1:Πn:nat.(P (TLRef n))
             .λf2:Πk:K.Πt:T.(P t)Πt1:T.(P t1)(P (THead k t t1))
               .FIXaux{
                 aux:Πt:T.(P t)
                 :=λt:T
                   .<P>
                     CASE t OF
                       TSort nf n
                     | TLRef nf1 n
                     | THead k t1 t2f2 k t1 (aux t1) t2 (aux t2)
                 }