Canonical ordinalGI_finType := Eval hnf in FinType ordinalGI ordinalGI_finMixin.
Canonical ordinalGI_subFinType := Eval hnf in [subFinType of ordinalGI].
End OrdinalGI.
Definition primeGI (x : GI) :=
(1 < 'N x)%N && [forall y : ordinalGI ('N x), (y %| x) ==> ('N y == 1%N)].

(* Specifications: *)
Lemma nprimeGI0 : ~ primeGI 0.
Lemma primeGIPn x :
reflect (('N x < 2)%N \/
exists2 y, (1 < 'N y < 'N x)%N & (y %| x))
(~~ primeGI x).