proposition: Theorem ulist_app_inv_l: forall (l1 l2 : list A), ulist (l1 ++ l2) -> ulist l1.
proof: Proof. intros l1 l2. generalize dependent l1. induction l2; intros l1 H. - rewrite app_nil_r in H. assumption. - apply NoDup_remove_1 in H; auto. Qed.
imports: List Arith Permutation ListSet