Library prosa.util.seqset
In this section, we define a notion of a set (based on a sequence
    without duplicates). 
Let T be any type with decidable equality. 
We define a set as a sequence that has no duplicates. 
Now we add the ssreflect boilerplate code to support _ == _
      and _ ∈ _ operations. 
  Canonical Structure setSubType := [subType for _set_seq].
Definition set_eqMixin := [eqMixin of set by <:].
Canonical Structure set_eqType := EqType set set_eqMixin.
Canonical Structure mem_set_predType := PredType (fun (l : set) ⇒ mem_seq (_set_seq l)).
Definition set_of of phant T := set.
End SeqSet.
Notation " {set R } " := (set_of (Phant R)).
Definition set_eqMixin := [eqMixin of set by <:].
Canonical Structure set_eqType := EqType set set_eqMixin.
Canonical Structure mem_set_predType := PredType (fun (l : set) ⇒ mem_seq (_set_seq l)).
Definition set_of of phant T := set.
End SeqSet.
Notation " {set R } " := (set_of (Phant R)).
Next we prove a basic lemma about sets. 
Consider a set s. 
Then we show that element of s are unique.