ROSCOQ.MCmisc.SetNotations

Class SetUnion (A : Type)
  := setUnion : AAA.

Class SetIntersection (A : Type)
  := setIntersection : AAA.

Infix "∪" := setUnion (at level 65).
Infix "∩" := setIntersection (at level 60).

Require Export MathClasses.interfaces.abstract_algebra.
Require Export MathClasses.interfaces.canonical_names.

Section SetLikeTh.
Context `{SetUnion A} `{SetIntersection A} `{Equiv A}.

Definition setSubset (a b : A) : Prop := a = (a b).
is this being to specific? Can make it arbitrary, just like union

End SetLikeTh.
Infix "⊆" := setSubset (at level 70).