DEFINITION lift_r()
TYPE =
       t:T.d:nat.(eq T (lift O d t) t)
BODY =
       assume tT
          we proceed by induction on t to prove d:nat.(eq T (lift O d t) t)
             case TSort : n:nat 
                the thesis becomes nat(eq T (TSort n) (TSort n))
                   assume nat
                      by (refl_equal . .)
                      we proved eq T (TSort n) (TSort n)
                      that is equivalent to eq T (lift O __1 (TSort n)) (TSort n)
nat(eq T (TSort n) (TSort n))
             case TLRef : n:nat 
                the thesis becomes d:nat.(eq T (lift O d (TLRef n)) (TLRef n))
                   assume dnat
                      (h1
                         suppose Hlt n d
                            (h1
                               by (refl_equal . .)
eq T (TLRef n) (TLRef n)
                            end of h1
                            (h2
                               by (lift_lref_lt . . . H)
eq T (lift O d (TLRef n)) (TLRef n)
                            end of h2
                            by (eq_ind_r . . . h1 . h2)
                            we proved eq T (lift O d (TLRef n)) (TLRef n)
(lt n d)(eq T (lift O d (TLRef n)) (TLRef n))
                      end of h1
                      (h2
                         suppose Hle d n
                            (h1
                               by (plus_n_O .)
                               we proved eq nat n (plus n O)
                               by (sym_eq . . . previous)
                               we proved eq nat (plus n O) n
                               by (f_equal . . . . . previous)
eq T (TLRef (plus n O)) (TLRef n)
                            end of h1
                            (h2
                               by (lift_lref_ge . . . H)
eq T (lift O d (TLRef n)) (TLRef (plus n O))
                            end of h2
                            by (eq_ind_r . . . h1 . h2)
                            we proved eq T (lift O d (TLRef n)) (TLRef n)
(le d n)(eq T (lift O d (TLRef n)) (TLRef n))
                      end of h2
                      by (lt_le_e . . . h1 h2)
                      we proved eq T (lift O d (TLRef n)) (TLRef n)
d:nat.(eq T (lift O d (TLRef n)) (TLRef n))
             case THead : k:K t0:T t1:T 
                the thesis becomes d:nat.(eq T (lift O d (THead k t0 t1)) (THead k t0 t1))
                (H) by induction hypothesis we know d:nat.(eq T (lift O d t0) t0)
                (H0) by induction hypothesis we know d:nat.(eq T (lift O d t1) t1)
                   assume dnat
                      (h1
                         (h1
                            by (refl_equal . .)
eq K k k
                         end of h1
                         (h2
                            by (H .)
eq T (lift O d t0) t0
                         end of h2
                         (h3
                            by (H0 .)
eq T (lift O (s k d) t1) t1
                         end of h3
                         by (f_equal3 . . . . . . . . . . . h1 h2 h3)
eq T (THead k (lift O d t0) (lift O (s k d) t1)) (THead k t0 t1)
                      end of h1
                      (h2
                         by (lift_head . . . . .)

                            eq
                              T
                              lift O d (THead k t0 t1)
                              THead k (lift O d t0) (lift O (s k d) t1)
                      end of h2
                      by (eq_ind_r . . . h1 . h2)
                      we proved eq T (lift O d (THead k t0 t1)) (THead k t0 t1)
d:nat.(eq T (lift O d (THead k t0 t1)) (THead k t0 t1))
          we proved d:nat.(eq T (lift O d t) t)
       we proved t:T.d:nat.(eq T (lift O d t) t)