Module NameSetDec := WDecide (NameSetMod).
Class PartPatchUniverse (pu_type1 pu_type2 : Type)
: Type := mkPartPatchUniverse {
}.
Class PatchUniverse {pu_type : Type}
(ppu : PartPatchUniverse pu_type pu_type)
: Type := mkPatchUniverse {
pu_nameOf : pu_type -> Name
}.

Lemma foo : forall (pu_type : Type)
(ppu : PartPatchUniverse pu_type pu_type)
(patchUniverse : PatchUniverse ppu)
(ns ns1 ns2 : NameSetMod.t)
(containsOK : NameSetMod.Equal ns1 ns2)
(p : pu_type)
(HX1 : NameSetMod.Equal ns1 (NameSetMod.add (pu_nameOf p) ns)),
NameSetMod.Equal ns2 (NameSetMod.add (pu_nameOf p) ns).