DEFINITION clear_mono()
TYPE =
       c:C.c1:C.(clear c c1)c2:C.(clear c c2)(eq C c1 c2)
BODY =
       assume cC
          we proceed by induction on c to prove c1:C.(clear c c1)c2:C.(clear c c2)(eq C c1 c2)
             case CSort : n:nat 
                the thesis becomes c1:C.(clear (CSort n) c1)c2:C.H0:(clear (CSort n) c2).(eq C c1 c2)
                    assume c1C
                    suppose clear (CSort n) c1
                    assume c2C
                    suppose H0clear (CSort n) c2
                      by (clear_gen_sort . . H0 .)
                      we proved eq C c1 c2
c1:C.(clear (CSort n) c1)c2:C.H0:(clear (CSort n) c2).(eq C c1 c2)
             case CHead : c0:C k:K t:T 
                the thesis becomes c1:C.H0:(clear (CHead c0 k t) c1).c2:C.H1:(clear (CHead c0 k t) c2).(eq C c1 c2)
                (H) by induction hypothesis we know c1:C.(clear c0 c1)c2:C.(clear c0 c2)(eq C c1 c2)
                    assume c1C
                    suppose H0clear (CHead c0 k t) c1
                    assume c2C
                    suppose H1clear (CHead c0 k t) c2
                         assume bB
                          suppose H2clear (CHead c0 (Bind b) t) c1
                          suppose H3clear (CHead c0 (Bind b) t) c2
                            (h1
                               (h1
                                  by (refl_equal . .)
eq C (CHead c0 (Bind b) t) (CHead c0 (Bind b) t)
                               end of h1
                               (h2
                                  by (clear_gen_bind . . . . H2)
eq C c1 (CHead c0 (Bind b) t)
                               end of h2
                               by (eq_ind_r . . . h1 . h2)
eq C c1 (CHead c0 (Bind b) t)
                            end of h1
                            (h2
                               by (clear_gen_bind . . . . H3)
eq C c2 (CHead c0 (Bind b) t)
                            end of h2
                            by (eq_ind_r . . . h1 . h2)
                            we proved eq C c1 c2

                            H2:clear (CHead c0 (Bind b) t) c1
                              .H3:(clear (CHead c0 (Bind b) t) c2).(eq C c1 c2)
                         assume fF
                          suppose H2clear (CHead c0 (Flat f) t) c1
                          suppose H3clear (CHead c0 (Flat f) t) c2
                            (h1
                               by (clear_gen_flat . . . . H2)
clear c0 c1
                            end of h1
                            (h2
                               by (clear_gen_flat . . . . H3)
clear c0 c2
                            end of h2
                            by (H . h1 . h2)
                            we proved eq C c1 c2

                            H2:clear (CHead c0 (Flat f) t) c1
                              .H3:(clear (CHead c0 (Flat f) t) c2).(eq C c1 c2)
                      by (previous . H0 H1)
                      we proved eq C c1 c2
c1:C.H0:(clear (CHead c0 k t) c1).c2:C.H1:(clear (CHead c0 k t) c2).(eq C c1 c2)
          we proved c1:C.(clear c c1)c2:C.(clear c c2)(eq C c1 c2)
       we proved c:C.c1:C.(clear c c1)c2:C.(clear c c2)(eq C c1 c2)