Опубликован: 24.04.2007 | Доступ: свободный | Студентов: 722 / 35 | Оценка: 4.60 / 4.30 | Длительность: 25:56:00
Специальности: Программист
Лекция 5:

Языки первого порядка

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >

Выразимые предикаты

Пусть фиксирована некоторая сигнатура \sigma и ее интерпретация с носителем M. Мы хотим определить понятие выразимого (с помощью формулы данной сигнатуры в данной интерпретации) k -местного предиката.

Выберем k переменных x_1,\dots, x_k. Рассмотрим произвольную формулу \varphi, все параметры которой содержатся в списке x_1,\dots,x_k. Истинность этой формулы зависит только от значений переменных x_1,\dots,x_k. Тем самым возникает отображение M^k\to\mathbb{B}=\{И, Л\}, то есть некоторый k - местный предикат на M. Говорят, что этот предикат выражается формулой \varphi. Все предикаты, которые можно получить таким способом, называются выразимыми. (Ясно, что конкретный выбор списка переменных роли не играет.) Соответствующие им подмножества множества M^k (области истинности выразимых предикатов) также называют выразимыми.

48. Докажите, что пересечение, объединение и разность двух выразимых множеств являются выразимыми. Докажите, что проекция k - мерного выразимого множества вдоль одной из "осей координат" является (k-1) -мерным выразимым множеством.

Пример. Сигнатура содержит одноместный функциональный символ S и двуместный предикатный символ равенства ( = ). Рассмотрим интерпретацию этой сигнатуры. В качестве носителя выберем натуральный ряд \mathbb{N}. Символ S будет обозначать функцию прибавления единицы (можно считать S сокращением от слова successor — последователь). Знак равенства интерпретируется как совпадение элементов.

Легко проверить, что одноместный предикат "быть нулем" выразим в этой интерпретации, несмотря на то, что константы для нуля в сигнатуре не предусмотрено. В самом деле, он выражается формулой

\lnot\exists y (x=S(y))
с единственным параметром x.

Еще проще выразить в этой сигнатуре двуместный предикат "быть больше на 2 ", при этом даже не нужны кванторы: y=S(S(x)).

Любопытно, что уже в такой простой ситуации можно сформулировать содержательную задачу: выразить предикат y=x+N, где N — большое число (скажем, миллиард), с помощью существенно более короткой формулы, чем y=S(S(\dots(S(x))\dots)). Как ни удивительно, это вполне возможно, и соответствующую формулу вполне можно уместить на листе бумаги.

49. Докажите, что предикат y=x+N можно выразить формулой указанной сигнатуры, длина которой есть O(\log N). (Указание. Если мы научились выражать y=x+n, можно выразить y=x+2n с помощью формулы

\exists z\, ((z=x+n)\land(y=z+n))
(в которой через z=x+n и y=z+n обозначены соответствующие формулы). Это само по себе ничего не дает, так как длина формулы увеличилась вдвое, но можно использовать такой трюк:
\exists z\, \forall u\,\forall v
(((u=x\land v=z)\lor(u=z\land v=y))\to(v=u+n)).
Далее можно воспользоваться записью числа N в двоичной системе счисления.)

Можно доказать, что в этой сигнатуре кванторы почти не увеличивают набор выразимых предикатов: всякий выразимый предикат будет выражаться бескванторной формулой (возможно, гораздо более длинной), если добавить к сигнатуре константу 0. Мы вернемся к этому вопросу в разделе "Элиминация кванторов".

Чтобы привыкнуть к понятию выразимости, рассмотрим еще один пример. Пусть сигнатура содержит предикат равенства и трехместный предикат C. Рассмотрим интерпретацию, в которой носителем является множество точек плоскости, равенство интерпретируется как совпадение точек, а C(x,y,z) означает, что точки x и y равноудалены от точки z. Оказывается, что этого предиката достаточно, чтобы выразить более или менее все традиционные понятия элементарной геометрии.

Как, например, записать, что три различные точки A,B,C лежат на одной прямой? Вот как: "не существует другой точки C', которая находилась бы на тех же расстояниях от A и B, что и точка C ".

50. Напишите соответствующую формулу указанной сигнатуры.

Теперь легко выразить такое свойство четырех точек A,B,C,D: "точки A и B различны, точки C и D различны и прямые AB и CD параллельны". В самом деле, надо написать, что нет точки, которая бы одновременно лежала на одной прямой с A и B, а также на одной прямой с C и D.

После этого можно выразить свойство четырех точек "быть вершинами параллелограмма". Это позволяет переносить отрезок параллельно себе. После этого несложно выразить такое свойство: "расстояние AB равно расстоянию CD ".

51. Запишите соответствующую формулу.

Аналогичным образом можно двигаться и дальше.

52. Выразите свойство |OA|\le |OB| трех точек O, A, B. (Указание. Напишите, что все прямые, проходящие через A, пересекаются с окружностью радиуса OB с центром в O.)

53. Запишите в виде формулы: (а) равенство треугольников; (б) равенство углов; (в) свойство угла быть прямым.

54. Рассмотрим естественную интерпретацию сигнатуры ({=},{<}) на множестве целых чисел. Как выразить предикат y=x+1?

55. Рассмотрим множество действительных чисел как интерпретацию сигнатуры ({=},{+}, {y=x^2}). Как выразить трехместный предикат xy=z?

56. Рассмотрим множество целых положительных чисел как интерпретацию сигнатуры, содержащей равенство и двуместный предикат " x делит y ". Выразите свойства "равняться единице" и "быть простым числом".

57. Рассмотрим плоскость как интерпретацию сигнатуры, содержащей предикат равенства (совпадение точек) и двуместный предикат "находиться на расстоянии 1 ". Выразите двуместные предикаты "находиться на расстоянии 2 " и "находиться на расстоянии не более 2 ". Выразите двуместный предикат "находиться на расстоянии 1/2.

< Лекция 4 || Лекция 5: 1234 || Лекция 6 >