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 pos_abs_ok : forall (x : Z) (px : (x > 0)%Z), x = Zpos (pos_abs px).