proposition: Theorem dist_exists_or (X : Type) (P Q : X -> Prop): (exists x, P x \/ Q x) <-> (exists x, P x) \/ (exists x, Q x).
proof: Proof. split; first by case=>x; case=>H; [left | right]; exists x=> //. by case; case=>x H; exists x; [left | right]. Qed.
imports: mathcomp(ssreflect)