Record class_of (T : Type) := Class {
   base : Equality.class_of T;
   mixin : mixin_of (EqType T base)}.Record class_of (T : Type) := Class {
   base : Equality.class_of T;
   mixin : mixin_of (EqType T base)}.Record class_of (T : Type) := Class {
   base : Equality.class_of T;
   mixin : mixin_of (EqType T base)}.Record class_of (T : Type) := Class {
   base : Equality.class_of T;
   mixin : mixin_of (EqType T base)}.Structure type : Type := Pack {sort : Type; _ : class_of sort; _ : Type}.Structure type : Type := Pack {sort : Type; _ : class_of sort; _ : Type}.Structure type : Type := Pack {sort : Type; _ : class_of sort; _ : Type}.Definition clone c of phant_id class c := @Pack T c T.Definition eqType := Eval hnf in EqType cT class.Notation ordType := Ordered.type.Notation OrdMixin := Mixin.Notation OrdType T m := (@pack T _ m _ id).Definition ord T : rel (sort T) := (ordering (mixin (class T))).Notation "[ 'ordType' 'of' T 'for' cT ]" := (@clone T cT _ id)
  (at level 0, format "[ 'ordType' 'of' T 'for' cT ]") : form_scope.Notation "[ 'ordType' 'of' T ]" := (@clone T _ _ id)
  (at level 0, format "[ 'ordType' 'of' T ]") : form_scope.

(* Specifications: *)
Lemma irr : irreflexive (@ord T).
Lemma trans : transitive (@ord T).
Lemma nsym (x y : T) : ord x y -> ord y x -> False.
Lemma irr_ltn_nat : irreflexive ltn.
Lemma trans_ltn_nat : transitive ltn.