Constructive Many-one Reduction from the Halting Problem to Semi-unification (Extended Version)
Semi-unification is the combination of first-order unification and first-order matching. It does arise naturally in the context of polymorphically recursive functional and logic programming. The undecidability of semi-unification has been proven by Kfoury, Tiuryn, and Urzyczyn in the 1990s. The original argument starts with the undecidability result by Hooper from the 1960s for Turing machine immortality (existence of a diverging configuration). The undecidability of semi-unification is established by Turing reduction from Turing machine immortality. The particular Turing reduction is intricate, uses non-computational principles, and involves various intermediate models of computation. There are several aspects of the existing work which can be improved upon in the setting of constructive mathematics. First, many-one completeness of semi-unification is not established due to the use of Turing reductions. Second, existing mechanizations do not cover a comprehensive reduction from Turing machine halting to semi-unification. Third, reliance on principles such as König's lemma or the fan theorem does not support constructivity of the arguments. Improving upon the above aspects, the present work gives a constructive many-one reduction from the Turing machine halting problem to semi-unification. This establishes many-one completeness of semi-unification. Computability of the reduction function, constructivity of the argument, and correctness of the argument is witnessed by an axiom-free mechanization in the Coq proof assistant. Arguably, this serves as comprehensive, precise, and surveyable evidence for the result at hand. The mechanization is incorporated into the existing, well-maintained Coq library of undecidability proofs. Notably, a variant of Hooper's argument for Turing machine immortality is part of the mechanization.
READ FULL TEXT