DEFINITION weight_eq()
TYPE =
       t:T
         .f:natnat
           .g:natnat
             .n:nat.(eq nat (f n) (g n))
               eq nat (weight_map f t) (weight_map g t)
BODY =
        assume tT
        assume fnatnat
        assume gnatnat
        suppose Hn:nat.(eq nat (f n) (g n))
          (h1
             assume nnat
                (h1
                   by (le_n .)
le (g n) (g n)
                end of h1
                (h2
                   by (H .)
eq nat (f n) (g n)
                end of h2
                by (eq_ind_r . . . h1 . h2)
                we proved le (f n) (g n)
             we proved n:nat.(le (f n) (g n))
             by (weight_le . . . previous)
le (weight_map f t) (weight_map g t)
          end of h1
          (h2
             assume nnat
                (h1
                   by (le_n .)
le (g n) (g n)
                end of h1
                (h2
                   by (H .)
eq nat (f n) (g n)
                end of h2
                by (eq_ind_r . . . h1 . h2)
                we proved le (g n) (f n)
             we proved n:nat.(le (g n) (f n))
             by (weight_le . . . previous)
le (weight_map g t) (weight_map f t)
          end of h2
          by (le_antisym . . h1 h2)
          we proved eq nat (weight_map f t) (weight_map g t)
       we proved 
          t:T
            .f:natnat
              .g:natnat
                .n:nat.(eq nat (f n) (g n))
                  eq nat (weight_map f t) (weight_map g t)