(** ---- * The ring of Gauss integers  - Ref: exercices de mathematiques oraux X-ENS algebre 1 - Exercice 3.10. ENS Lyon  *)
Section GaussIntegers.
(** First we define a predicate for the algebraic numbers which are gauss integers. *)
Definition gaussInteger := [qualify a x | ('Re x \in Cint) && ('Im x \in Cint)].

(* Specifications: *)
(**  ** Question 1: Prove that integers are gauss integers  *)
Lemma Cint_GI (x : algC) : x \in Cint -> x \is a gaussInteger.
(**  ** Question 2: Prove that gauss integers form a subfield *)
Lemma GI_subring : subring_closed gaussInteger.
Fact GI_key : pred_key gaussInteger. Proof. by []. Qed.