proposition: Theorem appendInv : forall L1 L2 L3 : list A, append L1 L2 L3 -> forall m : A, In m L3 -> In m L1 \/ In m L2.
proof: Proof. intros L1 L2 L3 H'; elim H'; simpl in |- *; auto. intros a b L4 L5 L6 H'0 H'1 H'2 m H'3; Elimc H'3; intros H'3; [ rewrite <- H'3 | idtac ]; auto. elim (H'2 m); [ intros H'6 | intros H'6 | idtac ]; auto. intros a b L4 L5 L6 H'0 H'1 H'2 m H'3; Elimc H'3; intros H'3; auto. elim (H'2 m); [ intros H'6 | intros H'6 | idtac ]; auto. intros a b L4 L5 L6 H'0 H'1 H'2 m H'3; Elimc H'3; intros H'3; auto. elim (H'2 m); [ intros H'6 | intros H'6 | idtac ]; auto. Qed.
imports: Coq(Arith) Coq(Lexicographic_Exponentiation)