Материал: discrete_mathematics

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

(а) a(a b)*;

(б) (aa ab ba bb)*;

(в) (a b)*a(e bbb);

(г) (a(a bb)*)*;

(д) (a(aa)*b(bb)*)*;

(е) (b(bb)*)*(a(aa)*b(bb)*)*.

12.Побудувати скінченний автомат, що відшукує у вхідному тексті (слові) певний фрагмент, тобто автомат, що переходить у заключний стан тоді й тільки тоді, коли вхідне слово в алфавіті X = {a, b} завершується підсловом.

(а) abba; (б) bbbaba; (в) aabbaaa; (г) baabbba.

13.Довести такі рівносильні співвідношення для регулярних виразів:

(а) (a b)*ab(a b)* b*a* = (a b)*; (б) (ab)*a = a(ba)*;

(в) (a* b)* = (a b)*; (г) (a*b)*a* = a*(ba*)*;

(д) ((a bb)*aa)* = e (a bb)*aa; (е) (aa)*(e a) = a*;

(є) (a*bbb)*a* = a*(bbba*)*; (ж) a(ba a)*b = aa*b(aa*b)*.

14. Довести чи спростувати твердження про рівносильність таких регулярних виразів:

(а) (ab a)*a = a(ba a)*; (б) (ab a)*ab = (aa*b)*; (в) (a b)*b = (a*b)*;

(г) b(ab b)*a = aa*b(aa*b)*; (д) (a b)* = a*(ba*)*;

(е) a(a b)* b(a b)* e = (a b)*.

221

Розділ 6 СЕМАНТИЧНІ ЗАСАДИ ЛОГІКИ ПРЕДИКАТІВ

У попередніх розділах, які стосувались математичної логіки, увагу було зосереджено переважно на синтаксичних аспектах. Тепер детальніше розглянемо семантичні аспекти логіки.

6.1. Класи n-арних і квазіарних функцій

Основним поняттям логіки із семантичного погляду є поняття предиката, яке інтуїтивно можна тлумачити як відображення значень змінних у значення істинності.

Наприклад, розглянемо предикат, що задається виразом

якщо х > y та y > z, то х > z.

Тут вільними змінними є змінні х, y, z. Якщо такий предикат інтерпретується над множиною цілих чисел, то його значення слід обчислювати за наявності значень цих змінних. Нехай х має значення 17, y – 11, z – 3. Це означає, що визначено певний стан

змінних, який записуватимемо у вигляді [х 17, y 11, z 3].

Стан змінних також називають інтерпретацією, оцінкою або

розподілом змінних.

Таким чином, розглянутий предикат є відображенням множини станів змінних у значення істинності. Множину значень істинності позначають Bool = {1, 0} або Bool = {T, F}. Щоб зберегти однотипність позначень з іншими розділами посібника, уживатимемо позначення {1, 0}. Розглядаючи предикат як указану функцію, будемо називати стани змінних даними (з області визначення предиката).

Застосувавши предикат до даного (стану змінних)

[х

17, y

11, z

3],

отримуємо істиннісне значення 1.

Наведені міркування дають змогу формально означити поняття стану змінних. Нехай V – множина змінних (імен), M – множина предметних (базових) значень. Тоді довільна часткова

функція із V у M називають станом змінних, іменованими да ними, квазіарними даними, або просто даними. Множину та-

ких даних позначатимемо D = V M = VM.

Якщо іменами є цілі числа, то квазіарне дане вигляду

[1 a1, 2 a2,… n an]

називатимемо n-арним даним. Такі дані зазвичай позначають у вигляді кортежа (a1, a2,… an). Кортеж є елементом декартового добутку M n. Відповідно квазіарні дані є елементами узагальненого часткового декартового добутку VM.

Уведені позначення дають змогу означити класи n-арних та квазіарних функцій. Функція, визначена на класі n-арних даних, називають n-арною, а функцію, визначену на класі квазіарних даних, – квазіарною.

Спеціальними класами таких функцій є предикати та ординарні функції. Предикат p: M n Bool називають n-арним преди катом, а предикат q: VM Bool квазіарнимпредикатом. Функцію f: M nM називають n-арною ординарною функцією, а функцію g: VM M квазіарною ординарною функцією. Термін

ординарний часто пропускатимемо.

Розглянемо предикат над цілими числами, який задається виразом

якщо х > y та z > t, то х + z > y + t.

Із яких предикатів і функцій побудовано цей предикат? Бачимо, що тут фігурують бінарний предикат > та бінарна функція +. Однак якого типу є функції х+z та y+t ? Оскільки функції визначені над станами змінних, то вони є квазіарними. Ці квазіарні функції отримано підстановкою (суперпозицією) квазіарних функцій розіменування (узяття значення) змінних у бінарну функцію +. Функції розіменування позначатимемо х, y, z, t. Наприклад, на стані

[х

17, y

11, z 3]

значення змінних х, y, z дорівнюють відповідно 17, 11, 3, значення змінної t не визначено. Позначатимемо це таким чином:

х ([х

17, y

11, z

3]) = 17,

y([х

17, y

11, z

3]) = 11,

 

 

223

 

z([х

17, y

11, z 3 ]) = 3,

t([х

17, y

11, z 3]).

Тут символ означає, що значення функції визначено, а сим-

вол – що воно не визначено.

Позначаючи підстановку квазіарних предикатів (функцій) у n- арний предикат як SPn , отримуємо, що предикат х > y подають як SP2 (>,x,y). Відповідно подають також інші предикати. Тут SPn операціянадквазіарнимипредикатами. Їїзадаютьформулою

SP2 ( p, g1,..., gn )(d) = p(g1 (d),..., gn (d)),

де p n-арний предикат, g1,…,gn – квазіарні ординарні функції, d – номінативне дане.

Яким чином побудовано предикат, що заданий виразом

якщо х > y та y > z, то х > z?

Очевидно, що його побудовано із квазіарних предикатів

SP2 (>,x,y), SP2 (>,y,z) та SP2 (>,x,z)

за допомогою спеціальної операції над предикатами, яку називають імплікацією й позначають символом . Операції подібного типу називатимемо композиціями предикатів, а відповідне подання предиката – композиційною формулою (інколи вживають також назви композиційний терм, операторний терм, семантич нийтерм). Остаточно отримуємо таку композиційну формулу:

SP2 (>,'x,'y) & SP2 (>,'y,'z) → SP2 (>,'x,'z).

Приклад 6.1.

1. Обчислити предикат

SP2 (>,'x,'y) & SP2 (>,'y,'z) → SP2 (>,'x,'z).

на номінативному даному d = [х 17, y 11, z 3 ].

Спираючись на означення композицій суперпозиції, обчислюємо спочатку

SP2 (>,'x,'z)(d) = >('x(d),'z(d)) = >(17,3) =1.

За означенням композиції імплікації отримуємо, що

SP2 (>,'x,'z) & SP2 (>,'y,'z)→ SP2 (>,'x,'z)(d ) =1.

2. Обчислити вказаний предикат на номінативному даному d = [х 1, y 11, z 3].

224

Спочатку обчислюємо

SP2 (>,'x,'z)(d) = > ('x(d),'z(d)) = > (1,3) = 0.

Оскільки консеквент хибний, то обчислюємо антицедент. Для цього обчислюємо значення

SP2 (>,'x,'y)(d) = > ('x(d),'y(d)) = > (1,11) = 0,

SP2 (>,'y,'z)(d) = > ('y(d),'z(d)) = > (11,3) =1.

Звідси

SP2 (>,'x,'y) & SP2 (' >,'y,'z)(d ) = 0,

(SP2 (>,'x,'y) & SP2 (' >,'y,'z) → SP2 (>,'x,'z))(d ) =1.

Для функцій вводимо композицію суперпозиції квазіарних ординарних функцій у n-арну функцію:

SFn ( f , g1,..., gn )(d ) = f (g1 (d),..., gn (d)),

де f n-арна функція, g1,…, gn – квазіарні ординарні функції, d – номінативне дане.

Приклад 6.2. Написати композиційну формулу для предиката, що поданий виразом

якщо х > y та z > t, то х + z > y + t,

та обчислити його значення на номінативному даному d = [х 17, y 11, z 5, t 3].

Указаний вираз можна задати композиційною формулою

SP2 (>,'x,'y) & SP2 (' >,'y,'z) → SP2 (>, SF2 (+,'x,'z),SF2 (+,'y,'t).

Обчислюємо

SP2 (>, SF2 (+,'x,'z),SF2 (+,'y,'t)(d) = > (SF2 (+,'x,'z)(d),SF2 (+,'y,'t)(d)) =

=> (+ ('x(d),'z(d)),+ ( y(d))) = > (+(17,5),+ (11,3) => (22,14)) =1.

Це означає, що

SP2 (>,'x,'y) & SP2 (' >,'y,'z) → SP2 (>, SF2 (+,'x,'z),SF2 (+,'y,'t))(d) = 1.

Підсумовуючи розглянуті приклади, доходимо висновку, що семантика логіки предикатів спирається на дві алгебри (алгебричні системи): алгебру предметних значень із n-арними операціями та алгебру квазіарних предикатів і функцій з композиціями як операцій.

225