--- /dev/null
+Require Arith.
+Require base_tactics.
+Require base_hints.
+
+(*#* #stop file *)
+
+ Fixpoint blt [m,n: nat] : bool := Cases n m of
+ | (0) m => false
+ | (S n) (0) => true
+ | (S n) (S m) => (blt m n)
+ end.
+
+ Section blt_props. (******************************************************)
+
+ Theorem lt_blt: (x,y:?) (lt y x) -> (blt y x) = true.
+ XElim x; [ Intros; Inversion H | XElim y; Simpl; XAuto ].
+ Qed.
+
+ Theorem le_bge: (x,y:?) (le x y) -> (blt y x) = false.
+ XElim x; [ XAuto | XElim y; Intros; [ Inversion H0 | Simpl; XAuto ] ].
+ Qed.
+
+ Theorem blt_lt: (x,y:?) (blt y x) = true -> (lt y x).
+ XElim x; [ Intros; Inversion H | XElim y; Simpl; XAuto ].
+ Qed.
+
+ Theorem bge_le: (x,y:?) (blt y x) = false -> (le x y).
+ XElim x; [ XAuto | XElim y; Intros; [ Inversion H0 | Simpl; XAuto ] ].
+ Qed.
+
+ End blt_props.
+
+ Hints Resolve lt_blt le_bge : ltlc.