proposition: Fact hfs_opair_inj a b x y : ⟬a,b⟭ = ⟬x,y⟭ -> a = x /\ b = y.
proof: Proof. unfold hfs_opair. intros H. apply hfs_pair_inj in H as [ (H1 & H2) | (H1 & H2) ]; apply hfs_pair_inj in H1; apply hfs_pair_inj in H2; revert H1 H2; do 2 intros [ [] | [] ]; subst; 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)