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.

(* Specifications: *)
Lemma pos_abs_ok : forall (x : Z) (px : (x > 0)%Z), x = Zpos (pos_abs px).
Lemma Zlt_reg_l : forall a b c : Z, (a < b)%Z -> (c + a < c + b)%Z.
Lemma Zlemma1 : forall x : Z, (x < 0)%Z -> (- x > 0)%Z.