DEFINITION lift_weight_add_O()
TYPE =
       w:nat
         .t:T
           .h:nat
             .f:natnat
               .eq
                 nat
                 weight_map f (lift h O t)
                 weight_map (wadd f w) (lift (S h) O t)
BODY =
        assume wnat
        assume tT
        assume hnat
        assume fnatnat
          (h1
              assume mnat
              suppose Hlt m O
                by (lt_x_O . H .)
                we proved eq nat (wadd f w m) (f m)
m:nat.(lt m O)(eq nat (wadd f w m) (f m))
          end of h1
          (h2
             by (plus_n_O .)
eq nat (wadd f w O) (plus (wadd f w OO)
          end of h2
          (h3
              assume mnat
              suppose le O m
                by (refl_equal . .)
                we proved eq nat (f m) (f m)
                that is equivalent to eq nat (wadd f w (S m)) (f m)
m:nat.(le O m)(eq nat (wadd f w (S m)) (f m))
          end of h3
          by (lift_weight_add . . . . . . h1 h2 h3)
          we proved 
             eq
               nat
               weight_map f (lift h O t)
               weight_map (wadd f w) (lift (S h) O t)
       we proved 
          w:nat
            .t:T
              .h:nat
                .f:natnat
                  .eq
                    nat
                    weight_map f (lift h O t)
                    weight_map (wadd f w) (lift (S h) O t)