(** *** Some type classes about order *)
(** *** Making the generic [order] tactic *)
Definition lt_compat := lt_wd.
Definition lt_total := lt_trichotomy.
Definition le_lteq := lt_eq_cases.
Module Private_OrderTac.
Module IsTotal.
Definition eq_equiv := eq_equiv.
Definition lt_strorder := lt_strorder.
Definition lt_compat := lt_compat.
Definition lt_total := lt_total.
Definition le_lteq := le_lteq.
End IsTotal.
Module Tac := !MakeOrderTac NZ IsTotal.
End Private_OrderTac.
Ltac order := Private_OrderTac.Tac.order.
(** *** Some direct consequences of [order] *)

Theorem le_0_2 : 0 <= 2.
Ltac order' := generalize lt_0_1 lt_1_2; order.