(************************************************************************** ************************************************************************* *)
Definition mult_eq := f_equal2 mult.
Definition minus_eq := f_equal2 minus.

(* Specifications: *)
Lemma lt_minus_O_lt : forall n m : nat, m < n -> 0 < n - m.
Lemma eq_minus : forall a b c : nat, c < a -> a - c = b - c -> a = b.
Lemma eq_minus' :
forall a b c : nat, c <= a -> c <= b -> a - c = b - c -> a = b.
Lemma eq_plus : forall a b c : nat, c + a = c + b -> a = b.
Lemma plus_eqO : forall x y : nat, x + y = 0 -> x = 0.
Lemma mult_eqO : forall a b : nat, a * b = 0 -> a = 0 \/ b = 0.
Lemma mult_SO : forall x y : nat, x * y = 1 -> x = 1.
Lemma mult_eq_Sn : forall a b : nat, 0 < b -> a * b = b -> a = 1.
Inductive is_div : nat -> nat -> nat -> nat -> Prop :=
is_div_def :
forall a b q r : nat, r < b -> a = q * b + r -> is_div a b q r.