destruct l1.
+ intros. exfalso; apply H; auto.
+ intros.
destruct s.
- auto.
- simpl in H1.
destruct (l1 ++ l2) eqn:Contra.
* destruct l1; destruct l2; try solve [unfold not; exfalso; auto];
simpl in *; congruence.
* congruence.
Qed.

(* Specifications: *)
Lemma listAppNeq : forall (A : Type) (l1 l2 l3 l4 : list A),
(forall (x y : A), {x = y} + {x <> y}) ->
length l1 = length l2 ->
l1 <> l2 ->
l1 ++ l3 <> l2 ++ l4.