proposition: Theorem appendCom : forall L1 L2 L3 : list A, append L1 L2 L3 -> Disjoint L1 L2 -> append L2 L1 L3.
proof: Proof. intros L1 L2 L3 H'; elim H'; auto. intros a b L4 L5 L6 H'0 H'1 H'2 H'3; inversion_clear H'3. absurd (InEq a (b :: L5)); auto. intros a b L4 L5 L6 H'0 H'1 H'2 H'3. apply appendLtA2; auto. apply H'2; auto. apply DisjointInv2 with (a := a); auto. intros a b L4 L5 L6 H'0 H'1 H'2 H'3; apply appendLtA1; auto. apply H'2; auto. apply DisjointInv1 with (a := b); auto. Qed.
imports: Coq(Arith) Coq(Lexicographic_Exponentiation)