Definition group_square (x : G) : G := sgroup_law G x x.Fixpoint nat_to_group (n : nat) : G :=
  match n with
  | O => monoid_unit G
  | S n' => sgroup_law G (nat_to_group n') r
  end.Definition pos_abs : forall x : Z, (x > 0)%Z -> positive.

Lemma Zlt_reg_l : forall a b c : Z, (a < b)%Z -> (c + a < c + b)%Z.