proposition: Fact hfs_pair_inj a b x y : hfs_pair a b = hfs_pair x y -> a = x /\ b = y \/ a = y /\ b = x.
proof: Proof. intros E. generalize (hfs_pair_mem_l a b) (hfs_pair_mem_r a b) (hfs_pair_mem_l x y) (hfs_pair_mem_r x y). rewrite <- E, E at 1 2. do 4 rewrite hfs_pair_spec. do 4 intros [[]|[]]; auto. Qed.
imports: List Arith Lia Max Wellfounded Setoid Eqdep_dec Bool Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list finite) Undecidability.Shared.Libs.DLW.Vec(pos vec) Undecidability.Shared.Libs.DLW.Wf(wf_finite wf_chains) Undecidability.FOL.TRAKHTENBROT(notations fol_ops membership btree)