Материал: discrete_mathematics

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1)що відбуватиметься за відсутності вільних предметних змінних у множині формул { xA(x)};

2)чи буде правило правильним, якщо в процесі виведення з'являться нові вільні змінні?

У першому випадку, якщо вільних змінних немає, то беремо

довільну нову змінну, наприклад z1. У другому випадку ситуація складніша, оскільки на значеннях нових змінних формула А(х) також має бути хибною. Щоб урахувати цей момент, у правилі

залишаємо формулу 0 А(х), яка при розгортанні зможе врахувати значення нових змінних. Таким чином, виправлене правило матиме вигляд

0

0 xA(x),

,

0 A(z1),..., 0 A(zm ), , 0 xA(x)

де {z1,…, zт} – усі вільні змінні { xA(x)}; якщо вільних

змінних немає, то беремо довільну нову змінну z1.

Зазначимо, що в цьому правилі спрощення не відбувається, але з'являються нові простіші формули, які, можливо, зроблять секвенцію замкненою.

Дуально будують секвенційні правила для універсального квантора.

Зауваження. Обговоримо питання про введення нових змінних у правилах 1 та 0 розкриття кванторів. Ці нові змінні можна тлумачити як константи в тому сенсі, що їх значення вже не будуть змінюватись. Тому для таких змінних можна використовувати позначення, які застосовуються для предметних констант: a, b, c, d, e, … . Іншими словами, нові змінні мають подвійну природу: з одного боку, це змінні, а з іншого – їх можна тлумачити як константи. Тому правило 1 можна записати у вигляді

1

1 xA(x),

1 A(a),

 

за умови, що нова змінна (константа) a не входить до { xA(x)} , і казати, що константа a підтверджує істинність

предиката A.

Аналогічно правило 0 також можна подати формулою

76

0

0 xA(x),

,

0 A(z1),..., 0 A(zm ), , 0 xA(x)

де {z1,…, zт} – усі вільні змінні { xA(x)} ; якщо вільних

змінних немає, то беремо довільну нову змінну (константу) z1. Проте такі константи в секвенційних правилах трактуються як

змінні, а в інтерпретаціях їх можна розуміти як константи (зауваження зроблено з метою додаткового роз'яснення правил).

У секвенційних правилах (формах) для логіки предикатів висновки пишемо над рискою, засновки – під рискою:

1

 

1A,

 

 

 

 

 

0

0 A,

 

0

A,

 

 

 

 

 

 

 

1 A,

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1 A B,

 

0

 

0 A B,

 

1 A,

1B,

 

0

A, 0 B,

 

 

 

1

1 A B,

 

 

 

 

0

 

 

 

 

0 A B,

 

 

1 A,1 B,

 

 

 

 

 

0

A, Σ 0 B,

 

 

 

 

 

 

 

 

1

 

 

 

 

1 A B,

 

0

 

 

0 A B,

 

0

A,

 

1B,

 

 

 

1 A, 0 B,

 

 

 

 

 

 

 

1

 

1 A B,

0

 

0 A B,

0 A, 0 B,

 

1A,1 B,

0 A, 1 B, 1A,0 B,

1

1 xA(x),

 

 

1 A( y),

 

 

 

 

 

заумови, що нова змінна у не входить до { xA(x)}.

 

0

0 xA(x),

,

 

0 A(z1),..., 0 A(zm ), , 0 xA(x)

де {z1,…, zт} – усі вільні змінні { xA(x)}; якщо вільних змінних немає, то береться довільна нова змінна z1.

1 1 xA(x), ,

1 A(z1),..., 1A(zm ), , 1 xA(x)

77

де {z1,…, zт} – усі вільні змінні { xA(x)}; якщо вільних

змінних немає, то беремо довільну нову змінну z1.

0

0 xA(x),

 

0 A( y),

 

заумови, що нова змінна у не входить до { xA(x)}.

Припускатимемо, що в атомарних формулах відображені всі змінні, кількість яких дорівнює арності предиката. Однак у формулах правил вільні змінні не вказуватимемо, тобто записи A та

A(x) не міститимуть список усіх вільних змінних (те саме сто-

сується формул B і множини формул ).

Приклад 1.27.

1. Довести формулу x(A(x) → B(x)) → ( xA(x) → xB(x)).

Формулюємо розмічену секвенцію:

0 x(A(x) → B(x)) → ( xA(x) → xB(x)).

Головною операцією є друга імплікація, тому застосовуємо

правило 0→:

( →) 0 x(A(x) → B(x)) → ( xA(x) → xB(x)) .

0 1 x(A(x) → B(x)), 0 xA(x) → xB(x)

Отримано нову секвенцію із двох формул. До другої формули доцільно застосувати правило 0→:

( →) 0 x(A(x) → B(x)) → (xA(x) → xB(x)) . 0 (0 →) 1 x(A(x) → B(x)), 0 xA(x) → xB(x)*

1 x(A(x) → B(x)), 1 xA(x), 0 xB(x)

У новій секвенції доцільно застосувати правило 1 до другої формули 1 xA(x). Це правило вимагає виявити всі вільні змінні

в секвенції. У даному випадку вільних змінних немає, тому беремо довільну нову змінну y, яку підставляємо до формули А(х) замість x. Маємо:

(0 →)

0

x(A(x) → B(x)) → (xA(x) → xB(x))

 

.

(0 →)

 

 

1 x(A(x) → B(x)), 0 xA(x) → xB(x)*

 

 

 

 

 

 

 

(1)

 

1 x(A(x) → B(x)), 1 xA(x)* , 0 xB(x)

 

 

 

 

 

 

 

 

 

 

x(A(x) → B(x)), 1 A( y), 1 xA(x), 0 xB(x)

 

 

 

 

 

1

 

 

Далі до першої формули можна застосувати правило 1, однак тепер маємо вільну змінну y. Отримуємо:

78

(0 →)

 

0 x(A(x) → B(x)) → (xA(x) → xB(x))

 

(0 →)

1

x(A(x) → B(x)), 0 xA(x) → xB(x)*

 

 

 

 

(1)

 

 

1 x(A(x) → B(x)),

1 xA(x)*, 0 xB(x)

 

 

 

 

 

 

 

 

( )

1 x(A(x) → B(x))* , 1 A( y), 1 xA(x), 0 xB(x)

 

 

 

 

 

 

 

 

 

 

 

1

 

1 A( y) → B( y),1

x(A(x) → B(x)),

 

 

 

 

 

 

 

1 A( y), 1 xA(x), 0 xB(x) (остання секвенція розміщена на двох рядках).

До останньої формули секвенції застосуємо правило 0, ура-

ховуючи, що в секвенції єдиною вільною змінною є y:

 

(0 →)

0

x(A(x) → B(x)) → (xA(x) → xB(x))

.

 

1 x(A(x) → B(x)), 0 xA(x) → xB(x)*

(0 →)

 

 

 

 

1 x(A(x) → B(x)), 1 xA(x)* , 0 xB(x)

 

 

(1 )

 

 

 

 

( ) 1

x(A(x) → B(x))* , 1 A( y), 1 xA(x), 0 xB(x)

 

 

 

 

1

 

1 A( y) → B( y),1 x(A(x) → B(x)),

 

 

 

 

( ) 1 A( y), 1 xA(x), 0 xB(x)*

0 1 A( y) → B( y),1 x(A(x) → B(x)), 1 A( y), 1 xA(x), B( y), 0 xB(x)

Тепер до першої формули застосуємо правило 1 . Оскільки

отримані секвенції доволі великі, то запишемо їх у кілька рядків:

(0 →)

 

 

0 x(A(x) → B(x)) → ( xA(x) → xB(x))

 

 

 

.

(0 →)

1

x( A(x)

B(x)), 0 xA(x)

xB(x)*

 

 

 

 

 

 

 

(1 )

 

 

 

1 x(A(x) → B(x)), 1 xA(x)* , 0 xB(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 x( A(x) → B(x))* , 1 A( y), 1 xA(x), 0 xB(x)

 

 

 

 

 

 

 

(1 )

 

 

 

 

 

 

 

 

 

 

1

A( y) → B( y),1

x( A(x) → B(x)),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0 )

 

1 A( y), 1 xA(x),

0 xB(x)*

 

 

 

 

 

 

 

 

 

 

 

1 A( y) → B( y),1 x(A(x) → B(x)),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1 →)

 

1 A( y), 1 xA(x),

0 B( y), 0 xB(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 B( y)×,1

 

 

 

 

 

 

 

 

 

 

 

 

0 A( y)×,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 x( A(x) → B(x)),

 

x( A(x) → B(x)),

 

 

 

 

 

 

 

 

 

 

 

 

1 A( y)×,

 

 

1 A( y),

 

 

 

 

 

 

 

 

 

 

 

 

1 xA(x),

 

 

1 xA(x),

 

 

 

 

 

 

 

 

 

 

 

 

0 B( y), 0 xB(x)

 

 

0 B( y)×, 0 xB(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Усі отримані секвенції замкнені, тому початкова формула є всюди істинною.

79

2. Чи є всюди істинною формула?

( xA(x) → xB(x)) → x(A(x) → B(x)).

У цьому й подальших прикладах не вказуватимемо назву застосованого правила, оскільки воно легко визначається за головною операцією формули, індексованої знаком *. Формулюємо розмічену секвенцію та починаємо будувати дерево виведення:

0

( xA(x) → xB(x)) → x(A(x) → B(x))

.

 

1 xA(x) → xB(x)*, 0 x(A(x) → B(x))

 

 

0 xA(x)*, 0 x(A(x) → B(x)) 1 xB(x)*, 0 x(A(x) → B(x))

Отримано дві секвенції, які не мають вільних змінних. Застосування правила 0 до першої формули першої секвенції вводить нову змінну y; при застосуванні правила 1 до першої формули другої секвенції можна взяти ту саму нову (для другої сек-

венції) змінну y. Дістанемо:

 

 

 

 

 

 

0 (xA(x) → xB(x)) → x(A(x) → B(x))

 

.

 

 

1 xA(x) → xB(x)*, 0 x(A(x) → B(x))

 

 

 

 

 

 

 

0 xA(x)*, 0 x(A(x) → B(x))

 

1 xB(x)*, 0 x(A(x) → B(x))

 

 

 

 

0 A( y), 0 x(A(x) → B(x))

 

1 B( y), 0 x(A(x) → B(x))

 

 

До обох нових секвенцій входить формула

1 B( y), 0 x(A(x) → B(x)),

яку розкриваємо за правилом 0 із використанням нової вільної змінної z. Далі застосовуємо правило 0 . Маємо:

 

 

 

 

0(xA(x) → xB(x)) → x( A(x) → B(x))

 

.

 

 

 

 

1 xA(x) → xB(x)*,

0 x( A(x) → B(x))

 

 

 

 

 

 

 

 

0 xA(x)*, 0 x( A(x) → B(x))

1 xB(x)*, 0 x( A(x) → B(x))

 

 

 

 

0 A( y), 0 x( A(x) → B(x))

 

 

1B( y), 0 x( A(x) → B(x))

 

 

 

 

 

0 A( y), 0 A(z) → B(z)

 

 

 

 

1B( y), 0 A(z) → B(z)

 

 

 

 

 

 

 

0 A( y), 1A(z), 0B(z)

 

 

 

 

 

 

1B( y), 1A(z), 0B(z)

 

 

 

 

 

 

 

 

!

 

 

 

 

 

 

 

!

 

 

 

 

 

Отримані секвенції 0 A( y), 1 A(z), 0 B(z) та 1 B( y), 1 A(z), 0 B(z) містять лише атомарні формули, але не є замкненими. Це означає,

що можна побудувати контрприклади, які спростовують початкову формулу. Кожна із секвенцій має дві вільні змінні y та z. Тому оберемо модель із двох констант a та b, вважаючи їх відповідно зна-

80