Эта тема расписана, к примеру, в
учебнике Кушнера. Попробую написать краткий конспект.
Термины "целое число", "рациональное число", "последовательность" будем всюду понимать конструктивно: целые и рациональные числа задаются как двоичные или десятичные записи, последовательности - как алгоритмы (машины Тьюринга).
Если
- целое число,
, то назовём
-ичными дробями выражения вида
,
где
- целое число,
- последовательность целых чисел, причём
для любого натурального
.
Конечно,
-ичные дроби являются примерами конструктивных действительных чисел (КДЧ), но
совершенно не годятся на роль
всех КДЧ.
Во-первых, при любом целом основании
,
,
не существует алгоритма сложения конструктивных
-ичных дробей.
Во-вторых, алгоритм перевода из
-чных в
-чные дроби существует только тогда, когда каждый простой делитель
является простым делителем
(теорема Мостовского-Успенского). Например, существует алгоритм для перевода десятичных дробей в двоичные, но не существует алгоритма для перевода двоичных дробей в десятичные.
Естественно определять КДЧ как фундаментальные последовательности рациональных чисел с конструктивными регуляторами фундаментальности.
Более формально. Конструктивным действительным числом назовём пару
, где
и
- алгоритмы, определённые для любого натурального входа, причём
рационально для любого натурального
,
натурально для любого натурального
и
Имеется много определений КДЧ, равносильных этому. Для КДЧ нетрудно определить арифметические операции и отношения больше-меньше-равно. При этом существуют алгоритмы для операций сложения и умножения, но не существует алгоритма для сравнения. Кроме того, разные пары алгоритмов
,
могут порождать равные КДЧ.
Для любого натурального
,
, существует алгоритм перевода
-ичной дроби в КДЧ, но не существует обратного алгоритма.