proposition: Lemma atom_fresh : forall L : atoms, { x : atom | ~ In x L }.
proof: Proof. intros L. destruct (atom_fresh_for_list (elements L)) as [a H]. exists a. intros J. contradiction H. rewrite <- CoqListFacts.InA_iff_In. auto using elements_1. Qed.
imports: Coq.Arith.Arith Coq.Arith.Max Coq.Classes.EquivDec Coq.Lists.List Coq.Structures.Equalities Coq.FSets.FSets Metalib.CoqListFacts Metalib.FSetExtra Metalib.FSetWeakNotin Metalib.LibTactics Lia