Instance MorSetoid  `(As:Setoid A) `(Bs:Setoid B) : Setoid (Mor As Bs) :=
  { equiv := ext_equiv As Bs
  ; setoid_equiv := ext_is_equiv As Bs
  }.Program Definition idM `(As:Setoid A) : Mor As As := Build_Mor As As (@id A) _.Program Definition composeM `{As:Setoid A} `{Bs:Setoid B} `{Cs:Setoid C}
  (f:Mor Bs Cs) `(g:Mor As Bs) := Build_Mor As Cs (fun x => f (g x)) _.Infix "oo" := composeM (at level 54, right associativity).Module TF := TF'.(* Put the discrete topped order on rhs *)
  Inductive le_T : T -> T -> Prop :=
   | le_T_refl : forall t1 t2,
     t1 == t2 -> le_T t1 t2
   | le_T_bot: forall t,
     le_T T_bot t.(* Put the discrete topped order on rhs *)
  Inductive le_T : T -> T -> Prop :=
   | le_T_refl : forall t1 t2,
     t1 == t2 -> le_T t1 t2
   | le_T_bot: forall t,
     le_T T_bot t.(* Put the discrete topped order on rhs *)
  Inductive le_T : T -> T -> Prop :=
   | le_T_refl : forall t1 t2,
     t1 == t2 -> le_T t1 t2
   | le_T_bot: forall t,
     le_T T_bot t.

(* Specifications: *)
Lemma le_T_asym: forall t1 t2, le_T t1 t2 -> le_T t2 t1 -> t1 == t2.