Section Lemmas.
Variable G : GROUP.
intros n g; try assumption.
apply Trans with (Ap (sgroup_map (monoid_sgroup_hom (Z_to_group_nat g))) n);
auto with algebra.
apply Sym.
apply Z_to_group_fun_eq.
Qed.
Hint Resolve Z_to_group_nat_eq_pos: algebra.
simple induction n.
intros H'; try assumption.
inversion H'.
intros p H'; try assumption.
replace 0%Z with (- (0))%Z.
apply Z.lt_gt; auto with algebra.
auto with algebra.
intros p H'; try assumption.
replace 0%Z with (- (0))%Z.
apply Z.lt_gt; auto with algebra.
auto with algebra.
Qed.
Hint Resolve Zopp1: algebra.
simple induction n.
intros H'; try assumption.
inversion H'.
intros p H'; try assumption.
replace 0%Z with (- (0))%Z.
apply Z.gt_lt; auto with algebra.
auto with algebra.
intros p H'; try assumption.
replace 0%Z with (- (0))%Z.
apply Z.gt_lt; auto with algebra.
auto with algebra.
Qed.
Hint Resolve Zopp2: algebra.

Lemma pos_abs_comp :
forall (x : Z) (p p' : (x > 0)%Z), pos_abs p = pos_abs p'.