Вычисление неподвижной точки арифметической формулы

Вычисление неподвижной точки арифметической формулы φ(x)

1. Алфавит и коды символов

Любая арифметическая формула представляется как десятичное число:

Символ ∃ (exists) 0 S + = ( ) ¬ x
Код 0 1 2 3 4 5 6 7 8 9
Базовый синтаксис - примеры кодирования:
• Формула "x=0" → x(9) =(4) 0(1) → код: 941
• Формула "0=0" → 0(1) =(4) 0(1) → код: 141 (замкнутая, истинная)
• Формула "0=S0" → 0(1) =(4) S(2) 0(1) → код: 1421 (замкнутая, ложная)
• Формула "SS0++SS0=SSSS0" (умножение 2*2=4) → код: 221332214222221

Синтаксический сахар (расширенный язык):
Для удобства ввода можно использовать:
Цифры 0-99 автоматически заменяются на соответствующие термы S...S0
  Примеры: 0 → 0, 1 → S0, 3 → SSS0, 10 → SSSSSSSSSS0
* (звёздочка) автоматически заменяется на ++ (умножение)
  Примеры: 2*3 → SS0++SSS0
• Примеры формул в расширенном синтаксисе: "2+3=5", "2*3=6", "x=141", "∃xx(x=xx*xx)"

Процесс обработки формулы:
1. Расширенная формула (с цифрами и *) → преобразование в базовый синтаксис
2. Базовая формула (только символы из таблицы) → синтаксический разбор и проверка корректности
3. Код (последовательность цифр 0-9) → вычисление истинностного значения

Важные замечания:
• x - свободная переменная (используется в формулах φ(x))
• xx - связанная переменная (используется только под квантором ∃xx)
• Замкнутые формулы - формулы без свободных переменных x
• При подстановке конкретного значения x формула становится замкнутой и имеет определённое значение
• ++ обозначает умножение (два плюса подряд кодируются как 33)
• + обозначает сложение (кодируется как 3)
• При вычислении квантора ∃xx проверяются значения от 0 до 1000
• Если нужное значение не найдено в этом диапазоне, квантор считается ложным (с пометкой о пределе проверки)

Приоритеты операций (от высшего к низшему):
1. S (функция следования) - применяется первым
2. ++ или * (умножение) - выше сложения
3. + (сложение)
4. = (равенство) - сравнение термов
5. ¬ (отрицание) - логическая операция
6. ∧ (конъюнкция) - логическая связка
7. ∃ (квантор существования) - самый низкий приоритет

2. Проверка формул и кодов

Проверьте, является ли текст корректной формулой или число корректным кодом:


Можно использовать синтаксический сахар:
• Цифры 0-99 (преобразуются в S...S0)
• * для умножения (преобразуется в ++)
• Примеры: x=5, 2*3=6, x=141, ∃xx(x=xx*xx), ¬(∃xx x=3*xx)

Примечание: Код может содержать только цифры от 0 до 9.
Умножение кодируется как 33 (два плюса подряд).

3. Выбор формулы φ(x) для поиска неподвижной точки



4. Неподвижная точка θ

Формула θ (базовый синтаксис):
Формула θ (расширенный синтаксис - читабельный):
Код формулы θ:

Проверка свойства неподвижной точки