Definition Z8_as_well_ordering :=
  Build_well_ordering Z8 Z8_lt Z8_eq Z8_lt_is_order Z8_eq_is_equality
    Z8_lt_is_wf Z8_lt_is_well_def_rht.Definition Qpositive2 := (Qpositive * Qpositive)%type.Definition bin2_lt (x y : Qpositive2) :=
  let (p1, p2) := x in let (p1', p2) := y in bin_lt p1 p1'.Definition bin2_eq (x y : Qpositive2) :=
  let (p1, p2) := x in let (p1', p2) := y in p1 = p1'.

(* Specifications: *)
Lemma bin2_lt_is_irreflexive : forall x : Qpositive2, ~ bin2_lt x x.
Lemma bin2_lt_is_transitive : forall x y z : Qpositive2, bin2_lt x y -> bin2_lt y z -> bin2_lt x z.
Lemma bin2_lt_is_order : is_order Qpositive2 bin2_lt.
Lemma bin2_eq_is_reflexive : forall x : Qpositive2, bin2_eq x x.
Lemma bin2_eq_is_symmetric : forall x y : Qpositive2, bin2_eq x y -> bin2_eq y x.
Lemma bin2_eq_is_transitive : forall x y z : Qpositive2, bin2_eq x y -> bin2_eq y z -> bin2_eq x z.
Lemma bin2_eq_is_equality : is_equality Qpositive2 bin2_eq.
Lemma bin2_lt_is_wf : wf_ind Qpositive2 bin2_lt.
Lemma bin2_lt_is_well_def_rht : is_well_def_rht Qpositive2 bin2_lt bin2_eq.