(* ArithCompl.v *)
(**********************************)
(* Some complements of arithmetic *)
(**********************************)
Require Export Wf_nat.
Require Export ZArith.
Require Export Znumtheory.
Require Export Reals.
Open Scope Z_scope.
Unset Standard Proposition Elimination Names.
(***************)
(* Regarding Z *)
(***************)
Definition is_sqr (n : Z) : Prop :=
0 <= n /\ exists i : Z, i * i = n /\ 0 <= i.
Definition both_odd (x y : Z) := Zodd x /\ Zodd y.
Definition distinct_parity (a b : Z) :=
(Zeven a) /\ (Zodd b) \/ (Zodd a) /\ (Zeven b).

Lemma relp_mult1 : forall a b c d k: Z, 0 <= a -> 0 <= b -> 0 < c -> 0 <= d ->
a = k * c -> b = k * d -> rel_prime a b -> k = 1.