Variable n : nat.
Inductive ordinalGI : predArgType := OrdinalGI x of ('N x < n)%N.
Coercion GI_of_ord i := let: OrdinalGI m _ := i in m.
Canonical ordinalGI_subType := [subType for GI_of_ord].
Definition ordinalGI_eqMixin := Eval hnf in [eqMixin of ordinalGI by <:].
Canonical ordinalGI_eqType := Eval hnf in EqType ordinalGI ordinalGI_eqMixin.
Definition ordinalGI_choiceMixin := [choiceMixin of ordinalGI by <:].
Canonical ordinalGI_choiceType :=
Eval hnf in ChoiceType ordinalGI ordinalGI_choiceMixin.
Definition ordinalGI_countMixin := [countMixin of ordinalGI by <:].
Canonical ordinalGI_countType :=
Eval hnf in CountType ordinalGI ordinalGI_countMixin.
Canonical ordinalGI_subCountType := [subCountType of ordinalGI].

Lemma mem_ordGI_enum x : x \in ordGI_enum.
Definition ordinalGI_finMixin :=
Eval hnf in UniqFinMixin ordGI_enum_uniq mem_ordGI_enum.