Section OpsTheory.
Variable T : finType.
Implicit Types (A B C D: {pred T}) (P Q : pred T) (x y : T) (s : seq T).
Variant pick_spec : option T -> Type :=
| Pick x of P x         : pick_spec (Some x)
| Nopick of P =1 xpred0 : pick_spec None.
End EnumPick.
Hint Resolve subxx_hint : core.

Lemma disjoint_cat s1 s2 A :
[disjoint s1 ++ s2 & A] = [disjoint s1 & A] && [disjoint s2 & A].