+notation > "'Ex'≪" non associative with precedence 50 for
+ @{'excedencerewritel}.
+
+interpretation "exc_rewl" 'excedencerewritel =
+ (cic:/matita/excedence/exc_rewl.con _ _ _).
+
+notation > "'Ex'≫" non associative with precedence 50 for
+ @{'excedencerewriter}.
+
+interpretation "exc_rewr" 'excedencerewriter =
+ (cic:/matita/excedence/exc_rewr.con _ _ _).
+
+lemma fexc_plusr:
+ ∀G:ogroup.∀x,y,z:G. x ≰ y → x+z ≰ y + z.
+intros 5 (G x y z L); apply (exc_canc_plusr ??? (-z));
+apply (Ex≪ (x + (z + -z)) (plus_assoc ????));
+apply (Ex≪ (x + (-z + z)) (plus_comm ??z));
+apply (Ex≪ (x+0) (opp_inverse ??));
+apply (Ex≪ (0+x) (plus_comm ???));
+apply (Ex≪ x (zero_neutral ??));
+apply (Ex≫ (y + (z + -z)) (plus_assoc ????));
+apply (Ex≫ (y + (-z + z)) (plus_comm ??z));
+apply (Ex≫ (y+0) (opp_inverse ??));
+apply (Ex≫ (0+y) (plus_comm ???));
+apply (Ex≫ y (zero_neutral ??) L);
+qed.
+
+coercion cic:/matita/ordered_groups/fexc_plusr.con nocomposites.
+
+lemma exc_canc_plusl: ∀G:ogroup.∀f,g,h:G. h+f ≰ h+g → f ≰ g.
+intros 5 (G x y z L); apply (exc_canc_plusr ??? z);
+apply (exc_rewl ??? (z+x) (plus_comm ???));
+apply (exc_rewr ??? (z+y) (plus_comm ???) L);
+qed.
+
+lemma fexc_plusl:
+ ∀G:ogroup.∀x,y,z:G. x ≰ y → z+x ≰ z+y.
+intros 5 (G x y z L); apply (exc_canc_plusl ??? (-z));
+apply (exc_rewl ???? (plus_assoc ??z x));
+apply (exc_rewr ???? (plus_assoc ??z y));
+apply (exc_rewl ??? (0+x) (opp_inverse ??));
+apply (exc_rewr ??? (0+y) (opp_inverse ??));
+apply (exc_rewl ???? (zero_neutral ??));
+apply (exc_rewr ???? (zero_neutral ??) L);
+qed.
+
+coercion cic:/matita/ordered_groups/fexc_plusl.con nocomposites.
+