intros; split; intro.
elim (tech_last_aux M (last N) (last_0 N (prop_N N))).
intros; clear H2; auto.
rewrite H; rewrite plus_comm;
apply (lt_plus (last N) (first N) (first_0 N (prop_N N))).
elim (tech_last_aux M (last M) (last_0 M (prop_N M)) (last_N M (prop_N M))).
intros; clear H1; rewrite H0; auto.
Qed.

(* Specifications: *)
(**********)
Lemma last_eq_M_N : forall N M : nat, M = first N + last N -> last N = last M.
intros; elim (eq_last_M_N N M H); intros; clear H1; apply H0.