Module NatSet := FSetList.Make(OrderedTypeEx.Nat_as_OT).Infix "++" := add (at level 60, right associativity).Notation "s [=] t" := (Equal s t) (at level 70, no associativity).Module GeneralProperties := FSetProperties.Properties NatSet.

(* Specifications: *)
Lemma extendible_by_one:forall B', cardinal B' <= (cardinal town)-1 -> {d:elt| In d town /\ ~(In d B')}.
Lemma extendible_to_n:forall B', Subset B' town -> cardinal B' <= n -> {B:t| cardinal B = n /\ Subset B' B /\ Subset B town}.
Lemma inductive_invariant:forall m, m<= n -> {B':t| Subset B' town /\ cardinal B' = m /\ forall b'0 b'1, In b'0 B' -> In b'1 B' -> ~(E.eq b'0 b'1) -> knows b'0 b'1}.
Theorem AMM11262: {e:elt | In e town /\ forall u, In u town /\ ~(E.eq u e)-> knows e u}.