intros n l0; elim l0; clear l0.
simpl in |- *; trivial.
intros a0 l0 ih l1 a nth.
simpl in |- *.
apply My_NthS.
apply ih.
assumption.
Qed.
Inductive inv_my_nth_app (n : nat) (l0 l1 : list B) (a : B) : Set :=
| Inv_Nth_App0 : my_nth n l0 a -> inv_my_nth_app n l0 l1 a
| Inv_Nth_App1 :
forall n' : nat, my_nth n' l1 a -> inv_my_nth_app n l0 l1 a.

(* Specifications: *)
Lemma inv_nth_app :
forall (n : nat) (l0 l1 : list B) (a : B),
my_nth n (l0 ++ l1) a -> inv_my_nth_app n l0 l1 a.