intros (G x Px);
 generalize in match (og_ordered_abelian_group_properties ? ? ? (-x) Px); intro;
 (* ma cazzo, qui bisogna rifare anche i gruppi con ≈ ? *)
- rewrite > zero_neutral in H1;
- rewrite > plus_comm in H1;
- rewrite > opp_inverse in H1;
+ rewrite > zero_neutral in H;
+ rewrite > plus_comm in H;
+ rewrite > opp_inverse in H;
  assumption.
 qed.
 
 
                     ∃l1,l2,l3.l = l1 @ [x] @ l2 @ [y] @ l3].
 
 lemma mem_x_to_ex_l1_l2 : ∀l,x.mem ? eqb x l = true → ∃l1,l2.l = l1 @ [x] @ l2.
-intros 2; elim l (H hd tl IH H); [destruct H]
+intros 2; elim l (H hd tl IH H); [simplify in H; destruct H]
 generalize in match H; clear H;
 simplify; apply (eqb_elim x hd); simplify; intros;
 [1:clear IH; rewrite < H; apply (ex_intro ? ? []);