DEFINITION subst0_tlt_head()
TYPE =
       u:T
         .t:T
           .z:T
             .subst0 O u t z
               tlt (THead (Bind Abbr) u z) (THead (Bind Abbr) u t)
BODY =
        assume uT
        assume tT
        assume zT
        suppose Hsubst0 O u t z
          (h1
             by (le_n .)
le (weight_map λ:nat.O u) (weight_map λ:nat.O u)
          end of h1
          (h2
             (h1
                assume mnat
                   by (le_n .)
                   we proved 
                      le
                        wadd λ:nat.O (S (weight_map λ:nat.O u)) m
                        wadd λ:nat.O (S (weight_map λ:nat.O u)) m

                   m:nat
                     .le
                       wadd λ:nat.O (S (weight_map λ:nat.O u)) m
                       wadd λ:nat.O (S (weight_map λ:nat.O u)) m
             end of h1
             (h2
                by (lift_weight_add_O . . . .)
                we proved 
                   eq
                     nat
                     weight_map λ:nat.O (lift O O u)
                     weight_map
                       wadd λ:nat.O (S (weight_map λ:nat.O u))
                       lift (S OO u
                we proceed by induction on the previous result to prove 
                   lt
                     weight_map
                       wadd λ:nat.O (S (weight_map λ:nat.O u))
                       lift (S OO u
                     S (weight_map λ:nat.O u)
                   case refl_equal : 
                      the thesis becomes lt (weight_map λ:nat.O (lift O O u)) (S (weight_map λ:nat.O u))
                         (h1
                            by (le_n .)
                            we proved le (S (weight_map λ:nat.O u)) (S (weight_map λ:nat.O u))
lt (weight_map λ:nat.O u) (S (weight_map λ:nat.O u))
                         end of h1
                         (h2
                            by (lift_r . .)
eq T (lift O O u) u
                         end of h2
                         by (eq_ind_r . . . h1 . h2)
lt (weight_map λ:nat.O (lift O O u)) (S (weight_map λ:nat.O u))
                we proved 
                   lt
                     weight_map
                       wadd λ:nat.O (S (weight_map λ:nat.O u))
                       lift (S OO u
                     S (weight_map λ:nat.O u)

                   lt
                     weight_map
                       wadd λ:nat.O (S (weight_map λ:nat.O u))
                       lift (S OO u
                     wadd λ:nat.O (S (weight_map λ:nat.O u)) O
             end of h2
             by (subst0_weight_lt . . . . H . . h1 h2)

                lt
                  weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) z
                  weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) t
          end of h2
          by (le_lt_plus_plus . . . . h1 h2)
          we proved 
             lt
               plus
                 weight_map λ:nat.O u
                 weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) z
               plus
                 weight_map λ:nat.O u
                 weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) t
          by (lt_n_S . . previous)
          we proved 
             lt
               S
                 plus
                   weight_map λ:nat.O u
                   weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) z
               S
                 plus
                   weight_map λ:nat.O u
                   weight_map (wadd λ:nat.O (S (weight_map λ:nat.O u))) t
          that is equivalent to tlt (THead (Bind Abbr) u z) (THead (Bind Abbr) u t)
       we proved 
          u:T
            .t:T
              .z:T
                .subst0 O u t z
                  tlt (THead (Bind Abbr) u z) (THead (Bind Abbr) u t)