unfold.unfold.intros 2.elim x 2.elim y 2.
 simplify.
 intro.
-reduce in H2.
+normalize in H2.
 apply (un_op_wd_unfolded ? f ? ? H2).
 qed.
 
 \forall f: CSetoid_un_op S. \forall pr: un_op_pres_pred S P f.  
 un_op_strext (mk_SubCSetoid S P) (restr_un_op S P f pr).
 intros.unfold.unfold. intros 2.elim y 2. elim x 2.
-intros.reduce in H2.
+intros.normalize in H2.
 apply (cs_un_op_strext ? f ? ? H2).
 qed.
 
 unfold.unfold.intros 2.elim x1 2. elim x2 2.intros 2. elim y1 2. elim y2 2.
 simplify.
 intros.
-reduce in H4.
-reduce in H5.
+normalize in H4.
+normalize in H5.
 apply (cs_bin_op_wd ? f ? ? ? ? H4 H5).
 qed.
 
 bin_op_strext (mk_SubCSetoid S P) (restr_bin_op S P f pr).
 intros.unfold.unfold. intros 2.elim x1 2. elim x2 2.intros 2. elim y1 2. elim y2 2.
 simplify.intros.
-reduce in H4.
+normalize in H4.
 apply (cs_bin_op_strext ? f ? ? ? ? H4).
 qed.
 
 
          fold simplify (sort nat_eqType); (* CANONICAL?! *)
          cases (in_sub_eq nat_eqType (λx:nat_eqType.ltb x bound) w);
          simplify; [2: reflexivity]
-         generalize in match H1; clear H1; cases s; clear s; intros (H1);
-         unfold segment; simplify; simplify in H1; rewrite > H1;
+         generalize in match H1; clear H1; cases s (r Pr); clear s; intros (H1);
+         unfold fsort; unfold segment; simplify; simplify in H1; rewrite > H1;
          rewrite > iota_ltb in Hw; apply (p2bF ? ? (eqP nat_eqType ? ?));
          unfold Not; intros (Enw); rewrite > Enw in Hw; 
          rewrite > ltb_refl in Hw; destruct Hw]
 
                 [ assumption
                 | assumption
                 ]
-              | rewrite > H14.
+              | unfold ha.
+                unfold ha12.
+                unfold ha22.
+                rewrite > H14.
                 rewrite > H13.
                 apply sym_eq.
                 apply div_mod.
                 rewrite > Hcut.
                 assumption
               ] 
-            | rewrite > Hcut1.
+            | unfold ha.
+              unfold ha12.
+              rewrite > Hcut1.
               rewrite > Hcut.
               assumption
             ]
-          | rewrite > Hcut1.
+          | unfold ha.
+            unfold ha22.
+            rewrite > Hcut1.
             rewrite > Hcut.
             assumption            
           ]
         | cut(O \lt m1)
           [ cut(O \lt n1)      
             [ apply (lt_to_le_to_lt ? ((h11 i j)*m1 + m1) )
-              [ apply (lt_plus_r).
+              [ unfold ha.
+                apply (lt_plus_r).
                 assumption
               | rewrite > sym_plus.
                 rewrite > (sym_times (h11 i j) m1).
     |assumption
     ]
   ]
-qed.
-
-
-
+qed.
\ No newline at end of file
 
     Morphism_Theory In' Out'.
   intros;
   apply (mk_Morphism_Theory ? ? f);
-  unfold In' in f; clear In';
-  unfold Out' in f; clear Out';
+  unfold In' in f ⊢ %; clear In';
+  unfold Out' in f ⊢ %; clear Out';
   generalize in match f; clear f;
   elim In;
    [ unfold make_compatibility_goal;
  apply mk_Morphism_Theory;
   [ exact Aeq
   | unfold make_compatibility_goal;
-    simplify;
+    simplify; unfold ASetoidClass; simplify;
     intros;
     split;
     unfold transitive in H;
     (Morphism_Theory (cons ? ASetoidClass (singl ? ASetoidClass)) Iff_Relation_Class).
  intros;
  apply mk_Morphism_Theory;
- reduce;
+ normalize;
   [ exact Aeq
   | intros;
     split;
  apply mk_Morphism_Theory;
  [ simplify;
    apply Aeq
- | simplify;
+ | simplify; unfold ASetoidClass1; simplify; unfold ASetoidClass2; simplify;
    intros;
    whd;
    intros;
  apply mk_Morphism_Theory;
  [ simplify;
    apply Aeq
- | simplify;
+ | simplify; unfold ASetoidClass1; simplify; unfold ASetoidClass2; simplify;
    intros;
    whd;
    intro;
   | generalize in match f; clear f;
     unfold In'; clear In';
     elim In;
-     [ reduce;
+     [ normalize;
        intro;
        apply iff_refl
      | simplify;