Library Hardware.Libraries.Lib_Arithmetic.Lib_Eq_Le_Lt




Require Export Arith.
Require Export Compare.

Lemma not_S_eq : n m : nat, S n S m n m.
red in |- *; intros.
apply H; auto with v62.
Qed.
Hint Resolve not_S_eq.

Lemma neq_O_le : n : nat, n 0 1 n.
simple induction n; auto with v62.
Qed.
Hint Resolve neq_O_le.

Lemma lt_O : m n : nat, m < n 0 < n.
intros m n H.
apply le_lt_trans with m; auto with v62.
Qed.
Hint Immediate lt_O.

Lemma lt_Ex_n : n : nat, 0 < n n0 : nat, n = S n0.
intros.
elim H.
0; try trivial with v62.
intros; m; try trivial with v62.
Qed.
Hint Resolve lt_Ex_n.

Lemma lt_m_neq : m n : nat, m < n n m.
simple induction m.
simple induction n; auto with v62.
clear m; intros m H_rec n H.
cut ( p : nat, n = S p).
intros G; elim G; clear G.
intros p e.
rewrite e.
apply not_eq_S.
apply H_rec.
apply lt_S_n.
elim e; try trivial with v62.
apply lt_Ex_n.
apply lt_O with (S m); try trivial with v62.
Qed.

Hint Resolve lt_m_neq.