Definition seq_sub_countMixin := CountMixin seq_sub_pickleK.Fact seq_sub_axiom : Finite.axiom seq_sub_enum.Definition seq_sub_finMixin := Finite.Mixin seq_sub_countMixin seq_sub_axiom.(* Beware: these are not the canonical instances, as they are not consistent  *)
(* with the generic sub_choiceType canonical instance.                        *)
Definition adhoc_seq_sub_choiceMixin := PcanChoiceMixin seq_sub_pickleK.Definition adhoc_seq_sub_choiceType :=
  Eval hnf in ChoiceType seq_sub adhoc_seq_sub_choiceMixin.Canonical seq_sub_choiceType := Eval hnf in ChoiceType sT seq_sub_choiceMixin.Canonical seq_sub_countType := Eval hnf in CountType sT (seq_sub_countMixin s).Canonical seq_sub_finType := Eval hnf in FinType sT (seq_sub_finMixin s).Canonical ordinal_eqType := Eval hnf in EqType ordinal ordinal_eqMixin.Canonical ordinal_choiceType :=
  Eval hnf in ChoiceType ordinal ordinal_choiceMixin.Canonical ordinal_countType := Eval hnf in CountType ordinal ordinal_countMixin.

(* Specifications: *)
Lemma ltn_ord (i : ordinal) : i < n.
Lemma ord_inj : injective nat_of_ord.