proposition: Fact mb_incl_choose x y : { z | z ∈ x /\ z ∉ y } + { x ⊆ y }.
proof: Proof. Proof using Xfin Rdec. set (P z := z ∈ x /\ z ∉ y). set (Q z := z ∈ x -> z ∈ y). destruct list_dec with (P := P) (Q := Q) (l := lX) as [ (z & _ & H2 & H3) | H ]; unfold P, Q in *; clear P Q. + intros z; destruct (Rdec z x); destruct (Rdec z y); tauto. + left; exists z; auto. + right; intros z; apply H; auto. Qed.
imports: List Arith Nat Lia Max Wellfounded Coq.Setoids.Setoid Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list finite) Undecidability.Shared.Libs.DLW.Vec(pos vec) Undecidability.FOL.TRAKHTENBROT(notations fol_ops fo_sig fo_terms fo_logic)