# 6. Контрольні запитання ## Предикати та квантори 1. Що таке **предикат**? Що таке його **місність** (арність)? Наведіть приклад одномісного та двомісного предиката з вашого дерева. 2. Назвіть **область визначення** та **область значень** предиката. Чим предикат відрізняється від **висловлення**? 3. Поясніть, чому $n$-місний предикат рівносильний **відношенню** — підмножині $M^{n}$. Що є цією підмножиною для предиката $\mathrm{FATHER}(x, y)$? 4. Як читаються формули $\forall x\,P(x)$ та $\exists x\,P(x)$? Сформулюйте закон де Моргана для кванторів: чому $\neg\forall x\,P(x) \equiv \exists x\,\neg P(x)$? 5. Що таке **вільна** та **зв'язана** змінна у формулі? Якими кванторами зв'язані змінні $x, y, z$ у правилі $\mathrm{BROTHER}(x, y) \equiv \mathrm{MAN}(x) \wedge \exists z\,(\dots)$? ## Синтаксис і семантика Prolog 6. Дайте означення **факту**, **правила** та **запиту**. Що означає знак `:-` і що означає **кома** в тілі правила? 7. За яким правилом Prolog відрізняє **атом** від **змінної**? Чому запис `Ivan` є помилкою для імені особи; як правильно записати константу «Іван»? 8. Що таке **анонімна змінна** `_` і коли її зручно вживати? Що питає запит `father(ivan, _)`? 9. Як за допомогою **двох правил** з однаковою головою виразити диз'юнкцію? Запишіть `parent/2` через `father/2` і `mother/2` та поясніть, чому потрібні саме два правила. 10. Що таке **припущення замкненого світу**? Чому неповна база знань може повертати `false` там, де ви очікуєте `true`? ## Виконання запитів 11. Що таке **уніфікація**? Наведіть приклад цілі та факту, які уніфікуються, і вкажіть отриману підстановку змінної. 12. Опишіть **пошук із поверненням** (backtracking). Яку роль відіграє `;` (крапка з комою) у відповідях SWISH? 13. Порівняйте оператори `=` (уніфікація) та `\=` (не уніфікуються). Навіщо в правилі `brother` умова `X \= Y` і що станеться без неї? ## Завдання-міркування 14. Запишіть логічною формулою предикат $\mathrm{GRANDFATHER}(x, y)$ через $\mathrm{FATHER}$ і $\mathrm{PARENT}$. Скільки «поколінь» відношень він поєднує? 15. Поясніть означення $\mathrm{COUSIN}(x, y)$: чому двоюрідні мають **спільного діда чи бабу**, але **різних** батьків? Для свого дерева наведіть запит із **кількома** відповідями та поясніть порядок їх появи (а якщо є повтори — їхню причину).