В теории вычислимости теорема Майхилла об изоморфизме , названная в честь Джона Майхилла , дает характеристику для двух нумераций , чтобы индуцировать одно и то же понятие вычислимости на множестве. Она напоминает теорему Шредера-Бернштейна в теории множеств и была названа ее конструктивной версией. [1]
Редукция множества ко множеству — это полная вычислимая функция , такая что . Редукция множества ко множеству — это инъективная редукция, а вычислимый изоморфизм — это биективная редукция.
Теорема Майхилла об изоморфизме: Два множества вычислимо изоморфны тогда и только тогда, когда A однозначно сводимо к B , а B однозначно сводимо к A.
Как следствие, две полные нумерации являются одноэквивалентными тогда и только тогда, когда они рекурсивно изоморфны .
Теорема Майхилла-Шепердсона [2], вытекающая из теоремы Райса-Шапиро , определяет вычислимые функционалы типа 2. Эти функционалы работают с вычислимыми частичными функциями, возвращая числа в качестве результатов в случаях завершения. В частности, они придерживаются определенного критерия эффективности и демонстрируют непрерывность как функционалы.
Рассматривая понятие изоморфизма Майхилла, которое утверждает, что существует полная вычислимая биекция, которая отображает элементы, сводимые друг к другу в обоих направлениях, при условии, что функции являются экстенсиональными , это понятие задает определение для рекурсивных функционалов .
В частности, в нем говорится:
1) Пусть — рекурсивная функция. Тогда существует полная вычислимая функция такая, что
2) Пусть — полная вычислимая функция и экстенсиональная. Тогда существует единственный рекурсивный функционал такой, что
Пусть будут два множества и предположим, что существуют инъективные, тотальные вычислимые функции такие, что для всех , и . Мы хотим построить тотальные вычислимые и биективные функции такие, что для всех , .
Как и в большинстве доказательств теоремы Шредера-Бернштейна , мы используем анализ «цепей», образованных последовательными применениями и . Неформально, мы думаем о двух «копиях» , между которыми мы хотим построить биекцию, и мы рассматриваем целое число в первой копии, которое отправляется по в целое число во второй копии, которое в свою очередь отправляется по в целое число в первой копии и т. д. (Эти копии синие и зеленые на рисунках напротив.) Поскольку и являются инъективными, эти цепи не «перекрываются» (между двумя цепями не может быть слияния). В зависимости от того, что происходит при старте с некоторого элемента и обратном движении по цепи, существует три возможных типа цепей:
Для построения биекции в контексте теоремы Шредера-Бернштейна достаточно спарить элементы вдоль каждой цепи: на односторонней цепи используйте или в зависимости от цвета первого элемента, а на двусторонней цепи или цикле можно использовать любой из них. Для теоремы Майхилла это не работает, поскольку построенная биекция не обязательно должна быть вычислимой.
Вместо этого мы строим биекцию, последовательно спаривая элементы. На каждом этапе мы берем следующий непарный элемент из синей копии и спариваем его с некоторым непарным элементом зеленой копии, затем делаем то же самое со следующим непарным элементом из зеленой копии. Это гарантирует, что каждый элемент обеих копий в какой-то момент будет спариваться.
Предположим, мы хотим спарить некоторый синий элемент (случай зеленого элемента симметричен). Идея заключается в том, чтобы применить , чтобы получить следующий зеленый элемент в цепочке, и если этот элемент не является парным, использовать его для спаривания с нашим синим элементом. Если он является парным, то применить, чтобы перейти к следующему зеленому элементу в цепочке, и повторять, пока не будет найден непарный зеленый элемент.
Для эффективного вычисления этой биекции алгоритм может вычислять пары до тех пор, пока его входные данные не будут объединены в пару, и возвращать другой элемент пары.