You are on page 1of 205

Logic Toán

Trần Thọ Châu

NXB Đại học quốc gia Hà Nội 2007, 204 Tr.

Từ khoá: Logic toán, Đại số mệnh đề, Hàm đại số logic, logic mờ, Định lý suy
diễn, Logic mệnh đề, Tính đầy đủ, Tính phi mâu thuẫn, Lượng từ, Ngôn ngữ
Prolog, Tân từ Fall.

Tài liệu trong Thư viện điện tử ĐH Khoa học Tự nhiên có thể sử dụng cho mục
đích học tập và nghiên cứu cá nhân. Nghiêm cấm mọi hình thức sao chép, in ấn
phục vụ các mục đích khác nếu không được sự chấp thuận của nhà xuất bản và
tác giả.
Mu.c lu.c

Lò.i mo’. dâ


`u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 Da.i sô´ mê.nh dê


` 7
1.1 Các phép toán và ba’ng chân lý . . . . . . . . . . . . . . . . . 8
1.1.1 Phép phu’ di.nh (¬, not) . . . . . . . . . . . . . . . . . . 10
1.1.2 Phép và (∧, and, hô.i) . . . . . . . . . . . . . . . . . . . 10
1.1.3 Phép hay là (∨, or, tuyê’n) . . . . . . . . . . . . . . . . 10
1.1.4 Phép kéo theo (→) . . . . . . . . . . . . . . . . . . . . 11
1.1.5 Phép tu.o.ng du.o.ng (↔ ↔) . . . . . . . . . . . . . . . . . 12
.
1.2 Công thú c mê.nh dê ` . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Mô.t sô´ di.nh nghı̃a . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Hàm da.i sô´ logic . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Su.. dô`ng nhâ´t dúng - dô`ng nhâ´t sai . . . . . . . . . . . 18
1.4 Mô.t sô´ tı́nh châ´t . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5 Da.ng chuâ’n tă´c cu’a công thú.c mê.nh dê
` . . . . . . . . . . . . 23
1.5.1 Da.ng chuâ’n tă´c tuyê’n và chuâ’n tă´c hô.i . . . . . . . . 23
1.5.2 Da.ng chuâ’n tă´c hoàn toàn . . . . . . . . . . . . . . . . 24
` y du’ cu’a các phép toán . . . . .
1.6 Các hê. dâ . . . . . . . . . . . 25
1.7 Bài tâ.p chu.o.ng 1 . . . . . . . . . . . . . . . . . . . . . . . . . 34

`
2 Hê. toán mê.nh dê 39
` trong hê. toán mê.nh dê
2.1 Hê. tiên dê ` . . . . . . . . . . . . . . . . 40
2.1.1 Mô.t sô´ di.nh nghı̃a co. ba’n . . . . . . . . . . . . . . . . 40
2.1.2 Các tı́nh châ´t . . . . . . . . . . . . . . . . . . . . . . . 42
2 MU
. C LU
.C

2.1.3 Lý thuyê´t tiên dê ` trong hê. toán mê.nh dê
` . . . . . . . . 43
2.1.4 Di.nh lý suy diê˜n trong hê. toán mê.nh dê ` . . . . . . . . 44
2.2 Nguyên lý suy diê˜n và bài toán lâ.p luâ.n trong logic mê.nh dê
` . 52
2.2.1 Nguyên lý suy diê˜n . . . . . . . . . . . . . . . . . . . . 52
2.2.2 Bài toán lâ.p luâ.n trong logic mê.nh dê ` . . . . . . . . . 52
2.3 ` . . . . . . . . . . . .
Mô.t sô´ di.nh lý trong hê. toán mê.nh dê . 55
2.3.1 Tı́nh dâ ` y du’ . . . . . . . . . . . . . . . . . . . . . . . . 55
2.3.2 Tı́nh phi mâu thuâ˜n . . . . . . . . . . . . . . . . . . . 58
2.3.3 Tı́nh dô.c lâ.p . . . . . . . . . . . . . . . . . . . . . . .. 59
2.4 Gió.i thiê.u vài nét vê
` logic da tri. . . . . . . . . . . . . . . . .. 61
2.5 Tı́nh quyê´t di.nh cu’a hê. toán mê.nh dê` . . . . . . . . . . . .. 62
2.6 ` khác . . . . . . . . .
Mô.t sô´ hê. tiên dê . . . . . . . . . . . .. 62
2.7 Áp du.ng di.nh lý dâ ` y du’ cho bài toán suy diê˜n trong logic
mê.nh dê` . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.8 Bài tâ.p chu.o.ng 2 . . . . . . . . . . . . . . . . . . . . . . . . . 66

3 Hê. toán tân tù. 70


3.1 Các lu.o..ng tù. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2 Các khái niê.m và di.nh nghı̃a . . . . . . . . . . . . . . . . . . . 77
3.3 Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh . . . . . . . . . . . 81
3.3.1 Minh hoa. . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.3.2 Tı́nh thu..c hiê.n du.o..c . . . . . . . . . . . . . . . . . . . 83
3.3.3 Su.. dô`ng nhâ´t dúng (hă` ng dúng) . . . . . . . . . . . . 85
3.3.4 Mô hı̀nh . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3.5 Mô.t sô´ hê. qua’ . . . . . . . . . . . . . . . . . . . . . . . 86
3.3.6 Mô.t sô´ di.nh nghı̃a khác . . . . . . . . . . . . . . . . . 89
3.3.7 Các công thú.c logic dô`ng nhâ´t dúng trong hê. toán tân
tù. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.3.8 Da.ng chuâ’n tă´c trong logic tân tù. . . . . . . . . . . . . 93
3.4 Lý thuyê´t tân tù. câ´p 1K . . . . . . . . . . . . . . . . . . . . . 100
3.4.1 Di.nh nghı̃a . . . . . . . . . . . . . . . . . . . . . . . . 100
3.4.2 Mô.t vài thı́ du. vê` Lý thuyê´t tân tù. câ´p 1K . . . . . . 103
MU
. C LU
.C 3

3.5 Di.nh lý suy diê˜n trong logic tân tù. . . . . . . . . . . . . . . . 104
3.6 Tı́nh phi mâu thuâ˜n và dâ ` y du’ cu’a logic tân tù. . . . . . . . . 110
3.6.1 Các khái niê.m và di.nh nghı̃a . . . . . . . . . . . . . . . 110
3.6.2 Tı́nh phi mâu thuâ˜n cu’a lý thuyê´t tân tù. câ´p 1 PP . . 111
3.6.3 Mô.t sô´ di.nh lý trong lý thuyê´t tân tù. câ´p 1 K . . . . . 112
3.6.4 Tı́nh dâ ` y du’ cu’a lý thuyê´t tân tù. câ´p 1K . . . . . . . 120
3.7 Áp du.ng trong chú.ng minh di.nh lý cu’a lý thuyê´t tân tù. câ´p 1 121
3.8 Bài tâ.p chu.o.ng 3 . . . . . . . . . . . . . . . . . . . . . . . . . 123

4 Ngôn ngũ. PROLOG 126


4.1 Mo’. dâ
`u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.2 Ngôn ngũ. PROLOG . . . . . . . . . . . . . . . . . . . . . . . 131
4.2.1 Qui tă´c cú pháp . . . . . . . . . . . . . . . . . . . . . . 131
4.2.2 Các kiê’u dô´i tu.o..ng . . . . . . . . . . . . . . . . . . . . 131
4.2.3 Các phép toán, quan hê. và hàm chuâ’n . . . . . . . . . 137
4.3 Câ´u trúc cu’a chu.o.ng trı̀nh PROLOG . . . . . . . . . . . . . . 139
4.4 Tân tù. FAIL, nhát că´t (!) và tân tù. NOT . . . . . . . . . . . 141
4.5 Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u . . . . . . . . . . . . . . . . . 143
4.5.1 Phu.o.ng thú.c xuâ´t dũ. liê.u . . . . . . . . . . . . . . . . 143
4.5.2 Phu.o.ng thú.c nhâ.p dũ. liê.u . . . . . . . . . . . . . . . . 145
4.6 Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG . . . . . . . . 148
4.7 Bài tâ.p chu.o.ng 4 . . . . . . . . . . . . . . . . . . . . . . . . . 162

5 Logic mò. 166


5.1 Mo’. dâ
`u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.2 Các khái niê.m co. ba’n . . . . . . . . . . . . . . . . . . . . . . 169
` biê´n ngôn ngũ. . . . . . .
5.3 Mô.t sô´ chú ý vê . . . . . . . . . . . 172
5.4 Các phép toán trên tâ.p mò. . . . . . . . . . . . . . . . . . . . 176
5.5 Các tı́nh châ´t trên tâ.p mò. . . . . . . . . . . . . . . . . . . . . 177
5.6 Quan hê. mò. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.6.1 Các phép toán trên quan hê. mò. . . . . . . . . . . . . . 180
5.6.2 Mô.t sô´ tı́nh châ´t trên quan hê. mò. . . . . . . . . . . . . 180
4 MU
. C LU
.C

5.7 Logic mò. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180


5.7.1 Mo’. dâ `u . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5.7.2 Các phép kê´t nô´i . . . . . . . . . . . . . . . . . . . . . 181
5.7.3 Phép tuyê’n (OR-disjunction) . . . . . . . . . . . . . . 183
5.7.4 Phép kéo theo (Implication [Zadeh 1973]) . . . . . . . 183
5.8 Su.. dô`ng nhâ´t dúng mò. (Fuzzy Tautologies) . . . . . . . . . . 185
5.9 Các phép toán t − norm T và t − conorm S . . . . . . . . . . 185
5.10 Phép ho..p thành (Composition) . . . . . . . . . . . . . . . . . 187
5.11 Phu.o.ng trı̀nh quan hê. mò. . . . . . . . . . . . . . . . . . . . . 187
5.12 Lâ.p luâ.n mò. (Fuzzy Reasoning) . . . . . . . . . . . . . . . . . 189
5.12.1 Thuâ.t toán mò. . . . . . . . . . . . . . . . . . . . . . . 190
5.12.2 Lâ.p luâ.n mò. . . . . . . . . . . . . . . . . . . . . . . . 192
5.12.3 Mô.t sô´ phép suy diê˜n mò. khác . . . . . . . . . . . . . 192
5.13 Các luâ.t ho..p thành cu’a suy diê˜n . . . . . . . . . . . . . . . . 194
.
5.14 Ú ng du.ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
5.15 Bài tâ.p chu.o.ng 5 . . . . . . . . . . . . . . . . . . . . . . . . 199
Tài liê.u tham kha’o . . . . . . . . . . . . . . . . . . . . . . . . . 203
Lò.i mo’. dâ
`u

Ta biê´t ră` ng Logic Toán là mô.t ngành khoa ho.c lý thuyê´t gă´n chă.t vó.i tu.
duy suy diê˜n cu’a con ngu.ò.i và du.o..c phát triê’n trên co. so’. tuân thu’ nghiêm
ngă.t các qui luâ.t lâ.p luâ.n cu’a tu. duy logic hı̀nh thú.c. Ho.n nũ.a, Logic Toán
nghiên cú.u phu.o.ng pháp suy luâ.n trong Toán ho.c, phu.o.ng pháp chú.ng minh
và kha’ năng suy diê˜n dâ˜n dê´n các di.nh lý trong mô.t lý thuyê´t.
Các qui luâ.t co. ba’n cu’a logic hı̀nh thú.c dã du.o..c phát triê’n tù. thò.i
Aristote (384-322 tru.ó.c Công nguyên). Su.. phát triê’n cu’a các ngành khoa
ho.c lý thuyê´t tù. thò.i văn minh cô’ Hy La.p cho tó.i thò.i hiê.n da.i ngày nay
` u tra’i qua nhiê
dê ` u bu.ó.c thăng trâ
` m, và có nhũ.ng giai doa.n không phát triê’n
du.o..c, ngu.ng trê., hoă.c phát triê’n râ´t châ.m cha.p. Tuy vâ.y, mô˜i mô.t giai doa.n
` u dê’ la.i nhũ.ng dâ´u â´n vô cùng quı́ giá, dâ´y là nhũ.ng phát minh vı̃ da.i
dê
cu’a các nhà khoa ho.c nói chung và ngành Toán ho.c nói riêng, chă’ng ha.n các
phát minh cu’a Newton, Leibnitz vê ` phép tı́nh vi phân vào thê´ ky’ 16 – 17,
lý thuyê´t tâ.p ho..p Cantor vào cuô´i thê´ ky’ 19 và dâ ` u thê´ ky’ 20...
Tâ.p giáo trı̀nh này nhă` m gió.i thiê.u mô.t sô´ vâ´n dê
` co. ba’n nhâ´t cu’a logic
Toán và logic mò. dã và dang du.o..c nhiê ` u nhà khoa ho.c quan tâm nghiên
. .
cú u, ú ng du.ng.
Giáo trı̀nh du.o..c chia thành 5 chu.o.ng:
Chu.o.ng 1 và 2 trı̀nh bày vê ` logic mê.nh dê ` vó.i mu.c dı́ch là mô hı̀nh hoá
quá trı̀nh suy diê˜n. Logic mê.nh dê ` là hê. thô´ng logic do.n gia’n mà do.n vi. co.
ba’n là các mê.nh dê ` mang nô.i dung cu’a các phán doán, mô˜i mô.t phán doán
có mô.t giá tri. chân lý hoă.c là dúng hoă.c là sai. Các mê.nh dê` phú.c ho..p du.o..c
6 Lò.i mo’. dâ
`u

lâ.p nên tù. các mê.nh dê


` co. ba’n nhò. các phép toán logic nhu. “không” , “và”
, “hay là” , “nê´u thı̀”, “khi và chı’ khi”. Chu.o.ng 3 trı̀nh bày vê ` logic tân tù.
là mô.t da.ng tô’ng quát hoá cu’a logic mê.nh dê `.
Logic tân tù còn du o. c go.i là logic câ´p 1 (first-order logic). Các tân tù.
. . .
(predicates) là các hàm theo không hoă.c nhiê ` u biê´n, và tra’ vê
` giá tri. Boole.
Vı̀ vâ.y tân tù. có lúc dúng, có lúc không dúng tuỳ thuô.c vào các giá tri. cu.
thê’ cu’a các dô´i cu’a nó. Logic tân tù. cũng du.o..c dùng trong các hê. thô´ng
suy luâ.n hoă.c các hê. thô´ng chuyên gia, ...
Chu.o.ng 4 trı̀nh bày nhũ.ng nét co. ba’n cu’a ngôn ngũ. PROLOG, viê´t tă´t
cu’a “Programming in Logic”. Logic tân tù. có du’ kha’ năng diê˜n ta’ dê’ ta.o
nên co. so’. cho ngôn ngũ. lâ.p trı̀nh Prolog cu’a chu.o.ng này.
Chu.o.ng 5 trı̀nh bày nhũ.ng vâ´n dê ` co. ba’n cu’a logic mò. (Fuzzy Logic)
xuâ´t phát tù. lý thuyê´t tâ.p mò. cu’a Zadeh ra dò.i tù. 1965 dê´n các phép ho..p
thành cùng vó.i nhũ.ng phu.o.ng pháp suy diê˜n thông qua quan hê. mò. thê’
hiê.n du.ó.i da.ng phép kéo theo bă` ng nhiê ` u cách thú.c khác nhau du.o..c trı̀nh
bày dâ` y du’ kê´t ho..p vó.i các thı́ du. minh hoa.. Viê.c vâ.n du.ng các mô to. suy
diê˜n du..a trên các toán tu’. ho..p thành gă´n liê` n vó.i tên tuô’i cu’a các nhà khoa
ho.c dã du.o..c ú.ng du.ng trong nhiê ` u lı̃nh vu..c khác nhau nhu. diê ` u khiê’n mò.,
hê. chuyên gia, trı́ tuê. nhân ta.o, chê´ ta.o Robot, các máy móc chuyên du.ng,
di.ch thuâ.t...
Giáo trı̀nh có thê’ du.o..c su’. du.ng rô.ng rãi cho các dô´i tu.o..ng sinh viên, ho.c
viên cao ho.c, nghiên cú.u sinh toán-tin và nhũ.ng ai quan tâm dê´n logic toán.
Tuy dã cô´ gă´ng song chă´c chă´n giáo trı̀nh không tránh kho’i nhũ.ng thiê´u
sót. Tác gia’ râ´t mong nhâ.n du.o..c su.. góp ý cu’a ba.n do.c.
Xin chân thành ca’m o.n!
Thu. góp ý xin gu’.i vê
` : Khoa Toán-Co.-Tin, Tru.ò.ng Da.i ho.c Khoa ho.c Tu..
nhiên, Da.i ho.c Quô´c gia Hà Nô.i, 334 - Nguyê˜n Trãi, Quâ.n Thanh Xuân, Hà
Nô.i.
Tác gia’
Chu.o.ng 1

Da.i sô´ mê.nh dê


`

1.1 Các phép toán và ba’ng chân lý . . . . . . . . . . 8


1.1.1 Phép phu’ di.nh (¬, not) . . . . . . . . . . . . . . . 10
1.1.2 Phép và (∧, and, hô.i) . . . . . . . . . . . . . . . . 10
1.1.3 Phép hay là (∨, or, tuyê’n) . . . . . . . . . . . . . . 10
1.1.4 Phép kéo theo (→) . . . . . . . . . . . . . . . . . . 11
1.1.5 Phép tu.o.ng du.o.ng (↔
↔) . . . . . . . . . . . . . . . 12
1.2 Công thú.c mê.nh dê` . . . . . . . . . . . . . . . . . 12
1.3 Mô.t sô´ di.nh nghı̃a . . . . . . . . . . . . . . . . . . 16
1.3.1 Hàm da.i sô´ logic . . . . . . . . . . . . . . . . . . . 16
1.3.2 Su.. dô`ng nhâ´t dúng - dô`ng nhâ´t sai . . . . . . . . . 18
1.4 Mô.t sô´ tı́nh châ´t . . . . . . . . . . . . . . . . . . . 22
1.5 Da.ng chuâ’n tă ´c cu’a công thú.c mê.nh dê ` . . . . . 23
1.5.1 Da.ng chuâ’n tă´c tuyê’n và chuâ’n tă´c hô.i . . . . . . 23
1.5.2 Da.ng chuâ’n tă´c hoàn toàn . . . . . . . . . . . . . . 24
1.6 ` y du’ cu’a các phép toán . . . . . . . . .
Các hê. dâ 25
1.7 Bài tâ.p chu.o.ng 1 . . . . . . . . . . . . . . . . . . 34
8 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Thông thu.ò.ng chúng ta thành lâ.p các mê.nh dê ` phú.c ho..p tù. các mê.nh
` do.n gia’n. Trong chu.o.ng này, chúng ta sẽ di sâu nghiên cú.u dâ
dê ` y du’ ba’n
` và tu. duy suy diê˜n cu’a nó mô.t cách chă.t chẽ, logic
châ´t cu’a da.i sô´ mê.nh dê
và mang tı́nh thu..c tiê˜n.

1.1 Các phép toán và ba’ng chân lý


Chúng ta dê ` u biê´t con ngu.ò.i có kha’ năng pha’n ánh mô´i quan hê. hiê.n thu..c
giũ.a các su.. vâ.t bă` ng nhũ.ng mê.nh dê ` . Các mê.nh dê ` dó du.o..c du.a ra du.ó.i
nhiê` u hı̀nh thú.c khác nhau, chă’ng ha.n nhu. mô.t lò.i nói, mô.t câu văn, mô.t
công thú.c Toán, Lý, Hoá, hay su.. mô pho’ng cu’a mô.t bú.c tranh v.v.., nhu.ng
co. ba’n trong dó là các mê.nh dê ` này có mang dâ ` y du’ ý nghı̃a nhâ´t di.nh hay
không, nghı̃a là các mê.nh dê ` dó có mang theo tı́nh châ´t hiê.n thu..c du.ó.i mô.t
hı̀nh thú.c nhâ´t di.nh, chú. không pha’i là mô.t mê.nh dê ` suông, vô nghı̃a, và
cũng không pha’i là nhũ.ng lò.i nói chú.a du..ng mô.t ý nghı̃ không nghiêm túc.
Mô.t mê.nh dê ` pha’n ánh mô.t su.. viê.c nào dó theo mô.t cách thú.c nhâ´t di.nh
và su.. viê.c dó pha’n ánh tı́nh chân thu..c theo cách trên thı̀ du.o..c go.i là mô.t
mê.nh dê ` dúng; Trái la.i mê.nh dê ` dó du.o..c go.i là mô.t mê.nh dê
` sai.
.
Thu. c châ´t vâ´n dê ` chúng ta quan tâm dă.c biê.t trong Toán ho.c là o’. chô˜:
“Mô˜i mô.t mê.nh dê ` hoă.c là dúng hoă.c là sai, và không có mô.t mê.nh dê ` nào
vù.a dúng la.i vù.a sai”. Dây chı́nh là nô.i dung cu’a di.nh lý 2 - giá tri..
Bo’.i vâ.y, ló.p tâ´t ca’ các mê.nh dê
` du.o..c chia thành hai ló.p con: mô.t ló.p
gô`m tâ´t ca’ các mê.nh dê ` dúng và mô.t ló.p gô`m tâ´t ca’ các mê.nh dê
` sai. Mô˜i
mê.nh dê ` thuô.c mô.t trong các ló.p dó sẽ nhâ.n mô.t giá tri. chân lý dúng (True,
viê´t tă´t là T) hoă.c sai (False, viê´t tă´t là F).
Ta ký hiê.u các mê.nh dê ` bă` ng các chũ. cái hoa A, B, C, ... còn các biê´n
mê.nh dê ` bă` ng các chũ. cái A, B, C, ... và chúng có kha’ năng nhâ.n các giá tri.
chân lý {T, F } hoă.c {1, 0}.

Thı́ du. 1.1.1


1.1. Các phép toán và ba’ng chân lý 9

1. “Trên mă.t trăng không có ngu.ò.i” (T)

2. “35 chia hê´t cho 6” (F)

3. “Bác Hô` sinh ngày 19 tháng 5 năm 1890” (T)

Chú ý ră` ng trong di.nh lý 2 - giá tri., ngu.ò.i ta chı’ phát biê’u ră` ng: mô˜i
mô.t mê.nh dê` hoă.c là dúng, hoă.c là sai, nhu.ng không khă’ng di.nh du.o..c ră` ng
mô˜i mô.t mê.nh dê` ta có thê’ quyê´t di.nh du.o..c liê.u nó dúng hay không, chă’ng
ha.n di.nh lý cuô´i cùng cu’a Fermat [1], gia’ thuyê´t Continuum [5]. Tâ´t nhiên,
mô˜i mô.t mê.nh dê` này hoă.c là dúng, hoă.c là sai.
Di.nh lý cuô´i cùng cu’a Fermat dã tô`n ta.i trên 350 năm, và mãi cho dê´n
năm 1986, G. Faltings [1], mô.t nhà Toán ho.c tre’ 26 tuô’i ngu.ò.i Dú.c dã
du.o..c nhâ.n gia’i thu.o’.ng Fields vê` mô.t công trı̀nh trong hı̀nh ho.c da.i sô´. Gia’i
thu.o’.ng Fields là gia’i thu.o’.ng dành cho các nhà Toán ho.c tre’ tuô’i du.ó.i 40
tuô’i, 4 năm mó.i câ´p mô.t lâ` n và mô˜i lâ` n không quá 4 ngu.ò.i. Nhu. chúng
ta dã biê´t gia’i thu.o’.ng Nobel không giành cho các nhà Toán ho.c, nên gia’i
thu.o’.ng Fields du.o..c xem nhu. là gia’i “Nobel” cho Toán ho.c và gia’i thu.o’.ng
du.o..c coi là mô.t trong nhũ.ng vinh du.. ló.n nhâ´t dô´i vó.i mô.t ngu.ò.i làm Toán
ho.c. Ngoài ra G. Falting còn du.a ra nhũ.ng ý tu.o’.ng co. ba’n vê ` chú.ng minh
di.nh lý cuô´i cùng cu’a Fermat vào tháng 9 năm 1994 (xem Gerd Falting the
Proof of Fermat’s Last Theorem by R. Taylor and A. Wiles Notices of the
AMS, July 1995, p. 743 - 746), nhu.ng vào năm 1997, nhà Toán ho.c ngu.ò.i
Anh là A. Weil sinh năm 1953 dã chú.ng minh tro.n ve.n di.nh lý này bă` ng
mô.t phu.o.ng pháp khác và ông du.o..c nhâ.n gia’i thu.o’.ng râ´t dă.c biê.t, năm â´y
ông dã ngoài 40 tuô’i nên không thê’ trao gia’i thu.o’.ng Fields. Còn gia’ thuyê´t
Continuum dã du.o..c nhà Toán ho.c Mỹ là P.J Cohen [5] gia’i quyê´t vào năm
1966 và ông dã du.o..c nhâ.n gia’i thu.o’.ng Fields.
` u râ´t hiê’n nhiên là chúng ta có thê’ di tù. mô.t sô´ mê.nh dê
Mô.t diê ` dã cho
dê´n mô.t mê.nh dê ` mó.i nhò. mô.t sô´ tù. nô´i, chă’ng ha.n dô´i vó.i mê.nh dê
` A,
chúng ta có thê’ lâ´y phu’ di.nh cu’a nó “không A” (viê´t tă´t là ¬A), hoă.c dô´i
vó.i hai mê.nh dê ` dã cho A và B, ta có thê’ nô´i các mê.nh dê ` dó vó.i nhau “A
và B” (viê´t tă´t là A ∧ B), “A hay là B” (viê´t tă´t là A ∨ B), “Nê´u A thı̀ B”
10 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

(viê´t tă´t là A → B), và “A khi và chı’ khi B” (viê´t tă´t là A ↔ B). Các ký
hiê.u ¬, ∧, ∨, →, ↔ du.o..c go.i là các phép toán logic. Các phép toán này du.o..c
xác di.nh du..a theo các ba’ng chân lý du.ó.i dây.

1.1.1 Phép phu’ di.nh (¬, not)


A ¬A
T F
F T

Nhu. vâ.y nghı̃a là khi A nhâ.n giá tri. T thı̀ ¬A nhâ.n giá tri. F, và khi A nhâ.n
giá tri. F thı̀ ¬A nhâ.n giá tri. T.

1.1.2 Phép và (∧, and, hô.i)


A B A∧B
T T T
T F F
F T F
F F F

` A ∧ B nhâ.n giá tri. T, khi và chı’ khi A và B dê


Vâ.y mê.nh dê ` u nhâ.n giá
tri. T.

1.1.3 Phép hay là (∨, or, tuyê’n)


A B A∨B
T T T
T F T
F T T
F F F

` A ∨ B nhâ.n giá tri. F, khi và chı’ khi A và B dê


Vâ.y mê.nh dê ` u nhâ.n giá
tri. F.
1.1. Các phép toán và ba’ng chân lý 11

1.1.4 Phép kéo theo (→)


A B (A→B)
T T T
T F F
F T T
F F T

` A → B nhâ.n giá tri. F, khi và chı’ khi A (gia’ thiê´t) nhâ.n
Vâ.y mê.nh dê
giá tri. T và B (kê´t luâ.n) nhâ.n giá tri. F.
Trong mô.t vài tru.ò.ng ho..p, mê.nh dê ` “Nê´u A thı̀ B” du.o..c su’. du.ng nhu.ng
không quan tâm dê´n các giá tri. chân lý cu’a các mê.nh dê ` mô.t cách dâ ` y du’,
chă’ng ha.n nhu. các mê.nh dê ` sau:

1. Nê´u 1+1=2 thı̀ Paris là Thu’ dô cu’a nu.ó.c Pháp.

2. Nê´u 1+16=2 thı̀ Paris là Thu’ dô cu’a nu.ó.c Pháp.

3. Nê´u 1+16=2 thı̀ Rome là Thu’ dô cu’a nu.ó.c Pháp.

Ta dê˜ dàng nhâ.n thâ´y ca’ 3 mê.nh dê ` trên dê ` u nhâ.n giá tri. chân lý là T,
nhu ng mô´i liên hê. giũ a gia’ thiê´t A và kê´t luâ.n B không ăn khó.p vó.i nhau.
. .
Do dó dê’ da’m ba’o tı́nh logic và chă.t chẽ cua’ mô.t mê.ng dê ` , chúng ta pha’i
su’. du.ng mô´i quan hê. dó sao cho giũ.a gia’ thiê´t A và kê´t luâ.n B pha’i có mô´i
quan hê. xác di.nh, thu.ò.ng là nguyên nhân.
Ngoài ra, nói riêng trong thu..c tê´, ngu.ò.i ta hay dùng mê.nh dê ` “Nê´u A thı̀
B” du ó i mô.t hı̀nh thú c khác, không mâu thuâ˜n và hay du o. c su’. du.ng rô.ng
. . . . .
rãi, chă’ng ha.n:
“Nê´u ba.n có thò.i gian thı̀ ba.n dê´n thăm tôi”, cũng du.o..c hiê’u theo nghı̃a
là:
“Nê´u ba.n không dê´n thăm tôi thı̀ ba.n không có thò.i gian”. Diê
` u này luôn
luôn dúng vı̀ theo luâ.t logic sau dây:
` :“A → B” tu.o.ng du.o.ng vó.i “¬B → ¬A”
Mê.nh dê
12 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

1.1.5 Phép tu.o.ng du.o.ng (↔


↔)
A B (A↔B)
T T T
T F F
F T F
F F T

` A ↔ B nhâ.n giá tri. T, khi và chı’ khi A và B nhâ.n cùng
Vâ.y mê.nh dê
giá tri..

1.2 Công thú.c mê.nh dê


`
Di.nh nghı̃a 1.2.1 Công thú.c mê.nh dê ` du.o..c lâ.p nên tù. các chũ.
` là mê.nh dê
cái La-tinh A, B, C, ... và kê’ ca’ các chũ. cái La-tinh có chı’ sô´ A1 , B1, C1 , ...
nhò. các phép toán logic.

Mô.t cách chı́nh xác ho.n, chúng ta di.nh nghı̃a công thú.c mê.nh dê
` bă` ng
.
cách dê. quy nhu sau:

(1) Tâ´t ca’ các chũ. cái La-tinh , kê’ ca’ các chũ. cái La-tinh có chı’ sô´ dê
` u là
.
công thú c

(2) Nê´u A và B là các công thú.c thı̀ (¬A), (A ∧ B), (A ∨ B), (A →B),
(A ↔ B) cũng là công thú.c

(3) Mô.t biê’u thú.c là mô.t công thú.c, nê´u nó du.o..c lâ.p nên tù. co. so’. (1) và
(2).

Mô˜i mô.t phân bô´ các giá tri. chân lý cu’a các biê´n có mă.t trong công thú.c
cho ta mô.t giá tri. chân lý cu’a công thú.c. Do vâ.y, mô˜i mô.t công thú.c mê.nh
` xác di.nh mô.t hàm da.i sô´ logic nào dó. Hàm này du.o..c xác di.nh du..a vào
dê
ba’ng chân lý cu’a công thú.c dã cho.
1.2. Công thú.c mê.nh dê
` 13

Thı́ du. 1.2.1 Cho công thú.c A = (((¬A) ∨ B) → C). Tı̀m hàm da.i sô´ logic
tu.o.ng ú.ng cu’a công thú.c A?
Tru.ó.c hê´t ta lâ.p ba’ng chân lý dâ
` y du’ cu’a A.
Mô˜i dòng là mô.t bô. phân bô´ các giá tri. chân lý cu’a các biê´n A, B, C và
tu o ng ú.ng là mô.t giá cu’a công thú.c A.
. .

A B C ¬A (¬A) ∨ B A
T T T F T T
T T F F T F
T F T F F T
T F F F F T
F T T T T T
F T F T T F
F F T T T T
F F F T T F

Vâ.y chúng ta dê˜ dàng xác di.nh du.o..c mô.t hàm da.i sô´ logic 3 biê´n f :
{T, F}3 → {T, F} du..a vào ba’ng chân lý cu’a A nhu. sau:
f (T,T,T) =T f (F, T,T) =T
f (T,T,F) =F f (F, T,F) =F
f (T,F,T) =T f (F,F,T) =T
f (T,F,F) =T f (F, F,F) =F

Chú ý

1. Nê´u công thú.c mê.nh dê


` có chú.a n biê´n mê.nh dê ` thı̀ ba’ng chân lý cu’a
. . n
công thú c dã cho pha’i chú a 2 bô. phân bô´ các giá tri. chân lý cu’a n
biê´n dó. Làm thê´ nào dê’ có thê’ viê´t dâ
` y du’ 2n bô. phân bô´ này?
Chúng ta chı’ câ` n thu..c hiê.n “thuâ ..
. t chia dôi” du o. c dâ˜n ra theo cách
quy na.p cu’a biê´n n:
• n = 2: Khi dó 22 = 4 và chia 2 cho kê´t qua’ là 2. Ta lâ.p ba’ng nhu.
sau:
14 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

• n = 3: Khi dó 23 = 8 và chia 2 cho kê´t qua’ là 4. Ta lâ.p ba’ng nhu.
sau:

• Mô.t cách tu.o.ng tu.. khi chúng ta tăng bâ.c cu’a hê. sô´ n lên và thu..c
` u tiên mô.t nu’.a trên là T và mô.t
châ´t khi lâ.p ba’ng chúng ta viê´t cô.t dâ
nu’.a du.ó.i là F (hoă.c ngu.o..c la.i theo mô.t nguyên tă´c), rô`i dê´n các cô.t
tiê´p theo nhu.ng chúng ta chı’ lâ.p mô.t nu’.a ba’ng trên theo thuâ.t chia
` n, cuô´i cùng thı̀ thu..c hiê.n copy nu’.a trên xuô´ng nu’.a
dôi có bâ.c gia’m dâ
du.ó.i là hoàn thành du’ 2n bô. phân bô´ các giá tri. chân lý cu’a n biê´n có
mă.t trong công thú.c dã cho.

2. Phu.o.ng pháp lâ.p ba’ng chân lý thu go.n


Tru.ó.c hê´t viê´t công thú.c dã cho thành mô.t dòng cu’a ba’ng, tiê´p dê´n là
các dòng du.o..c tı́nh lâ` n lu.o..t theo giá tri. phân bô´ cu’a các biê´n có mă.t
trong công thú.c và tu.o.ng ú.ng là các giá tri. cu’a tù.ng thành phâ ` n lâ.p
. . . .
nên công thú c, và cuô´i cùng là giá tri. cu’a công thú c du o. c tı́nh theo
tù.ng thành phâ ` n trên du..a theo phép toán cuô´i cùng cu’a công thú.c.
1.2. Công thú.c mê.nh dê
` 15

.
. 1.2.2 Lâ.p ba’ng chân lý thu go.n cu’a công thú c
Thı́ du

A = (A ↔ B) → ((¬A) ∧ B)

Chúng ta lâ.p ba’ng chân lý thu go.n nhu. sau:

(A ↔ B) → ((¬ A) ∧ B)
T T T F F F T
T F F T F F F
F F T T T T T
F T F F T F F

Phu.o.ng pháp lâ.p ba’ng chân lý thu go.n du..a vào vi. trı́ cu’a các biê´n
mê.nh dê` và các phép toán có mă.t trong công thú.c làm các cô.t tu.o.ng
ú.ng, nên vê
` mă.t tı́nh toán du.o..c tiê´t kiê.m thò.i gian nhiê
` u ho.n và ba’ng
lâ.p do.n gia’n ho.n.

3. Tı́nh u.u tiên cu’a các phép toán

Ta dã biê´t trong sô´ ho.c dê’ gia’m thiê’u viê.c viê´t dâ´u ngoă.c cho mô.t biê’u
thú.c sô´ ho.c thông thu.ò.ng là nhân, chia tru.ó.c và cô.ng, trù. sau, và các
phép toán có cùng mú.c u.u tiên du.o..c thu..c hiê.n tù. trái qua pha’i.

Trong các phép toán logic cũng tu.o.ng tu.., ngu.ò.i ta dã du.a ra mô.t quy
u.ó.c viê´t dâ´u ngoă.c theo thú. tu.. u.u tiên sau dây:


1 ¬;
2 ∧;
3 ∨;
4 →;
5 ↔

trong dó chú ý hai phép toán cuô´i cùng →, ↔ xuâ´t hiê.n nhiê
` u lâ
` n liên
.
tiê´p thı̀ lâ.p ngoă.c tù trái qua pha’i, chă’ ng ha.n: A → B → C thı̀ pha’i
lâ.p ngoă.c dúng là ((A → B) → C).

Thı́ du. 1.2.3 Chúng ta lâ.p ngoă. c cho công thú.c


16 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

A = A ∨ ¬B → C ↔ A theo các bu.ó.c sau dây:

A ∨ (¬B) → C ↔ A
(A ∨ (¬B)) → C ↔ A
((A ∨ (¬B)) → C) ↔ A
(((A ∨ (¬B)) → C) ↔ A)

1.3 Mô.t sô´ di.nh nghı̃a


1.3.1 Hàm da.i sô´ logic
Di.nh nghı̃a 1.3.1

• Mô.t hàm da.i sô´ logic n biê´n là mô.t ánh xa. cu’a tâ.p ho..p {T, F}n vào
{T, F}.

• Ló.p các hàm da.i sô´ logic nhâ.n hai giá tri. {T, F } (hoă.c {0, 1}) cùng vó.i
các biê´n cu’a nó du.o..c ký hiê.u là ló.p hàm P 2 .

n
Ta dê˜ dàng nhâ.n thâ´y ră` ng sô´ các hàm da.i sô´ logic n biê´n là bă` ng 22 , vı̀
ră` ng vó.i n biê´n ta có 2n bô. phân bô´ các giá tri. chân lý {T, F} và mô˜i mô.t
bô. nhu. vâ.y tu.o.ng ú.ng vó.i mô.t giá tri. {T, F}, nên sô´ hàm tu.o.ng ú.ng vó.i n
n
biê´n pha’i là 22 .

Thı́ du. 1.3.1


1. Xét ló.p hàm P 2 mô.t biê´n gô`m có 22 = 4 hàm du.o..c cho theo ba’ng sau
1

dây:

x\f f1 f2 f3 f4
T T T F F
F T F T F

trong dó f2 (x) = x; f3(x) = ¬x


1.3. Mô.t sô´ di.nh nghı̃a 17

2. Xét ló.p hàm P 2 hai biê´n gô`m có tâ´t ca’ là: 22 = 16 hàm du.o..c cho theo
2

ba’ng sau dây:

x1 x2 \f f1 f2 f3 f4 f5 f6 f7 f8
TT T T T T T T T T
TF T T T T F F F F
FT T T F F T T F F
FF T F T F T F T F

x1x2 \f f9 f10 f11 f12 f13 f14 f15 f16


TT F F F F F F F F
TF T T T T F F F F
FT T T F F T T F F
FF T F T F T F T F

trong dó có mô.t sô´ hàm quen thuô.c nhu. sau:
f4 (x1 , x2) = x1; f11(x1 , x2) = x2 ; f13(x1, x2 ) = x1
f5 (x1 , x2) = x1 → x2; f7 (x1, x2 ) = x1 ↔ x2
f8 (x1 , x2) = x1 and x2 ; f2 (x1 , x2) = x1 or x2;
f10 (x1, x2 ) = x1 xor x2 ;
Chú ý o’. dây thay ¬x bă` ng x.
Ta biê´t mô˜i mô.t công thú.c mê.nh dê ` tu.o.ng ú.ng vó.i mô.t hàm da.i sô´ logic,
vı̀ ră` ng thú. nhâ´t tâ.p ho..p tâ´t ca’ các biê´n mê.nh dê
` là dê´m du.o..c, chă’ng ha.n
theo cách să´p xê´p thú. tu.. sau dây A, B, C, ..., Z, A1, B1, C1 , ..., Z1 , ...
Thú. hai là nê´u mô.t công thú.c mê.nh dê ` nào dó có chú.a các biê´n i1 , i2, ..., in
(i1 < i2 < ... < in ) trong tâ.p kê’ du.o..c o’. trên thı̀ khi dó tu.o.ng ú.ng ta có thê’
lâ.p du.o..c mô.t hàm da.i sô´ logic vó.i các biê´n xi1 , xi2 , ..., xin .

Thı́ du. 1.3.2 Vó.i công thú.c A → B thı̀ hàm da.i sô´ logic tu.o.ng ú.ng là:
18 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

x1 x2 f (x1 , x2)
T T T
T F F
F T T
F F T

còn dô´i vó.i công thú.c B → A thı̀ hàm da.i sô´ logic tu.o.ng ú.ng là:

x1 x2 g(x1 , x2)
T T T
T F T
F T F
F F T

1.3.2 Su.. dô`ng nhâ´t dúng - dô`ng nhâ´t sai


Di.nh nghı̃a 1.3.2 Mô.t công thú.c mê.nh dê ` du.o..c go.i là dô`ng nhâ´t dúng (hay
` ng dúng), nê´u nó nhâ.n giá tri. dúng dô´i vó.i mo.i phép thê´ các giá tri. chân
hă
lý cu’a các biê´n có mă.t trong công thú.c.
Vâ.y chúng ta có thê’ nói ră` ng mô.t công thú.c mê.nh dê
` là dô`ng nhâ´t dúng,
khi và chı’ khi hàm da.i sô´ logic tu.o.ng ú.ng cu’a nó nhâ.n toàn giá tri. dúng,
hoă.c có thê’ nói nê´u cô.t cuô´i cùng cu’a ba’ng chân lý cu’a công thú.c dã cho
chı’ gô`m toàn giá tri. dúng.

Thı́ du. 1.3.3


a) Công thú.c A = A ∨ (¬A) là dô`ng nhâ´t dúng (hiê’n nhiên).
b) Công thú.c A = A ∧ B → A là dô`ng nhâ´t dúng.
Ta chú.ng minh bă` ng pha’n chú.ng nhu. sau: Gia’ su’. ngu.o..c la.i, A không
dô`ng nhâ´t dúng, nghı̃a là tô`n ta.i mô.t bô. phân bô´ I0 các giá tri. chân lý cu’a
các biê´n có mă.t trong A sao cho A(I0) = False, tú.c là:

A ∧ B = T (1)
A∧B →A=F ⇔
A = F (2)
1.3. Mô.t sô´ di.nh nghı̃a 19

Thay (2) vào (1) ta có: A ∧ B = F (3)


So sánh (1) và (3) suy ra mâu thuâ˜n. Vâ.y A là dô`ng nhâ´t dúng.


Di.nh nghı̃a 1.3.3 Nê´u công thú.c (A → B) là dô`ng nhâ´t dúng thı̀ khi dó
A du.o..c go.i là logic kéo theo B hoă.c B là logic kéo theo tù. A.

Thı́ du. 1.3.4 Công thú.c A ∧ (A → B) logic kéo theo B.


` n chú.ng minh ră` ng công thú.c
Thâ.t vâ.y, ta chı’ câ

A = (A ∧ (A → B) → B)

là dô`ng nhâ´t dúng. Ta lâ.p ba’ng chân lý thu go.n sau dây:

(A ∧ (A → B) → B)
T T T T T T T
T F T F F T F
F F F T T T T
F F F T F T F

Di.nh nghı̃a 1.3.4 Hai công thú.c A và B du.o..c go.i là logic tu.o.ng du.o.ng,
nê´u công thú.c (A ↔ B) là dô`ng nhâ´t dúng.

Thı́ du. 1.3.5 A → B và (¬A) ∨ B là hai công thú.c logic tu.o.ng du.o.ng,
` n chı’ ra ră` ng công thú.c
nghı̃a là ta chı’ câ

A = (A → B) ↔ ((¬A) ∨ B)

là dô`ng nhâ´t dúng.


Lâ.p ba’ng chân lý thu go.n sau dây

(A → B) ↔ ((¬A) ∨ B)
T T T T F T T
T F F T F F F
F T T T T T T
F T F T T T F
20 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Ba’ng công thú.c tu.o.ng du.o.ng

1. A ∧ B ≡ B ∧ A (giao hoán)
A∨B ≡B∨A

2. A ∧ (B ∧ C) ≡ (A ∧ B) ∧ C (kê´t ho..p)
A ∨ (B ∨ C) ≡ (A ∨ B) ∨ C

3. A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C) (luâ.t phân phô´i hai bên


A ∨ (B ∧ C) ≡ (A ∨ B) ∧ (A ∨ C) dô´i vó.i ∧ và ∨)

4. ¬(A ∧ B) ≡ (¬A ∨ ¬B) (luâ.t de Morgan)


¬(A ∨ B) ≡ (¬A ∧ ¬B)

5. A ∧ (¬A) ≡ False
A ∨ (¬A) ≡ True

6. A ∧ True ≡ A
A ∨ False ≡ A

7. ¬(¬A) ≡ A (luâ.t phu’ di.nh kép)

8. (A ∧ A) ≡ A (luâ.t luỹ dă’ ng)


(A ∨ A) ≡ A

9. A ∧ (A ∨ B) ≡ A (luâ.t hâ´p thu.)


A ∨ (A ∧ B) ≡ A

Di.nh nghı̃a 1.3.5 Mô.t công thú.c du.o..c go.i là dô`ng nhâ´t sai (hay hă ` ng sai),
.
nê´u nó nhâ.n giá tri. sai dô´i vó i mo.i phép thê´ các giá tri. chân lý cu’a các biê´n
có mă.t trong công thú.c dó.
Bo’.i vâ.y trong ba’ng chân lý cu’a công thú.c này, cô.t cuô´i cùng cu’a ba’ng
chân lý chı’ gô`m toàn giá tri. sai.
1.3. Mô.t sô´ di.nh nghı̃a 21

Thı́ du. 1.3.6


a) Công thú.c A = A ↔ (¬A) - dô`ng nhâ´t sai.
Ta lâ.p ba’ng chân lý thu go.n cu’a A:
A ↔ (¬A)
T F F
F F T
b) A = A ∧ (¬A) là dô`ng nhâ´t sai. Ta lâ.p ba’ng chân lý thu go.n cu’a A:
A ∧ (¬A)
T F F
F F T
Vâ.y ta có thê’ nói ră` ng công thú.c A là dô`ng nhâ´t dúng, khi và chı’ khi
(¬A) là dô`ng nhâ´t sai.
Di.nh nghı̃a 1.3.6 Mô.t mê.nh dê ` (du.o..c cho du.ó.i da.ng ngôn ngũ. hàng ngày
hoă.c ngôn ngũ. hı̀nh thú.c) nhâ.n du.o..c tù. mô.t công thú.c dô`ng nhâ´t dúng nào
dó bă` ng cách thê´ các biê´n bo’.i các mê.nh dê
` sao cho cùng mô.t biê´n du.o..c thê´
bo’.i cùng mô.t mê.nh dê ` thı̀ mê.nh dê` dó du.o..c go.i là logic dúng.

Thı́ du. 1.3.7 Cho công thú.c dô`ng nhâ´t dúng A = ((A ∨ B) ∧ (¬B) → A).
` sau dây là logic dúng:
Ta có mê.nh dê
“Nê´u trò i mu.a hoă.c tuyê´t ro.i, và tuyê´t không ro.i thı̀ trò.i mu.a”.
.

Di.nh nghı̃a 1.3.7 Mô.t mê.nh dê ` nhâ.n du.o..c tù. mô.t công thú.c dô`ng nhâ´t
sai bă` ng cách thê´ các biê´n bo’.i các mê.nh dê
` sao cho cùng mô.t biê´n du.o..c thê´
bo’.i cùng mô.t mê.nh dê` thı̀ mê.nh dê ` dó du.o..c go.i là logic sai.

Thı́ du. 1.3.8 Ta xét công thú.c dô`ng nhâ´t sai A = A ∧ (¬A). Khi dó nê´u
ta thay A bă` ng mê.nh dê` “Tôi di ho.c” thı̀ mê.nh dê
` sau dây là logic sai:
“Tôi di ho.c và tôi không di ho.c”.
Di.nh nghı̃a 1.3.8 Mô.t công thú.c A du.o..c go.i là thu..c hiê.n du.o..c (hay thoa’
du.o..c), nê´u tô`n ta.i ı́t nhâ´t mô.t bô. phân bô´ các giá tri. chân lý cu’a các biê´n
có mă.t trong công thú.c A sao cho A nhâ.n giá tri. dúng dô´i vó.i bô. phân bô´
này.
22 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

1.4 Mô.t sô´ tı́nh châ´t


Di.nh lý 1.4.1 Nê´u A và A → B là các công thú.c dô`ng nhâ´t dúng thı̀ B
cũng dô`ng nhâ´t dúng.

Chú.ng minh: (pha’n chú.ng)


Gia’ su’. ngu.o..c la.i, B không dô`ng nhâ´t dúng. Khi dó tô`n ta.i mô.t bô.
phân bô´ I0 các giá tri. chân lý cu’a các biê´n có mă.t trong A và B sao cho
B(I0) = F (1). Mă.t khác, theo gia’ thiê´t (A → B) là dô`ng nhâ´t dúng, nên
(A → B)(I0) = A(I0) → B(I0) = T (2).
Tù. (1) và (2) suy ra A(I0) = F . Diê
` u này mâu thuâ˜n vó.i gia’ thiê´t A là
dô`ng nhâ´t dúng. 

Di.nh lý 1.4.2 Nê´u A là mô.t công thú.c dô`ng nhâ´t dúng có chú.a các biê´n
A1 , A2, ..., An, và công thú.c B là công thú.c nhâ.n du.o..c tù. A bă
` ng cách thê´
các công thú.c A1 , A2, ..., An vào các biê´n tu.o.ng ú.ng A1, A2, ..., An thı̀ công
thú.c B cũng dô`ng nhâ´t dúng, nghı̃a là phép thê´ trong mô.t công thú.c dô`ng
nhâ´t dúng cho ta mô.t công thú.c dô`ng nhâ´t dúng.

Chú.ng minh: (tru..c tiê´p)


Gia’ su’. cho mô.t bô. phân bô´ I0 các giá tri. chân lý cu’a các biê´n có mă.t
trong công thú.c B. Khi dó các công thú.c A1 (I0), A2(I0), ..., An (I0) nhâ.n các
giá tri. tu.o.ng ú.ng là b1 , b2, ..., bn trong dó bi hoă.c là T hoă.c F. Nê´u ta thê´ bô.
giá tri. b1 , b2, ..., bn cho các biê´n tu.o.ng ú.ng A1 , A2, ..., An trong công thú.c A
thı̀ A(b1 , b2, ..., bn) nhâ.n giá tri. T, vı̀ công thú.c A là dô`ng nhâ´t dúng và giá
tri. này trùng vó.i giá tri. chân lý cu’a công thú.c B ta.i I0, tú.c là B nhâ.n giá
tri. T dô´i vó.i bô. phân bô´ I0 nói trên. Vı̀ I0 du.o..c cho.n tuỳ ý, nên B là công
thú.c dô`ng nhâ´t dúng. 

Di.nh lý 1.4.3 Nê´u B1 nhâ.n du.o..c tù. A1 bă` ng cách thê´ B vào mô.t hoă.c
` u vi. trı́ cu’a A thı̀ ((A ↔ B) → (A1 ↔ B1)) là công thú.c dô`ng nhâ´t
nhiê
dúng. Tru.ò.ng ho..p, nê´u A và B là logic tu.o.ng du.o.ng thı̀ A1 và B1 cũng
logic tu.o.ng du.o.ng.
1.5. Da.ng chuâ’n tă´c cu’a công thú.c mê.nh dê
` 23

Chú.ng minh: Xét mô.t bô. phân bô´ I0 các giá tri. chân lý cu’a các biê´n. Nê´u
A và B nhâ.n giá tri. dô´i lâ.p nhau dô´i vó.i bô. phân bô´ này thı̀ công thú.c
A ↔ B nhâ.n giá tri. F, và do dó ((A ↔ B) → (A1 ↔ B1)) nhâ.n giá tri. T.
Trái la.i, nê´u A và B nhâ.n cùng giá tri., và vı̀ ră` ng B1 chı’ khác A1 ta.i
mô.t sô´ vi. trı́ mà B1 chú.a B, trong khi dó A1 chú.a A, do vâ.y trong tru.ò.ng
ho..p này, (A ↔ B) nhâ.n giá tri. T, (A1 ↔ B1) cũng nhâ.n giá tri. T, và do dó
((A ↔ B) → (A1 ↔ B1 )) nhâ.n giá tri. T.
Vı̀ I0 du.o..c cho.n tuỳ ý, nên công thú.c ((A ↔ B) → (A1 ↔ B1 )) là dô`ng
nhâ´t dúng. 
.
` dô`ng nhâ´t dúng râ´t do n gia’n, dê˜ hı̀nh
Trên dây là mô.t sô´ tı́nh châ´t vê
dung, và tı́nh bâ´t biê´n cu’a tı́nh châ´t dô`ng nhâ´t dúng là hoàn toàn chú.ng
minh du.o..c.

1.5 ´c cu’a công thú.c mê.nh dê


Da.ng chuâ’n tă `

1.5.1 Da.ng chuâ’n tă


´c tuyê’n và chuâ’n tă
´c hô.i
Di.nh nghı̃a 1.5.1 Mô.t công thú.c mê.nh dê ` du.o..c go.i là da.ng chuâ’n tă´c
tuyê’n, nê´u nó là tuyê’n cu’a mô.t hoă.c nhiê ` u ha.ng thú.c hô.i trong dó mô˜i ha.ng
thú.c hô.i du.o..c lâ.p nên tù. hô.i cu’a mô.t hoă.c nhiê
` u biê´n và phu’ di.nh cu’a biê´n.

Thı́ du. 1.5.1

a) A = (A ∧ B) ∨ (A ∧ B) ∨ (A ∧ B ∧ C)

b) B = (A ∧ (B ∨ C)) ∨ (A ∧ B) ∨ A không pha’i là da.ng chuâ’n tă´c tuyê’n


nhu.ng ta biê´n dô’i thành phâ
` n thú. 1: A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C)
ta có công thú.c sau: B = (A ∧ B) ∨ (A ∧ C) ∨ (A ∧ B) ∨ A là chuâ’n
tă´c tuyê’n.

Di.nh nghı̃a 1.5.2 Mô.t công thú.c mê.nh dê ` du.o..c go.i là da.ng chuâ’n tă´c hô.i,
` u ha.ng thú.c tuyê’n, trong dó mô˜i ha.ng thú.c
nê´u nó là hô.i cu’a mô.t hoă.c nhiê
tuyê’n du.o..c lâ.p nên tù. tuyê’n cu’a mô.t hoă.c nhiê
` u biê´n và phu’ di.nh cu’a biê´n.
24 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Thı́ du. 1.5.2

a) A = A∧(A∨(B ∧C))∧(A∨B) không pha’i là da.ng chuâ’n tă´c hô.i, nhu.ng
` n thú. hai: (A ∨ (B ∧ C)) ≡ (A ∨ B) ∧ (A ∨ C)
ta biê´n dô’i thành phâ
khi dó ta có công thú.c sau là da.ng chuâ’n tă´c hô.i:

A = A ∧ (A ∨ B) ∧ (A ∨ C) ∧ (A ∨ B).

b) B = (A ∨ B) ∧ (A ∨ C) ∧ (A ∨ B ∨ C) ∧ A - da.ng chuâ’n tă´c hô.i.

1.5.2 Da.ng chuâ’n tă


´c hoàn toàn
Di.nh nghı̃a 1.5.3 Mô.t công thú.c mê.nh dê ` du.o..c go.i là chuâ’n tă´c tuyê’n
hoàn toàn, nê´u nó là tuyê’n cu’a các ha.ng thú.c hô.i, trong dó không có mô.t
ha.ng thú.c hô.i nào chú.a biê´n và phu’ di.nh cu’a nó, và nê´u mô.t biê´n có mă.t
trong mô.t ha.ng thú.c hô.i thı̀ nó pha’i có mă.t trong mo.i ha.ng thú.c hô.i khác.

Thı́ du. 1.5.3

a) Công thú.c A = (A ∧ A ∧ B) ∨ (A ∧ B) ∨ (A ∧ C) không pha’i là da.ng


chuâ’n tă´c tuyê’n hoàn toàn, vı̀ ră` ng ha.ng thú.c thú. nhâ´t có biê´n A và
phu’ di.nh cu’a nó trong cùng mô.t ha.ng thú.c tuyê’n, nhu.ng ta biê´n dô’i
thành phâ ` n thú. nhâ´t:

(A ∧ A ∧ B) ≡ (A ∧ A) ∧ B ≡ False ∧ B ≡ False,

ta có công thú.c

A = False ∨ (A ∧ B) ∨ (A ∧ C) ≡ (A ∧ B) ∨ (A ∧ C)

là da.ng chuâ’n tă´c tuyê’n nhu.ng không pha’i là da.ng chuâ’n tă´c tuyê’n
hoàn toàn, vı̀ ră` ng mô˜i ha.ng thú.c hô.i o’. dây thiê´u tên biê´n thú. ba, còn
chă’ng ha.n: (A ∧ B ∧ C) ∨ (A ∧ B ∧ C) là da.ng chuâ’n tă´c tuyê’n hoàn
toàn.
` y du’ cu’a các phép toán
1.6. Các hê. dâ 25

b) Công thú.c A = (A ∧ B ∧ C) ∨ (A ∧ B ∧ C) ∨ (A ∧ B ∧ C) là da.ng chuâ’n


tă´c tuyê’n hoàn toàn.

Di.nh nghı̃a 1.5.4 Mô.t công thú.c mê.nh dê ` du.o..c go.i là chuâ’n tă´c hô.i hoàn
toàn, nê´u nó là hô.i cu’a các ha.ng thú.c tuyê’n, trong dó không có mô.t ha.ng
thú.c tuyê’n nào chú.a biê´n và phu’ di.nh cu’a nó, và nê´u mô.t biê´n có mă.t trong
mô.t ha.ng thú.c tuyê’n thı̀ nó pha’i có mă.t trong mo.i ha.ng thú.c tuyê’n khác.

Thı́ du. 1.5.4

a) A = (A ∨ B) ∧ (A ∨ B) ∧ A - không pha’i da.ng chuâ’n tă´c hô.i hoàn toàn,


vı̀ ră` ng ha.ng thú.c hô.i thú. 3 chı’ có mô.t biê´n vı̀ thiê´u biê´n B nhu.ng
công thú.c này là da.ng chuâ’n tă´c hô.i.

b) B = (A ∨ B ∨ C) ∧ (A ∨ B ∨ C) ∧ (A ∨ B ∨ C) là da.ng chuâ’n tă´c hô.i


hoàn toàn.

1.6 ` y du’ cu’a các phép toán


Các hê. dâ
Chúng ta dã biê´t mô˜i mô.t công thú.c mê.nh dê ` n biê´n tu.o.ng ú.ng vó.i mô.t
hàm da.i sô´ logic n biê´n, trong dó các biê´n và hàm dê ` u nhâ.n giá tri. T hoă.c
F. Ho.n nũ.a, dô´i vó.i các công thú.c tu.o.ng du.o.ng dê ` u sinh ra cùng mô.t hàm
da.i sô´ logic.
` ngu.o..c la.i, liê.u có pha’i mô˜i hàm da.i sô´ logic cũng sinh ra tu.o.ng
Vâ´n dê
ú.ng mô.t công thú.c mê.nh dê ` theo mô.t cách nào dó?
` u này du o. c tra’ lò i mô.t cách khă’ng di.nh nhò. di.nh lý sau dây.
Diê . . .

` u sinh ra tu.o.ng ú.ng mô.t công


Di.nh lý 1.6.1 Mô˜i mô.t hàm da.i sô´ logic dê
thú.c mê.nh dê
` có chú.a các phép toán ¬, ∧, ∨.

Chú.ng minh: Gia’ su’. f (x1, x2 , ..., xn) là mô.t hàm da.i sô´ logic. Rõ ràng hàm
này có thê’ biê’u diê˜n qua mô.t ba’ng chân lý gô`m 2n dòng, trong dó mô˜i dòng
là mô.t bô. phân bô´ các giá tri. chân lý cu’a các biê´n x1, x2, ..., xn và tu.o.ng ú.ng
là giá tri. cu’a hàm f (x1 , x2, ..., xn).
26 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Ta dánh sô´ tâ´t ca’ các dòng theo thú. tu.. 1, 2, ..., 2n . Khi dó, dô´i vó.i mô˜i
i, (1 6 i 6 2n ) ta ký hiê.u:
Ci := ui1 ∧ ... ∧ uin , trong dó

A , nê´u x o’. dòng thú. i nhân giá tri T
i j j . .
uj :=
Aj , nê´u xj o’ dòng thú i nhân giá tri F
. .
. .
Bây giò. ta dă.t D là tuyê’n cu’a các Ci sao cho hàm f (x1 , x2, ..., xn) nhâ.n giá
tri. T o’. dòng thú. i cu’a ba’ng chân lý biê’u diê˜n hàm da.i sô´ logic f (x1 , x2, ..., xn):

D := ∨Ci
i:

f (x1, x2 , ..., xn) = T

Trong tru.ò.ng ho..p không tô`n ta.i mô.t dòng nào cu’a ba’ng chân lý biê’u diê˜n
f (x1 , x2, ..., xn) dê’ f (x1, x2 , ..., xn) nhâ.n giá tri. T thı̀ khi dó ta chı’ câ
` n dă.t là:

D := A1 ∧ A1

Ta pha’i chú.ng minh ră` ng công thú.c D và f là trùng nhau vê ` mă.t giá tri..
.
Thâ.t vâ.y, gia’ su’ cho mô.t bô. phân bô´ các giá tri. chân lý cu’a các biê´n
A1 , A2, ..., An có mă.t trong công thú.c D, và dô`ng thò.i gia’ thiê´t ră` ng dòng
này nă` m o’. dòng thú. k cu’a ba’ng biê’u diê˜n hàm da.i sô´ logic f (x1 , x2, ..., xn).
Khi dó dê˜ dàng thâ´y ră` ng Ck nhâ.n giá tri. T dô´i vó.i bô. phân bô´ này cu’a các
biê´n A1, A2 , ..., An, còn các Ci còn la.i dê ` u nhâ.n giá tri. F dô´i vó.i bô. phân
bô´ nói trên. Bo’.i vâ.y, nê´u f nhâ.n giá tri. T o’. dòng thú. k, thı̀ Ck là mô.t sô´
ha.ng cu’a công thú.c tuyê’n D, và nhu. vâ.y D nhâ.n giá tri. T dô´i vó.i bô. phân
bô´ này. Trái la.i, nê´u f nhâ.n giá tri. F o’. dòng thú. k, thı̀ khi dó Ck không có
mă.t trong công thú.c D và tâ´t ca’ các sô´ ha.ng cu’a công thú.c tuyê’n D dê `u
. . . .
nhâ.n giá tri. F dô´i vó i bô. phân bô´ này. Vâ.y trong ca’ hai tru ò ng ho. p ta thâ´y
ră` ng D và f là trùng nhau vê ` mă.t giá tri.. Do dó, D qua’ thâ.t du.o..c sinh ra
tù. hàm da.i sô´ logic f . 

Thı́ du. 1.6.1 Cho hàm da.i sô´ logic 2 biê´n f (x1 , x2) theo ba’ng chân lý sau:
` y du’ cu’a các phép toán
1.6. Các hê. dâ 27

x1 x2 f (x1 , x2)
T T F-
T F T+
F T T+
F F T+

Hãy tı̀m công thú.c D tu.o.ng ú.ng vó.i f (x1, x2 )?


Trong ba’ng dã cho, ta dánh dâ´u + vào nhũ.ng dòng mà hàm f nhâ.n giá
tri. True, và dâ´u − vào nhũ.ng dòng hàm f nhâ.n giá tri. False. Khi dó ta có:

D = C2 ∨ C3 ∨ C4
= (A1 ∧ A2 ) ∨ (A1 ∧ A2) ∨ (A1 ∧ A2)

Chú ý ră` ng ta có thê’ thu..c hiê.n nhanh công thú.c pha’i tı̀m bă` ng cách nhu.
sau: Ta.i dòng mà hàm f nhâ.n giá tri. True (tu.o.ng ú.ng là dâ´u +) ta viê´t
thành phâ ` n tu.o.ng ú.ng cu’a công thú.c D o’. dòng này là A1 ∧ A2 ∧ ... ∧ An và
sau dó thêm dâ´u phu’ di.nh −− trên dâ ` u biê´n Ai mà ta.i dó xi tu.o.ng ú.ng nhâ.n
giá tri. False, chă’ng ha.n trong thı́ du. trên, dòng thú. 2 ta có:

A1 ∧ A2 7−→ A1 ∧ A2
(T, F)

` n C2 cu’a công thú.c D câ


là thành phâ ` n tı̀m.

Thı́ du. 1.6.2 Cho hàm da.i sô´ logic 3 biê´n g(x1 , x2, x3) theo ba’ng chân lý
sau:
x1 x2 x3 g(x1, x2 , x3)
T T T T+
T T F F-
T F T T+
T F F T+
F T T F-
F T F F-
F F T F-
F F F T+
28 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Hãy tı̀m công thú.c D tu.o.ng ú.ng cu’a g(x1, x2, x3 )?


Ta có công thú.c pha’i tı̀m là:

D = A1 ∧ A2 ∧ A3 ∨ A1 ∧ A2 ∧ A3 ∨ A1 ∧ A2 ∧ A3 ∨ A1 ∧ A2 ∧ A3 .

Chú ý: Theo cách chú.ng minh trên, ta thâ´y ră ` ng mo.i hàm da.i sô´ logic
f : {0, 1}n → {0, 1} dê ` u có thê’ biê’u diê˜n du.o..c bă
` ng công thú.c mê.nh dê
` nhò.
3 phép toán {¬, ∧, ∨} nhu. sau
n
• Da.ng chuâ’n tă´c tuyê’n hoàn toàn cu’a hàm da.i sô´ logic f : {0, 1} → {0, 1}
là công thú.c
_
fT (x1, x2 , ..., xn) = xσ1 1 ∧ xσ2 2 ∧ ... ∧ xσnn (1)
i:

f (σ1 , σ2, ..., σn) = 1


• Da.ng chuâ’n tă´c hô.i hoàn toàn cu’a hàm da.i sô´ logic f : {0, 1}n → {0, 1} là
công thú.c
^
fH (x1 , x2, ..., xn) = x1−σ 1
1
∨ x1−σ
2
2
∨ ... ∨ x1−σ
n
n
(2)
i:

f (σ1 , σ2, ..., σn) = 0


.
O’ dây chı’ sô´ i là chı’ sô´ dòng thú. i cu’a ba’ng biê’u diê˜n hàm da.i sô´ logic
f (x1 , x2, ..., xn) và σk ∈ {0, 1} vó.i mo.i k = 1...n.

Thı́ du. 1.6.3 Cho hàm da.i sô´ logic f : {0, 1}3 → {0, 1} nhu. sau:

x1 x2 x3 f (x1 , x2, x3)


1 1 1 0-
1 1 0 1+
1 0 1 1+
1 0 0 0-
0 1 1 1+
0 1 0 1+
0 0 1 0-
0 0 0 0-
` y du’ cu’a các phép toán
1.6. Các hê. dâ 29

a) Tı̀m da.ng chuâ’n tă´c tuyê’n, hô.i hoàn toàn cu’a f (x1 , x2, x3 )?

b) Rút go.n công thú.c vù.a tı̀m?

Gia’i a) Lâ.p công thú.c chuâ’n tă´c tuyê’n và hô.i hoàn toàn

Ta dê˜ dàng lâ.p du.o..c công thú.c pha’i tı̀m là:

fT (x1, x2, x3 ) = x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3

fH (x1, x2 , x3) = x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 .

b) Rút go.n:
30 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

Ta áp du.ng các công thú.c tu.o.ng du.o.ng cho quá trı̀nh biê´n dô’i nhu. sau:

fT = x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3
≡ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ [(x1 ∧ x2) ∧ (x3 ∨ x3)]
x T y
≡ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2 ∧ x3 ∨ x1 ∧ x2
≡ (x1 ∧ x2 ∨ x1 ∧ x2 ∧ x3 ) ∨ x1 ∧ x2 ∧ x3
≡ [x2 ∧ (x1 ∨ (x1 ∧ x3 ))] ∨ x1 ∧ x2 ∧ x3
≡ [x2 ∧ ((x1 ∨ x1) ∧ (x1 ∨ x3 ))] ∨ x1 ∧ x2 ∧ x3
x T y
≡ [x2 ∧ (x1 ∨ x3 )] ∨ (x1 ∧ x2 ∧ x3 )
≡ [(x1 ∧ x2 ∧ x3) ∨ x2 ] ∧ [(x1 ∧ x2 ∧ x3) ∨ (x1 ∨ x3 )]
≡ [(x2 ∨ x1) ∧ (x2 ∨ x2 ) ∧ (x2 ∨ x3)] ∧ [(x1 ∨ x3 ∨x1 )
x T y x T y
∧((x1 ∨ x3 ) ∨ (x2 ∧ x3))]
≡ [(x2 ∨ x1) ∧ (x2 ∨ x3 )] ∧ [(x1 ∨ x3) ∨ (x2 ∧ x3 )]
≡ (x1 ∨ x2 ) ∧ (x2 ∨ x3) ∧ [(x1 ∨ x3 ∨ x2 ) ∧ (x1 ∨ x3 ∨ x3)]
x T y
≡ (x1 ∨ x2 ) ∧ (x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3)
≡ (x2 ∨ (x1 ∧ x3)) ∧ (x1 ∨ x2 ∨ x3 ).
fH = x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3
≡ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ [(x1 ∨ x2) ∨ (x3 ∧ x3)]
x F y
≡ x1 ∨ x2 ∨ x3 ∧ x1 ∨ x2 ∨ x3 ∧ (x1 ∨ x2)
≡ (x1 ∨ x2 ∨ x3) ∧ [x2 ∨ (x1 ∧ (x1 ∨ x3))]
≡ (x1 ∨ x2 ∨ x3) ∧ [x2 ∨ ((x1 ∧ x1) ∨ x1 ∧ x3 )]
x F y
≡ (x1 ∨ x2 ∨ x3) ∧ [x2 ∨ (x1 ∧ x3)]
≡ [(x1 ∨ x2 ∨ x3 ) ∧ x2 ] ∨ [(x1 ∨ x2 ∨ x3 ) ∧ (x1 ∧ x3 ))]
≡ [x2 ∧ x1 ∨ x2 ∧ x2 ∨ x2 ∧ x3]
x F y
∨[(x1∧ x3 ∧x1 ) ∨ ((x1 ∧ x3) ∨ (x2 ∨ x3 ))]
x F y
≡ [x1 ∧ x2 ∨ x2 ∧ x3 ] ∨ [(x1 ∧ x3) ∧ (x2 ∨ x3 )]
` y du’ cu’a các phép toán
1.6. Các hê. dâ 31

≡ (x1 ∧ x2 ∨ x2 ∧ x3) ∨ (x1 ∧ x3 ∧ x2 ∨ x1 ∧ x3 ∧ x3 )


x F y
≡ (x1 ∧ x2 ) ∨ (x2 ∧ x3 ) ∨ (x1 ∧ x3 ∧ x2)
≡ (x2 ∧ (x1 ∨ x3)) ∨ (x1 ∧ x2 ∧ x3 ).

Khi dó ngu.ò.i ta cũng nói ră` ng hê. các phép toán {¬, ∧, ∨} lâ.p thành mô.t
` y du’ cu’a các phép toán logic.
hê. dâ
Mă.t khác, du..a vào công thú.c tu.o.ng du.o.ng, ngu.ò.i ta có thê’ gia’m sô´
phép toán cu’a hê. xuô´ng 2 phép toán cũng du’ dê’ biê’u diê˜n mo.i hàm da.i sô´
logic. Ta có di.nh lý sau dây.

` u có thê’ du.o..c biê’u diê˜n qua hai


Di.nh lý 1.6.2 Mô˜i mô.t hàm da.i sô´ logic dê
phép toán {¬, ∧} hoă.c {¬, ∨}, hoă.c {¬, →}.

Chú.ng minh: Chú ý ră` ng công thú.c A ∨ B là logic tu.o.ng du.o.ng vó.i công
thú.c ¬(¬A ∧ ¬B). Do dó theo di.nh lý 1.6.1 mô˜i mô.t công thú.c mê.nh dê `
.
có chú a 3 phép toán {¬, ∧, ∨} dê . . . . . .
` u là logic tu o ng du o ng vó i mô.t công thú c
mê.nh dê ` có chú a 2 phép toán {¬, ∧} (bă` ng cách thay mo.i công thú.c A ∨ B
.
bă` ng công thú.c tu.o.ng du.o.ng vó.i ¬(¬A ∧ ¬B)).
Tu.o.ng tu.. cho các phâ
` n khác cu’a di.nh lý nhò. vào các công thú.c dô`ng
nhâ´t dúng sau dây:

A ∧ B ≡ ¬(¬A ∨ ¬B)
A ∨ B ≡ (¬A) → B
A ∧ B ≡ ¬(A → ¬B)

Thı́ du. 1.6.4 Hãy biê’u diê˜n công thú.c


A = A ∧ B ∧ C ∨ A ∧ B qua hai phép toán
a) {¬, ∧}; b) {¬, ∨}.
• Tru.ò.ng ho..p a) {¬, ∧}
32 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

A = A∧B ∧C ∨A∧B
≡ A∧B ∧C ∨A∧B (vı̀ luâ.t phu’ di.nh kép)
≡ A∧B ∧C ∧A∧B

• Tru.ò.ng ho..p b) {¬, ∨}

A = A∧B ∧C ∨A∧B
≡ A∧B ∧C ∨A∧B
≡ A∨B ∨C ∨A∨B

` u thú vi. khác là tô`n ta.i hai phép toán hai ngôi mà chı’ câ
Mô.t diê ` n duy
nhâ´t mô.t trong hai phép toán dó là du’ dê’ biê’u diê˜n mo.i hàm da.i sô´ logic.
Dó là hai phép toán ↓ hoă.c | du.o..c go.i là các toán tu’. Sheffer vó.i ba’ng giá tri.
chân lý sau dây:
(a) Phép toán ↓

A B A↓B
T T F
T F F
F T F
F F T

Vâ.y theo ba’ng chân lý dã cho ta có: A ↓ B là True, khi và chı’ khi ca’ A
` u False.
và B dê
Dê˜ dàng kiê’m tra du.o..c ră` ng công thú.c ¬A ≡ (A ↓ A) và (A ∧ B) ≡
((A ↓ A) ↓ (B ↓ B)) dê ` u là dô`ng nhâ´t dúng. Do vâ.y chı’ câ
` n duy nhâ´t phép
.
toán ↓ là du’ dê’ xây du. ng mo.i hàm da.i sô´ logic.
(b) Phép toán |
` y du’ cu’a các phép toán
1.6. Các hê. dâ 33

A B A|B
T T F
T F T
F T T
F F T

Vâ.y theo ba’ng chân lý dã cho ta có: A|B là False, khi và chı’ khi ca’ A và
` u True.
B dê
Dê˜ dàng kiê’m tra du.o..c ră` ng các công thú.c sau là dô`ng nhâ´t dúng:

¬A ≡ (A|A) và (A ∨ B) ≡ ((A|A)|(B|B)).

Di.nh lý 1.6.3 Chı’ câ ` n mô˜i mô.t phép toán hai ngôi ↓ hoă.c | là du’ dê’ xây
du..ng mo.i hàm da.i sô´ logic.

Chú.ng minh: Gia’ su’. h(A, B) là mô.t phép toán dâ ` y du’. Bây giò., nê´u gia’
su’. ră` ng h(T, T) nhâ.n giá tri. T thı̀ bâ´t kỳ mô.t công thú.c mê.nh dê
` du.o..c lâ.p
nên chı’ su’. du.ng phép toán h sẽ nhâ.n giá tri. T khi mo.i mê.nh dê ` dê
` u nhâ.n
giá tri. T.
Do vâ.y công thú.c ¬A không thê’ xác di.nh du.o..c nhò. toán tu’. h. Vâ.y ta
pha’i có h(T, T) = F.
Lâ.p luâ.n tu.o.ng tu.., ta có h(F, F) = T. Khi dó, ta có ba’ng chân lý nhu.
sau:

A B h(A, B)
T T F
T F
F T
F F T

Ta tiê´p tu.c lâ.p luâ.n dê’ tı́nh các giá tri. còn la.i o’. dòng thú. 2 và thú. 3 cu’a
ba’ng chân lý dô´i vó.i toán tu’. h. Nê´u dòng thú. 2 và thú. 3 o’. cô.t thú. 3 ta
nhâ.p các giá tri. là F, F hoă.c T, T thı̀ khi dó toán tu’. h là ↓ hoă.c |. Trái la.i,
nê´u ta nhâ.p vào giá tri. F, T thı̀ rõ ràng h(A, B) ≡ ¬A là công thú.c dô`ng
34 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

nhâ´t dúng, còn không nê´u ta nhâ.p vào giá tri. T, F thı̀ ta có h(A, B) ≡ ¬B
là công thú.c dô`ng nhâ´t dúng. Trong ca’ hai tru.ò.ng ho..p, toán tu’. h du.o..c
xác di.nh qua phép phu’ di.nh ¬. Nhu.ng phép phu’ di.nh ¬ thı̀ ba’n thân nó là
không dâ ` y du’, vı̀ ră` ng các hàm da.i sô´ logic mô.t biê´n du.o..c xác di.nh tù. nó là
hàm dô`ng nhâ´t h(A) = A và hàm phu’ di.nh nó h(A) = ¬A, trong khi hàm
da.i sô´ logic luôn luôn nhâ.n giá tri. T thı̀ không thê’ nào xác di.nh du.o..c qua
nó.
Ta có duy nhâ´t mô.t hàm ↓ hoă.c | là du’ dê’ xây du..ng mo.i hàm da.i sô´
logic.
Vâ.y dê´n dây ta có thê’ nói mo.i công thú.c mê.nh dê ` u có thê’
` bâ´t kỳ dê
.
biê’u diê˜n qua mô.t công thú c gô`m các biê´n mê.nh dê
` và các phép toán thuô.c
` y du’ là
mô.t trong các hê. dâ
{¬, ∧}; {¬, ∨}; {¬, →}; {↓}; {|}.


1.7 Bài tâ.p chu.o.ng 1


` y du’ cho các công thú.c:
1. Lâ.p ba’ng chân lý dâ
a) ((A → B) ∨ (¬A))
b) ((A → (B → C)) → ((A → B) → (A → C))

2. Lâ.p ba’ng chân lý thu go.n cho các công thú.c:
a) ((A → B) ∧ A)
b) ((A ∨ (¬C)) ↔ B)

3. Kiê’m tra các công thú.c sau có dô`ng nhâ´t dúng không:
a) (((A → B) → B) → B)
b) ((A ↔ B) ↔ (A ↔ (B ↔ A)))

4. Kiê’m tra các công thú.c sau:


a) (A ↔ B) logic kéo theo (A → B)?
1.7. Bài tâ.p chu.o.ng 1 35

b) (¬A) ∨ B và ((¬B) ∨ A) logic tu.o.ng du.o.ng?

5. Hãy loa.i bo’ các că.p ngoă. c có thê’ tù. các công thú.c:
a) ((B ↔ ((¬C) ∨ (D ∧ A))) ↔ (B → B))
b) (((A ∧ (¬B)) ∧ C) ∨ D)

6. Viê´t ngoă.c cho các công thú.c sau:


a) C → ¬(A ∨ C) ∧ A ↔ B
b) C → A → A ↔ ¬A ∨ B

7. Hãy xác di.nh các công thú.c sau công thú.c nào là dô`ng nhâ´t dúng,
dô`ng nhâ´t sai hay thoa’ du.o..c:
a) A ↔ (A ∨ A)
b) (A → B) → ((B → C) → (A → C))
c) ((A → B) ∧ B) → A
d) (¬A) → (A ∧ B)
e) A ∧ (¬(A ∨ B))
f) (A → B) ↔ ((¬A) ∨ B)
g) (A → B) ↔ ¬(A ∧ ¬(B))

8. Chú.ng minh ră` ng các công thú.c sau dây là logic tu.o.ng du.o.ng
a) ¬(A ∧ B) và ¬(A) ∨ (¬B)
b) ¬(A ∨ B) và ¬(A) ∧ (¬B)
c) A ∧ (B ∨ C) và (A ∧ B) ∨ (A ∧ C)
d) A ∨ (B ∧ C) và (A ∨ B) ∧ (A ∨ C)
e) A ∨ (A ∧ B) và A
f) A → B và (¬B) → (¬A)
g) (A ∧ B) ∨ (¬B) và A ∨ (¬B)
36 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

h) A ∧ (A ∨ B) và A

i) (A ∧ B) ∧ C và A ∧ (B ∧ C)

k) (A ∨ B) ∨ C và A ∨ (B ∨ C)

e) (A ↔ B) ↔ C và A ↔ (B ↔ C).

9. Rút go.n công thú.c (A ∧ B) ∨ ((C ∨ A) ∧ ¬B).

So. dô` vi ma.ch biê’u diê˜n nó (H.1.1) và kê´t qua’ (H.1.2)

Hı̀nh 1.1 Hı̀nh 1.2

10. Cho các so. dô` vi ma.ch:

a)
1.7. Bài tâ.p chu.o.ng 1 37

b)

c)

Hãy viê´t các công thú.c biê’u diê˜n các vi ma.ch dó, rút go.n công thú.c
vù.a tı̀m và vẽ so. dô` vi ma.ch cu’a chúng.

11. Cho hàm da.i sô´ logic f (x1 , x2, x3 ) sau dây:

x1 x2 x3 f (x1 , x2, x3)


1 1 1 0
1 1 0 0
1 0 1 1
1 0 0 1
0 1 1 0
0 1 0 0
0 0 1 1
0 0 0 1
38 Chu.o.ng 1. Da.i sô´ mê.nh dê
`

a) Tı̀m da.ng chuâ’n tă´c tuyê’n, hô.i hoàn toàn cu’a f (x1 , x2, x3)?
b) Rút go.n công thú.c vù.a tı̀m.
c) Hãy biê’u diê˜n chúng qua 2 phép toán:
(1) {¬, ∧}; (2) {¬, ∨}.
Chu.o.ng 2

`
Hê. toán mê.nh dê

2.1 ` trong hê. toán mê.nh dê


Hê. tiên dê ` . . . . . . . . 40
2.1.1 Mô.t sô´ di.nh nghı̃a co. ba’n . . . . . . . . . . . . . 40
2.1.2 Các tı́nh châ´t . . . . . . . . . . . . . . . . . . . . 42
2.1.3 Lý thuyê´t tiên dê
` trong hê. toán mê.nh dê
` . . . . . 43
2.1.4 Di.nh lý suy diê˜n trong hê. toán mê.nh dê
` . . . . . . 44
2.2 Nguyên lý suy diê˜n và bài toán lâ.p luâ.n trong
` . . . . . . . . . . . . . . . . . . . . .
logic mê.nh dê 52
2.2.1 Nguyên lý suy diê˜n . . . . . . . . . . . . . . . . . . 52
2.2.2 ` . . . . . . . 52
Bài toán lâ.p luâ.n trong logic mê.nh dê
2.3 Mô.t sô´ di.nh lý trong hê. toán mê.nh dê
` . . . . . 55
2.3.1 ` y du’
Tı́nh dâ . . . . . . . . . . . . . . . . . . . . . 55
2.3.2 Tı́nh phi mâu thuâ˜n . . . . . . . . . . . . . . . . . 58
2.3.3 Tı́nh dô.c lâ.p . . . . . . . . . . . . . . . . . . . . . 59
2.4 Gió.i thiê.u vài nét vê
` logic da tri. . . . . . . . . . 61
2.5 Tı́nh quyê´t di.nh cu’a hê. toán mê.nh dê
` . . . . . . 62
2.6 Mô.t sô´ hê. tiên dê
` khác . . . . . . . . . . . . . . . 62
40 Chu.o.ng 2. Hê. toán mê.nh dê
`

2.7 ` y du’ cho bài toán suy diê


Áp du.ng di.nh lý dâ ˜n
trong logic mê.nh dê` . . . . . . . . . . . . . . . . . 64
2.8 Bài tâ.p chu.o.ng 2 . . . . . . . . . . . . . . . . . . 66

Trong chu.o.ng 1, ta dã bu.ó.c dâ ` u nghiên cú.u nô.i dung da.i sô´ mê.nh dê `.
. .
Dê’ nghiên cú u mô.t cách toàn diê.n và hê. thô´ng theo ma.ch tu duy suy diê˜n
cu’a con ngu.ò.i, ta chuyê’n qua viê.c kha’o sát nó mô.t cách “hı̀nh thú.c”, “trù.u
tu.o..ng”, nhu.ng la.i làm cho quá trı̀nh tu. duy, suy luâ.n mô.t cách chı́nh xác,
` y du’ và mang tı́nh châ´t logic Toán ho.c ho.n. Mă.c dù các hê. hı̀nh thú.c này
dâ
du.o..c trı̀nh bày mô.t cách trù.u tu.o..ng, nhu.ng thu..c châ´t nó nhă` m phu.c vu. cho
viê.c nghiên cú.u da.i sô´ mê.nh dê
` sâu să´c, có tı́nh hê. thô´ng và có nhũ.ng ú.ng
du.ng trong nhiê ` u lı̃nh vu..c khác liên quan dê´n ba’n châ´t cu’a da.i sô´ mê.nh dê`.

2.1 ` trong hê. toán mê.nh dê


Hê. tiên dê `

2.1.1 Mô.t sô´ di.nh nghı̃a co. ba’n


Di.nh nghı̃a 2.1.1 S du.o..c go.i là lý thuyê´t hı̀nh thú.c (hay lý thuyê´t tiên dê
` ),
` u kiê.n sau dây:
nê´u nó thoa’ mãn các diê
(1) Mô.t tâ.p dê´m du.o..c các ký hiê.u go.i là ký hiê.u cu’a S. Mô.t dãy hũ.u ha.n
các ký hiê.u cu’a S du.o..c go.i là mô.t biê’u thú.c cu’a lý thuyê´t S.

(2) Mô.t thu’ tu.c cho phép xác di.nh mô.t biê’u thú.c dã cho có pha’i là mô.t
công thú.c hay không.

(3) Mô.t tâ.p hũ.u ha.n các công thú.c du.o..c go.i là các tiên dê
` cu’a lý thuyê´t
S.

(4) Mô.t tâ.p hũ.u ha.n R1 , R2 , ..., Rk các quy tă´c dâ˜n xuâ´t cho phép ta dâ˜n
du.o..c tù. mô.t tâ.p hũ.u ha.n các công thú.c dê´n mô.t tâ.p các công thú.c mó.i.
Di.nh nghı̃a 2.1.2 Mô.t dãy các công thú.c A1, A2, ...An du.o..c go.i là dâ˜n
xuâ´t trong S nê´u bâ´t kỳ mô.t công thú.c Ai hoă.c là tiên dê ` hoă.c là dâ˜n du.o..c
tru..c tiê´p tù. các công thú.c dú.ng tru.ó.c nó nhò. qui tă´c dâ˜n xuâ´t.
` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 41

Di.nh nghı̃a 2.1.3 Mô.t công thú.c A cu’a lý thuyê´t S du.o..c go.i là di.nh lý
cu’a lý thuyê´t S nê´u tô`n ta.i mô.t dâ˜n xuâ´t trong S : A1 , A2, ..., Ak sao cho
Ak = A, và dâ˜n xuâ´t này du.o..c go.i là dâ˜n xuâ´t cu’a công thú.c A.

Di.nh nghı̃a 2.1.4 Lý thuyê´t mà trong dó có tô`n ta.i mô.t thuâ.t toán cho
phép xác di.nh mô.t công thú.c dã cho có dâ˜n du.o..c hay không du.o..c go.i là lý
thuyê´t gia’i du.o..c; Trái la.i, nó du.o..c go.i là lý thuyê´t không gia’i du.o..c.

Di.nh nghı̃a 2.1.5 Mô.t công thú.c A du.o..c go.i là dâ˜n du.o..c trong S tù. tâ.p
ho..p Γ các công thú.c, khi và chı’ khi tô`n ta.i dãy các công thú.c A1, A2 , ...An
sao cho An = A và ∀i (i = 1...n) Ai hoă.c là tiên dê ` n tu’. cu’a
` , hoă.c là phâ
Γ, hoă.c là dâ˜n du.o..c tru..c tiê´p tù. các công thú.c dú.ng tru.ó.c nó nhò. quy tă´c
dâ˜n xuâ´t.

Dãy công thú.c này du.o..c go.i là dâ˜n xuâ´t cu’a A tù. Γ. Các phâ
` n tu’. cu’a
Γ du.o..c go.i là gia’ thiê´t, và ta ký hiê.u nhu. sau:

Γ ` A hoă.c Γ `S A

và du.o..c do.c là “A dâ˜n du.o..c tù. Γ” hoă.c “A dâ˜n du.o..c tù. Γ trong S”.
Chú ý 1

1a) Tru.ò.ng ho..p Γ là hũ.u ha.n: Γ := {B1, B2, ..., Bm} thı̀ ta ký hiê.u:

B1, B2, ..., Bm ` A.

1b) Tru.ò.ng ho..p nê´u Γ = ∅ thı̀ Γ ` A, khi và chı’ khi A là di.nh lý, và ta ký
hiê.u: ` A.

Chú ý 2

` là dâ˜n du.o..c tù. tâ.p bâ´t kỳ Γ các công thú.c
2a) Mô˜i mô.t tiên dê

2b) Mô˜i mô.t di.nh lý là dâ˜n du.o..c tù. tâ.p bâ´t kỳ Γ các công thú.c

` n tu’. cu’a Γ dê


2c) Mô˜i mô.t phâ ` u dâ˜n du.o..c tù. Γ.
42 Chu.o.ng 2. Hê. toán mê.nh dê
`

2.1.2 Các tı́nh châ´t

(1) Nê´u Γ ⊆ ∆ và Γ ` A thı̀ ∆ ` A

(2) Γ ` A, khi và chı’ khi tô`n ta.i mô.t tâ.p ∆ ⊆ Γ sao cho ∆ ` A

(3) Nê´u ∆ ` A và ∀B ∈ ∆ : Γ ` B thı̀ Γ ` A.

.
O’ dây ta thâ´y tı́nh châ´t (1) chı’ ra ră` ng mô.t công thú.c dã dâ˜n du.o..c tù.
mô.t tâ.p các công thú.c thı̀ nó cũng dâ˜n du.o..c tù. tâ.p ló.n ho.n, nghı̃a là nê´u
ta có thêm mô.t sô´ gia’ thiê´t vào tâ.p dã dâ˜n du.o..c thı̀ tı́nh châ´t dâ˜n du.o..c cu’a
công thú.c vâ˜n không thay dô’i.
Tù. tı́nh châ´t (1) buô.c ta pha’i suy nghı̃ làm thê´ nào dê’ cho.n du.o..c mô.t
tâ.p gia’ thiê´t sao cho nó vù.a du’, không thù.a và cũng không thiê´u. Nê´u gia’
thiê´t thù.a thı̀ tı́nh châ´t dâ˜n du.o..c sẽ ı́t du.o..c thuyê´t phu.c ho.n, còn nê´u gia’
thiê´t thiê´u thı̀ ta không thê’ dâ˜n du.o..c dê´n diê
` u pha’i chú.ng minh. Dây chı́nh
là ba’n châ´t dâ` y du’ cu’a tı́nh châ´t (2).
` u” cu’a phép dâ˜n du.o..c cu’a mô.t công
Tı́nh châ´t (3) thê’ hiê.n “tı́nh bă´c câ
thú.c. Ta có thê’ hı̀nh dung bă` ng hı̀nh a’nh phác hoa. sau dây:
` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 43

2.1.3 Lý thuyê´t tiên dê


` trong hê. toán mê.nh dê
`
Hê. toán mê.nh dê` là mô.t lý thuyê´t hı̀nh thú.c hoá cu’a logic mê.nh dê ` . Viê.c
hı̀nh thú.c hoá logic là bu.ó.c co. ba’n dâ ` u tiên cho viê.c hı̀nh thú.c hoá các lý
thuyê´t toán ho.c. Nô.i dung chu’ yê´u cu’a viê.c hı̀nh thú.c hoá mô.t lý thuyê´t là
xây du..ng mô.t ngôn ngũ. hı̀nh thú.c dê’ diê˜n ta’ các phán doán, du.a ra mô.t
` du.o..c xem nhu. là nhũ.ng chân lý ban dâ
hê. tiên dê ` u, và pha’i xác di.nh các
quy tă´c và phu.o.ng pháp suy diê˜n (hay còn go.i là chú.ng minh) dê’ tı̀m ra các
di.nh lý mó.i cu’a lý thuyê´t. Dê’ nghiên cú.u mô.t cách cu. thê’, ta di sâu nghiên
cú.u lý thuyê´t tiên dê
` L du.ó.i dây.

` L bao gô`m :
Di.nh nghı̃a 2.1.6 Lý thuyê´t tiên dê

(1) Các ký hiê.u cu’a L:


- ¬, → du.o..c go.i là hai phép toán nguyên thuy’
- Các dâ´u ngoă.c (,)
- Các chũ. cái La-tinh A, B, C, ... và các chũ. cái La-tinh có chı’ sô´
A1 , B1, C1 , ... . Các chũ. cái La-tinh này du.o..c go.i là các biê´n mê.nh
`.
dê

(2) Công thú.c du.o..c xây du..ng bă` ng dê. quy nhu. sau:
` u là công thú.c
` dê
(a) Tâ´t ca’ các biê´n mê.nh dê
(b) Nê´u A và B là công thú.c thı̀ (¬A), (A → B) cũng là công thú.c
(c) Mô.t biê’u thú.c là công thú.c, nê´u nó du.o..c lâ.p nên tù. co. so’. (a)
và (b).

` : Dô´i vó.i các công thú.c A, B, C tuỳ ý


(3) Các tiên dê
A1. (A → (B → A))
A2. (A → (B → C)) → ((A → B) → (A → C))
A3. (¬B → ¬A) → ((¬B → A) → B)

(4) Quy tă´c dâ˜n xuâ´t Modus Ponens (Kê´t luâ.n): Nê´u A và A → B thı̀ B.
44 Chu.o.ng 2. Hê. toán mê.nh dê
`

Chú ý 3 Dô´i vó.i các phép toán còn la.i ∧, ∨, ↔ ta có thê’ biê’u diê˜n chúng
qua hai phép toán {¬, →} nhò. các công thú.c tu.o.ng du.o.ng sau dây:

D1. (A ∧ B) là tu.o.ng du.o.ng vó.i ¬(A → ¬B)

D2. (A ∨ B) là tu.o.ng du.o.ng vó.i (¬A) → B

D3. (A ↔ B) là tu.o.ng du.o.ng vó.i (A → B) ∧ (B → A)

` 2.1.1 `x A → A dô´i vó.i công thú.c A tuỳ ý trong L


Bô’ dê

.
Chú.ng minh: O’ dây ta ký hiê.u MP là viê´t tă´t cu’a Modus Ponens. Ta xây
du..ng dâ˜n xuâ´t cu’a công thú.c A → A trong L nhu. sau:

1. (A → ((A → A) → A)) → ((A → (A → A)) → (A → A))


(A2)

2. A → ((A → A) → A) (A1)

3. (A → (A → A)) → (A → A) (1, 2, MP)

4. (A → (A → A)) (A1)

5. (A → A) (3, 4, MP)

Vâ.y theo di.nh nghı̃a 2.1.2 & 2.1.3 ta có:


`x A → A 

2.1.4 ˜n trong hê. toán mê.nh dê


Di.nh lý suy diê `
Trong nhiê` u chú.ng minh cu’a hê. toán mê.nh dê
` , ta thu.ò.ng su’. du.ng di.nh lý
suy diê˜n sau dây:

Di.nh lý 2.1.1 (di.nh lý suy diê˜n) Nê´u Γ là tâ.p các công thú.c, A và B là
các công thú.c và Γ, A ` B thı̀ Γ ` A → B.
Tru.ò.ng ho..p dă.c biê.t, nê´u A ` B thı̀ ` A → B (Herbrand).
` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 45

Chú.ng minh:
Gia’ su’. B1, B2 ...Bn là dâ˜n xuâ´t tù. Γ ∪ {A}, trong dó Bn = B. Ta chú.ng
minh bă` ng qui na.p theo i (i = 1...n): Γ ` A → Bi .

1) Bu.ó.c kho’.i dâ


` u i = 1:
` n tu’. cu’a Γ, hoă.c là tiên dê
Khi dó B1 hoă.c là phâ ` hoă.c là trùng vó.i A.
Theo tiên dê` (A1) công thú.c B1 → (A → B1 ) là tiên dê ` . Do dó trong
2 tru.ò.ng ho..p dâ
` u ta có Γ ` A → B1 nhò. quy tă´c Modus Ponens và
chú ý 2.
Tru.ò.ng ho..p 3: B1 = A. Khi dó theo bô’ dê ` 2.1.1: ` A → B1. Do dó
theo chú ý 2 ta có: Γ ` A → B1.

2) Gia’ thiê´t qui na.p: Gia’ su’. công thú.c Γ ` A → Bk dúng vó.i mo.i k < i.

3) Chú.ng minh qui na.p: Ta chú.ng minh ră` ng công thú.c cũng dúng vó.i
k = i:
Γ ` A → Bi .

Thâ.t vâ.y, ta xét 4 tru.ò.ng ho..p có thê’ xa’y ra dô´i vó.i Bi nhu. sau:
Bi hoă.c là phâ ` n tu’. cu’a Γ, hoă.c là tiên dê
` , hoă.c là Bi = A, hoă.c Bi dâ˜n du.o..c
tru..c tiê´p tù. các công thú.c Bj và Bm sao cho

j < i, m < i và Bm = Bj → Bi .

Trong 3 tru.ò.ng ho..p dâ ` u ta chú.ng minh tu.o.ng tu.. nhu. i = 1. Tru.ò.ng
ho..p thú. 4, ta su’. du.ng gia’ thiê´t qui na.p:

Γ ` A → Bj và Γ ` A → (Bj → Bi ).

` (A2):
Theo tiên dê

` (A → (Bj → Bi )) → ((A → Bj ) → (A → Bi )).

Do dó theo qui tă´c Modus Ponens và chú ý 2:

Γ ` (A → Bj ) → (A → Bi ).
46 Chu.o.ng 2. Hê. toán mê.nh dê
`

` n nũ.a qui tă´c Modus Ponens:


Ta áp du.ng mô.t lâ
Γ ` (A → Bi).
Vâ.y ta chú.ng minh du.o..c ră` ng:
∀i (i = 1, ..., n) : Γ ` A → Bi .
Khi dó vó.i i = n ta có:
Γ ` A → Bn ,
và vı̀ Bn = B, ta có:

Γ`A→B

Hê. qua’ 2.1.1 Dô´i vó.i các công thú.c A, B, C tuỳ ý
(i) A → B, B → C ` A → C (bă´c câ
` u)

(ii) A → (B → C), B ` A → C (hoán vi. gia’ thiê´t).


Chú.ng minh:
(i) Ta xây du..ng dâ˜n xuâ´t sau dây:

1. A → B (gia’ thiê´t)
2. B → C (gia’ thiê´t)
3. A (gia’ thiê´t)
4. B (1, 3, MP)
5. C (2, 4, MP)

Vâ.y tù. 1 - 5 ta có:


A → B, B → C, A ` C.
Theo di.nh lý suy diê˜n ta có:
A → B, B → C ` A → C

` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 47

(ii) Ta xây du..ng dâ˜n xuâ´t nhu. sau:

1. A → (B → C) (gia’ thiê´t)
2. B (gia’ thiê´t)
3. A (gia’ thiê´t)
4. B → C (1, 3, MP)
5. C (2, 4, MP)

Vâ.y tù. 1 – 5 ta có:

A → (B → C), B, A ` C.

Theo di.nh lý suy diê˜n:


A → (B → C), B ` A → C 
Dê’ nhı̀n rõ ho.n tı́nh châ´t hoán vi. gia’ thiê´t ta áp du.ng thêm di.nh lý
suy diê˜n:
A → (B → C) ` B → (A → C)
` n nũ.a di.nh lý suy diê˜n, ta có:
Áp du.ng mô.t lâ

` (A → (B → C)) → (B → (A → C)).

Hê. qua’ 2.1.2 Dô´i vó.i bâ´t kỳ các công thú.c A, B các công thú.c sau dây
` u là di.nh lý trong L:
dê

a) ¬¬B → B

b) B → ¬¬B

c) ¬A → (A → B)

d) (¬B → ¬A) → (A → B)

e) (A → B) → (¬B → ¬A)
48 Chu.o.ng 2. Hê. toán mê.nh dê
`

f) A → (¬B → ¬(A → B))

g) (A → B) → ((¬A → B) → B).

Chú.ng minh:

a) `x ¬¬B → B
Ta xây du..ng dâ˜n xuâ´t nhu. sau:

1. (¬B → ¬¬B) → ((¬B → ¬B) → B) (A3)


2. ¬B → ¬B (bô’ dê
` 2.1.1)
3. (¬B → ¬¬B) → B (1, 2, hoán vi. gia’ thiê´t)
4. ¬¬B → (¬B → ¬¬B) (A1)
5. ¬¬B → B (3, 4, bă´c câ
` u)

Vâ.y tù. 1 – 5 ta có:

`x ¬¬B → B.

b) `x B → ¬¬B

1. (¬¬¬B → ¬B) → ((¬¬¬B → B) → ¬¬B) (A3)


2. ¬¬¬B → ¬B (theo a))
3. (¬¬¬B → B) → ¬¬B (1, 2, MP)
4. B → (¬¬¬B → B) (A1)
5. B → ¬¬B (3, 4, bă´c câ
` u)

Vâ.y tù. 1 - 5 ta có:


`x B → ¬¬B.


` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 49

c) `x ¬A → (A → B)

1. ¬A (gia’ thiê´t)
2. A (gia’ thiê´t)
3. A → (¬B → A) (A1)
4. ¬A → (¬B → ¬A) (A1)
5. ¬B → A (2, 3, MP)
6. ¬B → ¬A (1, 4, MP)
7. (¬B → ¬A) → ((¬B → A) → B) (A3)
8. (¬B → A) → B (6, 7, MP)
9. B (5, 8, MP)

Vâ.y tù. 1 - 9 ta có:


¬A, A `x B.
Áp du.ng di.nh lý suy diê˜n ta có:

¬A `x A → B

` n nũ.a di.nh lý suy diê˜n ta có:


Áp du.ng mô.t lâ

`x ¬A → (A → B).

d) `x (¬B → ¬A) → (A → B)

1. ¬B → ¬A (gia’ thiê´t)
2. A (gia’ thiê´t)
3. (¬B → ¬A) → ((¬B → A) → B) (A3)
4. A → (¬B → A) (A1)
5. (¬B → A) → B (1, 3, MP)
50 Chu.o.ng 2. Hê. toán mê.nh dê
`

6. A → B (4, 5, bă´c câ


` u)
7. B (2, 6, MP)

Vâ.y tù. 1 - 7 ta có:


¬B → ¬A, A `x B

Áp du.ng di.nh lý suy diê˜n:

¬B → ¬A ` A → B

` n nũ.a di.nh lý suy diê˜n ta có:


Áp du.ng mô.t lâ

`x (¬B → ¬A) → (A → B)

e) `x (A → B) → (¬B → ¬A)

1. A → B (gia’ thiê´t)
2. ¬¬A → A (theo a))
3. ¬¬A → B (1, 2, bă´c câ
` u)
4. B → ¬¬B (theo b))
5. ¬¬A → ¬¬B (3, 4, bă´c câ
` u)
6. (¬¬A → ¬¬B) → (¬B → ¬A) (theo d))
7. ¬B → ¬A (5, 6, MP)

Vâ.y tù. 1 – 7 ta có:


A → B `x ¬B → ¬A.

Áp du.ng di.nh lý suy diê˜n ta có:

`x (A → B) → (¬B → ¬A.)


` trong hê. toán mê.nh dê
2.1. Hê. tiên dê ` 51

f) `x A → (¬B → ¬(A → B))


Dê˜ dàng thâ´y ră` ng: A, A → B ` B.
` n di.nh lý suy diê˜n ta có:
Áp du.ng 2 lâ

` A → ((A → B) → B) (1)

Mă.t khác theo e) ta có:

` ((A → B) → B) → (¬B → ¬(A → B)) (2)

Áp du.ng (1), (2) và Hê. qua’ bă´c câ


` u ta có:

`x A → (¬B → ¬(A → B)).

g) `x (A → B) → ((¬A → B) → B)

1. A → B (gia’ thiê´t)
2. ¬A → B (gia’ thiê´t)
3. (A → B) → (¬B → ¬A) (theo e))
4. ¬B → ¬A (1, 3, MP)
5. (¬A → B) → (¬B → ¬¬A) (the e))
6. ¬B → ¬¬A (2,5 MP)
7. (¬B → ¬¬A) → ((¬B → ¬A) → B) (A3)
8. (¬B → ¬A) → B (6, 7, MP)
9. B (4, 8, MP)

Vâ.y tù. 1 - 9 ta có:


A → B, ¬A → B ` B
` n di.nh lý suy diê˜n ta có:
Áp du.ng hai lâ

`x (A → B) → ((¬A → B) → B).


52 Chu.o.ng 2. Hê. toán mê.nh dê
`

2.2 ˜n và bài toán lâ.p luâ.n


Nguyên lý suy diê
`
trong logic mê.nh dê
2.2.1 ˜n
Nguyên lý suy diê
Di.nh nghı̃a 2.2.1 Mô.t tâ.p công thú.c S = {A1, A2, ..., An} du.o..c go.i là phi
mâu thuâ˜n, nê´u tô`n ta.i mô.t minh hoa. tú.c là mô.t bô. phân bô´ các giá tri. chân
lý dô´i vó.i các biê´n có mă.t trong hê. S sao cho mo.i Ai (i = 1...n) dê ` u nhâ.n
. .
giá tri. dúng; Trái la.i, S du o. c go.i là mâu thuâ˜n, nê´u không có mô.t minh hoa.
nào nhu. vâ.y.

Di.nh nghı̃a 2.2.2 Công thú.c A du.o..c go.i là logic kéo theo tù. tâ.p các công
thú.c S, nê´u trong mo.i minh hoa. mà ta.i dó các công thú.c thuô.c S dê
` u nhâ.n
giá tri. dúng thı̀ A cũng dúng. Khi dó ta ký hiê.u:

S |= A.

Trong tru.ò.ng ho..p dă.c biê.t, nê´u S = ∅ thı̀ khi dó |= A nghı̃a là công thú.c A
là hă` ng dúng. Dê˜ dàng chú.ng minh du.o..c các tı́nh châ´t sau.

Di.nh lý 2.2.1 (nguyên lý suy diê˜n)


Vó.i mo.i công thú.c A, B, H1, H2, ..., Hn ta có:

1. A |= B ⇔|= (A → B)

2. {H1 , H2 , ..., Hn } |= A ⇔|= H1 ∧ H2 ∧ ... ∧ Hn → A

3. {H1 , H2 , ..., Hn } |= A ⇔ {H1 , H2 , ..., Hn, ¬A} |= F

2.2.2 `
Bài toán lâ.p luâ.n trong logic mê.nh dê
Trong nhũ.ng ú.ng du.ng cu’a logic mê.nh dê ` vào các hê. trı́ tuê. nhân ta.o, ta
thu.ò.ng gă.p bài toán lâ.p luâ.n (reasoning) sau dây:
2.2. Nguyên lý suy diê˜n và bài toán lâ.p luâ.n trong logic mê.nh dê
` 53

Cho mô.t co. so’. tri thú.c S gô`m các công thú.c H1 , H2 , ..., Hn và mô.t công
thú.c dı́ch (Goal) là A. Ho’i ră` ng A có pha’i là logic kéo theo tù. hê. S hay
không?
Tú.c là

S = {H1 , H2 , ..., Hn} |= A?

Theo nguyên lý suy diê˜n, ta lâ.p hê. mó.i S = {H1 , H2 , ..., Hn , ¬A} có là
0

mâu thuâ˜n hay không?


Mă.t khác, ta dã biê´t mô˜i mô.t công thú.c mê.nh dê` dê` u tu.o.ng du.o.ng vó.i
hô.i cu’a mô.t tâ.p các Clause, trong dó mô˜i Clause là tuyê’n cu’a mô.t sô´ các
literal (o’. dây literal là mô.t ký hiê.u mê.nh dê
` hoă.c phu’ di.nh cu’a ký hiê.u mê.nh
` ). Do dó nê´u ta thay trong hê. S mô˜i công thú.c bo’.i hô.i các Clause tu.o.ng
0
dê
ú.ng, thı̀ ta du.o..c S tu.o.ng ú.ng vó.i hô.i các Clause và bài toán S |= A du.o..c
0 0

` bài toán: mô.t tâ.p các Clause (mà hô.i tu.o.ng du.o.ng vó.i tâ.p S ) có là
0
qui vê
mâu thuâ˜n hay không?
Phu.o.ng pháp thu.ò.ng du.o..c dùng là phu.o.ng pháp phân gia’i (resolution)
cu’a Robinson dê ` xuâ´t mà nô.i dung có thê’ trı̀nh bày so. lu.o..c nhu. sau:
Gia’ su’. S có hai Clause:
C1 = D1 ∨ Q và C2 = D2 ∨ ¬Q, trong dó Q là ký hiê.u mê.nh dê ` . Khi dó
ta lâ.p Clause mó.i C = D1 ∨ D2 bă` ng cách khu’. ký hiê.u mê.nh dê ` Q và ¬Q
tu.o.ng ú.ng trong C1 và C2 rô`i lâ.p tuyê’n mó.i C. Khi dó C du.o..c go.i là gia’i
thú.c tù. các Clause C1 và C2 . Dê˜ dàng thâ´y ră` ng {C1, C2 } |= C, và do dó
hai tâ.p S và S = S ∪ {C} tu.o.ng ú.ng vó.i nhau.
0

Phu.o.ng pháp gia’i du.o..c thu..c hiê.n trên nguyên lý gia’i sau dây:
Cho S là mô.t tâ.p các Clause. Xuâ´t phát tù. S ta thu..c hiê.n liên tiê´p các
phép gia’i thú.c, tú.c là thêm vào S các gia’i thú.c cu’a bâ´t kỳ 2 Clause có tru.ó.c
(hai Clause có da.ng Q và ¬Q) cho dê´n khi thu du.o..c gia’i thú.c rô˜ng  hoă.c
không có thêm mô.t gia’i thú.c nào nũ.a thı̀ kê´t thúc. Khi dó tâ.p S là mâu
thuâ˜n, khi và chı’ khi ta thu du.o..c gia’i thú.c rô˜ng .
Tù. nguyên lý phân gia’i ta có thê’ áp du.ng cho nhiê ` u cách thú.c khác nhau
dê’ thu..c hiê.n phu.o.ng pháp gia’i nhă` m ú.ng du.ng trong hê. tri thú.c chú.ng minh
54 Chu.o.ng 2. Hê. toán mê.nh dê
`

tı́nh mâu thuâ˜n cu’a mô.t tâ.p các công thú.c logic mê.nh dê
` hoă.c logic tân tù.
(predicate), tú.c là hô.i cu’a công thú.c dó cho ta kê´t qua’ là mô.t công thú.c
dô`ng nhâ´t sai.

Thı́ du. 2.2.1



C1 . P ∨Q

C2 . Q (S)


C3 . P
C4 P (1, 2, gia’i thú.c)
C5  (3, 4, gia’i thú.c)

Vâ.y ta có: S = {P ∨ Q, Q, P } là mâu thuâ˜n, khi và chı’ khi hô.i cu’a nó là
công thú.c A = (P ∨ Q) ∧ Q ∧ P là dô`ng nhâ´t sai.
` n biê´n dô’i nhu. sau:
Thâ.t vâ.y, ta chı’ câ

A = (P ∨ Q) ∧ Q ∧ P
≡ (P ∨ Q) ∧ (Q ∨ P )
≡ (P ∨ Q) ∧ (P ∨ Q) = F alse
| {z } | {z }
X X


Ta có cây dâ˜n xuâ´t cu’a rô˜ng  nhu. sau:
2.3. Mô.t sô´ di.nh lý trong hê. toán mê.nh dê
` 55

2.3 Mô.t sô´ di.nh lý trong hê. toán mê.nh dê
`

2.3.1 ` y du’
Tı́nh dâ
Di.nh lý 2.3.1 Mô˜i mô.t di.nh lý cu’a lý thuyê´t tiên dê ` u là dô`ng nhâ´t
` L dê
dúng.

Chú.ng minh: Ta dê˜ dàng kiê’m tra du.o..c ră` ng mô˜i mô.t tiên dê
` tù. (A1) dê´n
(A3) dê ` u là dô`ng nhâ´t dúng.
Mă.t khác theo di.nh lý 1.4.1 (chu.o.ng 1) qui tă´c Modus Ponens chuyê’n
các công thú.c dô`ng nhâ´t dúng thành công thú.c dô`ng nhâ´t dúng. Diê ` u dó
chú.ng to’ ră` ng mô˜i mô.t di.nh lý cu’a lý thuyê´t tiên dê ` u là dô`ng nhâ´t
` L dê
dúng. 

` 2.3.1 Gia’ su’. A là mô.t công thú.c mê.nh dê


Bô’ dê ` và B1 , B2 , ..., Bk là các
biê´n có mă.t trong A. Dô´i vó.i bô. phân bô´ I0 các giá tri. chân lý cu’a các biê´n
B1 , B2 , ..., Bk nhu. sau:
0 0 0

(
0 Bi , nê´u Bi = T
Bi =
¬Bi , nê´u Bi = F

và mô.t công thú.c mó.i A .


0

(
0 A, nê´u A nhâ.n giá tri. T dô´i vó.i bô. phân bô´ I0 nói trên
A =
¬A, nê´u A nhâ.n giá tri. F dô´i vó.i bô. phân bô´ I0 nói trên

Khi dó ta có:


0 0 0 0
B1, B2 , ...., Bk ` A .

Thı́ du. 2.3.1 Cho A = ¬(¬A → B). Ta lâ.p ba’ng giá tri. chân lý cu’a công
thú.c A nhu. sau:
56 Chu.o.ng 2. Hê. toán mê.nh dê
`

A B ¬(¬A → B)
T T F
T F F
F T F
F F T

Gia’ su’. ta lâ´y bô. phân bô´ o’. dòng thú. 3: (F, T ) 7→ F thı̀ khi dó ta có
0
(theo A cu’a Bô’ dê ` 2.3.1):

¬A, B ` ¬¬(¬A → B) hay là


¬A, B ` (¬A → B).

Còn nê´u lâ´y dòng thú. 4: (F, F ) 7→ T thı̀ ta có:

¬A, ¬B ` ¬(¬A → B).

Chú.ng minh: Ta chú.ng minh bă` ng qui na.p theo n là sô´ các phép toán có
mă.t trong công thú.c A.

1. n = 0: Khi dó A chı’ chú.a dúng mô.t biê´n B1 và ta dê˜ dàng có du.o..c:
B1 ` B1 và ¬B1 ` ¬B1 luôn luôn dúng.

2. Gia’ su’. bô’ dê


` dúng vó.i mo.i j < n.

3. Chú.ng minh qui na.p: bô’ dê ` cũng dúng vó.i j = n.


Ta xét các tru.ò.ng ho..p sau dây:

• Tru.ò.ng ho..p 1: A = ¬B, trong dó B có ı́t ho.n n phép toán. Xét
mô.t bô. phân bô´ I0 nào dó các giá tri. chân lý cu’a các biê´n có mă.t
trong A.

(1a) Nê´u B nhâ.n giá tri. T thı̀ B = B và A nhâ.n giá tri. F dô´i vó.i
0

bô. phân bô´ I0 này. Khi dó ta có công thú.c:


0 0
A = ¬A = ¬¬B = B = B .
2.3. Mô.t sô´ di.nh lý trong hê. toán mê.nh dê
` 57

0 0 0 0
Theo gia’ thiê´t qui na.p cu’a B : B1, B2, ..., Bk ` B , do dó:
0 0 0 0 0 0 0
B1, B2 , ..., Bk ` B. Vâ.y B1 , B2 , ..., Bk ` A .
0
(1b) Nê´u B nhâ.n giá tri. F thı̀ B = ¬B và A nhâ.n giá tri. T dô´i
vó.i bô. phân bô´ I0 này. Do dó ta có công thú.c:
0
A = A = ¬B.
0 0 0 0
Theo gia’ thiê´t qui na.p cu’a B: B1 , B2 , ..., Bk ` B , nên ta có:
0 0 0
B1, B2 , ..., Bk ` ¬B
0 0 0 0
Vâ.y B1, B2 , ..., Bk ` A .
• Tru.ò.ng ho..p 2: A = (B → C), trong dó B và C có sô´ phép toán ı́t
ho.n n so vó.i A. Khi dó, theo gia’ thiê´t qui na.p:
0 0 0 0 0 0 0 0
B1, B2 , ..., Bk ` B và B1 , B2, ..., Bk ` C .

(2a) Nê´u B nhâ.n giá tri. F thı̀ A nhâ.n giá tri. T . Khi dó công thú.c
0 0 0 0 0 0
B = ¬B và A = A. Do dó B1 , B2, ..., Bk ` ¬B .
Mă.t khác, theo hê. qua’ 2.1.2 (c) và qui tă´c MP:
B1, B2 , ..., Bk ` B → C, nhu.ng B → C chı́nh là A .
0 0 0 0

0 0 0 0
Vâ.y B1, B2 , ..., Bk ` A .
0
(2b) Nê´u C nhâ.n giá tri. T thı̀ A cũng nhâ.n giá tri. T . Do dó C = C
0 0 0 0
và A = A. Theo gia’ thiê´t qui na.p: B1 , B2 , ..., Bk ` C và tiên dê `
(A1) ta có: B1 , B2 , ..., Bk ` B → C nhò. qui tă´c Modus Ponens,
0 0 0

nhu.ng B → C chı́nh là A . Vâ.y B1 , B2 , ..., Bk ` A .


0 0 0 0 0

(2c) Nê´u B nhâ.n giá tri. T và C nhâ.n giá tri. F thı̀ A nhâ.n giá tri.
0 0 0
F . Do dó B = B, C = ¬C và A = ¬A.
0 0 0 0 0 0
Ta có: B1, B2 , ..., Bk ` B và B1 , B2, ..., Bk ` ¬C. Do dó theo hê. qua’
0 0 0
2.1.2 (f) và qui tă´c Modus Ponens: B1, B2 , ..., Bk ` ¬(B → C),
nhu.ng ¬(B → C) chı́nh là A .
0

0 0 0 0
Vâ.y B1, B2 , ..., Bk ` A 
58 Chu.o.ng 2. Hê. toán mê.nh dê
`

Di.nh lý 2.3.2 Nê´u A là mô.t công thú.c dô`ng nhâ´t dúng trong L thı̀ A là
mô.t di.nh lý trong L.

Chú.ng minh: Gia’ su’. A là dô`ng nhâ´t dúng và B1 , B2, ..., Bk là các biê´n có
0 0 0

mă.t trong công thú.c A. Dô´i vó.i bâ´t kỳ mô.t bô. phân bô´ I0 các giá tri. chân lý
0 0 0
cu’a các biê´n B1 , B2, ..., Bk chúng ta có B1 , B2, ..., Bk ` A (Theo bô’ dê ` 2.3.1
0
và A = A vı̀ A dô`ng nhâ´t dúng).
0 0 0
Do dó, nê´u Bk nhâ.n giá tri. T thı̀ B1 , B2 , ..., Bk−1 , Bk ` A, và nê´u Bk
0 0 0
nhâ.n giá tri. F thı̀ B1 , B2 , ..., Bk−1, ¬Bk ` A.
0 0 0 0 0
Mă.t khác, theo di.nh lý suy diê˜n: B1 , B2, ..., Bk−1 ` Bk → A và B1 , B2, ...,
0
Bk−1 ` ¬Bk → A.
Do dó theo Hê. qua’ 2.1.2 (g) và qui tă´c Modus Ponens:

0 0 0
B1, B2 , ..., Bk−1 ` A.
Tu.o.ng tu.., Bk−1 có thê’ nhâ.n giá tri. T hoă.c F , áp du.ng di.nh lý suy diê˜n
và hê. qua’ 2.1.2 (g), ta có thê’ loa.i trù. Bk−1 dúng nhu. Bk . Khi dó chı’ câ
0 0
`n
. . .
thu. c hiê.n sau k bu ó c ta có: `y A 

Tù. di.nh lý 2.3.1 và di.nh lý 2.3.2 ta có di.nh lý sau dây:

Di.nh lý 2.3.3 (dâ ` y du’)


` L, ló.p các di.nh lý trùng vó.i ló.p các công thú.c
Trong lý thuyê´t tiên dê
dô`ng nhâ´t dúng.

2.3.2 ˜n
Tı́nh phi mâu thuâ
Di.nh lý 2.3.4 (phi mâu thuâ˜n)
Hê. L là phi mâu thuâ˜n, nghı̃a là trong L không tô`n ta.i mô.t công thú.c A
sao cho A và ¬A dê ` u là di.nh lý.

Chú.ng minh: Theo di.nh lý dâ ` y du’: mô˜i mô.t di.nh lý cu’a lý thuyê´t tiên dê
`
L là dô`ng nhâ´t dúng nên phu’ di.nh cu’a nó là không dô`ng nhâ´t dúng. Do dó
không thê’ tô`n ta.i mô.t công thú.c A sao cho A và ¬A dê ` u là di.nh lý.
2.3. Mô.t sô´ di.nh lý trong hê. toán mê.nh dê
` 59

2.3.3 Tı́nh dô.c lâ.p


Di.nh nghı̃a 2.3.1 Mô.t tâ.p con X cu’a tâ.p ho..p các tiên dê ` du.o..c go.i là dô.c
` nào cu’a X là dâ˜n du.o..c tù. các tiên dê
lâ.p, nê´u không có mô.t tiên dê ` còn la.i
không thuô.c X.

Di.nh lý 2.3.5 (dô.c lâ.p)


` tù. (A1) dê´n (A3) dê
Mô˜i mô.t tiên dê ` u là dô.c lâ.p.

Chú.ng minh: Phu.o.ng pháp chung dê’ chú.ng minh tı́nh dô.c lâ.p cu’a mô.t tiên
` A, ta pha’i cho.n ra mô.t tı́nh châ´t P nào dó sao cho:
dê

• Mô˜i tiên dê


` khác A dê
` u có tı́nh châ´t P .

• Qui tă´c Modus Ponens có tı́nh châ´t P : nê´u A → B và A có tı́nh châ´t P
thı̀ B cũng có tı́nh châ´t P .

` A không có tı́nh châ´t P .


• Tiên dê

` (A1)
a) Tı́nh dô.c lâ.p cu’a tiên dê

Xét các ba’ng sau dây

A ¬A A B A→B
0 1 0 0 0
1 1 1 0 2
2 0 2 0 0
0 1 2
1 1 2
2 1 0
0 2 2
1 2 0
2 2 0
60 Chu.o.ng 2. Hê. toán mê.nh dê
`

Gia’ su’. cho mô.t bô. phân bô´ các giá tri. 0, 1, 2 cu’a các biê´n có mă.t trong
công thú.c A. Khi dó nhò. hai ba’ng này ta xác di.nh du.o..c mô.t giá tri.
tu.o.ng ú.ng cu’a công thú.c A. Ta du.a ra mô.t tı́nh châ´t P nhu. sau:
Nê´u A luôn luôn nhâ.n giá tri. 0 thı̀ A du.o..c go.i là cho.n (select). Ta dê˜
dàng kiê’m tra du.o..c ră` ng các tiên dê ` (A2) và (A3) dê
` u có tı́nh châ´t
.
cho.n. Nhu ng tiên dê ` (A1): (A → (B → A)) không có tı́nh châ´t cho.n,
vı̀ ră` ng công thú.c này nhâ.n giá tri. là 2 khi A = 1 và B = 2.

` (A2)
b) Tı́nh dô.c lâ.p cu’a tiên dê
Xét các ba’ng sau dây

A ¬A A B A→B
0 1 0 0 0
1 0 1 0 0
2 1 2 0 0
0 1 2
1 1 2
2 1 0
0 2 1
1 2 0
2 2 0

Ta go.i mô.t công thú.c luôn luôn nhâ.n giá tri. 0 tu.o.ng ú.ng vó.i hai ba’ng
này là kỳ cu.c (grotesque). Dê˜ dàng kiê’m tra du.o..c ră` ng qui tă´c Modus
Ponens có tı́nh châ´t kỳ cu.c và các tiên dê` (A1) và (A3) dê ` u có tı́nh
` (A2): (A → (B → C)) → ((A → B) →
châ´t kỳ cu.c. Tuy nhiên tiên dê
(A → C)) không có tı́nh châ´t kỳ cu.c, vı̀ ră` ng công thú.c này nhâ.n giá
tri. là 2 khi A = 0, B = 0 và C = 1.

` (A3) Gia’ su’. A là mô.t công thú.c. Khi dó h(A)
c) Tı́nh dô.c lâ.p cu’a tiên dê
là công thú.c nhâ.n du.o..c tù. A bă` ng cách bo’ di tâ´t ca’ các dâ´u phu’ di.nh
(¬) có mă.t trong A. Ta dê˜ dàng kiê’m tra du.o..c ră` ng mô˜i mô.t công
2.4. Gió.i thiê.u vài nét vê
` logic da tri. 61

thú.c A thuô.c tâ.p tiên dê


` (A1) − (A2) có tı́nh châ´t h(A) là dô`ng nhâ´t
dúng.
Qui tă´t Modus Ponens có tı́nh châ´t h(A) dô`ng nhâ´t dúng
Nê´u h(A → B) là dô`ng nhâ´t dúng và h(A) - dô`ng nhâ´t dúng thı̀ h(B)
cũng dô`ng nhâ´t dúng.
Chú ý ră` ng h(A → B) = h(A) → h(B).
Do vâ.y bâ´t kỳ mô.t công thú.c A dâ˜n du.o..c tù. (A1) − (A2) nhò. qui tă´c
Modus Pones có tı́nh châ´t là h(A) dô`ng nhâ´t dúng. Nhu.ng [h((¬A →
¬A) → ((¬A → A) → A)) =
(A → A) → ((A → A) → A)] là không dô`ng nhâ´t dúng. Do dó công
thú.c (¬A → ¬A) → ((¬A → A) → A) là tiên dê ` (A3), nhu.ng công
thú.c này không dâ˜n du.o..c tù. (A1)-(A2) nhò. qui tă´c Modus Ponens. 

2.4 Gió.i thiê.u vài nét vê


` logic da tri.
Tu. tu.o’.ng du.o..c su’. du.ng dê’ chú.ng minh tı́nh dô.c lâ.p cu’a tiên dê ` (A1) −
(A2) có thê’ tô’ng quát hoá cho khái niê.m logic da tri.. Ta go.i các sô´ 0, 1, 2, ..., n
là “giá tri. chân lý” và gia’ su’. 0 ≤ m < n. Các sô´ 0, 1, 2, ..., m du.o..c go.i là các
giá tri. thiê´t kê´ (designated values). Ta su’. du.ng mô.t sô´ hũ.u ha.n các “ba’ng
chân lý” dê’ biê’u diê˜n các hàm cu’a tâ.p ho..p {0, 1, 2, ..., n} vào chı́nh nó. Dô´i
vó.i mô˜i mô.t ba’ng ta du.a vào mô.t dâ´u hiê.u tu.o.ng ú.ng du.o..c go.i là liên kê´t.
Su’. du.ng các liên kê´t này và các biê´n lê.nh, ta có thê’ xây du..ng các “công thú.c
lê.nh”, và mô˜i mô.t công thú.c lê.nh xác di.nh mô.t “hàm chân lý” cu’a tâ.p ho..p
{0, 1, 2, ..., n} vào chı́nh nó. Mô.t công thú.c lê.nh mà hàm chân lý tu.o.ng ú.ng
cu’a nó chı’ nhâ.n các giá tri. thiê´t kê´ du.o..c go.i là phi thu.ò.ng (exceptional).
Các sô´ n, m và các ba’ng chân lý co. ba’n xác di.nh cho ta mô.t logic da tri. M.
Lý thuyê´t tiên dê ` có su’. du.ng các biê´n lê.nh và các liên kê´t cu’a M du.o..c go.i
là thı́ch ho..p (suitable) dô´i vó.i M, khi và chı’ khi tâ.p tâ´t ca’ các di.nh lý cu’a
lý thuyê´t này trùng vó.i tâ.p các công thú.c phi thu.ò.ng cu’a M.
Trong tru.ò.ng ho..p, nê´u n = 1 và m = 0, và các ba’ng chân lý dã cho dô´i
62 Chu.o.ng 2. Hê. toán mê.nh dê
`

vó.i hai phép toán ¬, → trong chu.o.ng tru.ó.c thı̀ o’. dây là logic 2 - giá tri. cu’a
chu.o.ng mu.c này. Các công thú.c phi thu.ò.ng trong tru.ò.ng ho..p này du.o..c go.i
là dô`ng nhâ´t dúng. Hê. L là mô.t thành công dô´i vó.i logic này nhu. các di.nh
lý 2.3.1 và 2.3.3 dã chú.ng minh. Trong các chú.ng minh vê ` tı́nh dô.c lâ.p cu’a
. . .
` (A1) - (A2) ngu ò i ta dã su’ du.ng logic 3 - giá tri. {0, 1, 2}.
các tiên dê

2.5 Tı́nh quyê´t di.nh cu’a hê. toán mê.nh dê


`
Di.nh lý 2.5.1 Tô`n ta.i mô.t thuâ.t toán sao cho vó.i mo.i công thú.c mê.nh dê
`
` L hay không là quyê´t
A bâ´t kỳ: A có pha’i là di.nh lý cu’a hê. toán mê.nh dê
. .
di.nh du o. c.

Chú.ng minh: Dê˜ dàng nhâ´t là ta dùng phu.o.ng pháp lâ.p ba’ng chân lý cho
mo.i công thú.c bâ´t kỳ dô´i vó.i các biê´n mê.nh dê
` có mă.t trong công thú.c dó,
và ta có thê’ xây du..ng thuâ.t toán dê’ quyê´t di.nh vó.i mo.i công thú.c A: A có
pha’i là hă` ng dúng hay không.
Mă.t khác theo di.nh lý dâ` y du’ 2.3.3: A là hă` ng dúng khi và chı’ khi A là
di.nh lý trong L. Do vâ.y thuâ.t toán dó cũng quyê´t di.nh du.o..c vó.i mo.i công
thú.c A bâ´t kỳ: A có pha’i là di.nh lý trong L hay không.

2.6 Mô.t sô´ hê. tiên dê


` khác
` L dã trı̀nh bày o’. trên còn có nhiê
Ngoài hê. tiên dê ` khác cũng
` u hê. tiên dê
râ´t thuyê´t phu.c. Ta có thê’ thay các phép toán ¬, → du.o..c go.i là các phép
toán nguyên thuy’ bă` ng các phép toán thı́ch ho..p khác dê’ xác di.nh mo.i liên
kê´t khác vê
` chân lý – hàm.

` L1, L2 và L4 sau dây:


Thı́ du. 2.6.1 Các hê. tiên dê

L1: - Các phép toán nguyên thuy’ là ∨ và ¬.


- Chúng ta su’. du.ng công thú.c A → B thay bă` ng ¬A ∨ B.
` gô`m có:
- Các tiên dê
2.6. Mô.t sô´ hê. tiên dê
` khác 63

(1) A ∨ A → A
(2) A → A ∨ B
(3) A ∨ B → B ∨ A
(4) (B → C) → (A ∨ B → A ∨ C).

- Qui tă´c dâ˜n xuâ´t: Modus Ponens.


` này du.o..c Hilbert và Ackerman du.a ra tù. năm 1950.
Hê. tiên dê

L2: - Các phép toán nguyên thuy’ là ∧ và ¬.


- Chúng ta su’. du.ng công thú.c A → B thay bă` ng ¬(A ∧ ¬B).
` gô`m có:
- Các tiên dê

(1) A → (A ∧ A)
(2) A ∧ B → A
(3) (A → B) → (¬(B ∧ C) → ¬(C ∧ A)).

- Qui tă´c dâ˜n xuâ´t: Modus Ponens


` này du.o..c Consult Rosser du.a ra tù. năm 1953.
Hê. tiên dê

L4: - Các phép toán nguyên thuy’ là →, ∧, ∨ và ¬.


- Qui tă´c dâ˜n xuâ´t: Modus Ponens
` gô`m có:
- Các tiên dê

(1) A → (B → A)
(2) (A → (B → C)) → ((A → B) → (A → C))
(3) A ∧ B → A
(4) A ∧ B → B
(5) A → (B → (A ∧ B))
(6) A → (A ∨ B)
(7) B → (A ∨ B)
64 Chu.o.ng 2. Hê. toán mê.nh dê
`

(8) (A → C) → ((B → C) → (A ∨ B → C))

(9) (A → B) → ((A → ¬B) → ¬A)

(10) ¬¬A → A

Dô´i vó.i phép toán ↔: công thú.c A ↔ B ta vâ˜n xác di.nh là

(A → B) ∧ (B → A).

` này dã du.o..c Kleene du.a ra tù. năm 1952.


Hê. tiên dê

2.7 ` y du’ cho bài toán suy


Áp du.ng di.nh lý dâ
˜n trong logic mê.nh dê
diê `
Thı́ du. 2.7.1 Nê´u Nga di làm vê ` muô.n thı̀ vo.. Nga sẽ râ´t giâ.n dô˜i. Nê´u
Hoà thu.ò.ng xuyên vă´ng nhà thı̀ vo.. Hoà cũng râ´t giâ.n dô˜i. Nê´u vo.. Hoà hoă.c
vo.. Nga giâ.n dô˜i thı̀ cô Hă` ng ba.n cu’a ho. nhâ.n du.o..c lò.i than phiê` n, mà cô
Hă` ng không hê . . . ` n. Vâ.y Nga di làm vê
` nhâ.n du o. c lò i than phiê .
` só m và Hoà
.
râ´t ı́t khi vă´ng nhà. Hãy dùng qui tă´c suy diê˜n dê’ chı’ ra su. suy luâ.n trên là
dúng dă´n.

Gia’i: Dê’ gia’i bài toán này, ta hãy ký hiê.u các su.. kiê.n cu’a bài toán nhò. các
` sau:
biê´n mê.nh dê
A = “Nga di làm vê ` muô.n”
B = “Vo.. Nga sẽ râ´t giâ.n dô˜i”
C = “Hoà thu.ò.ng xuyên vă´ng nhà”
D = “Vo.. Hoà cũng râ´t giâ.n dô˜i”
E = “Cô Hă` ng ba.n cu’a ho. nhâ.n du.o..c lò.i than phiê ` n”
Du. a vào nô.i dung bài toán vó i các su. kiê.n dã du o. c mô ta’, ta xây du..ng
. . . . .
du.o..c su.. suy diê˜n cu’a bài toán nhu. sau:
` y du’ cho bài toán suy diê˜n trong logic mê.nh dê
2.7. Áp du.ng di.nh lý dâ ` 65

A→B (H1)
C →D (H2)
(B ∨ D) → E (H3)
E (H4)
∴ A∧C (A)

Ta chú.ng minh ră` ng công thú.c

B = (A → B) ∧ (C → D) ∧ [(B ∨ D)E] ∧ E → (A ∧ C)

là dô`ng nhâ´t dúng (di.nh lý) trong hê. toán mê.nh dê `.
Thâ.t vâ.y, ta chú.ng minh bă` ng pha’n chú.ng:
Gia’ su’. ngu.o..c la.i, B - không dô`ng nhâ´t dúng, nghı̃a là tô`n ta.i mô.t bô. phân
bô´ I0 các giá tri. chân lý cu’a các biê´n có mă.t trong B sao cho B(I0)=False,
nghı̃a là:
(
(A → B) ∧ (C → D) ∧ [(B ∨ D) → E] ∧ E = T (1)
A∧C =F (2)

Tù. (1) và (2) ta có:




 A→B =T (3)



 C →D =T (4)

(B ∨ D) → E =T (5)



 E =T (6)



A∨C =T (7)

Tù. (6) ta suy ra: E= F (8)


Tù. (5) và (8) ta có:

B∨D = F (9)
⇔ B = F (10)
và D = F (11)
66 Chu.o.ng 2. Hê. toán mê.nh dê
`

Tù. (3) và (10) ta thu du.o..c: A= F (12)


Tù. (4) và (11) ta suy ra: C= F (13)
.
Tù (12) và (13) ta có: A ∨ C= F (14).
So sánh (7) và (14) suy ra mâu thuâ˜n.
Vâ.y công thú.c B là hă` ng dúng 

2.8 Bài tâ.p chu.o.ng 2


1. Chú.ng minh ră` ng các công thú.c sau là di.nh lý trong L:

a) A → (B → A)
b) (A → B) → ((A → (B → C)) → (A → C))
c) A → (B → A ∧ B)
d) A ∧ B → A
e) A ∧ B → B
f) A → A ∨ B
g) B → A ∨ B
h) (A → C) → ((B → C) → ((A ∨ B) → C)).

2. Chú.ng minh các công thú.c sau là di.nh lý trong L1 và L2 :

a) `L1 (A → B) → ((C → A) → (C → B))


b) `L1 A → A (tú.c là ¬A ∨ A)
c) `L1 A ∨ ¬A
d) `L1 ¬B → (B → C)
e) `L1 A ∨ (B ∨ C) → B ∨ (A ∨ C)
f) `L2 ¬(¬A ∧ A)
g) `L2 ¬¬A → A
h) `L2 (A → B) → (¬B → ¬A)
2.8. Bài tâ.p chu.o.ng 2 67

i) `L2 A ∧ B → B ∧ A.

3. Chú.ng minh bă` ng cách xây du..ng dâ˜n xuâ´t:

a) A → B `L1 C ∨ A → C ∨ B
b) C → A, A → B `L1 C → B
c) A → B, B → C `L2 ¬(¬C ∧ A)
d) ¬B → ¬A `L2 A → B
e) A → B, B → C `L4 A → C
f) B, ¬B `L4 C.

4. Chú.ng minh di.nh lý suy diê˜n trong L2 và L4 :

a) Nê´u Γ, A `L2 B thı̀ Γ `L2 A → B.


b) Nê´u Γ, A `L4 B thı̀ Γ `L4 A → B.

5. Kiê’m tra các công thú.c sau có pha’i là di.nh lý hay không:

a) (A → B) ∧ (B → C) ∧ (D ∨ C) ∧ (D ∨ E) ∧ E → (A ∨ B)
b) (A → B) ∧ B ∧ C → A ∨ C
c) A ∧ (A → B) ∧ (C ∨ D) ∧ (D → B) → (C ∨ E)

6. Kiê’m tra công thú.c sau có pha’i là hă` ng dúng không

A = (A ∨ B) ∧ (C ∨ D) ∧ (A ∨ C) → (B ∨ D)

bă` ng cách:

a) Lâ.p ba’ng chân lý.


b) Du.a công thú.c vê
` da.ng chuâ’n tă´c hô.i.
c) Dùng phu.o.ng pháp biê´n dô’i.

7. Chú.ng minh các công thú.c sau bă` ng cách xây du..ng dâ˜n xuâ´t:
68 Chu.o.ng 2. Hê. toán mê.nh dê
`

a) A → (B → C), A ∧ B ` A
b) A → (B → C), A ∧ B ` B
c) A, B, A → (B → C) ` C
d) A → (B → C), A ∧ B ` C

8. Nê´u ` A1 ∧ A2 ∧ ... ∧ An → B thı̀ A1 , A2, ..., An ` B.

9. Chú.ng minh ră` ng công thú.c sau là hă` ng sai:

A = (A ∨ B ∨ C) ∧ A ∧ (A ∨ B ∨ C) ∧ (A ∨ B)

10. Kiê’m tra các công thú.c sau có pha’i là di.nh lý hay không:

a) A = (A ∨ B) ∧ (B ∨ C) ∧ (A ∨ C) ∧ (A ∨ B ∨ C) → A ∧ B ∧ C
b) A = (B ∧ C ∧ D) ∨ (B ∧ D) ∨ (C ∧ D) ∨ B

11. Chú.ng minh ră` ng các công thú.c sau là hă` ng dúng:

a) (A → B) ∧ (B → C) ∧ C → A
b) (A → B) ∧ (B → C) ∧ (D ∨ C) ∧ (D ∨ E) ∧ E → A
c) (A → B) ∧ (A → C) ∧ (C → D) → (B → D)
d) (X → Y ) ∧ (Y → Z) ∧ (Z1 ∨ Z) ∧ (Z 1 ∨ Z2 ) ∧ Z 2 → X
e) ((X1 ∨X2 ) → X3 )∧(X3 → (X1 ∨X5 )∧X 1 ∧X 6 ∧(X 6 → X 5 )) → X1

12. Chú.ng minh ră` ng công thú.c sau dây (X1 → X2 ) ∧ (X 3 ∨ X4 ) ∧ (X1 ∨
X3 ) → (X 2 → X4 ) là hă` ng dúng bă` ng các phu.o.ng pháp:

a) Lâ.p ba’ng chân lý.


b) Du.a công thú.c vê
` da.ng chuâ’n tă´c hô.i.
c) Dùng qui tă´c suy diê˜n.

13. Chú.ng minh ră` ng các công thú.c sau là không hă` ng dúng
2.8. Bài tâ.p chu.o.ng 2 69

a) (X ↔ Y ) ∧ (Y → Z1 ) ∧ (Z1 ∨ Z 2 ) ∧ (Z 2 → Y ) → Z2
b) X1 ∧ (X1 → X2 ) ∧ (X1 → (X3 ∨ X 2 )) ∧ (X 3 ∨ X 4 ) → X4
c) (X 1 → X2 ) ∧ ((X2 ∧ X3 ) → X4 ) ∧ (X5 → X3 ) ∧ X1 → (X 4 → X 5 ).
Chu.o.ng 3

Hê. toán tân tù.

3.1 Các lu.o..ng tù. . . . . . . . . . . . . . . . . . . . . . 71


3.2 Các khái niê.m và di.nh nghı̃a . . . . . . . . . . . 77
3.3 Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh . . . 81
3.3.1 Minh hoa. . . . . . . . . . . . . . . . . . . . . . . . 81
3.3.2 Tı́nh thu..c hiê.n du.o..c . . . . . . . . . . . . . . . . . 83
3.3.3 Su.. dô`ng nhâ´t dúng (hă` ng dúng) . . . . . . . . . . 85

3.3.4 Mô hı̀nh . . . . . . . . . . . . . . . . . . . . . . . . 85


3.3.5 Mô.t sô´ hê. qua’ . . . . . . . . . . . . . . . . . . . . 86
3.3.6 Mô.t sô´ di.nh nghı̃a khác . . . . . . . . . . . . . . . 89
3.3.7 Các công thú.c logic dô`ng nhâ´t dúng trong hê. toán
tân tù. . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.3.8 Da.ng chuâ’n tă´c trong logic tân tù. . . . . . . . . . 93
3.4 Lý thuyê´t tân tù. câ´p 1K . . . . . . . . . . . . . . 100
3.4.1
Di.nh nghı̃a . . . . . . . . . . . . . . . . . . . . . . 100
` Lý thuyê´t tân tù. câ´p 1K . . . . 103
3.4.2 Mô.t vài thı́ du. vê
3.5 Di.nh lý suy diê ˜n trong logic tân tù. . . . . . . . 104
3.1. Các lu.o..ng tù. 71

3.6 Tı́nh phi mâu thuâ ` y du’ cu’a logic tân tù.
˜n và dâ 110
3.6.1 Các khái niê.m và di.nh nghı̃a . . . . . . . . . . . . 110
3.6.2 Tı́nh phi mâu thuâ˜n cu’a lý thuyê´t tân tù. câ´p 1 PP111
3.6.3 Mô.t sô´ di.nh lý trong lý thuyê´t tân tù. câ´p 1 K . . 112
3.6.4 Tı́nh dâ ` y du’ cu’a lý thuyê´t tân tù. câ´p 1K . . . . . 120
3.7 Áp du.ng trong chú.ng minh di.nh lý cu’a lý thuyê´t
tân tù. câ´p 1 . . . . . . . . . . . . . . . . . . . . . . 121
3.8 Bài tâ.p chu.o.ng 3 . . . . . . . . . . . . . . . . . . 123

Logic tân tù. là mô.t hê. thô´ng logic phô’ biê´n nhâ´t mà ngôn ngũ. cu’a nó
giúp ta hı̀nh thành các khái niê.m, các thuô.c tı́nh, các quan hê., và tù. dó di
dê´n phán doán, cũng nhu. các co. chê´ lâ.p luâ.n chă.t chẽ, giúp con ngu.ò.i hiê’u
rõ và sâu să´c ba’n châ´t cu’a các dô´i tu.o..ng. Do dó có thê’ nói logic tân tù.
là mô.t công cu. nê` n ta’ng cho su.. phát triê’n cu’a nhiê` u lý thuyê´t khoa ho.c,
dă.c biê.t là Toán ho.c, chă’ng ha.n nhu. bài toán “Tô`n ta.i ı́t nhâ´t mô.t nghiê.m
x1 , x2, ..., xn” cu’a da thú.c n biê´n f (x1 , x2, ..., xn) du.o..c biê’u diê˜n nhò. logic
tân tù. nhu. sau:
∃x1 ∃x2...∃xn(f (x1 , x2, ..., xn) = 0).

3.1 Các lu.o..ng tù.


Logic tân tù. là su.. phát triê’n mo’. rô.ng tu.. nhiên cu’a logic mê.nh dê
` nhă` m thê’
` y du’ và chă.t chẽ nhũ.ng kê´t luâ.t thu..c tê´ mà logic mê.nh dê
hiê.n mô.t cách dâ `
không thê’ nào diê˜n ta’ du.o..c, chă’ng ha.n:

(1) Mô˜i mô.t ngu.ò.i ba.n cu’a Mai là ba.n cu’a Yê´n. Phúc không pha’i là ba.n
cu’a Yê´n, nên Phúc không pha’i là ba.n cu’a Mai.

(2) Mo.i ngu.ò.i dê


` u bâ´t tu’.. Socrates là ngu.ò.i, nên Socrates là bâ´t tu’..

Dê’ có thê’ mô ta’ bă` ng Toán ho.c nhũ.ng mê.nh dê
` trên, ta du.a ra mô.t sô´
ký hiê.u dă.c biê.t:
72 Chu.o.ng 3. Hê. toán tân tù.

– Nê´u P (x) có nghı̃a là “x có tı́nh châ´t P ” thı̀ khi dó ∀xP (x) có nghı̃a
là “Mô˜i mô.t vâ.t x có tı́nh châ´t P ”, hay nói cách khác: “Mo.i x có tı́nh
châ´t P ”.

– Nê´u ta ký hiê.u ∃xP (x) có nghı̃a là “Tô`n ta.i ı́t nhâ´t mô.t vâ.t x có tı́nh
châ´t P ”.
Khi dó trong các biê’u thú.c trên:
– ∀xP (x) thı̀ phâ ` n ∀x du.o..c go.i là phâ ` n lu.o..ng tù., trong dó ký hiê.u ∀ -
du.o..c go.i là lu.o..ng tù. toàn thê’, và x du.o..c go.i là biê´n lu.o..ng tù..

– ∃xP (x) thı̀ phâ ` n ∃x du.o..c go.i là phâ ` n lu.o..ng tù., trong dó ký hiê.u ∃
du.o..c go.i là lu.o..ng tù. tô`n ta.i, còn x du.o..c go.i là biê´n lu.o..ng tù..

– Trong ca’ 2 biê’u thú.c thı̀ phâ


` n P (x) du.o..c go.i là miê
` n tác du.ng (scope)
. . .
cu’a lu o. ng tù .
Dô´i vó.i các thı́ du. dã cho, nê´u ta ký hiê.u: m, y, p, s, F (x, y), M (x), I(x)
tu.o.ng ú.ng là “Mai”, “Yê´n”, “Phúc”, “Socrates”, “x là ba.n cu’a y”, “x là
ngu.ò.i”, “x là bâ´t tu’.” thı̀ khi dó các kê´t luâ.n tù. (1) dê´n (2) du.o..c biê’u diê˜n
nhu. sau:

0
(1 ) ∀x(F (x, m) → F (x, y)) (a)
¬F (p, y) (b)
¬F (p, m)

0
(2 ) ∀x(M(x) → I(x)) (c)
M(s) (d)
I(s)

Trong công thú.c (1 ), ta dã ký hiê.u “F (y, z)” có nghı̃a là “y là ba.n cu’a
0

z” . Khi dó dô´i vó.i mê.nh dê` (a) ta áp du.ng lu.o..ng tù. ∀x cho tru.ò.ng ho..p
riêng “x là p”, ta nhâ.n du.o..c mê.nh dê
` sau là mê.nh dê
` dúng:

F (p, m) → F (p, y) (e)


3.1. Các lu.o..ng tù. 73

Trong logic mê.nh dê ` ta có công thú.c sau: (A → B) → (¬B → ¬A) là
công thú.c dô`ng nhâ´t dúng. Do dó ta thay A = F (p, m), và B = F (p, y), ta
nhâ.n mê.nh dê` sau dây là dúng:

¬F (p, y) → ¬F (p, m) (f)

nhò. qui tă´c Modus Ponens. Áp du.ng Modus Ponens mô.t lâ ` n nũ.a dô´i vó.i
(b) và (f), ta nhâ.n du.o..c kê´t qua’:
¬F (p, m), nghı̃a là “Phúc không pha’i là ba.n cu’a Mai” 
. 0 . . . .
Trong công thú c (2 ) ta áp du.ng lu o. ng tù toàn thê’ ∀x dô´i vó i mê.nh dê
`
. .
(c) bă` ng cách thay “x là s”, ta nhâ.n du o. c mê.nh dê
` sau dây là dúng:

M(s) → I(s) (g)

Áp du.ng qui tă´c Modus Ponens cho (d) và (g), ta nhâ.n du.o..c kê´t qua’ là:
I(s), nghı̃a là “Socrates là bâ´t tu’.”. 
. . .
` u thú vi. là ta có thê’ kiê’m tra bă` ng chu o ng trı̀nh thı́ du. thú 2
Mô.t diê
vó i kê´t qua’ “Socrates là bâ´t tu’.” bă` ng ngôn ngũ. lâ.p trı̀nh PROLOG version
.
2.0 ([6]) dùng trong Trı́ tuê. nhân ta.o.
Khi ta vào môi tru.ò.ng làm viê.c cu’a TURBO PROLOG màn hı̀nh bao
gô`m 4 cu’.a sô’ sau dây:

Hãy vào mu.c File/Load, cho.n tên chu.o.ng trı̀nh AI1.PRO và thêm chı’ thi.
` u chu.o.ng trı̀nh:
trace (vê´t) lên dâ
74 Chu.o.ng 3. Hê. toán tân tù.

/*AI1.PRO*/

trace

domains
human, immortal=symbol

predicates
is(symbol, symbol)

clauses
is(X, immortal): - is(X, human).
is(“Socrates”, human).

goal
is(X, Y ),
write(X, “is”, Y ).

Ta cha.y chu.o.ng trı̀nh tù.ng bu.ó.c (theo vê´t):

* Bâ´m Alt-R
.
– O’ cu’.a sô’ Edit con tro’ chı’ tù.
goal
.
– O’ cu’.a sô’ Trace ta thâ´y
CALL: goal ()

` n thú. nhâ´t)
* Hãy bâ´m F10 (lâ
.
– O’ cu’.a sô’ Edit con tro’ chı’ tân tù.
is(X, Y )
.
– O’ cu’.a sô’ Trace ta thâ´y
CALL: is( , )
3.1. Các lu.o..ng tù. 75

` n thú. 2)
* Bâ´m F10 (lâ

.
– O’ cu’.a sô’ Edit con tro’ chı’ qui tă´c
is(X, immortal): - is(X, “human” )

` n thú. 3)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Edit con tro’ chı’
is (X, human)
.
– O’ cu’.a sô’ Trace ta thâ´y
CALL: is ( , “human” )

* Bâ´m F10 (lâ ` n thú. 4)


.
O’ cu’.a sô’ Edit con tro’ chı’ vi. trı́ tù.
is (X, immortal)

` n thú. 5)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Edit con tro’ chı’ su.. kiê.n
is (“Socrates”, human)
.
– O’ cu’.a sô’ Trace ta thâ´y
REDO: is( , “human” )

` n thú. 6)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Edit con tro’ vâ˜n chı’
is (“Socrates”, human)
.
– O’ cu’.a sô’ Trace ta du.o..c
RETURN: is (“Socrates”, “human” )

` n thú. 7)
* Bâ´m F10 (lâ
76 Chu.o.ng 3. Hê. toán tân tù.

.
– O’ cu’.a sô’ Edit con tro’ la.i chı’
is (X, immortal)
.
– O’ cu’.a sô’ Trace ta có
RETURN: *is (“Socrates”, “immortal” )

` n thú. 8)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Edit con tro’ chı’ chũ. X trong
write (X, “is”, Y )
.
– O’ cu’.a sô’ Trace ta có
write(“Socrates” )

` n thú. 9)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Dialog xuâ´t hiê.n tù. Socrates
.
– O’ cu’.a sô’ Edit con tro’ chuyê’n tù. X sang chı’ “is” trong
write(X, “is”, Y )
.
– O’ cu’.a sô’ Trace ta có
write(“is” )

` n thú. 10)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Dialog ta du.o..c thêm tù. is, tú.c là Socrates is
.
– O’ cu’.a sô’ Edit con tro’ chuyê’n tù. “is” sang chı’ sô´ Y trong
write(X, “is”, Y )
.
– O’ cu’.a sô’ Trace ta có
write(“immortal” )

` n thú. 11)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Dialog ta có thêm tù. immortal, tú.c là Socrates is im-
mortal
3.2. Các khái niê.m và di.nh nghı̃a 77

.
– O’ cu’.a sô’ Edit con tro’ chı’ tù. goal
.
– O’ cu’.a sô’ Trace ta có
RETURN: goal()

` n thú. 12)
* Bâ´m F10 (lâ
.
– O’ cu’.a sô’ Dialog thêm câu nhă´c nho’. Press the SPACE bar tú.c là
bâ´m thanh ngang dê’ tro’. vê
` môi tru.ò.ng làm viê.c cũ.

Nhu. vâ.y sau 12 bu.ó.c thu..c hiê.n bâ´m F10 ta dã thu du.o..c lò.i gia’i dáp:
Socrates is immortal hay là Socrates là bâ´t tu’.. 
. .
Thu. c châ´t ta dã su’ du.ng các da.ng câu lê.nh dê’ chı’ câ´u trúc logic cu’a vâ´n
` . Câ´u trúc này phu. thuô.c vào các liên kê´t mê.nh dê
dê ` cũng nhu. da.ng suy
diê˜n có su’. du.ng các lu.o..ng tù., chă’ng ha.n nhu. các thı́ du. (1) và (2), ta dã có
thê’ biê’u diê˜n chúng mô.t cách trù.u tu.o..ng qua (1 ) và (2 ).
0 0

Dê’ da.t du.o..c mu.c dı́ch này, ta câ ` n pha’i su’. du.ng các ký hiê.u nhu. dâ´u
phâ’y, các că.p dâ´u ngoă. c, dâ´u phu’ di.nh ¬, dâ´u kéo theo → cu’a hê. toán
mê.nh dê ` , các biê´n cá thê’ x1, x2, ..., xn, ...,; các hă ` ng cá thê’ a1 , a2, ..., an, ...;
.
các ký hiê.u tân tù A1 , A1, ..., Ak, ...,; và các biê´n hàm f11 , f12 , ..., fkj , ..., trong
1 2 j

dó chı’ sô´ trên j là chı’ sô´ ngôi, chı’ sô´ du.ó.i k là chı’ sô´ thú. tu...
Trong các thı́ du. (1) và (2) ta su’. du.ng các ký hiê.u m, y, p, s là các hă` ng
cá thê’, F là tân tù. 2 ngôi, còn M và I là các tân tù. mô.t ngôi.
Tân tù. n ngôi là mô.t hàm n ngôi nhâ.n giá tri. True hoă.c False dô´i vó.i
mô.t danh sách các hă` ng, tú.c là ánh xa. cu’a Dn vào {T, F }, trong dó D là
miê` n xác di.nh cu’a tân tù..
Biê´n hàm n ngôi là mô.t toán tu’. tù. tâ.p Dn vào D, trong dó D là miê `n
xác di.nh.

3.2 Các khái niê.m và di.nh nghı̃a


Di.nh nghı̃a 3.2.1 (term hay ha.ng tu’.)

(a) Tâ´t ca’ các biê´n và hă` ng cá thê’ dê
` u là term.
78 Chu.o.ng 3. Hê. toán tân tù.

(b) Nê´u fin là mô.t biê´n hàm và t1, t2, ..., tn là các terms, thı̀ fin (t1 , t2, ..., tn)
là mô.t term.

(c) Mô.t biê’u thú.c là mô.t term, nê´u nó du.o..c lâ.p nên tù. co. so’. (a) và (b).

Di.nh nghı̃a 3.2.2 (công thú.c so. câ´p)


Nê´u Ani là mô.t ký hiê.u tân tù. và t1, t2 , ..., tn là các term thı̀ Ani (t1 , t2, ..., tn)
là mô.t công thú.c so. câ´p.

Di.nh nghı̃a 3.2.3 (công thú.c tân tù.)

a) Mô˜i mô.t công thú.c so. câ´p là mô.t công thú.c

b) Nê´u A và B là các công thú.c, và y là mô.t biê´n thı̀ (¬A), (A → B),
(∀yA) là công thú.c.

c) Mô.t biê’u thú.c là mô.t công thú.c, nê´u nó du.o..c lâ.p nên tù. co. so’. (a) và
(b).

Trong biê’u thú.c ∀yA thı̀ “A” du.o..c go.i là miê
` n tác du.ng cu’a lu.o..ng tù. ∀y.

Chú ý 1

(1) A không nhâ´t thiê´t chú.a biê´n y. Trong tru.ò.ng ho..p này, thông thu.ò.ng
ta hiê’u ∀yA và A là nhu. nhau.

(2) Các công thú.c A ∧ B, A ∨ B, A ↔ B du.o..c xác di.nh tu.o.ng tu.. nhu.
` L cu’a chu.o.ng 2 tù. D1 − D3 .
trong lý thuyê´t tiên dê

(3) Ký hiê.u ∃ du.o..c biê’u diê˜n qua ∀ nhò. công thú.c tu.o.ng du.o.ng sau dây:

∃xA ≡ ¬(∀x¬A).
3.2. Các khái niê.m và di.nh nghı̃a 79

(4) Rút go.n cách viê´t dâ´u ngoă.c trong logic tân tù.:
Quy u.ó.c tu.o.ng tu.. nhu. trong chu.o.ng 1, nhu.ng còn thêm 2 lu.o..ng tù.
∀ và ∃ du.o..c xê´p chă.t chẽ giũ.a hai nhóm ↔, → và ∨, ∧, ¬, nghı̃a là
mô.t thú. tu.. du.o..c xê´p nhu. sau:

↔, →, ∀, ∃, ∨, ∧, ¬
7 6 5 4 3 2 1

Thı́ du. 3.2.1

(a) ∀x1A11 (x1) → A21(x1, x2 ) pha’i viê´t ngoă. c là


((∀x1A11 (x1)) → A21 (x1, x2)).

(b) ∀x1A11(x1 ) ∨ A21(x1 , x2) pha’i viê´t ngoă.c là


(∀x1(A11 (x1) ∨ A21 (x1 , x2))), nhu.ng nê´u ta hoán vi. hai sô´ ha.ng cho nhau:

A21 (x1, x2) ∨ ∀x1A11(x1)

thı̀ ta pha’i viê´t ngoă. c là

(A21(x1, x2) ∨ (∀x1A11(x1 ))).

Ngoài ra tru.ò.ng ho..p công thú.c có da.ng QA thı̀ ta du.a vê
` da.ng Q1 (Q2A),
trong dó A không chú a lu o. ng tù và Q, Q1, Q2 là các lu o. ng tu’. nào dó.
. . . . . .

Thı́ du. 3.2.2 ∀x1∃x2∀x4 A31(x1, x2 , x4) thı̀ ta pha’i viê´t ngoă.c là

(∀x1(∃x2(∀x4A31 (x1, x2, x4 ))))

Di.nh nghı̃a 3.2.4 (vi. trı́ tu.. do và ràng buô.c)


Vi. trı́ cu’a biê´n x trong mô.t công thú.c dã cho du.o..c go.i là ràng buô.c, nê´u
x nă` m trong miê ` n tác du.ng cu’a lu.o..ng tù. ∀x có mă.t trong công thú.c dó;
Trái la.i, nó du.o..c go.i là tu.. do.

Thı́ du. 3.2.3


80 Chu.o.ng 3. Hê. toán tân tù.

(1) A21 (x1, x2)

(2) A21 (x1, x2) → ∀x1A11(x1 )

(3) ∀x1(A21 (x1, x2) → ∀x1A11(x1 )).

– Trong công thú.c (1), vi. trı́ thú. nhâ´t cu’a biê´n x1 là tu.. do.

– Trong công thú.c (2), vi. trı́ thú. nhâ´t cu’a biê´n x1 là tu.. do, còn các vi. trı́
thú. 2, thú. 3 cu’a biê´n x1 là ràng buô.c.

– Tâ´t ca’ các vi. trı́ cu’a biê´n x1 trong công thú.c (3) dê
` u là ràng buô.c.

– Mô˜i mô.t vi. trı́ cu’a biê´n x2 trong ca’ 3 công thú.c dê
` u là tu.. do.

Chú ý 2 Cùng mô.t biê´n vi. trı́ cu’a nó có thê’ vù.a là tu.. do, vù.a là ràng buô.c
trong cùng mô.t công thú.c, chă’ ng ha.n nhu. (2).

Di.nh nghı̃a 3.2.5 (biê´n tu.. do và biê´n ràng buô.c)


Mô.t biê´n du.o..c go.i là biê´n tu.. do (biê´n ràng buô.c) trong mô.t công thú.c,
nê´u tô`n ta.i các vi. trı́ tu.. do (ràng buô.c) cu’a nó trong công thú.c dó.

Chú ý 3 Mô.t biê´n có thê’ vù.a là biê´n tu.. do, vù.a biê´n ràng buô.c trong cùng
mô.t công thú.c, chă’ ng ha.n nhu. (2).

Di.nh nghı̃a 3.2.6 (term tu.. do dô´i vó.i mô.t biê´n)


Mô.t term t du.o..c go.i là tu.. do dô´i vó.i biê´n xi trong công thú.c A, nê´u
không có mô.t vi. trı́ tu.. do nào cu’a xi nă` m trong miê ` n tác du.ng cu’a lu.o..ng
tù. ∀xj , trong dó xj là biê´n có mă.t trong term t.
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 81

Thı́ du. 3.2.4

(1) Term t = xj là tu.. do dô´i vó.i biê´n xi trong công thú.c A = A11 (xi), nhu.ng
không tu.. do dô´i vó.i biê´n xi trong công thú.c:

B = ∀xj A21(xi , xj ).

(2) Term t = f12 (x1 , x3) là tu.. do dô´i vó.i biê´n x1 trong công thú.c A =
∀x2A21 (x1, x2) → A11(x1 ), nhu.ng không tu.. do dô´i vó.i biê´n x1 trong
công thú.c
B = ∃x3A21 (x1, x3) → A11(x1 ).

Di.nh nghı̃a 3.2.7 (công thú.c dóng)


Mô.t công thú.c A du.o..c go.i là công thú.c dóng, nê´u A không chú.a các biê´n
tu.. do.

3.3 Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh
Mô.t công thú.c chı’ có nghı̃a khi mô.t minh hoa. du.o..c chı’ ra cho các ký hiê.u
cu’a nó.

3.3.1 Minh hoa.


Di.nh nghı̃a 3.3.1
Mô.t minh ho.a (Interpretation) bao gô`m mô.t tâ.p ho..p D khác rô˜ng du.o..c
go.i là tru.ò.ng minh hoa. (hay miê ` n xác di.nh) và mô.t sô´ tu.o.ng quan nào dó
sao cho:
- Mô˜i mô.t tân tù. Anj là mô.t quan hê. n ngôi trong D, tú.c là ánh xa. tù.
tâ.p Dn vào {T, F }.
- Mô˜i mô.t biê´n hàm fjn là mô.t toán tu’. n ngôi trong D, tú.c là ánh xa. tù.
Dn vào D.
- Mô˜i mô.t hă` ng tu’. ai là mô.t phâ
` n tu’. cu’a D.

Chú ý 1
82 Chu.o.ng 3. Hê. toán tân tù.

(1) Khi dã cho mô.t minh hoa. nào dó thı̀ các biê´n du.o..c xác di.nh trên tru.ò.ng
minh hoa. D, còn các phép toán và các lu.o..ng tù. vâ˜n hiê’u theo nghı̃a
thông thu.ò.ng, và cho phép ta hiê’u mô.t quan hê. n ngôi trong D là mô.t
tâ.p con cu’a tâ.p Dn .

(2) Dô´i vó.i mô.t minh hoa. dã cho thı̀ mô.t công thú.c không chú.a biê´n tu..
do (hay là công thú.c dóng) thê’ hiê.n mô.t mê.nh dê ` hoă.c là dúng, hoă.c
là sai, còn dô´i vó.i mô˜i mô.t công thú.c có chú.a biê´n tu.. do thê’ hiê.n
mô.t quan hê. nào dó trên tru.ò.ng minh hoa.. Quan hê. này có thê’ thu..c
hiê.n du.o..c (dúng) dô´i vó.i mô.t sô´ giá tri. nào dâ´y cu’a biê´n trong tru.ò.ng
minh hoa., và cũng có thê’ không thu..c hiê.n du.o..c (sai) dô´i vó.i mô.t sô´
giá tri. khác cu’a biê´n trong tru.ò.ng minh hoa..

Thı́ du. 3.3.1 (a) A21 (x1, x2)

(b) ∀x2A21(x1 , x2)

(c) ∃x2∀x1A21(x2 , x1)

Nê´u ta cho.n tru.ò.ng minh hoa. là tâ.p ho..p các sô´ nguyên du.o.ng D =
N + = {1, 2, 3, ..., ∞}, và tân tù. 2 ngôi:

A21 (y, z) =def “y ≤ z”

thı̀ khi dó:


- Công thú.c (a) thê’ hiê.n quan hê. x1 ≤ x2 là thu..c hiê.n du.o..c dô´i vó.i mo.i
că.p să´p thú. tu.. (a, b) nguyên du.o.ng sao cho a ≤ b.
- Công thú.c (b) thê’ hiê.n tı́nh châ´t “Dô´i vó.i mô˜i mô.t sô´ nguyên du.o.ng
x2 : x2 ≥ x1” là thu..c hiê.n du.o..c dô´i vó.i sô´ 1.
- Công thú.c (c) thê’ hiê.n mô.t mê.nh dê ` dúng: “Tô`n ta.i mô.t sô´ nguyên
du.o.ng nho’ nhâ´t”.
Mă.t khác, nê´u cũng dô´i vó.i tân tù. trên và tru.ò.ng minh hoa. bây giò.
ta cho.n là tâ.p ho..p các sô´ nguyên Z = {−∞, ..., −1, 0, 1, ..., +∞} thı̀ khi dó
công thú.c (c) nhâ.n giá tri. sai, vı̀ ră` ng

∃x2∀x1 (x2 ≤ x1 ) ≡ ∀x2∃x1(x2 > x1 ) = True


3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 83

3.3.2 Tı́nh thu..c hiê.n du.o..c


Các khái niê.m vê ` su.. thu..c hiê.n du.o..c và su.. dô`ng nhâ´t dúng theo tru..c quan
là râ´t rõ ràng, nhu.ng dê’ hiê’u sâu să´c ho.n ba’n châ´t cu’a viê.c tı́nh giá tri. cu’a
mô.t công thú.c logic tân tù., ta câ ` n thu..c hiê.n nó mô.t cách chı́nh xác theo
tù.ng bu.ó.c tı́nh toán.
P
Gia’ su’. cho mô.t minh hoa. nào dó và D là tru.ò.ng minh hoa.. là tâ.p tâ´t
. . . P
ca’ các dãy dê´m du o. c trên D. Gia’ su’ s = (b1, b2 , ...) ∈ . Khi dó ta di.nh
nghı̃a hàm mô.t ngôi s∗ là ánh xa. tù. tâ.p ho..p các terms (ha.ng tu’.) vào D nhu.
sau:

(1) Nê´u term t là biê´n xi thı̀ s∗ (t) = bi .

(2) Nê´u term t là mô.t hă` ng cá thê’ thı̀ s∗(t) bă` ng hă` ng dó.

(3) Nê´u fjn là biê´n hàm du.o..c minh hoa. bo’.i toán tu’. g trong D, và t1 , t2, ..., tn
là các terms thı̀ s∗ (fjn (t1, t2, ..., tn)) = g(s∗ (t1), s∗ (t2), ..., s∗ (tn )).

Nhu. vâ.y s∗ là mô.t hàm xác di.nh trên tâ.p ho..p tâ´t ca’ các terms và nhâ.n
giá tri. trong D nhò. có dãy s = (b1, b2 , ...).
P
Nói mô.t cách khác, vó.i bâ´t kỳ mô.t dãy s = (b1 , b2, ..., ) ∈ và bâ´t kỳ
term t thı̀ s∗ (t) là mô.t phâ ` n tu’. cu’a tâ.p D. Phâ ` n tu’. này (s∗ (t)) nhâ.n du.o..c
bă` ng cách thê´ dô´i vó.i mô˜i i phâ
` n tu’. bi vào tâ´t ca’ các vi. trı́ cu’a biê´n xi trong
term t, và sau dó thu..c hiê.n toán tu’. tu.o.ng ú.ng cu’a biê´n hàm dô´i vó.i term t.

Thı́ du. 3.3.2 Cho term t = f12 (x3, f22 (x1, a1)) và D = Z, trong dó f12 và f22
tu.o.ng ú.ng là phép nhân và phép cô.ng, còn a1 = 2.
P
Khi dó vó.i bâ´t kỳ dãy s = (b1 , b2, ...) ∈ ta có:

s∗ (t) = b3 ∗ (b1 + 2).

Di.nh nghı̃a 3.3.2 (Tı́nh thu..c hiê.n du.o..c)

(1) Nê´u A là mô.t công thú.c so. câ´p Anj (t1 , t2, ..., tn) và Bjn là quan hê. tu.o.ng
ú.ng cu’a nó trong minh hoa. thı̀ công thú.c A du.o..c go.i là thu..c hiê.n du.o..c
84 Chu.o.ng 3. Hê. toán tân tù.

P
trên dãy s = (b1, b2 , ...) ∈ khi và chı’ khi Bjn (s∗ (t1), s∗(t2 ), ..., s∗(tn )),
tú.c là bô. n phâ
` n tu’. (s∗ (t1), s∗(t2 ), ..., s∗(tn )) nă` m trong quan hê. Bjn .

Thı́ du. 3.3.3

(a) Cho tru.ò.ng minh hoa. D = R (sô´ thu..c); tân tù. A21 là quan hê.
“ ≤ ” và biê´n hàm f11 (x) = ex . Khi dó công thú.c so. câ´p A =
A21(f11 (x1), x5 ) là thu..c hiê.n du.o..c trên dãy s = (b1, b2, ...), khi và
chı’ khi
eb1 ≤ b5 .

(b) Cho tru.ò.ng minh hoa. D = Z, tân tù. A41(x, y, u, v) là quan hê. xv =
uy, và a1 = 2. Khi dó công thú.c so. câ´p A = A41(x3, a1 , x1, x3) là
thu..c hiê.n du.o..c trên dãy s = (b1, b2 , ..), khi và chı’ khi

b23 = 2 ∗ b1 .

P
(2) Công thú.c ¬A là thu..c hiê.n du.o..c trên dãy s = (b1, b2 , ...) ∈ , khi và
chı’ khi A không thu..c hiê.n du.o..c trên s.

P
(3) Công thú.c A → B là thu..c hiê.n du.o..c trên s = (b1, b2 , ...) ∈ , khi và
chı’ khi A không thu..c hiê.n du.o..c trên s hoă.c B thu..c hiê.n du.o..c trên s.

P
(4) Công thú.c ∀xiA là thu..c hiê.n trên dãy s = (b1, b2 , .., bi, ...) ∈ , khi và
P
chı’ khi A là thu..c hiê.n du.o..c trên mô˜i dãy bâ´t kỳ s ∈
0
khác s không
quá thành phâ .
` n thú i.

Nói mô.t cách khác, công thú.c A là thu..c hiê.n du.o..c trên dãy s =
P
(b1 , b2, ..) ∈ , khi và chı’ khi phép thê´ dô´i vó.i mô˜i i, ký hiê.u bi ta.i mo.i
vi. trı́ tu.. do cu’a xi trong A thı̀ ta du.o..c mô.t mê.nh dê
` dúng trong minh hoa.
dã cho.
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 85

3.3.3 Su.. dô`ng nhâ´t dúng (hă


` ng dúng)
Di.nh nghı̃a 3.3.3 Mô.t công thú.c A du.o..c go.i là dô`ng nhâ´t dúng trong minh
hoa. dã cho, khi và chı’ khi A là thu..c hiê.n du.o..c trên mô˜i dãy bâ´t kỳ s =
P
(b1 , b2, ...) ∈ .

Di.nh nghı̃a 3.3.4 Mô.t công thú.c A du.o..c go.i là dô`ng nhâ´t sai trong minh
hoa. dã cho, khi và chı’ khi A không thu..c hiê.n du.o..c dô´i vó.i bâ´t kỳ dãy
P
s = (b1, b2 , ...) ∈ .

Thı́ du. 3.3.4 Xét mô.t minh hoa. bao gô`m:


- Tru.ò.ng minh hoa. D = N + = {1, 2, ...}
- Tân tù. mô.t ngôi A11 : A11(x) =def “x là chă˜n”.
Khi dó công thú.c A = ∀x1(A11 (x1) → A11(x1)) là dô`ng nhâ´t dúng.
P
Thâ.t vâ.y ta hãy xét mô.t dãy s = (b1, b2, ...) ∈ .

• Tru.ò.ng ho..p 1:
Nê´u b1 là mô.t sô´ chă˜n thı̀ khi dó ta có

A11(b1 ) → A11 (b1) = True

• Tru.ò.ng ho..p 2:
Nê´u b1 là mô.t sô´ le’ thı̀ A11 (b1)=False, do dó ta cũng có: A11(b1 ) →
A11 (b1)=True. Kê´t ho..p hai tru.ò.ng ho..p ta thâ´y công thú.c A =
P
∀x1(A11 (x1) → A11 (x1)) là thu..c hiê.n du.o..c trên dãy s = (b1, b2 , ...) ∈ .
Vı̀ s du.o..c cho.n tuỳ ý, do dó công thú.c A = ∀x1(A11 (x1) → A11(x1)) là
dô`ng nhâ´t dúng trong minh hoa. dã cho. 

3.3.4 Mô hı̀nh


Di.nh nghı̃a 3.3.5 Mô.t minh hoa. du.o..c go.i là mô hı̀nh (model) dô´i vó.i mô.t
tâ.p ho..p Γ các công thú.c, nê´u mô˜i mô.t công thú.c cu’a Γ là dô`ng nhâ´t dúng
trong minh hoa. dã cho.
86 Chu.o.ng 3. Hê. toán tân tù.

3.3.5 Mô.t sô´ hê. qua’


1) Công thú.c A là dô`ng nhâ´t sai trong minh hoa. dã cho, khi và chı’ khi ¬A
là dô`ng nhâ´t dúng trong cùng minh hoa. dó.

2) Không có mô.t công thú.c nào vù.a dô`ng nhâ´t dúng, vù.a dô`ng nhâ´t sai
trong cùng mô.t minh hoa..

3) Nê´u A và A → B là dô`ng nhâ´t dúng trong minh hoa. dã cho thı̀ B cũng
dô`ng nhâ´t dúng trong minh hoa. dó.

4) A → B là dô`ng nhâ´t sai trong minh hoa. dã cho, khi và chı’ khi A là dô`ng
nhâ´t dúng và B là dô`ng nhâ´t sai trong cùng minh hoa..
P
5) (i) − A ∧ B là thu..c hiê.n du.o..c trên dãy s ∈ , khi và chı’ khi A và B
cùng thu..c hiê.n du.o..c trên s.
P
- A ∨ B là thu..c hiê.n du.o..c trên dãy s ∈ , khi và chı’ khi A thu..c hiê.n
du.o..c trên s, hoă.c B thu..c hiê.n du.o..c trên s.
P
- A ↔ B là thu..c hiê.n du.o..c trên dãy s ∈ khi và chı’ khi A và B hoă.c
cùng thu. c hiê.n trên s hoă.c không cùng thu. c hiê.n du.o..c trên s.
. .

Chú ý 2
.
O’ dây ta su’. du.ng các công thú.c tu.o.ng du.o.ng sau:

* A ∧ B tu.o.ng du.o.ng vó.i ¬(A → ¬B)

* A ∨ B tu.o.ng du.o.ng vó.i (¬A → B)

* A ↔ B tu.o.ng du.o.ng vó.i (A → B) ∧ (B → A)

* ∃xi A tu.o.ng du.o.ng vó.i ¬(∀xi ¬A)


P
(ii) Công thú.c ∃xiA là thu..c hiê.n du.o..c trên dãy s ∈ , khi và chı’ khi A
P
là thu..c hiê.n du.o..c dô´i vó.i ı́t nhâ´t mô.t dãy s ∈
0
khác s không quá thành
phâ .
` n thú i.
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 87

Thı́ du. 3.3.5 Gia’ su’. cho mô.t minh hoa. bao gô`m:

- Tru.ò.ng minh hoa. D = N + = {1, 2, 3, ....}

- Tân tù. A21 là “=”

- Biê´n hàm f12 là phép nhân

- Hă` ng cá thê’ a1 = 1.

Khi dó quan hê. mô.t ngôi trong D tu.o.ng ú.ng vó.i công thú.c:

A =¬A21(x1 , a1) ∧ ∀x2(∃x3A21 (x1, f12 (x2, x3 ))


→ A21(x2, x1 ) ∨ A21(x2 , a1))

là tâ.p ho..p các sô´ nguyên tô´:

M = {b ∈ N + |b là sô´ nguyên tô´}

Vâ.y công thú.c A là thu..c hiê.n du.o..c trên mô˜i dãy bâ´t kỳ
P
s = {b1, b2 , ...} ∈ , trong dó b1 là mô.t sô´ nguyên tô´.
Ta thu’. kiê’m chú.ng khă’ng di.nh trên:
P
Gia’ su’. ta xét mô.t dãy s = {b1, b2, ...} ∈ .

• Tru.ò.ng ho..p 1: b1 là sô´ nguyên tô´, chă’ng ha.n b1 = 7. Trong công thú.c
dã cho, ta thâ´y x1 là biê´n tu.. do và dóng vai trò là sô´ nguyên tô´, còn
` u là biê´n ràng buô.c.
x2 và x3 dê
Khi dó

x1 = 7 = 1 .7 = 7 .1
↑ ↑
x2 x2
- ¬A21 (x1, a1) =True
- x2 = 1

x1 = x2 .x3 = True → x2 = x1 ∨ x2 = 1} True


F T
x T y
88 Chu.o.ng 3. Hê. toán tân tù.

- x2 = 7:
x1 = x2 .x3 = True → x2 = x1 ∨ x2 = 1} True
T F
x T y
Vâ.y ta dã kiê’m chú.ng du.o..c ră` ng vó.i b1 = 7 là mô.t sô´ nguyên tô´ thı̀
công thú.c A là thu..c hiê.n du.o..c trên dãy s = (b1, b2, ...).

• Tru.ò.ng ho..p 2: b1 không pha’i là sô´ nguyên tô´, chă’ng ha.n b1 = 12.
Khi dó ta có:

x1 = 1 .12 = 2 .6 = 6 .2 = 3 .4 = 4 .3 = 12.1
↑ ↑ ↑ ↑ ↑ ↑
x2 x2 x2 x2 x2 x2

- ¬A21 (x1, a1)=True


- x2 = 1
x1 = x2.x3 = True → x2 = x1 ∨ x2 = 1} True
F T
x T y
- x2 = 2
x1 = x2.x3 = True → x2 = x1 ∨ x2 = 1} False
F F
x F y
. . . .
- x2 = 6, 3, 4 tı́nh toán tu o ng tu. nhu x2 = 2 và kê´t qua’ là False.
- x2 = 12
x1 = x2.x3 = True → x2 = x1 ∨ x2 = 1} True
T F
x T y
Ta dã kiê’m tra du.o..c ră` ng nê´u b1 = 12 - không pha’i là mô.t sô´ nguyên
tô´ thı̀ kê´t qua’ tı́nh toán là

¬A21 (x1, a1) ∧ ∀x2 (∃x3A21(x1, f12 (x2 , x3)) → A21 (x2, x1) ∨ A21(x2, a1 ))
= True ∧ False = False.

Vâ.y chú.ng to’ ră` ng công thú.c A là không thu..c hiê.n du.o..c trên dãy s =
(b1 , b2, ...) trong dó b1 không pha’i là sô´ nguyên tô´. 
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 89

3.3.6 Mô.t sô´ di.nh nghı̃a khác


Di.nh nghı̃a 3.3.6 Mô.t công thú.c A du.o..c go.i là logic dô`ng nhâ´t dúng trong
hê. toán tân tù., khi và chı’ khi A là dúng dô´i vó.i mo.i minh hoa. bâ´t kỳ.

Di.nh nghı̃a 3.3.7 Mô.t công thú.c A du.o..c go.i là thu..c hiê.n du.o..c trong hê.
toán tân tù., khi và chı’ khi nê´u tô`n ta.i mô.t minh hoa., mà dô´i vó.i minh hoa.
P
dó A là thu..c hiê.n du.o..c trên ı́t nhâ´t mô.t dãy s ∈ .

Chú ý 3

(1) A là logic dô`ng nhâ´t dúng khi và chı’ khi ¬A là không thu..c hiê.n du.o..c,
và A là thu..c hiê.n du.o..c, khi và chı’ khi ¬A là không logic dô`ng nhâ´t
dúng.

(2) Nê´u A là mô.t công thú.c dóng thı̀ A là thu..c hiê.n du.o..c, khi và chı’ khi
A là dúng dô´i vó.i mô.t minh hoa. nào dó.

Di.nh nghı̃a 3.3.8 Mô.t công thú.c A du.o..c go.i là mâu thuâ˜n (contradictory)
trong hê. toán tân tù., khi và chı’ khi ¬A là logic dô`ng nhâ´t dúng, hay là khi
và chı’ khi A là sai dô´i vó.i mo.i minh hoa. bâ´t kỳ.

Di.nh nghı̃a 3.3.9 Công thú.c A du.o..c go.i là logic kéo theo B trong hê. toán
tân tù., khi và chı’ khi dô´i vó.i bâ´t kỳ minh hoa., B là thu..c hiê.n du.o..c trên mô˜i
dãy mà ta.i dó A thu..c hiê.n du.o..c.
Mô.t cách tô’ng quát ho.n, B là logic kéo theo tù. tâ.p ho..p Γ các công thú.c,
khi và chı’ khi, dô´i vó.i minh hoa., B là thu..c hiê.n du.o..c trên mô˜i dãy, mà ta.i
dó mô˜i công thú.c cu’a Γ là thu..c hiê.n du.o..c.

Di.nh nghı̃a 3.3.10 Hai công thú.c A và B du.o..c go.i là logic tu.o.ng du.o.ng
trong hê. toán tân tù., khi và chı’ khi A logic kéo theo B và B logic kéo theo
A.

Hê. qua’ 3.3.1


90 Chu.o.ng 3. Hê. toán tân tù.

a) A logic kéo theo B khi và chı’ khi công thú.c (A → B) là logic dô`ng nhâ´t
dúng.

b) A và B là logic tu.o.ng du.o.ng, khi và chı’ khi công thú.c (A ↔ B) là logic
dô`ng nhâ´t dúng.

c) Nê´u A là logic kéo theo B, và A dúng trong mô.t minh hoa. dã cho thı̀ B
cũng dúng trong minh hoa. dó.

d) Nê´u B là logic kéo theo tù. tâ.p ho..p Γ các công thú.c và mo.i công thú.c
cu’a Γ dúng trong minh hoa. dã cho thı̀ B cũng dúng trong minh hoa..

Di.nh nghı̃a 3.3.11 Gia’ su’. S = {A1, A2 , ., An} là mô.t tâ.p ho..p các công
thú.c tân tù.. Khi dó, S du.o..c go.i phi mâu thuâ˜n (hay thoa’ du.o..c), nê´u tô`n
ta.i mô.t minh hoa. cu’a S sao cho mo.i công thú.c A1 , A2, ., An dê ` u dúng trong
minh hoa. dó.
- S du.o..c go.i là mâu thuâ˜n (không thoa’ mãn du.o..c), nê´u không tô`n ta.i
mô.t minh hoa. nào nhu. vâ.y.
- Công thú.c A du.o..c go.i là logic kéo theo tù. S, ký hiê.u S |= A, nê´u trong
mo.i minh hoa. mà ta.i dó mo.i công thú.c cu’a S dê ` u dúng thı̀ A cũng dúng.
Dă.c biê.t, nê´u S = ∅ thı̀ |= A có nghı̃a A là công thú.c hă` ng dúng.

Chú ý 4
Di.nh lý 2.2.1 (nguyên lý suy diê˜n) trong chu.o.ng 2 cũng dúng cho tru.ò.ng
ho..p các công thú.c A, B, H1, H2, , Hn là công thú.c logic tân tù..

Thı́ du. 3.3.6 Cho mô hı̀nh suy diê˜n trong logic tân tù.

∀x1(P (x1) → Q(x1)) (H1 )


∃x1P (x1) (H2 )
∀x1(Q(x1) → R(x1)) (H3 )
∀x1 (S(x1) → R(x1)) (H4 )

∴ ∃x1S(x1) (A)
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 91

trong dó P (x1 ), Q(x1), R(x1 ), S(x1) là các tân tù. mô.t ngôi xác di.nh trên
mô.t tru.ò.ng minh hoa. D nào dó.
Mô hı̀nh suy diê˜n trên có dô`ng nhâ´t dúng hay không trên tru.ò.ng minh
hoa. và xây du..ng các bu.ó.c suy diê˜n cu’a mô hı̀nh trên?

Gia’i: Ta sẽ chú.ng minh ră` ng công thú.c B = (H1 ∧ H2 ∧ H3 ∧ H4 → A) là


dô`ng nhâ´t dúng trên tru.ò.ng minh hoa. D theo nguyên lý suy diê˜n cu’a di.nh
lý 2.2.1 và phu.o.ng pháp gia’i cu’a Robinson trong chu.o.ng 2.
P
Thâ.t vâ.y, xét mô.t dãy s = (b1 , b2, . . . ) ∈ . Tù. H1 , H2 , H3 , H4 và A,
ta có hê. suy diê˜n sau nhò. thay ký hiê.u hă` ng cá thê’ b1 vào các vi. trı́ cu’a x1
trong hê. công thú.c dã cho:

P (b1) → Q(b1) P (b1 ) ∨ Q(b1)


P (b1 ) P (b1)
Q(b1) → R(b1 ) ⇔ Q(b1 ) ∨ R(b1 )
S(b1) → R(b1) S(b1 ) ∨ R(b1)
∴ S(b1) ∴ S(b1 )

` n chú.ng minh tâ.p các công thú.c


và chı’ câ

S = {P (b1) ∨ Q(b1), P (b1), Q(b1 ) ∨ R(b1 ), S(b1) ∨ R(b1 ), S(b1 )}

là mâu thuâ˜n (theo nguyên lý suy diê˜n cu’a di.nh lý 2.4.1 (3) và phu.o.ng pháp
gia’i cu’a Robinson (chu.o.ng 2)).
Ta có hê. suy diê˜n nhu. sau:
92 Chu.o.ng 3. Hê. toán tân tù.


1. P (b1 ) ∨ Q(b1) 



2. P (b1) 


3. Q(b1) ∨ R(b1 ) (S)


4. S(b1 ) ∨ R(b1 ) 




5. S(b1 )
6. Q(b1) (1, 2, gia’i thú.c)
7. R(b1 ) (3, 6, gia’i thú.c)
8. S(b1) (4, 7, gia’i thú.c)
9.  (5, 8, gia’i thú.c)

Theo nguyên lý suy diê˜n: S là mâu thuâ˜n (hay dô`ng nhâ´t sai) ⇔ S dâ˜n
` suy diê˜n  (rô˜ng) theo phu.o.ng pháp gia’i cu’a Robinson (chu.o.ng 2).
vê
Vı̀ s du.o..c cho.n tuỳ ý, nên mô hı̀nh suy diê˜n dã cho là dô`ng nhâ´t dúng.


3.3.7 Các công thú.c logic dô`ng nhâ´t dúng trong hê.
toán tân tù.
1) ¬∀xA ≡ ∃x¬A

2) ¬∃xA ≡ ∀x¬A

3) (∀xA ∧ ∀xB) ≡ ∀x(A ∧ B)

4) (∃xA ∨ ∃xB) ≡ ∃x(A ∨ B)

5) (∀xA ∧ G) ≡ ∀x(A ∧ G)

6) (∀xA ∨ G) ≡ ∀x(A ∨ G)

7) (∃xA ∧ G) ≡ ∃x(A ∧ G)

8) (∃xA ∨ G) ≡ ∃x(A ∨ G)

trong dó vó.i 4 công thú.c cuô´i cùng x không pha’i là biê´n tu.. do trong công
thú.c G.
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 93

3.3.8 ´c trong logic tân tù.


Da.ng chuâ’n tă
3.3.8.1 Da.ng chuâ’n tă
´c tiê
` n tô´

Di.nh nghı̃a 3.3.12 Mô.t công thú.c tân tù. A du.o..c go.i là chuâ’n tă´c tiê
` n tô´,
. . . .
nê´u A không chú a các lu o. ng tù hoă.c có da.ng Q1 x1Q2 x2 ... Qn xn M, trong
dó Qi (i = 1...n) hoă.c là ∀ hoă.c là ∃, và M là công thú.c không chú.a lu.o..ng
tù..
Da.i lu.o..ng Q1x1Q2 x2...Qnxn du.o..c go.i là tiê
` n tô´, còn M du.o..c go.i là ma
trâ.n cu’a công thú.c A.

Thı́ du. 3.3.7 ∃x∀y(x ≤ y).

Di.nh lý 3.3.1 Mo.i công thú.c tân tù. A dê


` u tô`n ta.i mô.t công thú.c chuâ’n
` n tô´ tu.o.ng du.o.ng vó.i nó.
tă´c tiê

Chú.ng minh
Ta có thê’ vâ.n du.ng các công thú.c hă` ng dúng (các công thú.c tu.o.ng
du.o.ng) trong mu.c 3.3.7 và thêm các công thú.c hă` ng dúng sau dê’ du.a A vê
`
. .
` n tô´ (phu o ng pháp dô’i tên biê´n):
da.ng chuâ’n tă´c tiê

1) ∀xA(x) ∨ ∀xB(x) ≡ ∀x∀y(A(x) ∨ B(y))

2) ∃xA(x) ∧ ∀xB(x) ≡ ∃x∀y(A(x) ∨ B(y))

3) ∀xA(x) ∧ ∃xB(x) ≡ ∀x∃y(A(x) ∧ B(y))

4) ∃xA(x) ∨ ∀xB(x) ≡ ∃x∀y(A(x) ∨ B(y))

5) ∀xA(x) ∨ ∃xB(x) ≡ ∀x∃y(A(x) ∨ B(y)).

Dô`ng thò.i ta thu..c hiê.n các bu.ó.c biê´n dô’i liên tiê´p sau dây:

• Tru.ó.c hê´t loa.i bo’ phép kéo theo → nhò. công thú.c: A → B tu.o.ng
du.o.ng vó.i A ∨ B, và phép ↔ nhò. công thú.c: A ↔ B tu.o.ng du.o.ng
vó.i (A → B) ∧ (B → A).
94 Chu.o.ng 3. Hê. toán tân tù.

` n) sao cho không có biê´n dô´i tu.o..ng nào


• Dô’i tên biê´n ràng buô.c (nê´u câ
vù.a là tu.. do, vù.a là ràng buô.c trong cùng mô.t công thú.c (và cũng áp
du.ng cho mô˜i công thú.c con).

• Xoá bo’ mo.i lu.o..ng tù. ∀x và ∃x, nê´u trong miê
` n tác du.ng cu’a chúng
không có biê´n x.

• Du.a mo.i xuâ´t hiê.n cu’a phép phu’ di.nh ¬ vào dú.ng tru..c tiê´p tru.ó.c các
công thú.c so. câ´p, và sau dó chuyê’n dâ` n các ký hiê.u lu.o..ng tù. ra phı́a
tru.ó.c công thú.c nhò. công thú.c tu.o.ng du.o.ng dã nói o’. trên.

Thı́ du. 3.3.8 Cho công thú.c

A = ∀x(A11(x) ∧ ∀y∃x(¬A21(x, y) → ∀zA31(a, x, y))).

Tı̀m da.ng chuâ’n tă´c tiê


` n tô´ cu’a A?

Gia’i

- Loa. i bo’ phép kéo theo →:


A ≡ ∀x(A11(x) ∧ ∀y∃x(¬¬A21(x, y) ∨ ∀zA31(a, x, y)))

- Dô’i tên biê´n ràng buô.c:


A ≡ ∀x(A11(x) ∧ ∀y∃u((¬¬A21(u, y) ∨ ∀zA31(a, u, y))))

- Bo’ lu.o..ng tù. thù.a:


A ≡ ∀y(A11(x) ∧ ∀y∃u((¬¬A21(u, y) ∨ A31(a, u, y))))

- Bo’ dâ´u phu’ di.nh ¬¬:


A ≡ ∀x(A11(x) ∧ ∀y∃u((A21(u, y) ∨ A31 (a, u, y))))

- Chuyê’n các lu.o..ng tù. ∀, ∃ lên phı́a tru.ó.c:

A ≡ ∀x∀y(A11(x) ∧ ∃u((A21(u, y) ∨ A31(a, u, y)))


≡ ∀x∀y∃u(A11(x) ∧ (A21 (u, y) ∨ A31(a, u, y))).
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 95

3.3.8.2 Da.ng chuâ’n tă


´c tuyê’n và chuâ’n tă
´c hô.i

Sau khi ta dã da.t du.o..c da.ng chuâ’n tă´c tiê


` n tô´, chă’ng ha.n ta go.i là
Q1 x1Q2x2 ...Qnxn Ak nào dó tù. công thú.c dã cho A, khi dó ta thu..c hiê.n
thêm mô.t bu.ó.c:

a) Da.ng chuâ’n tă´c tuyê’n


Trong Ak , nê´u ta áp da.ng công thú.c:

A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C)

ta thu du.o..c công thú.c A∗k ≡ Ak , và công thú.c A∗k này du.o..c go.i là da.ng
chuâ’n tă´c tuyê’n cu’a Ak , hay là:
A = Q1x1 Q2x2 ... Qn A∗k , trong dó lu.o..ng tù. Qi xi hoă.c là ∀xi hoă.c là
∃xi (i = 1, 2, . . . , n).

b) Da.ng chuâ’n tă´c hô.i


Trong Ak , nê´u ta áp du.ng công thú.c:

A ∨ (B ∧ C) ≡ (A ∨ B) ∧ (A ∨ C)

ta thu du.o..c công thú.c A∗∗ . ∗∗ ..


k ≡ Ak , và công thú c Ak này du o. c go . i là

da.ng chuâ n tă´c hô.i cu’a Ak , hay là:
A = Q1 x1Q2x2 . . . Qn xn A∗∗ . .ng tù. Q x hoăc là ∀x hoăc
k , trong dó lu o
. i i . i .
là ∃xi (i = 1, 2, . . . , n).

Chú ý: A → B ≡ A ∨ B.

Thı́ du. 3.3.9 Cho công thú.c tân tù. sau dây:

A = [∀x(P (x) → Q(x)) ∧ ∃xP (x) ∧ ∀x(Q(x) → R(x))


∧ ∀x(S(x) → R(x)))] → ∃xS(x).

Tı̀m da.ng chuâ’n tă´c tuyê’n cu’a công thú.c A?


96 Chu.o.ng 3. Hê. toán tân tù.

Gia’i:

A ≡[∀x(P (x) ∨ Q(x)) ∧ ∃xP (x) ∧ ∀x(Q(x) ∨ R(x))


∧ ∀x(S(x) ∨ R(x))] → ∃xS(x)
≡∀x(P (x) ∨ Q(x)) ∧ ∃xP (x) ∧ ∀x(Q(x) ∨ R(x))
∧∀x(S(x) ∨ R(x)) ∨ ∃xS(x)]
≡∃x(P (x) ∧ Q(x)) ∨ ∀xP (x) ∨ ∃x(Q(x) ∧ R(x))∨
∃x(S(x) ∧ R(x)) ∨ ∃xS(x)
≡∃x(P (x) ∧ Q(x)) ∨ ∀xP (x) ∨ ∃x(Q(x) ∧ R(x))∨
∃x(S(x) ∧ R(x)) ∨ ∃xS(x)
≡∃x((P (x) ∧ Q(x)) ∨ (Q(x) ∧ R(x)) ∨ (S(x)∧
R(x)) ∨ S(x)) ∨ ∀yP (y)
≡∃x∀y((P (x) ∧ Q(x)) ∨ (Q(x) ∧ R(x)) ∨ (S(x)
∧ R(x)) ∨ S(x) ∨ P (y)).

3.3.8.3 Da.ng chuâ’n tă


´c SKOLEM

Mô.t da.ng chuâ’n tă´c quan tro.ng và hay du.o..c dùng trong lâ.p trı̀nh logic
và Trı́ tuê. nhân ta.o, dó là da.ng chuâ’n tă´c Skolem. Da.ng này giúp cho các
nhà lâ.p trı̀nh dê˜ dàng du.a công thú.c tân tù. vào trong máy nhò. su.. chuâ’n
hoá Skolem: tù. công thú.c da.ng tiê ` n tô´ các da.i lu.o..ng gă´n vó.i lu.o..ng tù. tô`n
ta.i ∃ du.o..c thay thê´ bo’.i các hă` ng cá thê’ hoă.c hàm Skolem, và khi dó không
còn su.. hiê.n diê.n cu’a lu.o..ng tù. tô`n ta.i ∃ mà chı’ còn lu.o..ng tù. toàn thê’ ∀ trong
công thú.c dó. Do dó các nhà lâ.p trı̀nh chı’ viê.c du.a vào máy phâ ` n thân cu’a
công thú.c tân tù. dã chuâ’n hoá (du.o..c go.i là ma trâ.n) và mô˜i mô.t biê´n xuâ´t
hiê.n trong công thú.c dó dê ` u liên quan dê´n lu.o..ng tù. toàn thê’ ∀.

Di.nh nghı̃a 3.3.13 Gia’ su’. A là mô.t công thú.c tân tù. o’. da.ng tiê ` n tô´:
Q1 x1Q2x2 . . . Qn xn M và Qr là mô.t lu.o..ng tù. tô`n ta.i trong A.
- Khi dó, nê´u dô´i vó.i lu.o..ng tù. Qr không có mô.t lu.o..ng tù. toàn thê’ nào
dú.ng tru.ó.c nó thı̀ ta thay tâ´t ca’ xr trong M bo’.i mô.t hă` ng a cu’a miê ` n xác
di.nh D.
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 97

Thı́ du. 3.3.10


∃x∃y∀zP (x, y, z) (P là tân tù. 3 ngôi)

∃y∀zP (a, y, z) (a - hă` ng cá thê’ thuô.c D)

∀zP (a, b, z) (b - hă` ng cá thê’ thuô.c D)

- Trong tru.ò.ng ho..p nê´u dô´i vó.i lu.o..ng tù. Qr mà dú.ng tru.ó.c nó có (r − 1)
lu.o..ng tù. toàn thê’ tu.o.ng ú.ng vó.i các biê´n x1, x2, ..., xr−1 thı̀ khi dó ta thay
mo.i ký hiê.u xr bo’.i hàm f (x1, x2 , . . . , xr−1 ). Hàm này du.o..c go.i là hàm Skolem.
Công thú.c nhâ.n du.o..c tù. A bă` ng cách thu..c hiê.n nhu. trên du.o..c go.i là
da.ng chuâ’n tă´c Skolem.

Thı́ du. 3.3.11


∀x∀y∃z∀t∃uP (x, y, z, t, u)

∀x∀y∀t∃uP (x, y, f (x, y), t, u)

∀x∀y∀tP (x, y, f (x, y), t, g(x, y, t)) - da.ng chuâ’n tă´c Skolem (viê´t tă´t là
FSS).

Mô.t sô´ kê´t qua’


Dô´i vó.i công thú.c A, ta ký hiê.u SA là da.ng chuâ’n tă´c Skolem.

Di.nh lý 3.3.2

(1) Công thú.c (SA → A) là logic dô`ng nhâ´t dúng, và do dó nê´u A là mâu
thuâ˜n (logic dô`ng nhâ´t sai) thı̀ SA cũng mâu thuâ˜n.

(2) Nê´u A là thoa’ du.o..c thı̀ SA cũng thoa’ du.o..c.

(3) Công thú.c A là mâu thuâ˜n, khi và chı’ khi SA là mâu thuâ˜n (di.nh lý
Skolem).

Chú ý 5 Công thú.c (A → SA ) nói chung là không logic dô`ng nhâ´t dúng,
do dó A và SA là không logic tu.o.ng du.o.ng, chă’ ng ha.n:

A = ∀x∃y(y > x), SA = ∀x(f (x) > x)


98 Chu.o.ng 3. Hê. toán tân tù.

và ta cho.n tru.ò.ng minh hoa. D = R, f (x) = e−x . Khi dó A nhâ.n giá tri.
True và SA nhâ.n giá tri. False.

˜n, và phu.o.ng


3.3.8.4 Áp du.ng di.nh lý Skolem, nguyên lý suy diê
pháp phân gia’i

Chú.ng minh ră` ng công thú.c sau dây là logic dô`ng nhâ´t dúng trong logic
tân tù.:

A =(∀x∃y(P (x) → Q(y))) ∧ (∀y∃z(Q(y) → R(y)))


→ (∀x∃z(P (x) → R(z))).

Chú.ng minh:
Tru.ó.c hê´t, ta câ
` n thu..c hiê.n mô.t sô´ bu.ó.c biê´n dô’i co. ba’n cu’a công thú.c
dã cho vê` da.ng quen thuô.c theo các tı́nh châ´t dã biê´t.
- Theo nguyên lý suy diê˜n và nguyên lý phu.o.ng pháp phân gia’i, ta câ `n
.
chú ng minh ră` ng công thú c: .

B = (∀x∃y(P (x) ∨ Q(y))) ∧ (∀y∃z(Q(y) ∨ R(z)))∧


∀x∃z(P (x) ∨ R(z))

là mâu thuâ˜n (chu.o.ng 2 mu.c 2.4.3).


Viê.c dâ˜n du.o..c mô.t công thú.c vê ` da.ng chuâ’n tă´c Skolem thu..c su.. có ý
nghı̃a thu..c tiê˜n râ´t cao, dă.c biê.t dô´i vó.i bài toán lâ.p luâ.n trong các hê. co.
so’. tri thú.c du.o..c xây du..ng trên co. so’. cu’a các tân tù.. Trong chu.o.ng 2, ta dã
biê´t bài toán lâ.p luâ.n có thê’ du.a vê
` bài toán chú.ng minh mô.t tâ.p công thú.c
S (hay mô.t công thú.c) có mâu thuâ˜n hay không. Di.nh lý 3.3.2 (3) trên dây
cho ta biê´t mô.t công thú.c A là mâu thuâ˜n, khi và chı’ khi công thú.c Skolem
SA tu.o.ng ú.ng là mâu thuâ˜n. Gia’ su’. M là ma trâ.n cu’a công thú.c SA , và vı̀
SA du.o..c viê´t du.ó.i da.ng chuâ’n tă´c tiê` n tô´, nên SA là mâu thuâ˜n, khi và chı’
khi M là mâu thuâ˜n. Công thú.c M chı’ chú.a các phép toán logic mê.nh dê `,
.
do dó ta có thê’ du a vê ` da.ng chuâ’n tă´c hô.i cu’a mô.t tâ.p các Clause, và nhu.
vâ.y M là mâu thuâ˜n, khi và chı’ khi tâ.p các Clause dó là mâu thuâ˜n. Chú ý
ră` ng trong tru.ò.ng ho..p này mô˜i mô.t clause là tuyê’n cu’a mô.t sô´ các literal,
3.3. Minh hoa., su.. dô`ng nhâ´t dúng và mô hı̀nh 99

nhu.ng literal trong logic tân tù. là mô.t công thú.c so. câ´p hoă.c phu’ di.nh cu’a
mô.t công thú.c so. câ´p, và câ´u trúc cu’a literal phú.c ta.p ho.n nhiê ` u so vó.i
logic mê.nh dê` , nên viê.c xác di.nh các gia’i thú.c, rô`i sau dó áp du.ng nguyên
lý suy diê˜n và phu.o.ng pháp phân gia’i tu.o.ng ú.ng là viê.c làm có nhiê` u phú.c
ta.p ho.n so vó.i hê. toán mê.nh dê` . Tuy nhiên phu.o.ng pháp phân gia’i là mô.t
trong nhũ.ng phu.o.ng pháp có hiê.u qua’ trong viê.c chú.ng minh mô.t công thú.c
logic dô`ng nhâ´t dúng. Mu.c tiê´p theo ta sẽ áp du.ng nguyên lý cu’a phu.o.ng
pháp phân gia’i dê’ làm sáng to’ tı́nh hiê.u qua’ cu’a phu.o.ng pháp này.
Ta biê´n dô’i nhu. sau:

B ≡ ∀x∃y(P (x) ∨ Q(y)) ∧ ∀y∃z(Q(y) ∨ R(z)) ∧ ∃x∀z(P (x) ∧ R(z))


≡ ∀x∃u(P (x) ∨ Q(u)) ∧ ∀y∃v(Q(y) ∨ R(v)) ∧ ∃t∀z(P (t) ∧ R(z))
↑ ↑ ↑

≡ ∀x∀y∀z(∃u(P (x) ∨ Q(u)) ∧ ∃v(Q(y) ∨ R(v)) ∧ ∃t(P (t) ∧ R(z)))


≡ ∀x∀y∀z∃u∃v∃t((P (x) ∨ Q(u)) ∧ (Q(y) ∨ R(v)) ∧ (P (t) ∧ R(z)))
↑ ↑ ↑

≡ ∀x∀y∀z((P (x) ∨ Q(f (x, y, z)) ∧ (Q(y) ∨ R(g(x, y, z)))


∧ (P (h(x, y, z)) ∧ R(z))))

Khi dó ta dă.t:

S = {P (x) ∨ Q(f (x, y, z), Q(y) ∨ R(g(x, y, z)), P (h(x, y, z)), R(z)}

trong dó các hàm f (x, y, z), g(x, y, z), h(x, y, z) là các hàm Skolem và mô˜i
` n tu’. cu’a S là mô.t clause. Mô˜i mô.t clause du.o..c lâ.p nên tù. các literal
mô.t phâ
là nhũ.ng công thú.c so. câ´p.
- Theo di.nh lý Skolem:
B là mâu thuâ˜n ⇔ S là mâu thuâ˜n (dô`ng nhâ´t sai).
Thâ.t vâ.y, ta xây du..ng hê. dâ˜n xuâ´t tù. S vê
`  (rô˜ng) theo nguyên lý cu’a
phu.o.ng pháp phân gia’i cu’a Robinson nhu. sau:
100 Chu.o.ng 3. Hê. toán tân tù.


1. P (x) ∨ Q(f (x, y, z)) 



2. Q(y) ∨ R(g(x, y, z))
(S)
3. P (h(x, y, z)) 



4. R(z)
5. Q(f (h(x, y, z), y, z)) (1, 3, thê´ {x/h(x, y, z)}, gia’i thú.c)
6. Q(y) (2, 4, thê´ {z/g(x, y, z)}, gia’i thú.c)
7.  (5, 6, thê´ {y/f(h(x, y, z), y, z)}, gia’i thú.c)

Vâ.y theo nguyên lý cu’a phu.o.ng pháp phân gia’i cu’a Robinson ta nhâ.n
du.o..c tâ.p S nhu. trên là mâu thuâ˜n hay công thú.c B dã cho là logic dô`ng
nhâ´t sai, tú.c là A logic dô`ng nhâ´t dúng. 

3.4 Lý thuyê´t tân tù. câ´p 1K


3.4.1 Di.nh nghı̃a
Lý thuyê´t tân tù. câ´p 1K bao gô`m

1) Các ký hiê.u:

- ¬, → là 2 phép toán nguyên thuy’,


- Că.p dâ´u ngoă.c: (,)
- Mô.t tâ.p dê´m du.o..c các biê´n x1 , x2, . . . , xn , . . .
- Mô.t tâ.p hũ.u ha.n hoă.c dê´m du.o..c các tân tù. Anj (n, j ≥ 1) và tâ.p
này pha’i khác rô˜ng.
- Mô.t tâ.p hũ.u ha.n (có thê’ rô˜ng) hoă.c dê´m du.o..c các biê´n hàm
fjn (n, j ≥ 1)
- Mô.t tâ.p hũ.u ha.n (có thê’ rô˜ng) hoă.c dê´m du.o..c các hă` ng tu’. ai (i ≥ 1)

` : 2 loa.i
2) Các tiên dê
3.4. Lý thuyê´t tân tù. câ´p 1K 101

` logic: vó.i công thú.c A, B, C tuỳ ý trong K


(i) Tiên dê
(A1) (A → (B → A))
(A2) (A → (B → C)) → ((A → B) → (A → C))
(A3) (¬B → ¬A) → ((¬B → A) → B)
(A4) ∀xi A(xi ) → A(t), trong dó term t là tu.. do dô´i vó.i biê´n
xi trong A(xi)
(A5) ∀xi (A → B) → (A → ∀xiB), trong dó A không chú.a các
vi. trı́ tu.. do cu’a biê´n xi
` riêng:
(ii) Tiên dê
Các tiên dê ` nào dó, nhu.ng không mô ta’ cu. thê’, tuỳ thuô.c vào
tù.ng hê. riêng biê.t.

3) Qui tă´c dâ˜n xuâ´t: 2 qui tă´c

(i) Modus Ponens (Kê´t luâ.n)


Nê´u A và A → B thı̀ B

(ii) GEN (Tô’ng quát hoá):


Tù. A kéo theo ∀x A i

Chú ý

(1) Lý thuyê´t tân tù. câ´p 1K không chú.a các tiên dê
` riêng du.o..c go.i là Hê.
toán tân tù. câ´p 1 (viê´t tă´t là PP)

(2) Dô´i vó.i mô.t mô hı̀nh cu’a lý thuyê´t tân tù. câ´p 1K, ta hiê’u là mô.t minh
hoa. mà trong dó mo.i tiên dê ` u dô`ng nhâ´t dúng.
` dê

(3) Nê´u ta áp du.ng qui tă´c Modus Ponens và Tô’ng quát hoá dô´i vó.i các
công thú.c dô`ng nhâ´t dúng trong mô.t minh hoa. dã cho thı̀ kê´t qua’ ta
nhâ.n du.o..c cũng là mô.t công thú.c dô`ng nhâ´t dúng trong minh hoa. dó.
102 Chu.o.ng 3. Hê. toán tân tù.

(4) Dô´i vó.i hai tiên dê


` (A4) và (A5), ngu.ò.i ta du.a ra mô.t sô´ ha.n chê´ câ
`n
thiê´t, nê´u không sẽ dâ˜n dê´n sai, chă’ ng ha.n:
∗ Gia’ su’. A(x1 ) = ¬∀x2 A21(x1, x2 ) và gia’ su’. term t là x2. Khi dó rõ
ràng term t = x2 là không tu.. do dô´i vó.i biê´n x1 trong công thú.c A(x1).
Xét công thú.c sau:

∀x1(¬∀x2 A21(x1, x2 )) → ¬∀x2A21 (x2, x2)

Công thú.c này có da.ng cu’a tiên dê


` (A4):

∀x1 A(x1) → A(t),

nhu.ng term t = x2 là không tu.. do dô´i vó.i x1 trong A(x1).


Ta xây du..ng minh hoa. nhu. sau:
- Tru.ò.ng minh hoa. D = {1, 2, 3, . . . }
- Tân tù. A2 là “=”
1

Khi dó ta có:

A = ∀x1(¬∀x2 A21(x1, x2 )) = ∀x1∃x2(x1 6= x2 ) = True

nhu.ng công thú.c B = ¬∀x2 A21(x2, x2 ) nhâ.n giá tri. False.


` (A4) là sai trong tru.ò.ng ho..p term t là không tu.. do dô´i
Vâ.y tiên dê
vó.i x .
i

∗ Dô´i vó.i tiên dê


` (A5), nê´u ha.n chê´ bi. vi pha.m, tú.c là x1 là biê´n tu..
do trong công thú.c A, thı̀ khi dó kê´t qua’ cũng dâ˜n dê´n sai, chă’ ng ha.n:
gia’ su’. hai công thú.c A và B dê` u là A11(x1 ). Khi dó x1 là biê´n tu.. do
trong A.
` (A5) sau dây:
Ta xét da.ng tiên dê

∀x1(A11 (x1) → A11 (x1)) → (A11(x1) → ∀x1A11(x1))

` n gia’ thiê´t: ∀x1(A11(x1 ) → A11 (x1)) nhâ.n giá tri.


Khi dó rõ ràng phâ
True, nhu.ng phâ` n kê´t luâ.n: (A11(x1 ) → ∀x1A11 (x1)) nhâ.n giá tri. False,
3.4. Lý thuyê´t tân tù. câ´p 1K 103

chă’ ng ha.n nê´u ta cho.n tru.ò.ng minh hoa.: D = {1, 2, 3, . . . } và tân tù.
A11 là
A11 (x) =def “x là chă˜n”

khi dó ta có phâ ` n kê´t luâ.n: ∀x1A11 (x1) nhâ.n giá tri. False, còn phâ
` n gia’
thiê´t: A1(x1 ), trong dó x1 là biê´n tu. do, nên nó nhâ.n giá tri. True vó.i
1 .
x1 là sô´ chă˜n, và ta có kê´t qua’ là False. Do dó trong tru.ò.ng ho..p, nê´u
xi là biê´n tu.. do trong công thú.c A thı̀ tiên dê ` (A5) sẽ nhâ.n giá tri.
False.

3.4.2 ` Lý thuyê´t tân tù. câ´p 1K


Mô.t vài thı́ du. vê
´p thú. tu.. bô. phâ.n
1) Lý thuyê´t să
Gia’ su’. K chú.a duy nhâ´t mô.t tân tù. A21 :

A21(y, z) =def “y < z”

và không chú.a các biê´n hàm và hă` ng.


Ta ký hiê.u
A21 (x1, x2) tu.o.ng ú.ng là “x1 < x2”
¬A21 (x1, x2) tu.o.ng ú.ng là “x1 6< x2 ”
` riêng gô`m có:
Các tiên dê

(1) ∀x1(x1 6< x2 ) (không pha’n xa.)


(2) ∀x1∀x2∀x3 (x1 < x2 ∧ x2 < x3 → x1 < x3 ) (bă´c câ
` u)

Khi dó mô˜i mô.t mô hı̀nh cu’a lý thuyê´t này ngu.ò.i ta go.i là mô.t câ´u
trúc să´p thú. tu.. bô. phâ.n.

2) Lý thuyê´t nhóm


Gia’ su’. K có mô.t tân tù. A21:

A21(t, s) =def “t = s”,


104 Chu.o.ng 3. Hê. toán tân tù.

mô.t biê´n hàm f12 : f12 (t, s) =def “t + s”, và mô.t hă` ng tu’. a1 = 0. Các
` riêng gô`m có:
tiên dê

(1) ∀x1∀x2∀x3 (x1 + (x2 + x3) = (x1 + x2) + x3) (kê´t ho..p)
(2) ∀x1(0 + x1 = x1) ` n tu’. do.n vi.)
(tô`n ta.i phâ
(3) ∀x1∃x2(x2 + x1 = 0) ` n tu’. dô´i)
(tô`n ta.i phâ
(4) ∀x1(x1 = x1 ) (pha’n xa.)
(5) ∀x1∀x2(x1 = x2 → x2 = x1 ) (dô´i xú.ng)
(6) ∀x1∀x2∀x3 (x1 = x2 → (x2 = x3 → x1 = x3)) (bă´c câ
` u)
(7) ∀x1∀x2∀x3 (x2 = x3 → (x1 + x2 = x1 + x3 ∧ x2 + x1 = x3 + x1 ))
(phép thê´ cu’a dă’ ng thú.c)
Khi dó mô˜i mô.t mô hı̀nh cu’a lý thuyê´t này ngu.ò.i ta go.i là mô.t
nhóm. Ngoài ra nê´u nó thoa’ mãn tiên dê` sau:
(8) ∀x1∀x2(x1 + x2 = x2 + x1) (giao hoán)

thı̀ nhóm dó du.o..c go.i là nhóm giao hoán hay nhóm Abel.

3.5 ˜n trong logic tân tù.


Di.nh lý suy diê
Dô´i vó.i di.nh lý suy diê˜n trong logic mê.nh dê
` ta không thê’ chuyê’n tu.o.ng tu..
sang di.nh lý suy diê˜n trong logic tân tù. mô.t cách dê˜ dàng, chă’ng ha.n: Vó.i
công thú.c A nào dó, A `K ∀x1A, ta suy ra: `K A → ∀x1A, tú.c là công
thú.c (A → ∀x1A) là mô.t di.nh lý trong lý thuyê´t tân tù. câ´p 1K. Diê ` u này
là sai. Ta xét công thú c A có da.ng sau dây: A = A1 (x1) và minh hoa. du.o..c
. 1

xây du..ng nhu. sau:


- Tru.ò.ng minh hoa. D = {1, 2, 3, . . . }
- Tân tù. A11 : A11(x) =def “x là chă˜n”
Khi dó dê˜ dàng ta có:

∀x1A11(x1 ) = False(1)
3.5. Di.nh lý suy diê˜n trong logic tân tù. 105

P
Xét mô.t dãy s = (b1 , b1, . . . ) ∈ . Ta thâ´y ră` ng: A11 (x1) = True(2), khi và
chı’ khi b1 là mô.t sô´ chă˜n cu’a D.
Do dó tù. (1) và (2) ta tı́nh du.o..c công thú.c B = (A11(x1 ) → ∀x1A11(x1))
nhâ.n giá tri. False trên dãy s = (b1 , b2, . . . ). Vı̀ s = (b1 , b2, . . . ) du.o..c cho.n
tuỳ ý, nên công thú.c B không logic dô`ng nhâ´t dúng. Ho.n nũ.a, ta dê˜ dàng
thâ´y ră` ng mô˜i mô.t di.nh lý cu’a lý thuyê´t tân tù. câ´p 1K là logic dô`ng nhâ´t
dúng (di.nh lý 3.6.7).
Vâ.y công thú.c (A11 (x1) → ∀x1 A11(x1)) - là không di.nh lý trong K.

. . . .
` u này buô.c ta pha’i có nhũ ng thay dô’i thı́ch ho. p, dê’ nhâ.n du o. c di.nh
Diê
lý suy diê˜n mô.t cách dúng dă´n trong logic tân tù..

Di.nh nghı̃a 3.5.1 Gia’ su’. Γ là mô.t tâ.p các công thú.c, và A là mô.t công
thú.c cu’a Γ. Gia’ su’. B1 , B2, . . . , Bn là mô.t dâ˜n xuâ´t tù. Γ. Khi dó ta nói ră` ng
công thú.c Bi là phu. thuô.c vào A trong dâ˜n xuâ´t trên, khi và chı’ khi:

(i) Bi hoă.c là A hoă.c

(ii) Bi là dâ˜n du.o..c tru..c tiê´p tù. các công thú.c dú.ng tru.ó.c nó nhò. qui tă´c
dâ˜n xuâ´t Modus Ponens hoă.c GEN, trong dó ı́t nhâ´t mô.t trong các
công thú.c dó phu. thuô.c vào A.

Thı́ du. 3.5.1 A, ∀x1A → C ` ∀x1 C

(B1) A (gia’ thiê´t)

(B2) ∀x1A (B1, GEN)

(B3) ∀x1A → C (gia’ thiê´t)

(B4) C (B2, B3 , MP)

(B5) ∀x1C (B4, GEN)


.
O’ dây

B1 phu. thuô.c vào A;


106 Chu.o.ng 3. Hê. toán tân tù.

B2 phu. thuô.c vào A;

B3 phu. thuô.c vào ∀x1A → C;

B4 phu. thuô.c vào A và ∀x1A → C;

B5 phu. thuô.c vào A và ∀x1A → C.

Di.nh lý 3.5.1 Nê´u B không phu. thuô.c vào A trong suy diê˜n
Γ, A ` B thı̀ Γ ` B. Nê´u B không phu. thuô.c vào A trong suy diê˜n
Γ, A ` B thı̀ Γ ` B.

Chú.ng minh
Gia’ su’. B1, B2 , . . . , Bn là mô.t dâ˜n xuâ´t tù. Γ ∪ {A}, trong dó B không
phu. thuô.c vào A. Chú.ng minh bă` ng qui na.p theo dô. dài cu’a dâ˜n xuâ´t
i : i = 1, 2, . . . , n.
Gia’ thiê´t mê.nh dê` dã dúng dô´i vó.i mo.i dâ˜n xuâ´t có dô. dài < n. Ta câ `n
.
chú ng minh mê.nh dê . . .
` cũng dúng vó i i = n. Ta xét các tru ò ng ho. p sau:.
- Nê´u B thuô.c vào Γ hoă.c B là mô.t tiên dê ` thı̀ ta du.o..c Γ ` B (theo chú
ý 2 chu.o.ng 2 trang 29).
- Nê´u B là dâ˜n du.o..c tru..c tiê´p tù. mô.t hoă.c hai công thú.c dú.ng tru.ó.c nó
thı̀ khi dó, vı̀ B không phu. thuô.c vào A, nên các công thú.c dú.ng tru.ó.c nó
cũng không phu. thuô.c vào A. Do dó theo gia’ thiê´t qui na.p các công thú.c
này dú.ng tru.ó.c nó dê ` u dâ˜n du.o..c tù. Γ mô.t cách do.n phu.o.ng. Vı̀ vâ.y suy ra
ră` ng B cũng dâ˜n du.o..c tù. Γ. 

Di.nh lý 3.5.2 (di.nh lý suy diê˜n trong logic tân tù.) Gia’ su’. Γ, A ` B và có
mô.t suy diê˜n cu’a B tù. Γ và A, trong dó không su’. du.ng qui tă´c GEN cho
mô.t công thú.c nào phu. thuô.c vào A vó.i biê´n lu.o..ng tù. là mô.t biê´n tu.. do cu’a
công thú.c A. Khi dó
Γ`A→B

Chú.ng minh:
3.5. Di.nh lý suy diê˜n trong logic tân tù. 107

Gia’ su’. B1, B2, ..., Bn = B là dâ˜n xuâ´t cu’a B tù. Γ ∪ {A} thoa’ mãn các gia’
thiê´t cu’a di.nh lý dã cho. Ta sẽ chú.ng minh bă` ng qui na.p theo dô. dài dâ˜n
xuâ´t i = 1...n : Γ ` A → Bi .
- Nê´u Bi là mô.t tiên dê
` hoă.c là phâ` n tu’. cu’a Γ thı̀ Γ ` A → Bi , vı̀
Bi → (A → Bi ) là tiên dê `.
- Nê´u Bi là A thı̀ Γ ` A → Bi , vı̀ theo bô’ dê ` : ` A → A.
- Nê´u tô`n ta.i j, k < i sao cho Bk = Bj → Bi thı̀ theo gia’ thiê´t qui na.p
Γ ` A → Bj và Γ ` A → (Bj → Bi ). Do dó ta có Γ ` A → Bi bă` ng cách
áp du.ng tiên dê` A2 và qui tă´c MP. Cuô´i cùng, gia’ su’. tô`n ta.i j < i sao cho
Bi = ∀xk Bj . Khi dó theo gia’ thiê´t qui na.p Γ ` A → Bj và hoă.c là Bj không
phu. thuô.c vào A hoă.c xk không pha’i là biê´n tu.. do cu’a A.
∗ Nê´u Bj không phu. thuô.c vào A thı̀ khi dó theo di.nh lý 3.5.1 ta có:
Γ ` Bj , và tiê´p theo su’. du.ng qui tă´c GEN ta du.o..c: Γ ` ∀xk Bj . Do dó ta có:
Γ ` Bi .
Theo tiên dê` A1: ` Bi → (A → Bi ). Vâ.y ta có ngay kê´t qua’ Γ ` A → Bi
nhò. qui tă´c MP.
∗ Nê´u xk không pha’i là biê´n tu.. do trong A thı̀ khi dó theo tiên dê` A5:

` ∀xk (A → Bj ) → (A → ∀xk Bj )

Vı̀ ră` ng Γ ` A → Bj , nên theo qui tă´c GEN: Γ ` ∀xj (A → Bj ), và do


vâ.y ta có kê´t qua’: Γ ` A → ∀xk Bj nhò. qui tă´c MP, tú.c là

Γ ` A → Bi .

Vâ.y ta dã chú.ng minh xong công thú.c:

Γ ` A → Bi ∀i = 1...n

Trong tru.ò.ng ho..p dă.c biê.t i = n, ta có:

Γ ` A → Bn hay Γ ` A → B


108 Chu.o.ng 3. Hê. toán tân tù.

Hê. qua’ 3.5.1

a) Nê´u Γ, A ` B không su’. du.ng qui tă´c GEN vó.i biê´n tu.. do có mă.t trong
A thı̀ Γ ` A → B.

b) Nê´u A là mô.t công thú.c dóng và Γ, A ` B thı̀ Γ ` A → B.

Thı́ du. 3.5.2

a) Chú.ng minh ră` ng: ` ∀x1∀x2A → ∀x2∀x1A.


Chú.ng minh:

1. ∀x1∀x2 A (gia’ thiê´t)


2. ∀x1∀x2 A → ∀x2A (A4)
3. ∀x2A (1, 2, MP)
4. ∀x2A → A (A4)
5. A (3, 4, MP)
6. ∀x1A (5, GEN)
7. ∀x2∀x1 A (6, GEN)

Tù. 1 - 7 ta có ∀x1∀x2A ` ∀x2∀x1A, trong dó không su’. du.ng qui tă´c
GEN dô´i vó.i biê´n tu.. do có mă.t trong ∀x1 ∀x2A. Do dó theo hê. qua’
3.5.1(a) ta có:
` ∀x1 ∀x2A → ∀x2∀x1A.

b) Nê´u term t là tu.. do dô´i vó.i biê´n xi trong A(xi ) thı̀ ∀xiA(xi ) ` A(t) và
A(t) ` ∃xiA(xi ).
Chú.ng minh :

(1) ∀xi A(xi) ` A(t)


Xây du..ng dâ˜n xuâ´t nhu. sau:
1. ∀xiA(xi ) (gia’ thiê´t)
3.5. Di.nh lý suy diê˜n trong logic tân tù. 109

2. A(xi) (1, A4, MP)


3. A(t) (2, thê´ {xi/t})

Vâ.y tù. 1-3 ta có:

∀xi A(xi) ` A(t)


Dê´n dây áp du.ng thêm hê. qua’ 3.5.1(a), ta thu du.o..c di.nh lý sau
dây:

` ∀xiA(xi ) → A(t).

(2) A(t) ` ∃xiA(xi )


Xây du..ng dâ˜n xuâ´t nhu. sau:

1. A(t) (gia’ thiê´t)


2. ∀xi¬A(xi ) → ¬A(t) (A4)
3. (∀xi¬A(xi ) → ¬A(t)) → (A(t) → ¬∀xi ¬A(xi)) (A3)
4. A(t) → ¬∀xi ¬A(xi ) (2, 3, MP)
5. ¬∀xi¬A(xi ) (1, 4, MP)
6. ∃xiA(xi ) (∃xi A(xi) ≡ ¬∀xi ¬A(xi))

Vâ.y tù. 1 – 6 ta có:

A(t) ` ∃xiA(xi )

Áp du.ng thêm hê. qua’ 3.5.1(a) ta có di.nh lý sau:

` A(t) → ∃xi A(xi).


110 Chu.o.ng 3. Hê. toán tân tù.

3.6 ˜n và dâ


Tı́nh phi mâu thuâ ` y du’ cu’a logic
tân tù.
3.6.1 Các khái niê.m và di.nh nghı̃a
Khái niê.m lý thuyê´t tân tù. câ´p 1 du.o..c xác di.nh khá rô.ng rãi nhă` m bao hàm
mô.t pha.m vi rô.ng các lý thuyê´t logic và lý thuyê´t toán ho.c mà ta thu.ò.ng
gă.p. Hê. toán tân tù. câ´p 1 (viê´t tă´t là PP) là mô.t lý thuyê´t tân tù. câ´p 1,
trong dó nó chú.a các tâ.p dê´m du.o..c nhu. các ký hiê.u hă` ng dô´i tu.o..ng, ký hiê.u
biê´n hàm, và ký hiê.u tân tù., nhu.ng không chú.a các tiên dê ` riêng. Các lý
. . .
thuyê´t toán ho.c thu ò ng chú a các ký hiê.u hă` ng, ký hiê.u biê´n hàm, ký hiê.u
tân tù. co. ba’n (tú.c là các thuô.c tı́nh hoă.c các quan hê. riêng cu’a lý thuyê´t)
` riêng cu’a lý thuyê´t dó.
và các tiên dê

Di.nh nghı̃a 3.6.1 Mô.t mô hı̀nh cu’a lý thuyê´t tân tù. câ´p 1K là mô.t minh
` riêng cu’a K dê
hoa. cu’a K, trong dó mo.i tiên dê ` u dúng trong minh hoa. dó.
Dă.c biê.t, nê´u K = P P thı̀ mo.i minh hoa. cu’a PP dê` u du.o..c xem là mô
hı̀nh cu’a PP.

Di.nh nghı̃a 3.6.2


- Lý thuyê´t tân tù. câ´p 1K du.o..c go.i là phi mâu thuâ˜n (ngũ. nghı̃a -
Semantic), nê´u mo.i di.nh lý cu’a K dê ` u là công thú.c dúng trong mo.i mô hı̀nh
cu’a K.
- Lý thuyê´t tân tù. câ´p mô.t K du.o..c go.i là dâ
` y du’ (ngũ. nghı̃a), nê´u mô˜i
mô.t công thú.c dúng trong mo.i mô hı̀nh cu’a K dê ` u là di.nh lý cu’a lý thuyê´t
K.

Di.nh nghı̃a 3.6.3


- Lý thuyê´t tân tù. câ´p 1K du.o..c go.i là phi mâu thuâ˜n (hı̀nh thú.c - formal),
nê´u mo.i công thú.c A cu’a K dê ` u không thê’ có ca’ ` A và ` ¬A.
- Lý thuyê´t tân tù. câ´p 1K du.o..c go.i là dâ ` y du’ (hı̀nh thú.c), nê´u dô´i vó.i
mo.i công thú.c dóng A: hoă.c là ` A hoă.c là ` ¬A.
` y du’ cu’a logic tân tù.
3.6. Tı́nh phi mâu thuâ˜n và dâ 111

Chú ý 1
∗ Nê´u K là mâu thuâ˜n (hı̀nh thú.c) thı̀ có mô.t công thú.c A
sao cho ` A và ` ¬A. Do dó theo hê. qua’ 2.1.2 (chu.o.ng 2):
`x ¬A → (A → B) và qui tă´c Modus Ponens suy ra ră ` ng mo.i công thú.c bâ´t
` u là di.nh lý trong K.
kỳ B dê
Bo’.i vâ.y, nê´u trong K tô`n ta.i mô.t công thú.c không pha’i là di.nh lý thı̀ lý
thuyê´t K dó là phi mâu thuâ˜n (hı̀nh thú.c).
∗ Nê´u lý thuyê´t tân tù. câ´p 1K có chú.a ı́t nhâ´t mô.t ký hiê.u tân tù. P
không có mă.t trong các tiên dê` riêng thı̀ ta không có `K A và `K ¬A, trong
dó A là công thú c dóng ∀x1P (x1). Theo nghı̃a dó thı̀ lý thuyê´t tân tù. câ´p 1
.
PP là lý thuyê´t không dâ` y du’ hı̀nh thú.c, vı̀ ră
` ng công thú.c dóng ∀x1P (x1)
chu.a thê’ xem là mê.nh dê ` xác di.nh mà còn phu. thuô.c vào minh hoa., trong
. .
dó P du o. c xác di.nh. Tı́nh dâ ` y du’ (hı̀nh thú.c) chı’ có ý nghı̃a dô´i vó.i các lý
thuyê´t toán ho.c riêng chù.ng nào trong lý thuyê´t dó không có các ký hiê.u tân
tù. (hoă.c biê´n hàm) nào mà nô.i dung cu’a nó không du.o..c qui di.nh bo’.i các
` riêng cu’a lý thuyê´t dó.
tiên dê

3.6.2 ˜n cu’a lý thuyê´t tân tù. câ´p 1


Tı́nh phi mâu thuâ
PP
Ta dã biê´t nê´u K là mô.t lý thuyê´t tân tù. câ´p 1 thı̀ mo.i di.nh lý trong K dê
`u
là công thú.c dúng trong mo.i mô hı̀nh cu’a K.
Di.nh lý 3.6.1 Hê. toán tân tù. câ´p 1PP là phi mâu thuâ˜n (ngũ. nghı̃a), nghı̃a
` ng dúng trong mo.i minh hoa. cu’a PP.
` u là hă
là mo.i di.nh lý cu’a PP dê
Di.nh lý 3.6.2 Hê. toán tân tù. câ´p 1 PP là phi mâu thuâ˜n (hı̀nh thú.c).
Chú.ng minh:
Ta xét ánh xa. h biê´n dô’i mô.t công thú.c tân tù. thành mô.t công thú.c
` bă` ng cách sau dây:
mê.nh dê
- Cho công thú.c tân tù. A, ta loa.i bo’ tâ´t ca’ các dâ´u lu.o..ng tù. và các
terms cùng vó.i các dâ´u ngoă.c, dâ´u phâ’y tu.o.ng ú.ng. Kê´t qua’ thu du.o..c là
mô.t công thú.c mê.nh dê
` h(A).
112 Chu.o.ng 3. Hê. toán tân tù.

- Nê´u A là mô.t di.nh lý trong PP thı̀ h(A) cũng là di.nh lý trong logic
mê.nh dê` L.
- Nê´u PP là mâu thuâ˜n, nghı̃a là tô`n ta.i công thú.c A sao cho `P P A và
`P P ¬A thı̀ khi dó trong logic mê.nh dê ` L, ta có `x h(A) và `x h(¬A) (tú.c
là `x ¬h(A)).
` u này mâu thuâ˜n vó.i di.nh lý 2.3.3 trong chu.o.ng 2: Hê. L là phi mâu
Diê
thuâ˜n.
Vâ.y ta có lý thuyê´t tân tù. câ´p 1 PP là phi mâu thuâ˜n (hı̀nh thú.c). 

3.6.3 Mô.t sô´ di.nh lý trong lý thuyê´t tân tù. câ´p 1 K
Di.nh nghı̃a 3.6.4 Gia’ su’. xi và xj là hai biê´n khác nhau, A(xi ) không chú.a
biê´n tu.. do xj , xj tu.. do dô´i vó.i biê´n xi trong A(xi ), và A(xj ) là công thú.c
nhâ.n du.o..c tù. A(xi) bă` ng cách thê´ xj vào mo.i vi. trı́ tu.. do cu’a xi trong A(xi ).
Khi dó ta nói ră` ng A(xi ) và A(xj ) là dô`ng da.ng vó.i nhau.
Nhu. vâ.y trong tru.ò.ng ho..p này, ta cũng có A(xj ) không chú.a biê´n tu.. do
xi và xi là tu.. do dô´i vó.i xj trong A(xj ).

Bô’ dê
` 3.6.1 Nê´u A(xi ) và A(xj ) là dô`ng da.ng thı̀

` ∀xi A(xi) ↔ ∀xj A(xj )

Chú.ng minh
Theo tiên dê` (A4): ` ∀xi A(xi) → A(xj ).
Su’. du.ng qui tă´c GEN: ` ∀xj (∀xi A(xi) → A(xj )).
Mă.t khác theo tiên dê` (A5): ` ∀xi A(xi) → ∀xj A(xj ) nhò. qui tă´c Modus
Ponens.
Bă` ng cách tu.o.ng tu.. ta nhâ.n du.o..c:

` ∀xj A(xj ) → ∀xi A(xi).

Do dó theo công thú.c dô`ng nhâ´t dúng: (A1 → (A2 → A1 ∧ A2)) và áp
` n qui tă´c MP ta có
du.ng 2 lâ

` ∀xi A(xi) ↔ ∀xj A(xj ).


` y du’ cu’a logic tân tù.
3.6. Tı́nh phi mâu thuâ˜n và dâ 113

Di.nh lý 3.6.3 Nê´u công thú.c dóng ¬A cu’a lý thuyê´t K là không dâ˜n du.o..c
trong K thı̀ lý thuyê´t K nhâ.n du.o..c tù. K bă
` ng cách thêm A nhu. mô.t tiên
0

` là phi mâu thuâ˜n (hı̀nh thú.c).


dê

Chú.ng minh: Pha’n chú.ng


Gia’ su’. ngu.o..c la.i K là mâu thuâ˜n. Khi dó tô`n ta.i mô.t công thú.c B sao
0

cho `K 0 B và `K 0 ¬B. Mă.t khác, ta có: `L (B → (¬B → ¬A)), nên ta cũng
có: `K 0 (B → (¬B → ¬A)). Áp du.ng 2 lâ ` n qui tă´c MP ta có: `K 0 ¬A. Do
dó A `K ¬A.
Theo gia’ thiê´t A là công thú.c dóng, nên theo hê. qua’ 3.5.1 (b) cu’a di.nh
lý suy diê˜n ta có:
`K A → ¬A.

Ho.n nũ.a, ta có: `L ((A → ¬A) → ¬A), nên ta cũng có: `K ((A → ¬A) →
¬A). Áp du.ng qui tă´c MP ta có: `K ¬A, trái vó.i gia’ thiê´t cu’a di.nh lý. Vâ.y
0
K là phi mâu thuâ˜n. 

` 3.6.2 Tâ.p ho..p tâ´t ca’ các biê’u thú.c (dãy hũ.u ha.n các ký hiê.u) cu’a
Bô’ dê
lý thuyê´t tân tù. câ´p 1 K là dê´m du.o..c. Diê
` u này cũng dúng cho các tru.ò.ng
ho..p là tâ.p ho..p các term, tâ.p ho..p các công thú.c, tâ.p ho..p các công thú.c
dóng.

Chú.ng minh
Tru.ó.c hê´t ta thiê´t lâ.p mô.t hàm sô´ le’ phân biê.t g(u) dô´i vó.i mô˜i mô.t ký
hiê.u u nhu. sau: g(() = 3; g()) = 5; g(, ) = 7; g(¬) = 9; g(→) = 11; g(xk ) =
5 + 8k; g(ak ) = 7 + 8k; g(fkn ) = 9 + 8(2n 3k ); g(Ank ) = 11 + 8(2n 3k ).
Khi dó dô´i vó.i mô.t biê’u thú.c u1 u2...ur tu.o.ng ú.ng là sô´ 2g(u1 ) 3g(u2 )
... pr r , trong dó pi là sô´ nguyên tô´ thú. i. Ta có thê’ dê´m du.o..c
g(u )

tâ´t ca’ các biê’u thú.c theo thú. tu.. cu’a các con sô´ liên quan
dê´n chúng. 
114 Chu.o.ng 3. Hê. toán tân tù.

Di.nh nghı̃a 3.6.5 Mô.t lý thuyê´t K có cùng các ký hiê.u co. ba’n nhu. lý
0

thuyê´t K du.o..c go.i là mo’. rô.ng cu’a K, nê´u mo.i di.nh lý cu’a K cũng là di.nh
0
lý cu’a K .

Chú ý 2 Dê’ chú.ng minh K là mo’. rô.ng cu’a K chı’ câ ` n chú.ng minh ră` ng
0

0
mô˜i mô.t tiên dê
` riêng cu’a K là mô.t di.nh lý trong K .

Di.nh lý 3.6.4 (Lindenbaum)


Nê´u K là mô.t lý thuyê´t tân tù. câ´p 1 phi mâu thuâ˜n thı̀ tô`n ta.i mô.t lý
thuyê´t mo’. rô.ng cu’a K phi mâu thuâ˜n và dâ ` y du’ (theo nghı̃a hı̀nh thú.c).

Chú.ng minh
Theo bô’ dê` 3.6.2, tâ.p ho..p tâ´t ca’ các công thú.c dóng cu’a K là dê´m du.o..c,
chă’ng ha.n theo thú. tu.. sau: B1, B2 , B3, .... Ta xây du..ng mô.t dãy các lý thuyê´t
J0 , J1 , J2, .... nhu. sau:
- J0 = K.
- Gia’ thiê´t dã xác di.nh Jn (n ≥ 0).
- Nê´u `Jn ¬Bn+1 thı̀ dă.t Jn+1 = Jn , còn trái la.i, nê´u không pha’i `Jn
¬Bn+1 thı̀ dă.t Jn+1 là lý thuyê´t thu du.o..c tù. Jn bă` ng cách thêm Bn+1 nhu.
là mô.t tiên dê` . Theo di.nh lý 3.6.3, nê´u Jn là phi mâu thuâ˜n thı̀ Jn+1 cũng
phi mâu thuâ˜n. Do dó mo.i lý thuyê´t Jn (n ≥ 0) dê ` u phi mâu thuâ˜n. Bây
. . . ` gô`m tâ´t ca’ các tiên dê
giò ta dă.t J là lý thuyê´t tân tù câ´p 1 vó i hê. tiên dê `
cu’a Ji (i ≥ 0).
Rõ ràng Jn+1 là mo’. rô.ng cu’a Jn và J là mo’. rô.ng cu’a mo.i Ji , kê’ ca’
J0 = K.
Dê’ chú.ng minh ră` ng J là phi mâu thuâ˜n, ta pha’i chú.ng minh mo.i Ji dê`u
là phi mâu thuâ˜n, vı̀ ră` ng mô.t suy diê˜n cu’a mâu thuâ˜n trong J du.o..c thu..c
hiê.n chı’ trong mô.t sô´ hũ.u ha.n các tiên dê
` , cũng là mô.t suy diê˜n cu’a mâu
thuâ˜n trong mô.t Jn nào dó. Ta chú.ng minh tı́nh phi mâu thuâ˜n cu’a mo.i Ji
bă` ng qui na.p.
- Theo gia’ thiê´t J0 = K là phi mâu thuâ˜n.
- Gia’ su’. ră` ng Ji là phi mâu thuâ˜n.
Nê´u Ji+1 = Ji thı̀ Ji+1 là phi mâu thuâ˜n.
` y du’ cu’a logic tân tù.
3.6. Tı́nh phi mâu thuâ˜n và dâ 115

Nê´u Ji+1 6= Ji và ho.n nũ.a, theo di.nh nghı̃a cu’a Ji+1 : ¬Bi+1 là không dâ˜n
du.o..c trong Ji , nên khi dó theo di.nh lý 3.6.3 thı̀ Ji+1 cũng phi mâu thuâ˜n.
Do vâ.y Ji+1 là phi mâu thuâ˜n, nê´u Ji là phi mâu thuâ˜n, và tù. dó ta có J
là phi mâu thuâ˜n. Ta chú.ng minh tı́nh dâ ` y du’ cu’a J . Gia’ su’. A là công
thú.c dóng cu’a K. Khi dó A = Bj+1 dô´i vó.i j ≥ 0 nào dó. Bo’.i vâ.y hoă.c là
`Jj ¬Bj+1 hoă.c `Jj+1 Bj+1 , vı̀ ră` ng nê´u không pha’i `Jj ¬Bj+1 thı̀ Bj+1 du.o..c
bô’ sung vào Jj+1 nhu. là mô.t tiên dê` . Tù. dó dâ˜n tó.i hoă.c là `J ¬Bj+1 hoă.c
là `J Bj+1 . Vâ.y J là mô.t mo’. rô.ng dâ
` y du’ và phi mâu thuâ˜n cu’a K. 
116 Chu.o.ng 3. Hê. toán tân tù.

Di.nh lý 3.6.5 (Gödel)


Mo.i lý thuyê´t tân tù. câ´p 1 K phi mâu thuâ˜n dê ` u có mô.t mô hı̀nh dê´m
. . .
du o. c (tú c là mô hı̀nh có miê` n dô´i tu o. ng là dê´m du.o..c).
. .

Chú.ng minh:
Gia’ su’. K là lý thuyê´t tân tù. câ´p 1 phi mâu thuâ˜n.
1) Ta go.i K0 là lý thuyê´t nhâ.n du.o..c tù. K bă` ng cách thêm vào K mô.t tâ.p
dê´m du.o..c {b1 , b2, ...} các ký hiê.u hă` ng dô´i tu.o..ng mó.i. Ta chú.ng minh ră` ng
K0 là phi mâu thuâ˜n.
Thâ.t vâ.y, gia’ su’. ngu.o..c la.i, K0 là mâu thuâ˜n. Khi dó có tô`n ta.i mô.t công
thú.c A sao cho có mô.t suy diê˜n trong K0 cu’a A ∧ ¬A.
Ta thay thê´ trong suy diê˜n này mô˜i mô.t xuâ´t hiê.n cu’a bi du.o..c thay bo’.i
mô.t ký hiê.u biê´n chu.a có mă.t trong suy diê˜n và tru.ó.c dó chu.a du.o..c dùng
dê’ thay thê´. Dê˜ dàng thâ´y ră` ng viê.c thay thê´ này ta thu du.o..c mô.t suy diê˜n
trong K cu’a mô.t công thú.c da.ng A ∧ ¬A , tú.c là mâu thuâ˜n. Diê
0 0
` u này trái
vó.i gia’ thiê´t K là phi mâu thuâ˜n.
Vâ.y ta có K0 là phi mâu thuâ˜n.
2) Theo bô’ dê ` 3.6.2, tâ.p tâ´t ca’ các công thú.c chú.a không quá mô.t biê´n tu..
do trong K0 là tâ.p dê´m du.o..c, chă’ng ha.n theo cách dánh sô´ sau dây:

F1(xi1 ), F2(xi2), ..., Fk(xik ), ...

(xik là biê´n tu.. do cu’a Fk , nê´u Fk không chú.a biê´n tu.. do; trái la.i, dă.t
xik = x1). Ta cho.n mô.t dãy bj1, bj2 , ..., bjk , ... tù. các ký hiê.u hă` ng mó.i sao
cho bjk không chú.a trong F1, F2 , ...., Fk và khác bj1 , bj2 , ..., bjk−1.
Xét công thú.c du.o..c xác di.nh nhu. sau:

Sk = ¬∀xk Fk (xik ) → ¬Fk (bjk ).

Gia’ su’. Kn là lý thuyê´t tân tù. câ´p 1 nhâ.n du.o..c tù. K0 bă` ng cách thêm
S1 , S2 , ..., Sn nhu. là các tiên dê
` mó.i, và K∞ là lý thuyê´t nhâ.n du.o..c bă` ng
cách thêm tâ´t ca’ các công thú.c Si nhu. là các tiên dê
` vào K0 .
Mô˜i mô.t suy diê˜n trong K∞ chı’ chú.a mô.t sô´ hũ.u ha.n các Si , và do dó
nó cũng là suy diê˜n trong mô.t Kn nào dó. Do vâ.y, nê´u mo.i Ki là phi mâu
` y du’ cu’a logic tân tù.
3.6. Tı́nh phi mâu thuâ˜n và dâ 117

thuâ˜n thı̀ K∞ cũng phi mâu thuâ˜n. Dê’ chú.ng minh ră` ng mo.i Ki là phi mâu
thuâ˜n, ta chú.ng minh bă` ng qui na.p.
- K0 là phi mâu thuâ˜n.
- Gia’ su’. Kn−1 là phi mâu thuâ˜n, nhu.ng Kn là mâu thuâ˜n (n ≥ 1). Khi
dó nhu. ta dã biê´t mô˜i mô.t công thú.c là dâ˜n du.o..c trong Kn theo công thú.c
dô`ng nhâ´t dúng A1 → (¬A1 → A2) và qui tă´c MP. Dă.c biê.t `K ¬Sn . Do dó
ta có Sn `Kn−1 ¬Sn .
Vı̀ Sn là công thú.c dóng, nên theo hê. qua’ 3.5.1 (b) ta có `Kn−1 Sn → ¬Sn .
Mă.t khác, ta cũng có công thú.c (A1 → ¬A1) → ¬A1 là dô`ng nhâ´t dúng, nên
ta có: `Kn−1 ¬Sn nhò. qui tă´c MP, tú.c là

`Kn−1 ¬(¬∀xin Fn (xin ) → ¬Fn (bjn ))

Theo các công thú.c dô`ng nhâ´t dúng:


¬(A1 → A2 ) → (A1 ∧ ¬A2 ); (A1 ∧ A2 ) → A1; (A1 ∧ A2) → A2; ¬¬A1 →
A1 , ta nhâ.n du.o..c kê´t qua’ sau:

`Kn−1 ¬∀xin Fn (xin ) và `Kn−1 Fn (bjn )

Xét mô.t suy diê˜n nào dó cu’a Fn (bjn ) trong Kn−1 . Ta cho.n xp là mô.t biê´n
không có mă.t trong suy diê˜n dó. Ta thay khă´p no.i trong suy diê˜n dó ký
hiê.u bjn bo’.i xp, khi dó ta nhâ.n du.o..c mô.t suy diê˜n trong Kn−1 cu’a F (xp),
tú.c là `
Kn−1 F (x ).
n p

Áp du.ng qui tă´c GEN ta du.o..c: `Kn−1 ∀xp Fn (xp), và theo bô’ dê ` 3.6.1 ta
có: `Kn−1 ∀xin Fn (xin ), vı̀ Fn (xin ) và Fn (xp) là dô`ng da.ng vó.i nhau.
Vâ.y ta dã chú.ng minh du.o..c ră` ng Kn−1 là mâu thuâ˜n, diê ` u dó trái vó.i
gia’ thiê´t qui na.p. Do dó Kn là phi mâu thuâ˜n, và tù. dó K∞ cũng là phi
mâu thuâ˜n.
Chú ý ră` ng K∞ là mo’. rô.ng phi mâu thuâ˜n cu’a K0 , và theo di.nh lý 3.6.4
lý thuyê´t J là mô.t mo’. rô.ng phi mâu thuâ˜n và dâ
` y du’ cu’a K∞ .
3) Bây giò. ta xây du..ng mô.t minh hoa. dê´m du.o..c M cho lý thuyê´t tân tù. K0
(theo dâ ` y du’ tiê´n trı̀nh sau dây).
118 Chu.o.ng 3. Hê. toán tân tù.

Di.nh nghı̃a 3.6.6 Mô.t term (ha.ng tu’.) du.o..c go.i là dóng, nê´u nó không
chú.a các biê´n.
Minh hoa. M cu’a K0 du.o..c xây du..ng nhu. sau:
- Ta dă.t D là tâ.p ho..p tâ´t ca’ các terms dóng cu’a K0 . Tâ.p này là dê´m
du.o..c theo bô’ dê ` 3.6.2, và tâ.p D này là Tru.ò.ng minh hoa. (hay miê ` n xác di.nh
. .
dô´i tu o. ng cu’a M).
- Mô˜i mô.t ký hiê.u hă` ng c cu’a K thı̀ nó du.o..c minh hoa. bo’.i chı́nh là hă` ng
dó (vó.i tu. cách là mô.t phâ ` n tu’. cu’a D) trong M.
- Mô˜i mô.t ký hiê.u biê´n hàm fjn cu’a K du.o..c gán mô.t toán tu’. fjn∗ tù. Dn
vào D trong M sao cho dô´i vó.i mô˜i mô.t bô. (t1 , t2, ..., tn)∈ Dn các term dóng
tu.o.ng ú.ng cho ta mô.t giá tri. fjn∗ (t1, t2, ..., tn) là mô.t term dóng thuô.c D cu’a
K0 .
- Mô˜i mô.t ký hiê.u tân tù. Anj trong K du.o..c gán mô.t ánh xa. An∗ j tù
.
Dn vào {T, F } trong M sao cho dô´i vó.i mô.t bô. (t1 , t2, ..., tn) ∈ Dn ta có
An∗ n
j (t1 , t2 , ..., tn) = T , khi và chı’ khi `J Aj (t1 , t2 , ..., tn).

Mu.c dı́ch cu’a ta là chú.ng minh ră` ng minh hoa. M là mô.t mô hı̀nh cu’a lý
thuyê´t tân tù. K0 .
Dê’ chú.ng minh diê ` n chú.ng minh ră` ng mô˜i mô.t công thú.c
` u này, ta chı’ câ
dóng A cu’a K0 là dúng trong M, khi và chı’ khi `J A, vı̀ ră` ng mo.i di.nh lý
cu’a K0 dê` u là di.nh lý trong J . Ta chú.ng minh mê.nh dê ` này bă` ng qui na.p
theo sô´ phép toán và lu.o..ng tù. trong công thú.c A.
Tru.ó.c hê´t, gia’ su’. A là mô.t công thú.c dóng so. câ´p. Khi dó, theo di.nh
nghı̃a A là dúng trong M, khi và chı’ khi `J A.
Bây giò. bu.ó.c gia’ thiê´t qui na.p: nê´u B là công thú.c dóng nào dó có sô´
phép toán và lu.o..ng tù. ı́t ho.n A, và B là dúng trong M khi và chı’ khi `J B.
` n pha’i xét các tru.ò.ng ho..p sau dây:
Ta câ

• Tru.ò.ng ho..p 1: A là ¬B


- Nê´u A là dúng trong M thı̀ B là sai trong M, và theo gia’ thiê´t qui
` y du’ và B là công thú.c dóng, nên
na.p: không có `J B. Vı̀ J là dâ
`J ¬B, tú.c là `J A
` y du’ cu’a logic tân tù.
3.6. Tı́nh phi mâu thuâ˜n và dâ 119

- Trái la.i, nê´u A là sai trong M thı̀ B là dúng trong M. Do dó `J B. Vı̀
J là phi mâu thuâ˜n nên ta nhâ.n du.o..c: không có `J ¬B, tú.c là không
có `J A

• Tru.ò.ng ho..p 2: A là B → C


Vı̀ A là công thú.c dóng, nên B và C dê
` u là công thú.c dóng.
- Nê´u A là sai trong M thı̀ B là dúng và C là sai. Do dó theo gia’ thiê´t
qui na.p: `J B và không có `J C. Theo tı́nh dâ ` y du’ cu’a J : `J ¬C. Do
.
vâ.y theo các công thú c dô`ng nhâ´t dúng: A1 → (¬A2 → ¬(A1 → A2))
nên ta có `J ¬(B → C) nhò. qui tă´c Modus Ponens, tú.c là `J ¬A, và
nhu. vâ.y theo tı́nh phi mâu thuâ˜n cu’a J : không có `J A.
Mă.t khác, nê´u không có `J A thı̀ theo tı́nh dâ
` y du’ cu’a J : `J ¬A.
Theo các công thú.c dô`ng nhâ´t dúng:

¬(A1 → A2 ) → A1 và ¬(A1 → A2 ) → ¬A2,

ta nhâ.n du.o..c kê´t qua’: `J B và `J ¬C nhò. qui tă´c Modus Ponens. Do
vâ.y B là dúng trong M. Theo tı́nh phi mâu thuâ˜n cu’a J : không có
`J C và do vâ.y, C là sai trong M. Vâ.y A là sai trong M.

• Tru.ò.ng ho..p 3: A là ∀xn B


Gia’ su’. B là Fk (xik ). Ta có thê’ gia’ thiê´t ră` ng xn là xik . Ngoài ra, B là
công thú.c dóng và không chú.a xn vó.i tu. cách là biê´n tu.. do. Nhu.ng
trong tru.ò.ng ho..p này, A là dúng khi và chı’ khi B dúng, và `J A khi
và chı’ khi `J B. Do vâ.y mê.nh dê ` B dúng thı̀ A cũng dúng.
Tru.ó.c hê´t ta gia’ thiê´t ră` ng A là dúng trong M, nhu.ng không có `J A.
Theo tı́nh dâ ` y du’ cu’a J : `J ¬A, tú.c là `J ¬∀xik Fk (xik ). Nhu.ng `J Sk
và dùng qui tă´c MP ta thu du.o..c `J ¬F (bjk ). Vı̀ A = ∀xik Fk (xik ) là
dúng trong M, nên Fk (bjk ) cũng dúng trong M.

` u này mâu thuâ˜n vó.i tı́nh phi mâu


Theo gia’ thiê´t qui na.p `J Fk (bjk ), diê
thuâ˜n cu’a J . Do dó ta pha’i có: `J A.
120 Chu.o.ng 3. Hê. toán tân tù.

- Bây giò. ta gia’ thiê´t A là sai trong M nhu.ng `J A. Vı̀ ∀xik Fk (xik ) là sai
trong M, nên tô`n ta.i ı́t nhâ´t mô.t phâ` n tu’. trong D, tú.c là mô.t term dóng cu’a
K0 sao cho Fk (t) là sai trong M. Vı̀ ta gia’ thiê´t `J A, tú.c là `J ∀xik Fk (xik ),
nên theo tiên dê ` (A4) ta có `J Fk (t). Do dó Fk (t) là dúng trong M, diê `u
này mâu thuâ˜n vó.i tı́nh sai cu’a Fk (t) trong M. Vı̀ vâ.y không thê’ có `J A.
` mà ta dòi ho’i hoàn toàn du.o..c chú.ng minh dô´i vó.i A.
Mê.nh dê
Nhu. vâ.y ta dã chú.ng minh du.o..c M là mô.t mô hı̀nh dê´m du.o..c cu’a
lý thuyê´t J , và do dó cũng là dê´m du.o..c dô´i vó.i lý thuyê´t K0 . Vı̀ mo.i di.nh
lý cu’a K là di.nh lý cu’a K0 , nên M cũng là mô hı̀nh dê´m du.o..c cu’a lý thuyê´t
K. 

3.6.4 ` y du’ cu’a lý thuyê´t tân tù. câ´p 1K


Tı́nh dâ
Di.nh lý 3.6.6 Mô˜i mô.t di.nh lý cu’a lý thuyê´t tân tù. câ´p 1 PP là logic dô`ng
nhâ´t dúng.

Chú.ng minh
- Ta dê˜ dàng kiê’m tra du.o..c ră` ng các tiên dê
` tù. (A1) dê´n (A5) dê` u là
logic dô`ng nhâ´t dúng.
- Các qui tă´c dâ˜n xuâ´t MP và GEN dê ` u có tı́nh logic dô`ng nhâ´t dúng.
Do dó mô˜i mô.t di.nh lý là logic dô`ng nhâ´t dúng. 

` 3.6.3 Mô˜i mô.t công thú.c logic dô`ng nhâ´t dúng cu’a lý thuyê´t tân tù.
Bô’ dê
câ´p 1 K là mô.t di.nh lý cu’a K.

Chú.ng minh
` n xét các công thú.c dóng. Gia’ su’. A là mô.t công thú.c dóng và
Ta chı’ câ
logic dô`ng nhâ´t dúng cu’a K. Gia’ su’. A không pha’i là di.nh lý cu’a K. Khi dó
theo di.nh lý 3.6.3 ta thêm vào K công thú.c ¬A nhu. mô.t tiên dê ` , ta du.o..c
0 0
mô.t lý thuyê´t phi mâu thuâ˜n K . Theo di.nh lý 3.6.5, K có mô.t mô hı̀nh
` cu’a K , nên ¬A dúng trong M. Ho.n nũ.a, A là logic
0
M. Vı̀ ¬A là tiên dê
dô`ng nhâ´t dúng, nên A cũng dúng trong M. Nhu. vâ.y công thú.c A dô`ng
3.7. Áp du.ng trong chú.ng minh di.nh lý cu’a lý thuyê´t tân tù. câ´p 1 121

thò.i vù.a dúng, vù.a không dúng trong mô hı̀nh M. Diê
` u này là mâu thuâ˜n.
Vâ.y A là mô.t di.nh lý cu’a K. 

Di.nh lý 3.6.7 (di.nh lý dâ ` y du’ cu’a Giödel [1930])
Trong lý thuyê´t tân tù câ´p 1PP, ló.p các di.nh lý trùng vó.i ló.p các công
.
thú.c logic dô`ng nhâ´t dúng.

Chú.ng minh
` u này du.o..c suy ra tù. di.nh lý 3.6.6 và bô’ dê
Diê ` 3.6.3. 

Di.nh lý 3.6.8 (di.nh lý Skolem-Löwenhim [1919, 1915])


Nê´u mô.t lý thuyê´t tân tù. câ´p 1 K có mô.t mô hı̀nh nào dó thı̀ nó cũng có
mô.t mô hı̀nh dê´m du.o..c.

Chú.ng minh
Chú ý ră` ng nê´u K có mô.t mô hı̀nh thı̀ K là phi mâu thuâ˜n. Do dó theo
di.nh lý 3.6.5, K có mô.t mô hı̀nh dê´m du.o..c. 

3.7 Áp du.ng trong chú.ng minh di.nh lý cu’a


lý thuyê´t tân tù. câ´p 1
Chú.ng minh ră` ng:

` ∀xi(A ∨ B) → (∃xiA ∨ ∀xiB)

Chú.ng minh

• Cách 1: Áp du.ng di.nh lý suy diê˜n trong logic tân tù.. Tru.ó.c hê´t ta
biê´n dô’i công thú.c dã cho nhu. sau:

` ∀xi(A ∨ B) → (∃xiA ∨ ∀xiB) ⇔


` ∀xi(A → B) → ((∀xi A) ∨ ∀xiB) ⇔
` ∀xi(A → B) → (∀xi A → ∀xiB)

Ta chú.ng minh bă` ng cách xây du..ng dâ˜n xuâ´t:


122 Chu.o.ng 3. Hê. toán tân tù.

1. ∀xi (A → B) (gia’ thiê´t)


2. ∀xi A (gia’ thiê´t)
3. A → B (1, A4)
4. A (2, A4)
5. B (3, 4, MP)
6. ∀xi B (5, GEN)

Vâ.y tù. 1 - 6 ta có:

∀xi (A → B), ∀xiA ` ∀xi B.

.
O’ dây trong khi xây du..ng dâ˜n xuâ´t ta không su’. du.ng qui tă´c GEN
dô´i vó.i biê´n tu.. do cu’a ∀xi(A → B) và ∀xi A. Do dó theo di.nh lý 3.5.2,
ta dê˜ dàng áp du.ng 2 lâ ` n di.nh lý suy diê˜n, ta có ` ∀xi (A → B) →
(∀xi A → ∀xiB) 

` y du’ cu’a Gödel ta dă.t:


• Cách 2: Áp du.ng di.nh lý dâ

C = ∀xi(A ∨ B) → (∃xiA ∨ ∀xi B)

là di.nh lý, khi và chı’ khi C là logic dô`ng nhâ´t dúng.

Ta xét mô.t minh hoa. vó.i D là Tru.ò.ng minh hoa. mà trên dó các công
thú.c A và B du.o..c xác di.nh.
P
Gia’ su’. dãy s = (b1, b2 , ...., bi, ...) ∈ tuỳ ý. Ta sẽ chú.ng minh ră` ng C
là thu..c hiê.n du.o..c trên s, tú.c là C = 1 trên dãy s = (b1, b2 , ...., bi, ...).

Thâ.t vâ.y, ta xét 2 tru.ò.ng ho..p sau dây:

a) Tru.ò.ng ho..p 1: D = ∀xi(A ∨ B) là không thu..c hiê.n du.o..c trên s


tú.c là D = 0 trên s. Khi dó rõ ràng ta có ngay C = 1 trên dãy s.
Vâ.y C thu..c hiê.n du.o..c trên dãy s = (b1 , b2, ...., bi, ...).
3.8. Bài tâ.p chu.o.ng 3 123

b) Tru.ò.ng ho..p 2: D = ∀xi(A ∨ B) là thu..c hiê.n du.o..c trên s =


(b1, b2, ...., bi, ...) (tú.c là D = 1 trên dãy s). Khi dó theo di.nh nghı̃a
D là thu..c hiê.n du.o..c trên dãy s = (b1 , b2, ...., bi, ...) ⇔ (A ∨ B) là
thu..c hiê.n du.o..c trên mo.i dãy bâ´t kỳ s khác s không quá thành
0

` n thú. i ⇔ A là thu..c hiê.n du.o..c trên mo.i dãy bâ´t kỳ s khác
0
phâ
s không quá thành phâ ` n thú. i (1) hoă.c B là thu..c hiê.n du.o..c trên
` n thú. i (2).
0
mo.i dãy bâ´t kỳ s khác s không quá thành phâ
Tù. (1) suy ra ră` ng công thú.c ∃xiA là thu..c hiê.n du.o..c dô´i vó.i ı́t
P
` n thú. i. (3) (s ∈ ).
0 0
nhâ´t mô.t dãy s khác s không quá thành phâ
Tù. (2) suy ra ră` ng ∀xi B là thu..c hiê.n du.o..c trên mo.i dãy bâ´t kỳ
` n thú. i. (4)
0
s khác s không quá thành phâ
Kê´t ho..p (3) và (4) ta có: G = ∃xi A ∨ ∀xiB là thu..c hiê.n du.o..c
trên dãy s, tú.c là G = 1 trên dãy s.
Vâ.y C = D → G = 1 → 1 = 1, nghı̃a là C là thu..c hiê.n du.o..c trên
P
dãy s = (b1, b2 , ..., bi, ...) ∈ . Vı̀ s du.o..c cho.n tuỳ ý, nên công
thú.c C là logic dô`ng nhâ´t dúng. 

3.8 Bài tâ.p chu.o.ng 3


1. Hãy viê´t dâ´u ngoă.c cho các công thú.c sau:

a) ∀x1¬A11 (x1) → A32(x1, x2 , x3) ∨ ∀x1A12 (x1)


b) ¬∀x1A11 (x1) → ∃x2 A12(x2) → A21(x1, x2 ) ∨ A11(x2 )
c) ∀x1∀x3∀x4A11(x1 ) → A12(x3 ) ∧ ¬A11 (x1)
d) ∃x1∀x2∃x3A11 (x1) ∨ ∃x2¬∀x3 A21(x3, x2 )

2. Hãy chı’ ra biê´n nào là biê´n tu.. do, biê´n nào là biê´n ràng buô.c cu’a các
công thú.c sau:

a) ∀x3((∀x1A21 (x1, x2)) → A21(x3 , x1))


b) ∀x2A21(x3 , x2) → ∀x3A21(x3, x2 )
124 Chu.o.ng 3. Hê. toán tân tù.

c) (∀x2∃x1A31(x1, x2 , f12 (x1, x2))) ∨ ¬∀x1A21(x2 , f11 (x1))

3. Có pha’i t = f12 (x1, x2 ) là tu.. do dô´i vó.i x1 trong công thú.c sau dây không:

a) A21 (x1, x2) → ∀x2A11(x2 ),


b) (∀x2A21(x2 , a1)) ∨ ∃x2A21 (x1, x2).

4. Chú.ng minh ră` ng các công thú.c sau dây không logic dô`ng nhâ´t dúng:

a) ∀x2∃x1 A21(x1, x2) → ∃x1∀x2A21(x1 , x2)


b)(∀x1A11(x1 ) → ∀x1A12(x1 )) → ∀x1(A11 (x1) → A12 (x1))
c) ∀x1(A11(x1) ∨ A12(x1)) → (∀x1A11(x1 ) ∨ ∀x1A12(x1 ))

5. Chú.ng minh ră` ng các công thú.c sau dây là logic dô`ng nhâ´t dúng:

a) A(t) → ∃x1A(x1), nê´u t là tu.. do dô´i vó.i x1 trong A(x1)


b) ∀xiA → ∃xiA
c) ∀xi∀xj A ≡ ∀xj ∀xiA
d)(∀xiA ∨ ∀xi B) → ∀xi (A ∨ B)
e) ∃xi∃xj A ≡ ∃xj ∃xiA
f) ∃xi ∀xj A → ∀xj ∃xi A

6. Nê´u A là mô.t công thú.c dóng thı̀ khi dó chú.ng minh ră` ng A logic kéo
theo B, khi và chı’ khi B là dúng trong mô˜i mô.t minh hoa. mà ta.i dó A
là dúng.

7. Chú.ng minh ră` ng công thú.c sau dây không logic dô`ng nhâ´t dúng:

a) ∃x∀y(A21(x, y) ∧ ¬A21(y, x) → [A21(x, x) ↔ A21(y, y)])


b) ∀x¬A21(x, x) ∧ ∀x∀y∀z(A21(x, y) ∧ A21 (y, z) → A21 (x, z)) →
∃x∀y¬A21(x, y)
c) ∀x∀y∀z(A21(x, x)∧(A21(x, z) → A21(x, y)∨A21(y, z))) → ∃y∀zA21(y, z)
3.8. Bài tâ.p chu.o.ng 3 125

8. Chú.ng minh ră` ng các công thú.c sau là di.nh lý:

a) ` ∀x1(A → B) → (∀x1A → ∀x1B)


b) ` ∀x1(A → B) → (∃x1A → ∃x1B)
c) ` ∀x1(A ∧ B) ≡ (∀x1A ∧ ∀x1B)
d) ` ∀x1∀x2...∀xnA → A
e) ` ∃x1¬A ≡ ¬∀x1 A
f) ` ∀x1A ≡ ¬∃x1¬A
g) ` ∃x1(A ∨ B) ≡ (∃x1A ∨ ∃x1B)

9. Dô´i vó.i mô˜i mô.t lý thuyê´t tân tù. câ´p 1K, nê´u Γ `K A và mô˜i mô.t công
thú.c cu’a Γ là dúng trong minh hoa. M dã cho cu’a K thı̀ A cũng dúng
trong M.
Chu.o.ng 4

Ngôn ngũ. PROLOG

4.1 Mo’. dâ


`u . . . . . . . . . . . . . . . . . . . . . . . . 127

4.2 Ngôn ngũ. PROLOG . . . . . . . . . . . . . . . . . 131

4.2.1 Qui tă´c cú pháp . . . . . . . . . . . . . . . . . . . 131

4.2.2 Các kiê’u dô´i tu.o..ng . . . . . . . . . . . . . . . . . . 131

4.2.3 Các phép toán, quan hê. và hàm chuâ’n . . . . . . . 137

4.3 Câ´u trúc cu’a chu.o.ng trı̀nh PROLOG . . . . . . 139

4.4 Tân tù. FAIL, nhát că


´t (!) và tân tù. NOT . . . 141

4.5 Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u . . . . . . . . . 143

4.5.1 Phu.o.ng thú.c xuâ´t dũ. liê.u . . . . . . . . . . . . . . 143

4.5.2 Phu.o.ng thú.c nhâ.p dũ. liê.u . . . . . . . . . . . . . 145

4.6 Mô.t sô´ thı́ du. minh hoa. vê


` lâ.p trı̀nh PROLOG 148

4.7 Bài tâ.p chu.o.ng 4 . . . . . . . . . . . . . . . . . . 162


4.1. Mo’. dâ
`u 127

4.1 Mo’. dâ


`u
Prolog là mô.t kê´t qua’ quan tro.ng cu’a công viê.c nghiên cú.u trong nhiê ` u năm
bo’.i nhóm nghiên cú.u cu’a Alain Colmerauer ta.i tru.ò.ng da.i ho.c Marseille,
cô.ng hoà Pháp, vào nu’.a dâ` u thâ.p ky’ 70.
Mô.t trong nhũ ng nguyên nhân chu’ yê´u làm cho Prolog du.o..c phô’ câ.p
.
` có liên quan dê´n xu’.
rô.ng rãi là kha’ năng gia’i quyê´t có hiê.u qua’ các vâ´n dê
lý ký hiê.u, chă’ng ha.n:
• Các co. so’. dũ. liê.u quan hê.
• Logic Toán ho.c
` trù.u tu.o..ng
• Lý thuyê´t gia’i quyê´t vâ´n dê
• Hiê’u ngôn ngũ. tu.. nhiên, ta.o các giao diê.n Ngu.ò.i - Máy bă` ng ngôn
ngũ. tu.. nhiên
• Viê´t các chu.o.ng trı̀nh biên di.ch ngôn ngũ.
• Thiê´t kê´ câ´u trúc
• Gia’i các phu.o.ng trı̀nh da.ng ký hiê.u, xu’. lý các công thú.c
• Phân tı́ch câ´u trúc sinh hoá
` u khiê’n Robot, Trı́ tuê. nhân ta.o, Hê. chuyên gia v.v...
• Diê

Diê’m ma.nh cu’a ngôn ngũ. PROLOG so vó.i ngôn ngũ. lâ.p trı̀nh truyê `n
. .
` bă` ng viê.c mô ta’ phu o ng pháp gia’i
thô´ng là cách tiê´p câ.n gia’i quyê´t vâ´n dê
quyê´t. Chu.o.ng trı̀nh Prolog không mô ta’ thu’ tu.c gia’i quyê´t vâ´n dê ` mà mô
ta’ logic cu’a vâ´n dê ` câ
` n gia’i quyê´t.
Prolog du o. c coi là bu.ó.c thành công dâ
. . ` u tiên cu’a lâ.p trı̀nh logic, hu.ó.ng
` u khı́a ca.nh thông minh cu’a mô.t chu.o.ng
dâ˜n viê.c cài dă.t có hiê.u qua’ nhiê
trı̀nh, chă’ng ha.n: lu..a cho.n không tâ´t di.nh, xu’. lý song song, go.i thu’ tu.c
không qua tham sô´ (pattern dicected procedure call), ...
Vı̀ Prolog tiê´p câ.n các vâ´n dê ` mô.t cách tu.. nhiên và logic, nên nhũ.ng
ngu.ò.i mó.i lâ.p trı̀nh và nhũ.ng ngu.ò.i lâ.p trı̀nh viên có kinh nghiê.m dê ` u có
128 Chu.o.ng 4. Ngôn ngũ. PROLOG

thê’ dùng nó dê’ viê´t nhũ.ng chu.o.ng trı̀nh ú.ng du.ng có tâ ` m cõ. nhu. các hê.
chuyên gia, các co. so’. tri thú.c, các giao diê.n bă` ng ngôn ngũ. tu.. nhiên, và các
hê. thô´ng qua’n lý thông tin go.n nhe. và hiê.u qua’.
Diê’m ma.nh cu’a Prolog là cách tiê´p câ.n gia’i quyê´t vâ´n dê ` bă` ng viê.c mô
ta’ phu.o.ng pháp gia’i quyê´t. Chu.o.ng trı̀nh Prolog không mô ta’ thu’ tu.c gia’i
quyê´t vâ´n dê` mà mô ta’ logic cu’a vâ´n dê ` câ` n gia’i quyê´t, nghı̃a là ngu.ò.i lâ.p
trı̀nh câ` n dành toàn bô. sú.c lu..c và su.. quan tâm cu’a mı̀nh vào viê.c khai báo
cho máy tı́nh mô.t sô´ khă’ng di.nh câ ` n thiê´t vê` các tı́nh châ´t cu’a các dô´i tu.o..ng
trong lı̃nh vu..c du.o..c dê` câ.p và mô.t sô´ luâ.t suy diê˜n, mô ta’ tı́nh châ´t và các
quan hê. giũ.a các dô´i tu.o..ng.
Du..a vào viê.c suy diê˜n theo các luâ.t, kê´t ho..p vó.i khă’ng di.nh dã cho,
chu.o.ng trı̀nh Prolog tu.. xác di.nh cách thú.c “dâ˜n” ra lò.i gia’i cu’a vâ´n dê `.
Ngoài ra Prolog cho phép gia’i quyê´t các vâ´n dê ` mà lò.i gia’i là không tâ´t di.nh
và làm viê.c vó.i các dô´i tu.o..ng hoàn toàn chu.a du.o..c biê´t hoă.c mó.i chı’ biê´t
mô.t phâ ` n vê
` chúng.
Cũng nhu. các ngôn ngũ. lâ.p trı̀nh truyê ` n thô´ng: Pascal, C, ... ngu.ò.i ta
xây du..ng phâ ` m Turbo-Prolog giúp cho ngu.ò.i lâ.p trı̀nh cha.y chu.o.ng
` n mê
trı̀nh Prolog dê˜ dàng và hiê.u qua’ ho.n. Turbo-Prolog tro’. thành mô.t công cu.
lâ.p trı̀nh râ´t hũ.u du.ng vó.i nhũ.ng lý do sau dây:

1. Có thê’ ta.o ra các chu.o.ng trı̀nh dô.c lâ.p cha.y trên các máy PC, và
cho phép dê˜ dàng truy câ.p dê´n bô. nhó. và các cô’ng vào/ra cũng nhu.
các kha’ năng phô´i ho..p các chu.o.ng trı̀nh viê´t bă` ng mã máy vào trong
chu.o.ng trı̀nh Turbo Prolog.

2. Turbo Prolog duy trı̀ tên biê´n cu’a riêng ngu.ò.i lâ.p trı̀nh, nghı̃a là kê’ ca’
khi chu.o.ng trı̀nh dã du.o..c biên di.ch, ta vâ˜n có thê’ làm chu’ chu.o.ng trı̀nh
gô´c. Trong khi tı̀m và gõ. lô˜i, ta dùng vê´t (trace) cho phép quan sát
viê.c thu..c hiê.n chu.o.ng trı̀nh và quá trı̀nh thao tác qua các dı́ch (goal).

3. Turbo Prolog là mô.t môi tru.ò.ng phát triê’n chu.o.ng trı̀nh hoàn toàn
theo môdun. Các môdun chu.o.ng trı̀nh viê´t trong Turbo Prolog hoă.c
4.1. Mo’. dâ
`u 129

các ngôn ngũ. khác nhu. C, Assembler, ... có thê’ du.o..c nô´i la.i vó.i nhau
thành mô.t chu.o.ng trı̀nh.

4. Các tân tù. có să˜n trong hê. thô´ng cho phép su’. du.ng các tê.p truy nhâ.p
tru..c tiê´p (random access files).

5. Toàn bô. các thao tác tı́nh toán vó.i các sô´ nguyên, sô´ thu..c, các hàm
lu.o..ng giác cũng nhu. các thao tác bit dùng dê’ viê´t các chu.o.ng trı̀nh
ú.ng du.ng cho Robot và diê ` u du.o..c du.a vào thành
` u khiê’n kỹ thuâ.t, dê
thao tác chuâ’n cu’a hê. thô´ng Turbo Prolog.

Turbo Prolog có thê’ du.o..c su’. du.ng:

1. Ta.o hı̀nh mâ˜u (prototype) cho mô.t chu.o.ng trı̀nh ú.ng du.ng. Nhũ.ng
ý tu.o’.ng ban dâ
` u có thê’ du.o..c mô hı̀nh hoá nhanh chóng bă` ng Turbo
Prolog và cha.y thu’. ngay mô hı̀nh dó.

` u khiê’n và chı’ da.o các quá trı̀nh sa’n xuâ´t công nghiê.p.
2. Diê

3. Cài dă.t các co. so’. dũ. liê.u dô.ng quan hê..

4. Di.ch ngôn ngũ. hoă.c di.ch ngôn ngũ. tu.. nhiên cu’a con ngu.ò.i, hoă.c di.ch
tù. mô.t ngôn ngũ. lâ.p trı̀nh này sang mô.t ngôn ngũ. lâ.p trı̀nh khác,
chă’ng ha.n mô.t chu.o.ng trı̀nh di.ch ngôn ngũ. viê´t bă` ng Turbo Prolog
di.ch du.o..c ngôn ngũ. Basic sang ngôn ngũ. C cha.y trong hê. diê ` u hành
Unix trên máy tı́nh HP-9000.

5. Xây du..ng các giao diê.n bă` ng ngôn ngũ. tu.. nhiên cho các hê. thô´ng phâ
`n
` m có să˜n dê’ có thê’ truy câ.p và su’. du.ng chúng thuâ.n lo..i ho.n.
mê

6. Xây du..ng các Hê. chuyên gia và các công cu. (Tools) dê’ xây du..ng hê.
chuyên gia.

7. Viê´t các chu.o.ng trı̀nh ú.ng du.ng cho Trı́ tuê. nhân ta.o và chú.ng minh
di.nh lý.
130 Chu.o.ng 4. Ngôn ngũ. PROLOG

Chu.o.ng trı̀nh Prolog bao gô`m các khai báo: su.. khai báo này du.o..c ta.o
thành bo’.i 3 phâ
` n:

a) Tên và câ´u trúc cu’a các dô´i tu.o..ng trong bài toán

b) Tên các quan hê. giũ.a các dô´i tu.o..ng

c) Các su.. kiê.n (fact) và luâ.t (rule) mô ta’ nhũ.ng quan hê. này.

Su.. khai báo trong chu.o.ng trı̀nh Prolog du.o..c su’. du.ng dê’ xác di.nh mô´i
quan hê. giũ.a các dũ. liê.u vào và các dũ. liê.u ra sẽ du.o..c Prolog ta.o ra khi nó
su’. du.ng các su.. kiê.n và luâ.t. Ngoài nhũ.ng khai báo câ ` n thiê´t, mô.t chu.o.ng
trı̀nh Prolog còn bao gô`m mô.t danh sách các mê.nh dê ` logic hoă.c da.ng các
su.. kiê.n, chă’ng ha.n “Hôm nay trò.i mu.a” hoă.c da.ng luâ.t, chă’ng ha.n “Nê´u
trò.i mu.a mà ba.n quên ô thı̀ ba.n sẽ u.ó.t”.
Prolog có thê’ thu..c hiê.n suy diê˜n, chă’ng ha.n cho tru.ó.c các su.. kiê.n:
Folin thı́ch Mery.
Tom thı́ch Sam.
và luâ.t: Nê´u Tom thı́ch X thı̀ Jeanette thı́ch X.
Prolog có thê’ suy diê˜n nhu. sau:
Jeanette thı́ch Sam
Ba.n cũng có thê’ cho Prolog mô.t dı́ch, chă’ng ha.n:
Hãy tı̀m ngu.ò.i thı́ch Sam?
Khi dó Prolog sẽ su’. du.ng kha’ năng suy diê˜n cu’a mı̀nh dê’ tı̀m ra tâ´t ca’ các
lò.i gia’i có thê’ cu’a bài toán.
Khi mô.t chu.o.ng trı̀nh Prolog du.o..c thu..c hiê.n, hê. thô´ng sẽ cô´ gă´ng tı̀m
ra các tâ.p giá tri. có thê’ thoa’ mãn dı́ch dã cho. Prolog su’. du.ng co. chê´
backtracking (quay lui), nghı̃a là khi dã tı̀m ra mô.t lò.i gia’i thı̀ quay la.i bâ´t
cú. mô.t gia’ thiê´t dã xác di.nh dê’ xem liê.u có rút ra du.o..c lò.i gia’i mó.i nũ.a
không.
Prolog có mô.t cú pháp râ´t ngă´n go.n và do.n gia’n, nên dê˜ ho.c ho.n nhiê `u
so vó.i các ngôn ngũ. lâ.p trı̀nh truyê
` n thô´ng.
4.2. Ngôn ngũ. PROLOG 131

4.2 Ngôn ngũ. PROLOG

Theo quan diê’m cu’a lâ.p trı̀nh logic, Prolog là mô.t ngôn ngũ. tân tù. câ´p
1 có ha.n chê´ du.o..c xây du..ng nên tù. các thành phâ
` n co. ba’n sau dây:

• Mô.t ba’ng chũ. cái (tâ.p các ký hiê.u co. ba’n cu’a ngôn ngũ.)

• Tâ.p các ký hiê.u hă` ng

• Tâ.p các ký hiê.u biê´n

• Tâ.p các ký hiê.u hàm

• Tâ.p các ký hiê.u phân cách

• Tâ.p các toán tu’. liên hê.

4.2.1 ´c cú pháp


Qui tă

Các qui tă´c cú pháp cu’a mô.t ngôn ngũ. mô ta’ cách thú.c ghép nô´i ta.o nên
các tù. cu’a ngôn ngũ..
Thuâ.t ngũ. “term” dùng dê’ chı’ mô.t dãy các ký hiê.u co. ba’n phù ho..p vó.i
các qui tă´c cú pháp cu’a ngôn ngũ.. Ngôn ngũ. Prolog phân biê.t 3 loa.i “term”:

• Các hă` ng

• Các biê´n

• Các kiê’u term du.o..c go.i chung là câ´u trúc.

4.2.2 Các kiê’u dô´i tu.o..ng


4.2.2.1 Ba’ng ký hiê.u co. ba’n
132 Chu.o.ng 4. Ngôn ngũ. PROLOG

1. Nhóm các ký hiê.u viê´t hoa


A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

2. Nhóm các ký hiê.u viê´t thu.ò.ng


a b c d e f g h i j k l m
n o p q r s t u v w x y z

3. Nhóm các chũ. sô´


0 1 2 3 4 5 6 7 8 9

4. Nhóm các ký hiê.u dă.c biê.t


|
; ” # $ % & () |
 - ∼ b
} ] [ { + − ; ∗ : < > , . ? 

` ng
4.2.2.2 Các hă

Trong Prolog các hă ` ng dùng dê’ dă.t tên các dô´i tu.o..ng và các quan hê.
` n pha’i phân biê.t hai loa.i hă` ng: hă` ng ký hiê.u và hă` ng sô´.
riêng biê.t, và ta câ

Có hai kiê’u hă


` ng ký hiê
. u:
– Kiê’u thú. nhâ´t là mô.t dãy các chũ. và các chũ. sô´ bă´t dâ
` u bă` ng mô.t chũ.
viê´t thu.ò.ng chă’ng ha.n: ta.i chú.c, c500, john.

– Kiê’u thú. hai là mô.t dãy ký tu.. bâ´t kỳ nă` m giũ.a hai dâ´u nháy do.n,
chă’ng ha.n ‘hoa lan’, ngoài ra dâ´u ga.ch thâ´p “ ” du.o..c dùng dê’ chèn
vào giũ.a hai dãy ký hiê.u làm cho hă` ng dó dê˜ do.c, dê˜ hiê’u ho.n nhiê
` u.

Các dãy ký hiê.u sau dây không pha’i là các hă` ng ký hiê.u : 124k, Void,
1hoa lan, alpha.
Các hă` ng sô´ dùng dê’ biê’u diê˜n dũ. liê.u sô´. Các thao tác tı́nh toán có thê’
du.o..c thu..c hiê.n vó.i chúng.
4.2. Ngôn ngũ. PROLOG 133

` n dũ. liê
Ba’ ng các miê . u chuâ’n cu’ a Prolog
- integer: sô´ nguyên tù. - 32768 dê´n 32767.

- real: sô´ thu..c cha.y tù. ±10−307 dê´n ±10+307

- char: ký tu.. du.o..c viê´t trong hai dâ´u nháy do.n, chă’ng ha.n: ‘a0, ‘b0, ‘c0...

- string: xâu ký tu.. du.o..c viê´t giũ.a hai dâ´u nháy kép, chă’ng ha.n “chào các
ban”

- file: là các tê.p tin

- symbol: có hai loa.i ký hiê.u

1. Dãy các chũ., các sô´ và dâ´u ga.ch thâ´p. Dãy này pha’i bă´t dâ
`u
. . .
bă` ng mô.t chũ viê´t thu ò ng, chă’ng ha.n: anh em.
2. Dãy ký tu.. nă` m giũ.a că.p dâ´u nháy kép chă’ng ha.n: “DR no” ,
“Hanoi”, v.v...

Chú ý: Symbol (ký hiê.u) và string (xâu) có thê’ su’. du.ng thay cho nhau,
nhu.ng chúng du.o..c xu’. lý khác nhau.

4.2.2.3 Các biê´n

Biê´n pha’i bă´t dâ ` u bă` ng mô.t chũ. viê´t hoa hoă.c mô.t dâ´u ga.ch thâ´p “ ”
(du.o..c go.i là biê´n vô danh anonymous variable). Biê´n vô danh có mô.t tı́nh
châ´t râ´t dă.c biê.t là nó có thê’ ký hiê.u cho mo.i dô´i tu.o..ng, vı̀ thê´ nó có thê’
du.o..c su’. du.ng vào bâ´t kỳ chô˜ nào mà mô.t biê´n khác có thê’ dùng du.o..c,
nhu.ng không câ ` n nhâ.n mô.t giá tri. cu. thê’.

` n phân biê.t hai loa.i biê´n


Chú ý: Ta câ

• Biê´n tu.. do: Prolog không biê´t giá tri. cu’a nó,

• Biê´n ràng buô.c: Prolog biê´t giá tri. cu’a nó.

Thı́ du. 4.2.1


134 Chu.o.ng 4. Ngôn ngũ. PROLOG

domains
person, hobby=symbol
predicates
likes(person, hobby)
clauses
likes(john, reading).
likes(ellen, computers).
likes(eric, swimming).
likes(eric, reading).

Cha.y chu.o.ng trı̀nh theo chê´ dô. Interactive Mode (hô.i thoa.i)
Goal: likes(X, reading)←-
Kê´t qua’ là: X=ellen
X=eric
2 solutions
trong dó X du.o..c xem là biê´n tu.. do gă´n liê
` n vó.i quan hê. cu’a lu.o..ng tù. toàn
thê’ ∀, còn reading du.o..c xem là ràng buô.c gă´n liê
` n vó.i quan hê. cu’a lu.o..ng
tù. tô`n ta.i ∃.

4.2.2.4 Các câ´u trúc

Câ´u trúc là loa.i term thú. 3 (thu.ò.ng du.o..c go.i là biê´n hàm f ) du.o..c su’.
du.ng trong chu.o.ng trı̀nh Prolog.
Mô.t câ´u trúc là mô.t dô´i tu.o..ng do.n du.o..c ta.o nên tù. mô.t tâ.p ho..p các dô´i
tu.o..ng khác go.i là các thành phâ ` n. Các thành phâ ` n du.o..c liên kê´t vó.i nhau
trong mô.t câ´u trúc dê’ có thê’ xu’. lý chúng mô.t cách thuâ.n tiê.n và thô´ng
nhâ´t.
Mô.t câ´u trúc du.o..c viê´t trong cú pháp Prolog bă` ng cách mô ta’ tên du.o..c
go.i là “functor” cu’a câ´u trúc, sau dó mô ta’ các thành phâ ` n. Các thành phâ `n
. . . .
này du o. c viê´t trong hai dâ´u ngoă.c do n, và cách nhau bo’ i các dâ´u phâ’y.

Thı́ du. 4.2.2


co(john, sach(doi gio hu, ten tac gia(emily, brownte)))
4.2. Ngôn ngũ. PROLOG 135

/* John có quyê’n sách “Dô`i gió hú” cu’a tác gia’ Emily Brownte*/
Câ´u trúc sách là mô.t dô´i cu’a khă’ng di.nh trên và tham gia vào quan hê.
“co” nhu. là mô.t dô´i tu.o..ng do.n.

Viê.c biê’u diê˜n các chu.o.ng trı̀nh Prolog nhu. là các câ´u trúc functor (...)
` u u.u diê’m, vı̀ ră` ng có thê’ thao tác các thành phâ
có râ´t nhiê ` n cu’a mô.t chu.o.ng
trı̀nh mô.t cách thô´ng nhâ´t bă` ng mô.t sô´ công cu. du’ ma.nh, dó là co. chê´ dô`ng
nhâ´t hoá (unification mechanism).
Viê.c thô´ng nhâ´t các hă` ng sô´ và các câ´u trúc vào trong mô.t khái niê.m
chung du.o..c go.i là “object” (dô´i tu.o..ng) cu’a Prolog du.a dê´n mô.t u.u diê’m ló.n
là nó cho phép ngu.ò.i lâ.p trı̀nh di.nh nghı̃a kiê’u dũ. liê.u mó.i cu’a mı̀nh, ngoài
nhũ.ng kiê’u dũ. liê.u chuâ’n cu’a ngôn ngũ., rô`i khai báo chúng vó.i chu.o.ng trı̀nh
biên di.ch.
Viê.c dô`ng nhâ´t hoá sẽ bao gô`m

- Gán giá tri. cho các biê´n (truyê


` n tham sô´).

- Truy câ.p vào câ´u trúc dũ. liê.u bă` ng co. chê´ dô´i sánh dô´i tu.o..ng tô’ng quát.

- Kiê’m tra tı́nh bă` ng nhau (trên co. so’. các nguyên tă´c cu’a tı́nh bă` ng nhau).

- Có su.. giô´ng nhau cu’a 2 quá trı̀nh dô`ng nhâ´t hoá và hàm cho các dô´i
tu.o..ng bă` ng nhau.

` viê.c su’. du.ng co. chê´ dô`ng nhâ´t hoá trong Turbo Prolog:
Thı́ du. 4.2.3 Vê
136 Chu.o.ng 4. Ngôn ngũ. PROLOG

domains
ten sach, tac gia=symbol
so trang=integer
xuat ban=sach(ten sach, so trang)
predicates
viet boi (tac gia, xuat ban)
tieu thuyet dai(ten sach)
clauses
viet boi (flemming, sach (“DR NO” , 210))
viet boi (melville, sach (“X30” , 600)).
tieu thuyet dai(Ten sach):-
viet boi( , sach(Ten sach, So trang)),
So trang>300.

Sau dây là mô.t sô´ câu ho’i và tra’ lò.i:

• Goal: viet boi (X, Y) ←-


X=flemming, Y =sach(“DR NO”, 210)
X=melville, Y =sach(“X30” , 600)
2 solutions

• Goal: viet boi(X, sach(“X30”, Y)) ←-


X= melville, Y =600
1 solution

• Goal: tieu thhuyet dai(X) ←-


X=X30
1 solution

4.2.2.5 Danh sách (List)

Danh sách là mô.t câ´u trúc dũ. liê.u co. ba’n cu’a Turbo Prolog và nó tu.o.ng
tu.. nhu. là ma’ng (array) cu’a Pascal. Turbo Prolog trı̀nh bày danh sách nhu.
4.2. Ngôn ngũ. PROLOG 137

là mô.t dô´i tu.o..ng phú.c ho..p, và du.o..c viê´t nhu. sau: [X || Y ], trong dó X là
` n dâ
phâ ` u cu’a danh sách, còn Y là phâ ` n duôi cu’a danh sách, dâ´u || là dâ´u
phân cách. Tâ.p rô˜ng du.o..c ký hiê.u là [ ].

Thı́ du. 4.2.4


- [dog, cat, canary]
- [“Mary”, “John”]
` n giô´ng tâ.p ho..p, tuy nhiên các phâ
Danh sách gâ ` n tu’. trong danh sách có
thê’ giô´ng nhau, chă’ng ha.n: [1, 2, 3, 2]

Thı́ du. 4.2.5


domains
ilist=interger*
predicates
headtail (ilist)
clauses
headtail (H || T): –
write(“The head is H=”, H), nl,
write(“The tail is T =”, T ).
goal
headtail([2, 4, 6])
Khi cha.y chu.o.ng trı̀nh ta có kê´t qua’
H =2
T = [4, 6]

4.2.3 Các phép toán, quan hê. và hàm chuâ’n

4.2.3.1 Các phép toán sô´ ho.c và kiê’u toán tu’.

Ba’ng các kiê’u cu’a toán ha.ng và kê´t qua’


138 Chu.o.ng 4. Ngôn ngũ. PROLOG

Toán ha.ng 1 Toán tu’. Toán ha.ng 2 Kê´t qua’


integer +, -, * integer integer
integer +, -, * real real
real +, -, * integer real
real +, -, * real real
integer or real / integer or real real
integer div integer integer
integer mod integer integer

4.2.3.2 Các quan hê.

Ba’ng quan hê. nhu. sau


Cách viê´t Quan hê.
< nho’ ho.n
<= nho’ ho.n hoă.c bă` ng
= bă` ng
>= ló.n ho.n hoă.c bă` ng
< > hay > < khác nhau

4.2.3.3 Các hàm chuâ’n

- abs(x) cho giá tri. tuyê.t dô´i cu’a x

- cos(x), sin(x), tan(x), arctan(x), exp(x), ln(x), log(x), sqrt(x)

- round(x) dô´i là sô´ thu..c, kê´t qua’ là sô´ nguyên do x du.o..c làm tròn, không
pha’i là sô´ nguyên ló.n nhâ´t nho’ ho.n hoă.c bă` ng x, dâ´u là dâ´u cu’a x.

Thı́ du. 4.2.6 round(-3.2)=-3.


- trunc(x) dô´i là sô´ thu..c, kê´t qua’ là bo’ phâ
` n thâ.p phân sau dâ´u châ´m.

4.2.3.4 Các phép toán logic

<AND>=def and || ,
<OR>=def or || ;
.
O’ dây dâ´u , || , thay cho “hay là”
4.3. Câ´u trúc cu’a chu.o.ng trı̀nh PROLOG 139

4.3 Câ´u trúc cu’a chu.o.ng trı̀nh PROLOG


Chu.o.ng trı̀nh Prolog có phâ ` n duôi mo’. rô.ng là .PRO và thu.ò.ng du.o..c câ´u
ta.o bo’.i 3 hoă.c 4 phâ
` n co. ba’n là domains, predicates, clauses và goal (phâ `n
. . .
goal có thê’ bo’ di khi cha.y chu o ng trı̀nh trong cu’ a sô’ Dialog – máy yêu câ `u
cho biê´t Goal:-?..)
` n nào làm quen vó.i mô.t chu.o.ng trı̀nh
Qua mô.t sô´ thı́ du. trên, ta dã phâ
viê´t bă` ng Prolog.

` n domains
• Phâ
Dây là phâ` n khai báo kiê’u cu’a các dô´i sô´ trong các tân tù. cu’a chu.o.ng
trı̀nh. Tru.ò.ng ho..p các tân tù. du.o..c viê´t du.ó.i da.ng khai báo kiê’u dô´i
tu.o..ng tru..c tiê´p thı̀ phâ
` n domains không câ ` n khai báo.

` n predicates
• Phâ
Nê´u trong phâ ` n clauses ta có su’. du.ng tân tù. nào thı̀ pha’i khai báo,
trù. các tân tù. chuâ’n có să˜n nhu. write, nl, fail... và trên mô˜i dòng mô.t
tân tù..

` n clauses
• Phâ
Dây là các su.. kiê.n và luâ.t mà máy pha’i tuân theo dê’ thoa’ mãn phâ
`n
goal (dı́ch).

` n goal
• Phâ
Nê´u goal viê´t să˜n trong chu.o.ng trı̀nh thı̀ nó du.o..c go.i là goal nô.i, còn
không thı̀ cha.y ta.i cu’.a sô’ Dialog go.i là goal ngoa.i.
Goal: -
Con tro’ - nhâ´p nháy chò. ngu.ò.i dùng dánh vào goal ngoa.i, và bâ´m
Enter sẽ cho kê´t qua’.

Chú ý: Goal nô.i và goal ngoa. i khác nhau o’. chô˜: goal ngoa.i cho tâ´t ca’ các
lò.i gia’i, còn goal nô.i khi dã da.t du.o..c mô.t lò.i gia’i rô`i thı̀ dù.ng. Vı̀ thê´ khi
140 Chu.o.ng 4. Ngôn ngũ. PROLOG

dùng goal nô.i mà muô´n có mo.i lò.i gia’i, ta dùng thêm tân tù. fail (xem mu.c
sau) o’. cuô´i cùng trong goal nô.i.
Ngoài các phâ ` n trên, còn có thê’ thêm các phâ
` n sau:

` n database (co. so’. dũ. liê.u) du.o..c dă.t tru.ó.c vùng predicates, và
• Phâ
pha’i chı’ rõ nhũ.ng tân tù. nào liên quan dê´n co. so’. dũ. liê.u dê
` u pha’i khai
.
` y du’ o’ vùng này.
báo dâ

Thı́ du. 4.3.1 database


person(name, address, age)

` n constants cho tên và giá tri. các hă` ng sô´, du.o..c khai báo tru.ó.c
• Phâ
vùng predicates.

Thı́ du. 4.3.2 constants


pi=3.141592653
ega=3

Tru.ó.c khi di.ch chu.o.ng trı̀nh Turbo Prolog thay thê´ mô˜i hă` ng (viê´t
du.ó.i da.ng mô.t chuô˜i chũ. pi, ega...) bă` ng giá tri. cu’a nó.

` n chı’ thi. di.ch


• Phâ
- Trace: yêu câ ` u cha.y chu.o.ng trı̀nh tù.ng bu.ó.c theo vê´t, và chı’ thi.
trace này viê´t lên trên cùng cu’a chu.o.ng trı̀nh.
- Nowarnings: yêu câ ` u không cho warnings (nhă´c nho’.) khi mô.t biê´n
` n, dây có thê’ là mô.t lô˜i pha’i su’.a hoă.c có thay
chı’ xuâ´t hiê.n mô.t lâ
bă` ng biê´n vô danh, hoă.c bâ´m F10 dê’ bo’ qua.

` n include “filename”
• Phâ
` u khi cha.y, Turbo Prolog du.a thêm vào mô.t tê.p tin có să˜n
- Yêu câ
trong ô’ dı̃a A:, B:, C:,

Thı́ du. 4.3.3 include “A:\ Grapdecl. Pro”


4.4. Tân tù. FAIL, nhát că´t (!) và tân tù. NOT 141

4.4 Tân tù. FAIL, nhát că


´t (!) và tân tù. NOT

4.4.1 Tân tù. fail yêu câ ` u Turbo Prolog sau khi tı̀m du.o..c mô.t lò.i gia’i pha’i
` dê’ tı̀m các lò.i gia’i khác.
quay vê
Fail là mô.t tân tù. luôn luôn sai nhă` m gây hiê.u ú.ng backtracking (quay
lui).

Thı́ du. 4.4.1 /*builds.Pro*/


predicates
builds(symbol, symbol).
clauses
builds(an, houses).
builds(ba, computers).
builds(cong, tables).
builds(dung, computers).
goal
builds(X, computers), write(X), nl, fail.
Khi cha.y chu o ng trı̀nh ta có kê´t qua’ o’. cu’.a sô’ Dialog:
. .

ba
dung
2 solutions

Chú ý: nl là viê´t tă´t cu’a new line (xuô´ng dòng).
4.4.2 Nhát că´t (!) ngăn không cho quay vê ` xét la.i các su.. kiê.n dú.ng tru.ó.c
nó. Ta dùng nhát că´t khi muô´n chı’ có mô.t lò.i gia’i trong goal ngoa.i.

Thı́ du. 4.4.2 /*Buy car.pro*/


142 Chu.o.ng 4. Ngôn ngũ. PROLOG

predicates
buy car(symbol, symbol)
car(symbol, symbol, interger)
color(symbol)
clauses
buy car(Model, Color):-
car(Model, Color, Price),
color(Color), !,
Price <= 25000.
car(toyota, green, 23000).
car(datsun, blue, 24000).
car(mazda, red, 25000).
color(red).
color(blue).
color(green).

- Nê´u cha.y chu.o.ng trı̀nh theo goal ngoa.i


Goal: buy car(X, Y) ←-
thı̀ ta du.o..c kê´t qua’ trên cu’.a sô’ Dialog:
X=toyota Y =green
1 solution

- Nê´u ta bo’ nhát că´t ! và cũng cha.y theo goal ngoa. i
Goal: buy car(X, Y) ←-
thı̀ ta du.o..c kê´t qua’ trên cu’.a sô’ Dialog:
X=toyota Y =green
X=datsun Y =blue
X=mazda Y =red
3 solutions

4.4.3 Tân tù. NOT phu’ di.nh dô´i sô´ dú.ng sau nó.
4.5. Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u 143

Thı́ du. 4.4.3 /*Darling.pro*/


predicates
male(symbol)
smoker(symbol)
sophie could darling(symbol)
clauses
male(“John”).
male(“Tom”).
male(“Bill”).
smoker(“Mary”).
smoker(“Tom”).
sophie could darling(X):-
male(X), not(smoker(X)).
goal
sophie could darling(X),
write(“A possible darling for Sophie is”, X), nl, fail
Khi cha.y chu o ng trı̀nh ta thu du.o..c kê´t qua’:
. .
A possible darling for Sophie is John
A possible darling for Sophie is Bill
2 solutions

4.5 Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u


4.5.1 Phu.o.ng thú.c xuâ´t dũ. liê.u
- Ta dùng tân tù. sau dây:
write(Arg1, Arg2, ..., ArgN)

- Xuâ´t theo khuôn da.ng ta dùng tân tù. sau:


write(Formatstring, Arg1, Arg2, ..., ArgN)
.
O’ dây các dô´i sô´ Arg1, Arg2, ... ArgN là nhũ.ng xâu hoă.c biê´n, hă` ng.
144 Chu.o.ng 4. Ngôn ngũ. PROLOG

Thı́ du. 4.5.1 /*Write.pro*/


constants
a=10
goal
X=a+5, write(“a=” ,a), nl, write(“X=” , X), nl,
.
write(“Du a cho tôi”, X, “dô`ng!” )
Khi cha.y chu.o.ng trı̀nh ta có kê´t qua’
a=10
X=15
Du.a cho tôi 15 dô`ng!
Tân tù. writef là tu.o.ng dô´i phú.c ta.p. Formatstring bao gô`m nhũ.ng ký
tu.. thu.ò.ng, hoă.c dă.c tru.ng khuôn da.ng sau dây:
% - m.pf
trong dó:
- % chı’ thi. khuôn da.ng,

- Dâ´u ga.ch ngang nho’ - chı’ căn lê


` trái (không ga.ch ngang chı’ căn lê
` pha’i).

- m dô. dài tô’ng thê’ cu’a khuôn da.ng lu.u trũ..

- p chı’ sô´ các chũ. sô´ thâ.p phân sau dâ´u châ´m.

- f cho phép in giá tri. da.ng khuôn chuâ’n.


Thı́ du. 4.5.2 /* Writef. pro*/
Goal
A=one
B=432.7685
writef(“A=’ % -8’ \ B=’% 10.2e’ \ n” , A, B),
writef(“%% c” , 4, 4).
Khi cha.y chu.o.ng trı̀nh ta có kê´t qua’ là:
A = ‘one 0
B = ‘4.33E + 02 0
4
4.5. Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u 145

4.5.2 Phu.o.ng thú.c nhâ.p dũ. liê.u


Ta có 5 tân tù. nhâ.p dũ. liê.u chuâ’n sau dây:

- readln(X) biê´n X có kiê’u xâu hoă.c kiê’u ký tu...

- readint(X) biê´n X thuô.c kiê’u interger

- readreal (X) biê´n X thuô.c kiê’u real

- readchar(X) biê´n X thuô.c kiê’u char

` n dô´i tu.o..ng.
- readterm(<tên>, TermParam), trong dó <tên> là tên cu’a miê

Thı́ du. 4.5.3


domains /*miê ` n dô´i tu.o..ng*/
ten, dia chi=string
muc du lieu=p(ten, dia chi)

Khi dó tân tù. readterm có thê’ do.c bâ´t kỳ dô´i tu.o..ng nào du.o..c ghi vào
file nhò. write:
readterm(muc du lieu, p(Ten, Dia chi)).
Dê’ xu’ lý tê.p trong Turbo Prolog, ta hay dùng mô.t sô´ tân tù. chuâ’n sau
.
dây:

- openread(SymbolicFileName, DosFileName), trong dó SymbolicFileName


là tê.p tin mà ta dă.t tên, chă’ng ha.n myfile, còn DosFileName là tê.p tin
mà ta mo’. dê’ do.c và tê.p này pha’i có să˜n trong dı̃a hoă.c o’. ô’ dı̃a nào
dó, chă’ng ha.n:
domains
file=myfile
Khi dó trong chu.o.ng trı̀nh ta su’. du.ng tân tù. openread du.o..c viê´t nhu.
sau:
Goal
openread(mylife, “a:\ bai hat.text” ),
146 Chu.o.ng 4. Ngôn ngũ. PROLOG

- openwrite(SymbolicFileName, DosFileName),
trong dó DosFilename là tên tê.p mó.i ta mo’. dê’ viê´t. Nê´u tên tê.p mó.i
dă.t trùng tên tê.p cũ thı̀ tê.p cũ sẽ bi. viê´t dè lên.

Thı́ du. 4.5.4 domains


file=myfile
goal
openwrite(mylife, “c:\nhac\muathu.txt”),
closefile(myfile),
file str(“c:\nhac\muathu.text”),
display(Str).

- openappend(SymbolicFileName, DosFileName) là tân tù. dùng dê’ mo’. mô.t


tê.p tin và thêm vào cuô´i tê.p tin vù.a mo’., chă’ng ha.n:
domains
file=myfile
goal
openappend(myfile, “c:\nhac\muthu.txt”)
writedevice(myfile),
write(“\Chao mua thu Ha-Noi” ),
closefile(myfile),
file str(“c:\nhac\muthu.text” ),
display(Str).

- openmodify(SymbolicFileName, DosFileName) là tân tù. dùng dê’ mo’. mô.t


tê.p tin và su’.a dô’i.
4.5. Phu.o.ng thú.c xuâ´t nhâ.p dũ. liê.u 147

Thı́ du. 4.5.5 domains


file=myfile
goal
openmodify(myfile, “c:\nhac\muthu.text” ),
readdevice(myfile), readln( ),
filepos(myfile, FilePos, 0)
writedevice(myfile),
filepos(myfile, FilePos, 0),
write(“Tra lai cho toi nhung ngay ngay tho” ),
closefile(myfile),
file str(“muthu.text”, Str),
display(Str).

Trong các thı́ du. trên ta su’. du.ng thêm mô.t sô´ tân tù. mó.i:

- readdevice(SymbolicFileName) dùng dê’ xác di.nh la.i thiê´t bi. do.c hiê.n hành
dô´i vó.i tê.p tin SymbolicFileName.

- writedevice(SymbolicFileName) dùng dê’ xác di.nh la.i thiê´t bi. viê´t dô´i vó.i
tê.p tin SymbolicFileName.

- closefile(SymbolicFileName) dùng dê’ dóng tê.p tin SymbolicFileName.

- file str(DosFileName, StringVariable) dùng dê’ do.c hoă.c dê’ viê´t mô.t tê.p
tin trên dı̃a do biê´n StringVariable mà ta thu.ò.ng dă.t ngă´n go.n là Str.

- filepos(SymbolicFileName, FilePosition, Mode) dùng dê’ cho.n vi. trı́ cu’a


SymbolicFileName dê’ cho tê.p tin mó.i thay vào. Vi. trı́ này tuỳ thuô.c
.
vào Mode. O’ dây Mode có 3 chê´ dô.:
` n bă´t dâ
+ Mode=0: phâ ` u cu’a tê.p tin
+ Mode=1: vi. trı́ hiê.n hành
` n cuô´i tê.p tin.
+ Mode=2: phâ

- display (String Variable) là tân tù. dùng dê’ hiê.n mô.t xâu lên màn hı̀nh.
148 Chu.o.ng 4. Ngôn ngũ. PROLOG

4.6 Mô.t sô´ thı́ du. minh hoa. vê


` lâ.p trı̀nh
PROLOG
Thı́ du. 4.6.1 Câ.p nhâ.p dũ. liê.u
/*LAP1-DOC.PRO*/
/* LAP-DOC.PRO
Lap va Doc mot tep CSDL trong PROLOG2.0 ve mot
CO SO DU LIEU QUAN HE
*/

domains

name,address,gender=string
age=integer
file=myfile

database

person(name,age,address,gender)

predicates

run
repfile(file)
laptep
doctep
thoat
demo

clauses

/*Lap mot TEP*/


4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 149

laptep:-write(”Update the Database (Tentep.DAT):”),


readln(Tentep),nl,
/*
Truoc khi tao lap Tep Moi,them dau % truoc consult(), sau do
quay lai cap nhat. Va muon them du lieu vao tep vua cap
nhat thi hay bo dau % , neu khong du lieu sau se de len du
lieu cu
*/
%consult(Tentep),
run,
save(Tentep).
run:-write(”Khong muon nhap nua, An ENTER !”),nl,
write(“Name ?”), readln(Name), Name<>””,
write(“Age ?”),readint(Age),
write(“Address ?”),readln(Address),
write(“Gender ?”),readln(Gender),
assertz(person(Name,Age,Address,Gender)),run,nl.
run.
/*Doc mot TEP*/
repfile( ).
repfile(F):-not(eof(F)),repfile(F).
doctep:-write(”Ban doc tep nao(Tentep.DAT) ?”),
readln(Tentep),
openread(myfile,Tentep),
readdevice(myfile),repfile(myfile),
readln(L),write(L),nl,fail.
demo:-write(”Ban LAP: An 1; DOC: An 2; THOAT: An 0 !”),
150 Chu.o.ng 4. Ngôn ngũ. PROLOG

readint(Ch),
Ch=1,laptep;
Ch=2,doctep;
Ch=0,thoat;
demo.
thoat:-write(”Chao tam biet!!!”),exit,nl.

goal

demo.

Thı́ du. 4.6.2 Vẽ dô` thi.


/*E3.PRO*/

constants

bgi path = ” ”

include ”GRAPDECL.PRO”

goal

initgraph (detect, 0, GraphDriver, GraphMode, bgi path),

circle(150,150,100),

ellipse(150,150,0,359,100,50),

pieslice(100,100,0,135,49),

pieslice(100,100,135,225,49),

pieslice(100,100,225,360,49),

readchar ( ),

closegraph.
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 151

Thı́ du. 4.6.3 Kỹ thuâ.t khai báo dô` hoa.


/*Grapdecl.pro*/
/*************************************************
**************************************************
Graphic constants
Include file: “GrapDecl.PRO”
***************************************************
**************************************************/
Constants

/* graphresult error return codes */


grOk = 0
grNoInitGraph = -1
grNotDetected = -2
grFileNotFound = -3
grInvalidDriver = -4
grNoLoadMem = -5
grNoScanMem = -6
grNoFloodMem = -7
grFontNotFound = -8
grNoFontMem = -9
grInvalidMode = -10
grError = -11 /* generic error */
grIOerror = -12
grInvalidFont = -13
grInvalidFontNum = -14
grInvalidDeviceNum = -15
152 Chu.o.ng 4. Ngôn ngũ. PROLOG

/* define graphics drivers */


DETECT = 0 /* requests autodetection */
CGA = 1
MCGA = 2
EGA = 3
EGA64 = 4
EGAMONO = 5
RESERVED = 6
HERCMONO = 7
ATT400 = 8
VGA = 9
PC3270 = 10

/* graphics modes for each driver */


CGAC0 = 0 /* 320x200 color palette 0: red, yellow, green, 1 page */
CGAC1 = 1 /* 320x200 color palette 1: cyan, magenta, white, 1 pg */
CGAC2 = 2 /* 320x200 color palette 2: */
CGAC3 = 3 /* 320x200 color palette 3: */
CGAHI = 4 /* 640x200 1 page */
MCGAC0 = 0 /* 320x200 color palette 0: red, yellow, green, 1 page
*/
MCGAC1 = 1 /* 320x200 color palette 1: cyan, magenta, white, 1 pg
*/
MCGAC2 = 2 /* 320x200 color palette 2: */
MCGAC3 = 3 /* 320x200 color palette 3: */
MCGAMED = 4 /* 640x200 1 page */
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 153

MCGAHI = 5 /* 640x480 2 color 1 page */


EGALO = 0 /* 640x200 4 pages */
EGAHI = 1 /* 640x350 16 color 2 pages */
EGA64LO = 0 /* 640x200 16 color 1 page */
EGA64HI = 1 /* 640x350 4 color 1 page */
EGAMONOHI = 3 /* 640x350 64K on card, 1 page - 256K on card, 4
pages */
HERCMONOHI = 0 /* 720x348 2 pages */
ATT400C0 = 0 /* 320x200 color palette 0: red, yellow, green, 1 page
*/
ATT400C1 = 1 /* 320x200 color palette 1: cyan, magenta, white, 1 pg
*/
ATT400C2 = 2 /* 320x200 color palette 2: */
ATT400C3 = 3 /* 320x200 color palette 3: */
ATT400MED = 4 /* 640x200 1 page */
ATT400HI = 5 /* 640x400 1 page */
VGALO = 0 /* 640x200 16 color 4 pages */
VGAMED = 1 /* 640x350 16 color 2 pages */
VGAHI = 2 /* 640x480 16 color 1 page */
VGAHI2 = 3 /* 640x480 2 color 1 page */
PC3270HI = 0 /* 720x350 1 page */

/* Colors for setpalette and setallpalette */


BLACK = 0 /* dark colors */
BLUE = 1
GREEN = 2
154 Chu.o.ng 4. Ngôn ngũ. PROLOG

CYAN = 3
RED = 4
MAGENTA = 5
BROWN = 6
LIGHTGRAY = 7
DARKGRAY = 8 /* light colors */
LIGHTBLUE = 9
LIGHTGREEN = 10
LIGHTCYAN = 11
LIGHTRED = 12
LIGHTMAGENTA = 13
YELLOW = 14
WHITE = 15

/* Line styles for get/setlinestyle */


SOLID LINE = 0
DOTTED LINE = 1
CENTER LINE = 2
DASHED LINE = 3
USERBIT LINE = 4 /* User defined line style */

/* Line widths for get/setlinestyle */


NORM WIDTH = 1
THICK WIDTH = 3
DEFAULT FONT = 0 /* 8x8 bit mapped font */
TRIPLEX FONT = 1 /* ”Stroked” fonts */
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 155

SMALL FONT = 2
SANS SERIF FONT = 3
GOTHIC FONT = 4
HORIZ DIR = 0 /* left to right */
VERT DIR = 1 /* bottom to top */
USER CHAR SIZE = 0 /* user-defined char size */

/* Fill patterns for get/setfillstyle */


EMPTY FILL = 0 /* fills area in background color */
SOLID FILL = 1 /* fills area in solid fill color */
LINE FILL = 2 /* — fill */
LTSLASH FILL = 3 /* /// fill */
SLASH FILL = 4 /* /// fill with thick lines */
BKSLASH FILL = 5 /* \\\ fill with thick lines */
LTBKSLASH FILL = 6 /* \\\ fill */
HATCH FILL = 7 /* light hatch fill */
XHATCH FILL = 8 /* heavy cross hatch fill */
INTERLEAVE FILL = 9 /* interleaving line fill */
WIDE DOT FILL = 10 /* Widely spaced dot fill */
CLOSE DOT FILL = 11 /* Closely spaced dot fill */
USER FILL = 12 /* user defined fill */

/* BitBlt operators for putimage */


COPY PUT = 0 /* MOV */
XOR PUT = 1 /* XOR */
OR PUT = 2 /* OR */
156 Chu.o.ng 4. Ngôn ngũ. PROLOG

AND PUT = 3 /* AND */


NOT PUT = 4 /* NOT */

/* Horizontal and vertical justification for settextjustify */


LEFT TEXT = 0
CENTER TEXT = 1
RIGHT TEXT = 2
BOTTOM TEXT = 0

/*CENTER TEXT = 1 already defined above */


TOP TEXT = 2

/* Define some handy constants */


esc = ’\027’
true = 1
false = 0
pi = 3.14159

Thı́ du. 4.6.4 Tı́nh toán hàm


/*TGGTDAO.PRO*/
/* TGGDAO.PRO
Chuong trinh tinh:Giai thua,
Tong giai thua dao,Giai thua dao
Trace
*/

nowarnings

predicates

gthua(integer,real)
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 157

tggtdao(integer,real)
gtdao(integer,real)
demo

goal
demo.

clauses

gthua(1,1).
gthua(N,Kq): - N > 1,N 1 = N − 1,
gthua(N1,KqN1), Kq=KqN1*N.
tggtdao(1,1).
tggtdao(N,Kq2):-N > 1,N2=N-1,
gthua(N2,KqN3),
tggtdao(N2,KqN2),
Kq2=KqN2+1/(N*KqN3).
gtdao(1,1).
gtdao(N,Kq):-N > 1,N1=N-1,
gtdao(N1,KqN1),
Kq=KqN1*(1/N).
demo:-write(”Ban TINH GIA TRI cua GT,TGGTdao,GTdao cua N?
”),nl,
write(”Ban cho gia tri cua N ?”),
readint(N),
gthua(N,Kq),
writef(”Ket qua:\n %2.0!= %3.0”,N,Kq),nl,
tggtdao(N,KqTGNGTD),
writef(”\n 1/1!+1/2!+..+1/%1.0! = %10.9”,N,KqTGNGTD),nl,
158 Chu.o.ng 4. Ngôn ngũ. PROLOG

gtdao(N,KqDGT),
writef(”\n Dao giai thua: 1/%1.0! = %10.9”,N,KqDGT),nl.

Thı́ du. 4.6.5 Giao tiê´p giũ.a ngu.ò.i và máy


/*ELIZA.PRO*/
/* ELIZA */

domains
namelist=name*
name=symbol

predicates string namelist(string,namelist)


member(name,namelist)
ans(symbol)
run
run1
uni(symbol)
uni1(symbol,namelist)

clauses

string namelist(S,[H—T]):-
fronttoken(S,H,S1),!,string namelist(S1,T).
string namelist( ,[]).
member(X,[X— ]):-!.
member(X,[ —T]):-member(X,T),!.
run:-
makewindow(1,7,7,”ELIZA”,0,0,25,80),
write(”-HELLO,PLEASE TELL ME YOUR PROBLEM”),nl,
readln(Answ),
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 159

string namelist(Answ,List),
uni1( ,List).
run:-
write(” THIS IS OUT MY DOMAIN.”,
”I’M NOT SURE I UNDERSTAND YOU FULLY.”),nl,run1.
run1:-
readln(Answ),
string namelist(Answ,List),
uni1( ,List).
uni1(a,L):-
member(a,L),!,
uni(X),member(X,L).
uni1(X,L):-
uni(X),member(X,L),
ans(X).
uni(depressed).uni(unhappy).uni(help).uni(mother).
ans(”depressed”):-!,
write(”I’M SORRY TO HEAR YOU ARE DE-
PRESSED”),nl,run1.
ans(”unhappy”):-
write(”-DO YOU THINK COMING HERE WILL HELP YOU”,
” NOT TO BE UNHAPPY”),nl,run1.
ans(”help”):-!,
write(”-WHAT WOULD IT MEAN TO YOU IF YOU GOT
”,”HELP?”),nl,run.
ans(”mother”):-!,
write(”-TELL ME MORE ABOUT YOUR FAMILY”),nl,run1.
160 Chu.o.ng 4. Ngôn ngũ. PROLOG

goal

run,exit.

Thı́ du. 4.6.6 Các thu’ tu.c vào ra dũ. liê.u


/*OPENREAD.PRO*/

/*openread-write-append-modify*/

domains
file=myfile

predicates
repfile(file)
demo
thoat
opread
opwrite
opappe
opmodi

clauses

repfile( ).
repfile(F):-
not(eof(F)),
repfile(F).
opread:-
write(”Ban doc-tep nao(Tentep.TXT) ?”),
readln(Tentep),
openread(myfile,Tentep),
4.6. Mô.t sô´ thı́ du. minh hoa. vê
` lâ.p trı̀nh PROLOG 161

readdevice(myfile),
repfile(myfile),
readln(L),write(L),nl,
fail.
opwrite:- write(”Ban viet-vao tep nao(Tentep.TXT) ?”),
readln(Tentep),
openwrite(myfile,Tentep),
writedevice(myfile),
write(”\nTroi van con mua”),
write(”\nSao em cu doi.”),
write(”\nNho mai trong con mua nay”),
closefile(myfile),
file str(Tentep,Str),
display(Str),nl.
opappe:-
write(”Ban noi-vao tep nao(Tentep.TXT) ?”),
readln(Tentep),
openappend(myfile,Tentep),
writedevice(myfile),
write(”\nNho mai trong con mua nay!!”),
write(”\nDoi buon co hay”),
closefile(myfile),
file str(Tentep,Str),
display(Str),nl.
opmodi:-
write(”Ban sua-vao tep nao(Tentep.TXT) ?”),
readln(Tentep),
openmodify(myfile,Tentep),
162 Chu.o.ng 4. Ngôn ngũ. PROLOG

readdevice(myfile),
readln( ),
filepos(myfile,FilePos,0),
writedevice(myfile),
filepos(myfile,FilePos,0),
write(”\nNho mai trong dem mua nay!!!”),
write(”\nDoi buon co nhau”),
closefile(myfile),
file str(Tentep,Str),
display(Str),nl.
thoat:-write(”Chao tam biet!”),exit,nl.
demo:-write(”\nBan Mo doc: An 1;\nMo viet: An 2; \nMo noithem
:An 3; \nSua doi : An 4;\n va THOAT: An 0 !”),
readint(Ch),
Ch=1,opread,exit;
Ch=2,opwrite,exit;
Ch=3,opappe,exit;
Ch=4,opmodi,exit;
Ch=0,thoat;
demo.
goal
clearwindow,
demo.

4.7 Bài tâ.p chu.o.ng 4


1. Cho dãy Fibonacci du.o..c xác di.nh nhu. sau: F1 = 1, F2 = 1, Fn =
Fn−1 + Fn−2 (n > 2).
4.7. Bài tâ.p chu.o.ng 4 163

Hãy lâ.p trı̀nh bă` ng Prolog tı́nh dãy Fibonacci không vu.o..t quá N , trong
dó N du.o..c nhâ.p vào tù. bàn phı́m. In dãy Fibonacci dó lên màn hı̀nh.
2. Hãy viê´t mô.t chu.o.ng trı̀nh Prolog sao cho khi hô.i thoa.i ta du.a câu ho’i
vào thı̀ hê. thô´ng Prolog sẽ tra’ lò.i hay biê´n dô’i câu dó theo mô.t cách
di.nh să˜n, chă’ng ha.n dê’ có thê’ ta.o ra cuô.c hô.i thoa.i sau dây:
Ngu.ò.i ho’i: Anh là máy tı́nh?
Máy tı́nh tra’ lò.i: Tôi không pha’i là máy tı́nh.
Ngu.ò.i ho’i: Anh nói du.o..c tiê´ng Dú.c không?
Máy tra’ lò.i: Không, tôi chı’ nói du.o..c tiê´ng Anh.
(Chú ý: Prolog xu’. lý tiê´ng Viê.t không dâ´u).
3. Hãy viê´t mô.t chu.o.ng trı̀nh Prolog in mô.t danh sách các di.a chı’ cá nhân
da.ng sau dây:
Nguyê˜n Văn Hoàng
20 Nguyê˜n Ca’nh Chân
Ba Dı̀nh, Hà Nô.i
Tel. 048512346.
4. Hãy viê´t mô.t chu.o.ng trı̀nh Prolog do.c vào mô.t dãy ký tu.. tuỳ ý tù. bàn
phı́m và cú. gă.p ký tu.. ‘a’ thı̀ lâ.p tú.c dô’i nó thành ký tu.. ‘b’ rô`i in kê´t
qua’ cu’a dãy cuô´i cùng lên màn hı̀nh.
5. Hãy viê´t mô.t chu.o.ng trı̀nh Prolog sinh ngâ˜u nhiên mô.t sô´ tu.. nhiên
trong khoa’ng tù. 1 dê´n 200.

6. Cho chu.o.ng trı̀nh Prolog sau dây:


/*trace*/
predicates
ke’ că´p (symbol)
thı́ch (symbol, symbol)
có thê’ ăn că´p (symbol, symbol)
clauses
ke’ că´p (john)
164 Chu.o.ng 4. Ngôn ngũ. PROLOG

thı́ch (mary, dô` trang sú.c).


thı́ch (mary, nha.c).
thı́ch (john, X): – thı́ch (X, nha.c)
có thê’ ăn că´p (X, Y ):– ke’ că´p (X), thı́ch (X, Y ), nl.
goal
có thê’ ăn că´p (john, X)
Hãy cha.y chu.o.ng trı̀nh vê´t (Trace) dê’ xem kê´t qua’ và xem các bu.ó.c
tı̀m lò.i gia’i cu’a Prolog.

7. Gia’ su’. ta khai báo cho Prolog các quan hê. sau:
bô´ (X, Y ) /*X là bô´ cu’a Y */
me. (X, Y ) /*X là me. cu’a Y */
dàn ông (X) /*X là dàn ông*/
dàn bà (X) /*X là dàn bà*/
bô´ me. (X, Y ) /*X là bô´ hoă.c me. cu’a Y */
khác nhau (X, Y ) /*X khác Y */
Hãy viê´t các luâ.t suy diê˜n theo cú pháp cu’a Prolog dê’ di.nh nghı̃a các
quan hê. sau dây:
là me. (X) /*X là me.*/
là bô´ (X) /*X là bô´*/
là con (X) /*X là con*/
chi. em gái (X, Y ) /*X là chi. em gái cu’a Y */
ông (X, Y ) /*X là ông nô.i/ngoa.i cu’a Y */
con cùng cha (X, Y ) /*X và Y có cùng mô.t bô´*/
cô (X, Y ) /*X là cô cu’a Y */
4.7. Bài tâ.p chu.o.ng 4 165

8. Xét chu.o.ng trı̀nh Prolog do.n gia’n sau dây:


domains
tên=symbol
predicates bô´ (tên, tên)
clauses
bô´(mary, charles)
bô´(john, charles)
Hãy dă.t câu ho’i cho Prolog dê’ tı̀m mô.t ngu.ò.i nào dó là bô´.

9. Hãy cha.y vê´t (Trace) cu’a chu.o.ng trı̀nh sau dê’ in kê´t qua’:
domains
ds sô´ nguyên=interger∗
predicates
in ds (ds sô´ nguyên)
in5(ds sô´ nguyên, interger)
goal
in ds ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
clauses
in ds (DS): – nl, in5 (DS, 0), nl.
in5 (L, 5): – !, nl, in5 (L, 0).
in5 ([H || T], N): – write(H, “ ”), N1=N+1, in5 (T, N1).
in5 ([ ], ).
Chu.o.ng 5

Logic mò.

5.1 Mo’. dâ


`u . . . . . . . . . . . . . . . . . . . . . . . . 167
5.2 Các khái niê.m co. ba’n . . . . . . . . . . . . . . . . 169
5.3 ` biê´n ngôn ngũ.
Mô.t sô´ chú ý vê . . . . . . . . . . 172
5.4 Các phép toán trên tâ.p mò. . . . . . . . . . . . . 176
5.5 Các tı́nh châ´t trên tâ.p mò. . . . . . . . . . . . . . 177
5.6 Quan hê. mò. . . . . . . . . . . . . . . . . . . . . . . 179
Các phép toán trên quan hê. mò. . . . . . . . . . . 180
5.6.1
5.6.2 Mô.t sô´ tı́nh châ´t trên quan hê. mò. . . . . . . . . . 180
5.7 Logic mò. . . . . . . . . . . . . . . . . . . . . . . . 180
5.7.1 Mo’. dâ
` u . . . . . . . . . . . . . . . . . . . . . . . . 180
5.7.2 Các phép kê´t nô´i . . . . . . . . . . . . . . . . . . . 181
5.7.3 Phép tuyê’n (OR-disjunction) . . . . . . . . . . . . 183
5.7.4 Phép kéo theo (Implication [Zadeh 1973]) . . . . . 183
5.8 Su.. dô`ng nhâ´t dúng mò. (Fuzzy Tautologies) . . . . 185
5.9 Các phép toán t − norm T và t − conorm S . . . . 185
5.10 Phép ho..p thành (Composition) . . . . . . . . . . . 187
5.1. Mo’. dâ
`u 167

5.11 Phu.o.ng trı̀nh quan hê. mò. . . . . . . . . . . . . . 187


5.12 Lâ.p luâ.n mò. (Fuzzy Reasoning) . . . . . . . . . . . 189
5.12.1 Thuâ.t toán mò. . . . . . . . . . . . . . . . . . . . . 190
5.12.2 Lâ.p luâ.n mò. . . . . . . . . . . . . . . . . . . . . . 192
5.12.3 Mô.t sô´ phép suy diê˜n mò. khác . . . . . . . . . . . 192
5.13 Các luâ.t ho..p thành cu’a suy diê ˜n . . . . . . . . . 194
.
5.14 Ú ng du.ng . . . . . . . . . . . . . . . . . . . . . . . 198
5.15 Bài tâ.p chu.o.ng 5 . . . . . . . . . . . . . . . . . . 199
Tài liê.u tham kha’o . . . . . . . . . . . . . . . . . . . . . 203

5.1 Mo’. dâ


`u
Su.. phát triê’n cu’a khoa ho.c và kỹ thuâ.t dã dem la.i năng suâ´t lao dô.ng mó.i
và su.. phát triê’n cu’a nó dã dâ˜n dê´n kha’ năng “kéo dài” năng lu..c tu. duy, su..
suy luâ.n cu’a con ngu.ò.i. Thê´ gió.i hiê.n thu..c và tri thú.c khoa ho.c câ ` n khám
phá là vô ha.n và cu..c kỳ phú.c ta.p nhu.ng ngôn ngũ. mà năng lu..c tu. duy và
tri thú.c cu’a con ngu.ò.i su’. du.ng làm phu.o.ng tiê.n nhâ.n thú.c và biê’u diê˜n
chı’ là hũ.u ha.n. Và nhı̀n chung con ngu.ò.i luôn o’. trong bô´i ca’nh thu..c tê´ là
không thê’ có thông tin dâ ` y du’ và chı́nh xác cho các hoa.t dô.ng dê’ du.a ra
quyê´t di.nh cu’a mı̀nh và cũng khó hy vo.ng du.a ra nhũ.ng quyê´t di.nh dúng
dă´n và chı́nh xác tuyê.t dô´i, nhiê ` u hàm chú.a nhũ.ng yê´u tô´ có ba’n
` u hay ı́t dê
châ´t không dâ ` y du’, không chă´c chă´n. Tı́nh không chă´c chă´n có thê’ là dâ´u
â´n dê’ di dê´n nguyên lý cu’a Heisenberg, ngu.ò.i dã thiê´t lâ.p nên logic da tri.
vào năm 1920. Mô.t thò.i gian sau, vào năm 1930 nhà Toán ho.c Max Black
dã vâ.n du.ng logic liên tu.c cho tâ.p ho..p các phâ ` n tu’. và ký hiê.u, và nó du.o..c
dă.t tên là tı́nh không chă´c chă´n. Các bu.ó.c phát triê’n tiê´p theo cho phép
dâ˜n dê´n khái niê.m bâ.c cu’a tı́nh không chă´c chă´n, trong dó giá tri. dúng và
sai du.o..c xem là cu..c tri. cu’a phô’ liên tu.c vê
` tı́nh không chă´c chă´n. Vào năm
1965, trong buô’i thuyê´t trı̀nh Xê-mi-na cu’a mı̀nh vó.i tiêu dê ` “Các tâ.p mò.”
168 Chu.o.ng 5. Logic mò.

Lotfi Zadel dã trı̀nh bày lý thuyê´t logic da tri. là lý thuyê´t du.o..c ông dùng
thuâ.t ngũ. Lý thuyê´t tâ.p mò.. Zadel dã vâ.n du.ng thuâ.t ngũ. Logic mò. và
` n ta’ng cu’a mô.t lı̃nh vu..c mó.i trong khoa ho.c mà nó du.o..c
thiê´t lâ.p nên nê
tiê´p tu.c phát triê’n cho dê´n tâ.n ngày nay. Dâ ` u ngu.ò.i dã phê phán
` u tiên nhiê
lý thuyê´t cu’a Zadel, chı’ trı́ch ră` ng logic mò. không pha’i là cái gı̀ khác mà là
lý thuyê´t xác suâ´t trá hı̀nh. Zadeh dã phát triê’n lý thuyê´t cu’a mı̀nh thành
Lý thuyê´t kha’ năng. Lý thuyê´t này khác biê.t mô.t cách có ý nghı̃a so vó.i lý
thuyê´t xác suâ´t. Dă.c biê.t ta.i Nhâ.t Ba’n, lý thuyê´t logic mò. dã du.o..c hu.o’.ng
ú.ng mô.t cách nhanh chóng dê´n tâ.n mo.i miê ` n ú.ng du.ng, mà o’. dó nó mang
la.i nhũ.ng món lo..i nhuâ.n kê´ch sù. Kosko gia’ thuyê´t ră` ng các nguyên lý cu’a
logic mò. gă´n chă.t nhiê ` u ho.n vó.i khái niê.m logic cu’a ngu.ò.i phu.o.ng Dông so
vó.i logic cu’a Aristote gă´n chă.t vó.i ngu.ò.i phu.o.ng Tây, và vı̀ vâ.y dây chı́nh
là lý do dê’ hiê’u ră` ng ta.i sao ngu.ò.i Nhâ.t tiê´p câ.n nhiê
` u ho.n vê` logic mò..

Lý thuyê´t logic mò. thiê´t lâ.p nê


` n ta’ng co. ba’n cho viê.c biê’u diê˜n tri thú.c
và phát triê’n tı́nh co. ho.c chu’ yê´u dê’ di dê´n nhũ.ng quyê´t di.nh trên các hành
dô.ng dang chiê´m giũ. mà nó câ ` n pha’i thu..c hiê.n viê.c diê
` u khiê’n mô.t thiê´t
bi. nào dó. Tù sau năm 1970, Logic mò dã tı̀m thâ´y nhũ.ng ú.ng du.ng ló.n
. .
ho.n trong các quá trı̀nh sa’n xuâ´t công nghiê.p, các hê. thô´ng diê ` u khiê’n giao
thông và du.ò.ng să´t, ... và dă.c biê.t ngày nay trong các máy móc phu.c vu.
cho gia dı̀nh và cuô.c sô´ng.

Nhũ.ng nhân tô´ co. ba’n nhâ´t cu’a logic mò. câ
` n du.o..c hiê’u là các kỹ thuâ.t
` u khiê’n mò.. Ngày nay không chı’ các nu.ó.c phát triê’n mà ca’ các nu.ó.c
diê
dang phát triê’n cũng quan tâm nghiên cú.u và phát triê’n ú.ng du.ng cu’a lı̃nh
vu..c “khoa ho.c mò.” nhu. Trung Quô´c, Singapor, Brazil, Iran... Diê ` u này
chú.ng minh thêm ý nghı̃a thu..c tiê˜n cu’a lı̃nh vu..c “khoa ho.c mò.” .
5.2. Các khái niê.m co. ba’n 169

5.2 Các khái niê.m co. ba’n


Di.nh nghı̃a 5.2.1 Gia’ su’. X là mô.t tâ.p nê ` n và A ⊂ X. Khi dó hàm dă.c
tru ng χA cu’a tâ.p ho. p A du o. c di.nh nghı̃a nhu. sau:
. . . .
(
1, vó.i x ∈ A
χA (x) =
0, vó.i x ∈ /A

Hı̀nh 1. Hàm dă.c tru.ng cu’a tâ.p Boole cô’ diê’n

Tı́nh mò. có thê’ du.a vào trong lý thuyê´t tâ.p ho..p, nê´u hàm dă.c tru.ng cu’a
nó du.o..c mo’. rô.ng trên tâ.p vô ha.n các giá tri. nă` m giũ.a 0 và 1.

Di.nh nghı̃a 5.2.2 Gia’ su’. X là mô.t tâ.p nê ` n. Mô.t tâ.p ho..p A du.o..c go.i là

mô.t tâ.p mò. cu’a tâ.p nê
` n X, nê´u tâ.p dó du.o..c dă.c tru.ng bo’.i hàm thuô.c µA (x)

là ánh xa. cu’a tâ.p nê ` n X vào doa.n [0, 1] (nghı̃a là µA (x) là dô. thuô.c cu’a

phâ` n tu’. x sao cho x ∈ A), tú.c là:

µA : X → [0, 1]

` n X là hũ.u ha.n và rò.i ra.c thı̀ ta ký hiê.u tâ.p mò. A nhu. sau:
- Nê´u tâ.p nê

X µA

(xi )
A=
∼ xi
xi ∈X

` n X là liên tu.c và vô ha.n thı̀ ta ký hiê.u tâ.p mò. A nhu. sau:
- Nê´u tâ.p nê

Z µA (x)

A=
∼ x
170 Chu.o.ng 5. Logic mò.

P R
Chú ý ră` ng hai ký hiê.u và du.o..c dùng trong tâ.p mò. là không liên
quan gı̀ dê´n tô’ng và tı́nh tı́ch phân o’. dây.

Thı́ du. 5.2.1 Cho tâ.p nê ` n X = {1, 2, 3, 4, 5, 6}. Mô.t tâ.p mò. A du.o..c xác

di.nh nhu. sau:
0.3 0.8 0.65 0.72
A(x) = + + +
∼ 1 2 3 5
` n tu’. 1 vào tâ.p mò. A là 0.3, cu’a 2 là 0.8, cu’a 3 là
nghı̃a là dô. thuô.c cu’a phâ

0.65, cu’a 5 là 0.72, còn các phâ ` n tu’. 4 và 6 có dô. thuô.c là 0.

Di.nh nghı̃a 5.2.3 Mô.t biê´n mò. là mô.t biê´n mà giá tri. cu’a nó du.o..c xét
dê´n là các nhãn (label) cu’a tâ.p mò..

Thı́ du. 5.2.2 “Nhiê.t dô.” có thê’ xem là mô.t biê´n mò. mà nó có kha’ năng
nhâ.n các giá tri. ngôn ngũ. nhu. “Thâ´p”, “Trung bı̀nh”, “Bı̀nh thu.ò.ng”, “Cao”,
và “Râ´t cao” .
Nói chung bâ´t kỳ biê´n mò. nào cũng có thê’ du.o..c biê’u diê˜n bă` ng thuâ.t
ngũ. cu’a các câu, và các câu này là tô’ ho..p cu’a các biê´n mò., các diê˜n ta’ ngôn
ngũ. và các tù. nhâ´n (hedges) chă’ng ha.n các giá tri. cu’a biê´n mò. “Nhiê.t dô.”
có thê’ du.o..c mô ta’ nhu. sau:
“Cao”, “Không cao”, “Quá cao”, “Không râ´t - Cao”, “Cu..c cao”, “Toàn
cao”,... trong dó nhãn là “Cao”, phu’ di.nh là không (NOT), và tù. nhâ´n là
“cu..c”, “quá”, “toàn”, ...

Hı̀nh 2 du.ó.i dây cho ta hı̀nh dung bú.c tranh vê


` “Nhiê.t dô.”:
5.2. Các khái niê.m co. ba’n 171

Hı̀nh 2. Biê´n ngôn ngũ. “Nhiê.t dô.” và mô.t sô´ giá tri. cu’a nó

Su.. phu. thuô.c cu’a mô.t biê´n ngôn ngũ. vào mô.t biê´n khác du.o..c diê˜n ta’
thông qua mô.t câu lê.nh mò. có diê
` u kiê.n du.ó.i da.ng sau dây:

R: IF S1 THEN S2
hoă.c bă` ng ký hiê.u:

S1 → S2 (hay còn go.i luâ.t mò.)


trong dó S1 và S2 là các câu lê.nh mò. có diê
` u kiê.n du.o..c cho du.ó.i da.ng co.
ba’n sau dây:
S : x là A

Thı́ du. 5.2.3 Ta nói “Hoàng có tuô’i trung niên”. Ta cho.n x là biê´n ngôn
ngũ. “Tuô’i”, tâ.p nê
` n là thò.i gian sô´ng: X = [0, 130] (tuô’i). A là tâ.p mò.

“Trung niên” tu.o.ng ú.ng vó.i hàm thuô.c µA : X → [0, 1].

Khi dó có su.. kiê.n “có thê’ tuô’i cu’a Hoàng là 40” dı̃ nhiên không chă´c
chă´n và khá ho..p lý, nê´u diê˜n da.t theo lý thuyê´t kha’ năng cu’a Zadeh là:
Kha’ năng (Tuô’i cu’a Hoàng là 40)=Poss (x = 40) cho biê´t du.o..c dô. thuô.c
cu’a sô´ tuô’i 40 vào tâ.p mò. A = A(40).
∼ ∼

` mò. “Hoàng có tuô’i trung niên” du.o..c diê˜n da.t thành mê.nh dê
Mê.nh dê `:
P ={ biê´n x nhâ.n giá tri. mò. cu’a A trên nê
` n X}={x là A }
∼ ∼

Thı́ du. 5.2.4 Ta cho.n biê´n ngôn ngũ.


x=”góc tay quay” trên tâ.p nê `n
0
X=[0, 360 ], và tâ.p mò .
A là “góc ló.n” tu.o.ng ú.ng vó.i hàm thuô.c µA : X → [0, 1].
∼ ∼

Tu.o.ng tu.., biê´n ngôn ngũ. y=“tô´c dô. xe” trên tâ.p nê` n Y = [0, 150]
(km/giò.), và tâ.p mò. B là “xe di nhanh” tu.o.ng ú.ng vó.i hàm thuô.c

µB : Y → [0, 1].

172 Chu.o.ng 5. Logic mò.

`:
Khi dó ta ký hiê.u mê.nh dê
S1 = “góc tay quay ló.n” = {x là A}

S2 = “xe di nhanh” = {y là B }

` u kiê.n mò. có da.ng S1 → S2 du.o..c diê˜n da.t nhu. sau:
` diê
thı̀ mê.nh dê
IF “góc tay quay ló.n” THEN “xe di nhanh”.

5.3 ` biê´n ngôn ngũ.


Mô.t sô´ chú ý vê
Nhu. dã dùng o’. dây, mô.t biê´n ngôn ngũ. có thê’ nhâ.n các giá tri. là các mê.nh
` cu’a ngôn ngũ. tu.. nhiên (hoă.c ngôn ngũ. nhân ta.o).
dê
Nói chung giá tri. cu’a mô.t biê´n ngôn ngũ. du.o..c dă.c ta’ thông qua các thuâ.t
ngũ. sau:
• Các thuâ.t ngũ. so. câ´p là các nhãn cu’a tâ.p mò., chă’ng ha.n nhu. “Cao”
, “Thâ´p” , “Nho’” , “Trung bı̀nh” , “Bă ` ng không”.

• Phu’ di.nh NOT và các liên kê´t AND và OR.

• Các tù. nhâ´n, chă’ng ha.n nhu. “râ´t” , “gâ


` n” , “hâ
` u hê´t”.

• Các diê’m ghi chú (markers), chă’ng ha.n nhu. dóng mo’. ngoă.c ().
` biê´n ngôn ngũ.
5.3. Mô.t sô´ chú ý vê 173

` các hàm thuô.c du.o..c dùng trong


Hı̀nh 3. Thı́ du. vê
` u khiê’n mò. cu’a F.L. Smidth
diê

Các hàm so. câ´p có thê’ hoă.c là hàm thuô.c liên tu.c, hoă.c là hàm thuô.c rò.i
ra.c. Các hàm thuô.c liên tu.c thông thu.ò.ng du.o..c xác di.nh bo’.i các hàm gia’i
tı́ch. Công ty Dan Ma.ch cu’a F. L. Smitdth trong khi thiê´t kê´ bô. diê ` u khiê’n
cho công nghiê.p sa’n suâ´t xi-măng dã su’. du.ng hàm thuô.c phân bô´ Gauss có
da.ng sau dây:

α !β
µA (x) = 1 − e |γ − x| (dô` thi. o’. hı̀nh 3)

dùng trong diê ` u khiê’n mò. cu’a F. L. Smidth.


.
O’ dây bô. ba (α, β, γ) du.o..c dùng dê’ xác di.nh tâ.p mò. cu’a F.L.Smidth
du..a trên ba’ng dã du.o..c thiê´t lâ.p sau dây (hı̀nh 4).

Biê´n ngôn ngũ. Viê´t tă´t α β γ


Positive Large LP 0.25 2.5 1
Psitive Medium MP 0.25 2.5 0.7
Psitive Small SP 0.25 2.5 0.4
Psitive Zero ZP 0.1 6 0.1
Zero ZE 0.25 6 0
Negative Zero ZN 0.1 6 -0.1
Negative small SN 0.25 2.5 -0.4
Negative Medium MN 0.25 2.5 -0.7
Negative Large LN 0.25 2.5 -1
Large HIGH 0.5 6 1
Normal OK 0.6 8 0
Low Low 0.5 6 -1

Hı̀nh 4. Ba’ng dũ. liê.u α, β, γ cu’a F. L. Smidth

Bă` ng cách xác di.nh luân phiên hai hàm thuô.c dă.c chu’ng, ký hiê.u là S và
Π, du.o..c chı’ ra sau dây:
174 Chu.o.ng 5. Logic mò.

Hàm thú. nhâ´t S là mô.t hàm do.n diê.u và du.o..c xác di.nh nhu. sau (H5.)



 0 vó.i x ≤ α

  2

 x−y

 vó.i α ≤ x ≤ β
γ − α 2
S(x, α, β, γ) =

 x−γ


 1−2 vó.i β ≤ x ≤ α

 γ − α

1 vó.i x ≥ γ

Hı̀nh 5. Hàm dă.c chu’ng S(x, α, β, γ)

Hàm thú. hai Π là hàm dă.c chu’ng, hàm này thay dô’i tı́nh do.n diê.u ta.i
duy nhâ´t mô.t diê’m và du.o..c xác di.nh du..a vào hàm thuô.c S, trong dó tham
sô´ β biê’u diê˜n dô. rô.ng cu’a hàm giũ.a các diê’m trung bı̀nh sao cho hàm thuô.c
có mô.t giá tri. 0,5. Hàm này du.o..c xác di.nh nhu. sau (hı̀nh 6.)

Hı̀nh 6. Hàm thuô.c dă.c chu’ng Π(x, α, β, γ)


` biê´n ngôn ngũ.
5.3. Mô.t sô´ chú ý vê 175


 S(x, γ − β, γ − β , γ) vó.i x ≤ γ

Π(x, α, β, γ) = 2
 β
 1 − S(x, γ, γ + , β + γ) vó.i x > γ
2
Các tâ.p mò. liên tu.c cũng có thê’ xây du..ng tù. các hàm tam giác hoă.c hı̀nh
thang. Ba thı́ du. cu’a các hàm hı̀nh thang sau dây (H7.) biê’u diê˜n các tâ.p
so. câ´p (Small, Medium và Large), và các tâ.p mò. tu.o.ng ú.ng du.o..c xác di.nh
có su’. du.ng 4 tham biê´n: hai diê’m trong b và c, hai diê’m mép trái - pha’i a
và d.

Hı̀nh 7. Hàm thuô.c hı̀nh thang

Các tâ.p mò. tu.o.ng ú.ng vó.i các biê´n ngôn ngũ. (small, medium và large)
là

µsmall (x) = {0.3 + 0.7 + 1 + 0.7 + 0.3 + 0 + 0}


µmedium (x) = {0 + 0 + 0.3 + 0.7 + 1 + 0.7 + 0.3}
µlarge (x) = {0 + 0 + 0 + 0 + 0.3 + 0.7 + 1}

` n X = {0, 1, 2, 3, 4, 5, 6} (tâ.p rò.i ra.c) và du.o..c biê’u diê˜n bo’.i dô`
trên tâ.p nê
thi. sau dây (hı̀nh 8):
176 Chu.o.ng 5. Logic mò.

` hàm thuô.c rò.i ra.c


Hı̀nh 8. Các thı́ du. vê

Chú ý: Ta có thê’ kiê’m tra mô.t sô´ hàm thuô.c trong MATLAB/Fuzzy Tool-
box.

5.4 Các phép toán trên tâ.p mò.


1. Mô.t tâ.p mò. A trên X du.o..c go.i là tâ.p rô˜ng, nê´u hàm thuô.c cu’a nó

bă` ng 0 ta.i mo.i no.i, tú.c là:

A = φ, nê´u µA (x) = 0 ∀x ∈ X.
∼ ∼

` n bù A cu’a mô.t tâ.p mò. A du.o..c xác di.nh do.n gia’n:
2. Phâ
∼ ∼

µA (x) = 1 − µA (x) ∀x ∈ X.
∼ ∼

3. Hai tâ.p mò. A và B du.o..c go.i là bă` ng nhau, ký hiê.u A = B nê´u
∼ ∼ ∼ ∼
µA (x) = µB (x) ∀x ∈ X
∼ ∼

4. Tâ.p mò. B du.o..c go.i là bao tâ.p mò. A, ký hiê.u A ⊂ B , nê´u µA (x) ≤
∼ ∼ ∼ ∼ ∼
µB (x) ∀x ∈ X.

5. Ho..p cu’a hai tâ.p mò. A và B trên tâ.p nê


` n X, ký hiê.u A ∪ B du.o..c xác
∼ ∼ ∼ ∼
di.nh là
µA∪B (x) = µA (x) ∨ µB (x) ∀x ∈ X.
∼ ∼ ∼ ∼

6. Giao cu’a hai tâ.p mò. A và B trên tâ.p nê


` n X, ký hiê.u A ∩ B du.o..c xác
∼ ∼ ∼ ∼
di.nh là:
µA∩B (x) = µA (x) ∧ µB (x) ∀x ∈ X.
∼ ∼ ∼ ∼

Chú ý:

1. A ⊆ X ⇒ µA (x) ≤ µX (x)
∼ ∼
5.5. Các tı́nh châ´t trên tâ.p mò. 177

2. ∀ ∈ X : µX (x) = 1

3. Luâ.t De Morgan:

• A∩B = A∪B
∼ ∼ ∼ ∼

• A∪B = A∩B
∼ ∼ ∼ ∼

4. A ∪ A 6= X
∼ ∼

A ∩ A 6= ∅
∼ ∼

5. Hiê.u cua’ hai tâ.p mò. A và B , ký hiê.u A|B , du.o..c xác di.nh là:
∼ ∼ ∼ ∼

A|B = A ∩ B
∼ ∼ ∼ ∼

Thı́ du. 5.4.1

a) Ho..p cu’a A và B b) Giao cu’a A và B ` n bù cu’a A và B


c) Phâ
∼ ∼ ∼ ∼ ∼ ∼

d) Minh ho.a chú thı́ch 4 e) Minh ho.a chú thı́ch 4

5.5 Các tı́nh châ´t trên tâ.p mò.


1. Giao hoán:
178 Chu.o.ng 5. Logic mò.

A∪B = B ∪A
∼ ∼ ∼ ∼

A∩B = B ∩A
∼ ∼ ∼ ∼

2. Kê´t ho..p
A ∪ (B ∪ C = (A ∪ B ) ∪ C
∼ ∼ ∼ ∼ ∼ ∼

A ∩ (B ∩ C = (A ∩ B ) ∩ C
∼ ∼ ∼ ∼ ∼ ∼

3. Phân phô´i hai bên:


A ∪ (B ∩ C ) = (A ∪ B ) ∩ (A ∪ C )
∼ ∼ ∼ ∼ ∼ ∼ ∼

A ∩ (B ∪ C ) = (A ∩ B ) ∪ (A ∩ C )
∼ ∼ ∼ ∼ ∼ ∼ ∼

4. Lũy dă’ng:
A∪A=A
∼ ∼ ∼

A∩A=A
∼ ∼ ∼

5. Dô`ng nhâ´t:
A ∪ ∅ = A và A ∩ X = A
∼ ∼ ∼ ∼

A ∩ ∅ = ∅ và A ∪ X = X
∼ ∼

6. Bă´c câ
` u: Nê´u A ⊆ B ⊆ C thı̀ A ⊆ C
∼ ∼ ∼ ∼ ∼

7. Phu’ di.nh kép: A = A


∼ ∼

Thı́ du. 5.5.1 Gia’ su’. cho hai tâ.p mò.

1 0.5 0.3 0.2 0.5 0.7 0.2 0.4


A= + + + và B = + + +
∼ 2 3 4 5 ∼ 2 3 4 5
` n X = {1, 2, 3, 4, 5}. Khi dó ta có:
trên tâ.p nê
5.6. Quan hê. mò. 179

1 0 0.5 0.7 0.8


-A= + + + +
∼ 1 2 3 4 5
1 0.5 0.3 0.8 0.6
-B= + + + +
∼ 1 2 3 4 5
1 0.7 0.3 0.4
- A∪B = + + +
∼ ∼ 2 3 4 5
0.5 0.3 0.3 0.2

- A B = A ∩ B = + + +
∼ ∼ ∼ ∼ 2 3 4 5
1 0 0.3 0.7 0.6
- De Morgan: A ∪ B = A ∩ B = + + + +
∼ ∼ ∼1 2∼ 3 4 5
1 0.5 0.5 0.8 0.8
A∩B =A∪B = + + + + .
∼ ∼ ∼ ∼ 1 2 3 4 5

5.6 Quan hê. mò.


Di.nh nghı̃a 5.6.1 Gia’ su’. X và Y là hai tâ.p nê ` n. Mô.t quan hê. mò. R là

ánh xa. cu’a tı́ch Des Carte X × Y vào doa.n [0, 1], trong dó hàm thuô.c cu’a
quan hê. ký hiê.u µR (x, y), và du.o..c tı́nh bă` ng công thú.c:

A × B = R ⊂ X × Y vó.i
∼ ∼ ∼

µR (x, y) = µA×B (x, y) = min(µA (x), µB (y)).


∼ ∼ ∼ ∼ ∼

0.2 0.5 1
Thı́ du. 5.6.1 Gia’ su’. cho tâ.p mò. A = + + `n X =
trên tâ.p nê
∼ x1 x2 x3
0.3 0.9
{x1 , x2, x3 }, và tâ.p mò. B = + ` n Y = {y1, y2 }.
trên tâ.p nê
∼ y1 y2
Hãy tı̀m quan hê. mò. R = A × B trên tâ.p nê `n X × Y ?
∼ ∼ ∼
Gia’i: Dê’ dê˜ dàng tı́nh toán, ta viê´t tâ.p mò. A du.ó.i da.ng ma trâ.n cô.t nhu.

x1 0.2
y1 y2
sau: A= x2 0.5 và tâ.p mò. B du.ó.i da.ng ma trâ.n dòng: B =
∼ ∼ ∼ 0.3 0.9
x3 1
Khi dó quan hê. mò. R là ma trâ.n cõ. 3 × 2 sau dây du.o..c tı́nh tu.o.ng tu..

nhu. nhân hai ma trâ.n:
180 Chu.o.ng 5. Logic mò.

y1 y2
x1 0.2 0.2
R = A × B=
∼ ∼ ∼ x2 0.3 0.5
x3 0.3 0.9

5.6.1 Các phép toán trên quan hê. mò.


1. Phép ho..p: µR∪S (x, y) = max(µR (x, y), µS (x, y))
∼ ∼ ∼ ∼

2. Phép giao: µR∩S (x, y) = min(µR (x, y), µS (x, y)).


∼ ∼ ∼ ∼

` n bù: µR (x, y) = 1 − µR (x, y)


3. Phâ
∼ ∼

4. Bao hàm thú.c: R ⊂ S ⇒ µR (x, y) ≤ µS (x, y)


∼ ∼ ∼ ∼

5.6.2 Mô.t sô´ tı́nh châ´t trên quan hê. mò.


Tu.o.ng tu.. nhu. trên tâ.p mò.: giao hoán, kê´t ho..p, phân phô´i hai bên, luỹ
dă’ng và dô`ng nhâ´t, các luâ.t De Morgan cũng dúng trên quan hê. mò.. Ngoài
ra ta còn chú ý thêm:

R ∪ R 6= E
∼ ∼

R ∩ R 6= 0
∼ ∼
   
1 ··· 1 0 ··· 0
. . ` y du’) và 0 =  . . .
trong dó E =  .. . . . ..  (quan hê. dâ  .. . . ..  (quan hê.
1 ··· 1 0 ··· 0
null).

5.7 Logic mò.


5.7.1 Mo’. dâ
`u
5.7. Logic mò. 181

Vâ´n dê` ha.n chê´ cu’a logic mê.nh dê ` cô’ diê’n là o’. chô˜ “Logic hai giá tri.”,
và dã ta.o nên nhiê ` u nghi.ch lý thú vi. qua nhiê ` u thò.i da.i, chă’ng ha.n ngu.ò.i
tho.. ca.o cu’a xú. Seville là mô.t nghi.ch lý, và nó thu.ò.ng du.o..c go.i là “Russell’
s barber”: o’. mô.t thành phô´ nho’ cu’a Tây Ban Nha thuô.c xú. Seville có tô`n
ta.i tù. lâu dò.i mô.t luâ.t nhu. sau: “Tâ´t ca’ và chı’ có nhũ.ng ngu.ò.i dàn ông,
ho. không tu.. ca.o râu thı̀ du.o..c ca.o râu bo’.i ông tho.. ca.o. Ho’i ră ` ng ai ca.o râu
.
ông tho. ca.o”.
Nghi.ch lý này du.o..c chı’ ra nhò. khái niê.m tâ.p ho..p: gia’ su’. S là mô.t mê.nh
` thê’ hiê.n ngu.ò.i tho.. ca.o tu.. ca.o râu, và S là mê.nh dê
dê ` thê’ hiê.n ngu.ò.i tho..
ca.o không làm. Khi dó vı̀ S → S và S → S là hai mê.nh dê ` logic tu.o.ng
du.o.ng: S ↔ S. Do dó hai mê.nh dê ` nhâ.n cùng giá tri. chân lý, nghı̃a là:
1
T (S) = T (S) = 1 − T (S), suy ra T (S) =
2
.
O’ dây ta ký hiê.u T (S) là giá tri. chân lý cu’a mê.nh dê ` S. Vâ.y ta nhı̀n thâ´y
.
nghi.ch lý dâ˜n dê´n giá tri. mô.t nu’ a mô.t cách hoàn toàn Toán ho.c. Trong logic
mê.nh dê` cô’ diê’n nhũ.ng diê
` u nhu. vâ.y là không cho phép, mà chı’ có giá tri.
T (S) = 1 hoă.c T (S) = 0.
Mô.t mê.nh dê ` logic mò. P là mô.t câu chı’ ra mô.t khái niê.m nào dó không

rõ ràng du.o..c xác di.nh nhiê ` u gió.i ha.n. Giá tri. chân lý cu’a P có thê’ là mô.t

giá tri. nào dó trong doa.n [0, 1], tú.c là:

T : x ∈ X → [0, 1].

Các mê.nh dê` mò. du.o..c gán cho tâ.p mò.. Gia’ su’. mê.nh dê ` P du.o..c gán cho

tâ.p mò. A. Khi dó giá tri. chân lý cu’a mê.nh dê ` du.o..c ký hiê.u T (P ) và du.o..c
∼ ∼
tı́nh: T (P ) = µA (x)(∗), trong dó 0 ≤ µA (x) ≤ 1.
∼ ∼ ∼

Dă’ng thú.c (*) chı’ ra ră` ng bâ.c chân lý cu’a mê.nh dê
` P : x là A là tu.o.ng
∼ ∼
du.o.ng vó.i dô. thuô.c cu’a x trong tâ.p mò. A.

5.7.2 Các phép kê´t nô´i


182 Chu.o.ng 5. Logic mò.

Các phép kê´t nô´i thông thu.ò.ng bao gô`m phu’ di.nh (NOT), hô.i (AND),
tuyê’n (OR), và kéo theo (→, Implication).

5.7.2.1 Phép phu’ di.nh (NOT)

Phu’ di.nh (Negation) là mô.t trong nhũ.ng phép toán logic co. ba’n:
T (P ) = 1 − T (P )
∼ ∼

Mô.t sô´ tı́nh châ´t quen thuô.c vâ˜n thu.ò.ng du.o..c dùng trong logic:
a) T (P ) chı’ phu. thuô.c vào T (P ).
∼ ∼

b) Nê´u T (P ) = 1 thı̀ T (P ) = 0.
∼ ∼

c) Nê´u T (P ) = 0 thı̀ T (P ) = 1.
∼ ∼

d) Nê´u T (P1 ) ≤ T (P2 ) thı̀ T (P 1 ) ≥ T (P 2 ).


∼ ∼ ∼ ∼

5.7.2.2 Phép hô.i (AND - conjunction)

Phép hô.i là mô.t trong nhũ.ng phép toán logic co. ba’n nhâ´t và là co. so’.
di.nh nghı̃a phép giao cu’a hai tâ.p mò.. Ta xác di.nh phép hô.i nhu. sau:
P ∧ Q : x is A and B
∼ ∼ ∼ ∼

T (P ∧ Q) = Min(T (P ), T (Q)).
∼ ∼ ∼ ∼

Mô.t sô´ tı́nh châ´t do.n gia’n hay du.o..c dùng:


a) T (P1 and P2 ) chı’ phu. thuô.c vào T (P1), T (P2 ).
∼ ∼ ∼ ∼

b) Nê´u T (P1 ) = 1 thı̀ T (P1 and P2 ) =T (P2) vó.i mo.i mê.nh dê
` P2 .
∼ ∼ ∼ ∼ ∼

c) T (P1 and P2 )= T (P2 and P1 ) (giao hoán).


∼ ∼ ∼ ∼

d) Nê´u T (P1) ≤ T (P2) thı̀ T (P1 and P3 )≤T (P2 and P3 ) vó.i mo.i mê.nh dê
`
∼ ∼ ∼ ∼ ∼ ∼
P3 .

e) T (P1 and (P2 and P3 )) = T ((P1 and P2 )and P3 )) (kê´t ho..p)


∼ ∼ ∼ ∼ ∼ ∼
5.7. Logic mò. 183

5.7.3 Phép tuyê’n (OR-disjunction)

Phép tuyê’n là mô.t trong nhũ.ng phép toán co. ba’n và du.o..c xác di.nh nhu.
sau:
P ∨ Q : x is A or B
∼ ∼ ∼ ∼

T (P ∨ Q) = Max(T (P ), T (Q))
∼ ∼ ∼ ∼

Mô.t sô´ tı́nh châ´t quen thuô.c:

a) T (P1 or P2 ) chı’ phu. thuô.c vào T (P1 ), T (P2)


∼ ∼ ∼ ∼

b) Nê´u T (P1 ) = 0 thı̀ T (P1 or P2 ) = T (P2) vó.i mo.i mê.nh dê


` P2
∼ ∼ ∼ ∼ ∼

c) T (P1 or P2 ) = T (P2 or P1 ) (giao hoán)


∼ ∼ ∼ ∼

d) Nê´u T (P1 ) ≤ T (P2 ) thı̀ T (P1 or P3 ) ≤ T (P2 or P3 ) vó.i mo.i mê.nh dê
` P3
∼ ∼ ∼ ∼ ∼ ∼ ∼

e) T (P1 or (P2 or P3 )) = T ((P1 or P2 )orP3 ) (kê´t ho..p)


∼ ∼ ∼ ∼ ∼ ∼

5.7.4 Phép kéo theo (Implication [Zadeh 1973])

Phép kéo theo là mô.t da.ng luâ.t (rule) du.o..c xác di.nh nhu. sau:

P → Q : IF x is A THEN x is B
∼ ∼ ∼ ∼

T (P → Q) = T (P ∨ Q) = Max(T (P ), T (Q))
∼ ∼ ∼ ∼ ∼ ∼

Nhu. trong logic 2 giá tri., phép kéo theo có thê’ du.o..c mô hı̀nh hoá thành
da.ng luâ.t nhu. sau:
P → Q: IF x is A THEN y is B
∼ ∼ ∼ ∼
tu.o.ng du.o.ng vó.i quan hê. mò. R = (A × B ) ∪ (A × Y )
∼ ∼ ∼ ∼
ú.ng vó.i hàm thuô.c µR (x, y) = max[(µA (x) ∧ µB (y)), (1 − µA (x))]
∼ ∼ ∼ ∼
184 Chu.o.ng 5. Logic mò.

Thı́ du. 5.7.1 Dê’ dánh giá mô.t phát minh mó.i nhă` m xác di.nh kha’ năng
thu.o.ng ma.i cu’a nó, ngu.ò.i ta dùng dô. do là “The uniqueness” (tı́nh duy
nhâ´t) thông qua tâ.p nê
` n X = {1, 2, 3, 4} và “The market size” (pha.m vi
. . ` n Y = {1, 2, 3, 4, 5, 6}. Trong ca’ hai tâ.p nê
thu o ng ma.i) thông qua tâ.p nê `n
nhũ.ng con sô´ hy vo.ng nhâ´t là “the hightest uniqueness” (tı́nh duy nhâ´t cao)
và “the largest market” (thi. tru.ò.ng rô.ng nhâ´t). Ngu.ò.i ta go.i A là tâ.p mò.

“medium uniqueness” (tı́nh duy nhâ´t trung bı̀nh) và B là tâ.p mò. “medium

market” (thi. tru.ò.ng trung bı̀nh).

Trong thı́ du. này, ngu.ò.i ta muô´n xác di.nh phép kéo theo IF A THEN B
∼ ∼
xa’y ra nhu. thê´ nào.
Gia’ su’. tâ.p mò. A là:

 
0.6 1 0.2
A = medium uniqueness = + + ,
∼ 2 3 4
và tâ.p mò. B là:

 
0.4 1 0.8 0.3
B = medium market size = + + +
∼ 2 3 4 5
Khi dó các ma trâ.n sau dây cho phép ta xác di.nh hàm thuô.c cu’a phép
kéo theo µR (x, y) nhu. sau:

x\y 1 2 3 4 5 6
1 0 0 0 0 0 0
A×B = 2 0 0.4 0.6 0.6 0.3 0
∼ ∼
3 0 0.4 1 0.8 0.3 0
4 0 0.2 0.2 0.2 0.2 0

x\y 1 2 3 4 5 6
1 1 1 1 1 1 1
A×Y = 2 0.4 0.4 0.4 0.4 0.4 0.4
3 0 0 0 0 0 0
4 0.8 0.8 0.8 0.8 0.8 0.8
.
và cuô´i cùng theo công thú c:
5.8. Su.. dô`ng nhâ´t dúng mò. (Fuzzy Tautologies) 185

x\y 1 2 3 4 5 6
1 1 1 1 1 1 1
R = max(A × B , A × Y ) = 2 0.4 0.4 0.6 0.6 0.4 0.4
∼ ∼ ∼ ∼
3 0 0.4 1 0.8 0.3 0
4 0.8 0.8 0.8 0.8 0.8 0.8

5.8 Su.. dô`ng nhâ´t dúng mò. (Fuzzy Tautologies)


Ta dã biê´t trong logic mê.nh dê ` có tı́nh châ´t dô`ng nhâ´t dúng (tautology),
còn trong logic mò. ngu.ò.i ta xem “dô`ng nhâ´t mò.” là tu..a dô`ng nhâ´t (Quasi
Tautology) nghı̃a là các giá tri. chân lý kê´t qua’ là ≥ 0.5 (và du.o.ng nhiên ≤ 1)
thı̀ xem ra dê˜ châ´p nhâ.n, chă’ng ha.n trong suy diê˜n xâ´p xı’ (approximate
modus ponens) các giá tri. chân lý cu’a mê.nh dê ` là không thu..c su.. dúng,
không thu..c su.. sai. Xét ba’ng chân lý sau (ba’ng A).

Ba’ng A. Ba’ng chân lý (approximate Modus Ponens)


A B A→B (A ∧ (A → B)) (A ∧ (A → B)) → B
0.3 0.2 0.7 0.3 0.7 Quasi-
0.3 0.8 0.8 0.3 0.8 Tautology
0.7 0.2 0.3 0.3 0.7
0.7 0.8 0.8 0.7 0.8

Ba’ng B. Ba’ng chân lý (approximate Modus Ponens - có thay dô’i giá tri. chân
lý mô.t ı́t)
A B A→B (A ∧ (A → B)) (A ∧ (A → B)) → B
0.4 0.1 0.6 0.4 0.6 Quasi-
0.4 0.9 0.9 0.4 0.9 Tautology
0.6 0.1 0.4 0.4 0.6
0.6 0.9 0.9 0.6 0.9

5.9 Các phép toán t − norm T và t − conorm S


186 Chu.o.ng 5. Logic mò.

Dê’ làm gia’m bó.t su.. phu. thuô.c vào các phép tı́nh Min và Max, dô`ng thò.i
` m de’o và linh hoa.t trong viê.c gia’i các bài toán thu..c tê´,
dê’ làm tăng tı́nh mê
ngu.ò.i ta mo’. rô.ng hai phép tı́nh Min, Max thành hai ló.p hàm t − norm và
t − conorm.

Di.nh nghı̃a 5.9.1 Mô.t hàm T : [0, 1]2 → [0, 1] du.o..c go.i là t-norm (hay là
t-chuâ’n), nê´u nó thoa’ mãn các diê
` u kiê.n sau dây:

a) T (1, x) = x ∀x ∈ [0, 1]

b) T (x, y) = T (y, x) ∀x, y ∈ [0, 1] (giao hoán)

c) T (x, y) ≤ T (u, v) ∀x ≤ u, y ≤ v (không gia’m)

d) T (x, T (y, z)) = T (T (x, y), z) ∀x, y, z ∈ [0, 1] (kê´t ho..p)

Thı́ du. 5.9.1


1) Min (Zadeh 1965) T (x, y) = min(x, y)
2) Da.ng tı́ch T (x, y) = 
xy
min(x, y), nê´u x + y > 1
3) Min nilpotent (Fodor 1993) T (x, y) = .
0, nê´u x + y ≤ 1

Di.nh nghı̃a 5.9.2 Mô.t hàm S : [0, 1]2 → [0, 1] du.o..c go.i là t-conorm (hay
là t-dô´i chuâ’n), nê´u nó thoa’ mãn các diê
` u kiê.n sau dây:

a) S(0, x) = x ∀x ∈ [0, 1]

b) S(x, y) = S(y, x) ∀x, y ∈ [0, 1] (giao hoán)

c) S(x, y) ≤ S(u, v) ∀x, y : 0 ≤ x ≤ u ≤ 1 và 0 ≤ y ≤ v ≤ 1


(không gia’m).

d) S(x, S(y, z)) = S(S(x, y), z) ∀x, y, z ∈ [0, 1] (kê´t ho..p)

Thı́ du. 5.9.2 (So sánh tı́nh dô´i chuâ’n cu’a S vó.i T trong 3 thı́ du. trên)
5.10. Phép ho..p thành (Composition) 187

T (x, y) S(x, y)
min(x, y) max(x, y)
xy x + y − xy
 min0(x, y) =  max1 (x, y) =
min(x, y), nê´u x + y > 1 max(x, y), nê´u x + y < 1
0, nê´u x + y ≤ 1 1, nê´u x + y ≥ 1

5.10 Phép ho..p thành (Composition)


Di.nh nghı̃a 5.10.1 Cho R1 là mô.t quan hê. mò. trên X × Y và R2 là mô.t
quan hê. mò. trên Y × Z, khi dó phép ho..p thành, ký hiê.u là R1 ◦ R2 là mô.t
quan hê. mò. trên X × Z.

Các phép ho..p thành hay dùng là:

a) Ho..p thành Max-Min du.o..c xác di.nh bo’.i:

µR1 ◦R2 (x, z) = Max{min(µR1 (x, y), µR2 (y, z))} ∀(x, z) ∈ X × Z.
y

b) Ho..p thành Max-Product du.o..c xác di.nh bo’.i

µR1 ◦R2 (x, z) = Max{µR1 (x, y).µR2 (y, z)} ∀(x, z) ∈ X × Z.


y

c) Ho..p thành Max-? du.o..c xác di.nh bo’.i toán tu’. ?: [0, 1]2 → [0, 1]

µR1 ◦R2 (x, z) = Max{µR1 (x, y) ? µR2 (y, z)} ∀(x, z) ∈ X × Z.


y

5.11 Phu.o.ng trı̀nh quan hê. mò.


Phu.o.ng trı̀nh quan hê. mò. dóng mô.t vai trò vô cùng quan tro.ng trong
các lı̃nh vu..c phân tı́ch các hê. mò., thiê´t kê´ các bô. diê
` u khiê’n mò., qui trı̀nh
ra quyê´t di.nh và nhâ.n da.ng mò.. Ta có thê’ diê˜n da.t do.n gia’n nhu. sau:
188 Chu.o.ng 5. Logic mò.

Cho mô.t hê. mò. biê’u diê˜n du.ó.i mô.t quan hê. R mò. hai ngôi trên tâ.p nê
`n

X × Y . Dâ ` u vào (input) là mô.t tâ.p mò. A trên tâ.p nê ` n X. Tác dô.ng cu’a

` u vào A lên hê. R sẽ là phép ho..p thành A ◦ R, và cho dâ
dâ ` u ra (output) mô.t
∼ ∼ ∼ ∼
tâ.p mò. B trên tâ.p nê
` n Y . Khi dó ta có phu.o.ng trı̀nh:

A ◦ R = B.
∼ ∼ ∼

Thı́ du. 5.11.1 Cho tâ.p mò. A trên tâ.p nê


` n X và quan hê. mò. R trên X × Y ,
∼ ∼
trong dó:

X = {x1 , x2, x3}, Y = {y1 , y2, y3 }

0.2 0.8 1
A= + + = (0.2 0.8 1) (vecto. dòng)
∼ x1 x2 x3
 
0.7 1 0.4
 
R = 0.5 0.9 0.6

0.2 0.6 0.3

Ta su’. du.ng phép ho..p thành Max-Min cho hàm thuô.c cu’a B du.o..c xác di.nh

theo da.ng sau:

µB (y) = µA◦R (y) = max(min[µA (x), µR (x, y)])


∼ ∼ ∼ x y ∼ ∼

Khi dó ta dê˜ dàng nhâ.n du.o..c:




0.7 1 0.4
 
B = A ◦ R = (0.2 0.8 1) ◦  5 0.9 0.6 = (0.5 0.8 0.6)
∼ ∼ ∼
0.2 0.6 0.3
0.5 0.8 0.6
= + +
y1 y2 y3

Bây giò., nê´u ta su’. du.ng phép ho..p thành Max-* cho hàm thuô.c cu’a B

du.o..c viê´t du.ó.i da.ng sau:
5.12. Lâ.p luâ.n mò. (Fuzzy Reasoning) 189

µB (y) = µA◦R (y) = max(µA (x) ? µR (x, y)).


∼ ∼ ∼ x ∼ ∼

Khi dó ta có kê´t qua’ sau:


 
0.7 1 0.4
 
B = A ◦ R =(0.2 0.8 1) ◦ 0.5 0.9 0.6 = (0.4 0.72 0.48)
∼ ∼ ∼
0.2 0.6 0.3
0.4 0.72 0.48
= + +
y1 y2 y3

5.12 Lâ.p luâ.n mò. (Fuzzy Reasoning)


Ta biê´t ră` ng mô to. suy diê˜n có nhiê
` u cách khác nhau phu. thuô.c vào su..
vâ.n hành, trong dó su.. suy diê˜n dã du.o..c xác di.nh - Mô.t phép kéo theo mê.nh
` mò. xác di.nh mô´i quan hê. giũ.a các biê´n ngôn ngũ. cu’a bô. diê
dê ` u khiê’n mò..
Gia’ su’. cho hai tâ.p mò. A và B trên hai tâ.p nê` n X và Y tu.o.ng ú.ng. Khi
∼ ∼
dó ta di.nh nghı̃a phép kéo theo mê.nh dê ` mò. là:

R : IF A THEN B = A → B ≡ A × B ,
∼ ∼ ∼ ∼ ∼ ∼

trong dó A × B là tı́ch Des Carte cu’a hai tâ.p mò..
∼ ∼
Nê´u ta su’. du.ng toán tu’. hô.i là min thı̀ tı́ch Des Carte du.o..c xác di.nh là:
Z
A×B = µA (x)) ∧ µB (y)/(x, y) (5.1)
∼ ∼ ∼ ∼
X×Y
Z
= min(µA (x), µB (y))/(x, y) (5.2)
∼ ∼
X×Y

Còn trong tru.ò.ng ho..p nê´u ta su’. du.ng toán tu’. hô.i là tı́ch da.i sô´ thı̀ tı́ch
Des Carte du.o..c xác di.nh là:
Z
A×B = (µA (x) ∗ µB (y))/(x, y)
∼ ∼ ∼ ∼
X×Y
190 Chu.o.ng 5. Logic mò.

1 0.7 0.2
Thı́ du. 5.12.1 Cho hai tâ.p mò. A = + + ` n X = {1, 2, 3}
trên tâ.p nê
∼ 1 2 3
0.8 0.6 0.4 0.2
và tâ.p B = + + + ` n Y = {1, 2, 3, 4}. Khi dó ta
trên tâ.p nê
∼ 1 2 3 4
có:
x\y 1 2 3 4
 
1 0.8 0.6 0.4 0.2
 
Rhô.i = A × B = 2 0.7 0.6 0.4 0.2
∼ ∼ ∼
3 0.2 0.2 0.2 0.2

trong khi dó


x\y 1 2 3 4
 
1 0.8 0.6 0.4 0.2
 
R∗ = A × B = 2 0.56 0.42 0.28 0.14
∼ ∼ ∼
3 0.16 0.12 0.08 0.04

Quan sát hai kê´t qua’ mò. cu’a hai quan hê. Rhô.i và R∗ ta thâ´y ră` ng khi su’.
∼ ∼
du.ng toán tu’. hô.i là min cho tı́ch Des Carte thı̀ do.n gia’n ho.n nhiê ` u và tı́nh
hiê.u qua’ cao cho viê.c cài dă.t tı́nh toán.
Vı̀ vâ.y nói chung ngu.ò.i ta thı́ch su’. du.ng toán tu’. này trong mô to. suy
` u khiê’n mò..
diê˜n diê

5.12.1 Thuâ.t toán mò.

Hàm thuô.c dă.c ta’ cho phép kéo theo mò. du.o..c chı’ ra nhò. các hàm thuô.c
µA (x) và µB (y) cu’a hai tâ.p mò. A và B theo nhiê ` u cách khác nhau và du.o..c
∼ ∼ ∼ ∼
mô ta’ nhu. sau:
Gia’ su’. ră` ng

µR (x, y) = ψ(µA (x), µB (y)) vó.i x ∈ X, y ∈ Y,


∼ ∼ ∼

trong dó ψ là toán tu’. kéo theo nào dó và R = {µR (x, y)/(x, y)}.
∼ ∼
5.12. Lâ.p luâ.n mò. (Fuzzy Reasoning) 191

Mô.t cách tô’ng quát, nê´u A1 , A2 , . . . , AN là các tâ.p mò. trên X và
∼ ∼ ∼
B 1 , B 2 , . . . , B N là các tâ.p mò. trên Y thı̀ khi dó thuâ.t toán mò. du.o..c xác
∼ ∼ ∼
di.nh nhu. là tâ.p cu’a các luâ.t
RN : IF A1 THEN B 1
∼ ∼
OR
IF A2 THEN B 2
∼ ∼
OR
................
IF AN THEN B N
∼ ∼
Da.ng luâ.t này hay du.o..c su’. du.ng trong diê ` u khiê’n mò. và nó gâ
` n gũi vó.i
tu. duy và thao tác cu’a con ngu.ò.i.
Phép liên kê´t OR, viê´t tă´t là ϕ, phu. thuô.c vào ψ - toán tu’. mò. cu’a phép
kéo theo. Do dó hàm thuô.c N luâ.t trong thuâ.t toán mò. xác di.nh bo’.i công
thú.c sau:

µRN (x, y) = ϕ(µR1 (x, y), µR2 (x, y), ...)


∼ ∼ ∼

= ϕ(ψ(µA1 (x), µB1 (y)), ψ(µA2 (x), µB2 (y)), ...)


∼ ∼ ∼ ∼

Ngoài ra, ngu.ò.i ta còn mo’. rô.ng da.ng câu lê.nh (luâ.t): “IF ... THEN ...
ELSE” dê’ thu..c hiê.n cho nhiê
` u biê´n và có thê’ biê’u diê˜n du.ó.i da.ng dãy bao
nhau:
IF A1 THEN (IF A2 THEN ... (IF AN THEN B )) hoă.c viê´t nhò. liên kê´t
∼ ∼ ∼ ∼
AND nhu. sau:
IF (A1 AND A2 AND ... AND AN ) THEN B , trong dó
∼ ∼ ∼ ∼
n
µR (x1, x2, ..., xN , y) =ϕ µA1 (x1), ϕ(µA2 (x2)), ...,
∼ ∼ ∼
o
ϕ(ϕ(µAN (xN ), ϕ(µB (y))))
∼ ∼

vó.i x1 , x2, ..., xN ∈ X và y ∈ Y , hay là

µR (x1, x2, ..., xN , y) =ϕ{µA1 (x1 ) ∧ µA2 (x2)... ∧ (µAN (xN ), µB (y))}
∼ ∼ ∼ ∼ ∼

=ϕ{∧k (µAk (xk ), µB (y))} vó.i k = 1...N


∼ ∼
192 Chu.o.ng 5. Logic mò.

5.12.2 Lâ.p luâ.n mò.


` vó.i luâ.t có diê
Ta dã biê´t trong hê. toán mê.nh dê ` u kiê.n:
IF A THEN B du.o..c viê´t bă` ng ký hiê.u:
∼ ∼
A → B và tu.o.ng du.o.ng vó.i A ∨ B , trong dó A là tâ.p mò. trên X, B là tâ.p
∼ ∼ ∼ ∼ ∼ ∼
mò. trên Y .
Trong logic mò. và lâ.p luâ.n xâ´p xı’ có tô`n ta.i hai luâ.t suy diê˜n mò. dô´i
vó.i phép kéo theo:

1. Luâ.t Modus Ponens tô’ng quát, viê´t tă´t GMP nhu. sau:
GMP: Su.. kiê.n 1: x là A0

.
Su. kiê.n 2: IF x là A THEN y là B
∼ ∼

Kê´t luâ.n: y là B 0.



Tru.ò.ng ho..p dă.c biê.t:
Nê´u A0 = A và B 0 = B thı̀ GMP là Modus Ponens thông thu.ò.ng.
∼ ∼ ∼ ∼

2. Luâ.t Modus Tollens tô’ng quát, viê´t tă´t là GMT nhu. sau:
GMT: Su.. kiê.n 1: y là B 0

.
Su. kiê.n 2: IF x là A THEN y là B
∼ ∼

Kê´t luâ.n: x là A0.


GMT liên quan tru..c tiê´p dê´n mô to. suy diê˜n dâ˜n vê ` dı́ch ngu.o..c lên
(backward) và du.o..c áp du.ng trong hê. chuyên gia, trong khi dó GMP la.i liên
quan dê´n mô to. suy diê˜n dâ˜n dũ. liê.u theo chiê
` u xuôi (forward).
. . .
Tru ò ng ho. p dă.c biê.t:
Nê´u A0 = A và B 0 = B thı̀ GMT là Modus Tollens thông thu.ò.ng.
∼ ∼ ∼ ∼

5.12.3 ˜n mò. khác


Mô.t sô´ phép suy diê
Ngu.ò.i ta còn xây du..ng thêm nhiê
` u mô to. suy diê˜n cho phép kéo theo:

5.12.3.1 Phép kéo theo Boole (Boolean Implication)


5.12. Lâ.p luâ.n mò. (Fuzzy Reasoning) 193

- RBoole = A × B = (A × Y ) ∪ (X × B ) tu.o.ng ú.ng vó.i hàm thuô.c µR (x, y) =


∼ ∼ ∼ ∼ ∼
(1 − µA (x)) ∨ µB (y).
∼ ∼

- Tru.ò.ng ho..p cho N luâ.t có su’. du.ng liên kê´t AND:

RN = ∧k Rk vó.i k = 1, 2, 3, ..., N và


∼ ∼

µR (x, y) = ∧k ((1 − µAk (x)) ∨ µB k (y)).


∼ ∼ ∼

5.12.3.2 Phép kéo theo Lukasiewicz

- RL = (A × Y ) ⊕ (X × B ) tu.o.ng ú.ng vó.i hàm thuô.c


∼ ∼

µRL (x, y) = 1 ∧ (1 − µA (x) + µB (y)).


∼ ∼ ∼

- Tru.ò.ng ho..p cho N luâ.t có su’. du.ng liên kê´t AND:

RN = ∧ Rk vó.i k = 1, 2, 3, ...N và


k
∼ ∼

µRN (x, y) = ∧k (1 ∧ (1 − µAk (x) + µBk (y))).


∼ ∼ ∼

5.12.3.3 Phép kéo theo Zadeh Zadeh su’. du.ng hai phép toán Max-Min:
RZadeh = (A × B ) ∪ (A × X ) tu.o.ng ú.ng vó.i hàm thuô.c
∼ ∼ ∼
µR (x, y) = (µA (x) ∧ µB (y)) ∨ (1 − µA (x)).
∼ ∼ ∼ ∼
Luâ.t mò. kéo theo cu’a Zadeh là khó áp du.ng trong thu..c tê´ và nó kéo dài
` u năm cho dê´n khi Mamdani dê
nhiê ` xuâ´t da.ng do.n gia’n ho.n và thu.ò.ng hay
du.o..c su’. du.ng trong diê
` u khiê’n mò..

5.12.3.4 Phép kéo theo Mamdani


Mamdani dã su’. du.ng toán tu’. Min và di.nh nghı̃a nhu. sau:
–R = A × B tu.o.ng ú.ng vó.i hàm thuô.c
∼ M amdani ∼ ∼

µR (x, y) = µA (x) ∧ µB (y) = min(µA (x), µB (y)).


∼ ∼ ∼ ∼ ∼

– Tru.ò.ng ho..p cho N luâ.t có su’. du.ng liên kê´t OR:

RN = ∨k Rk vó.i k = 1, 2, 3, ..., N và


∼ ∼

µRN (x, y) = ∨k (µAk (x) ∧ µBk (y)).


∼ ∼ ∼
194 Chu.o.ng 5. Logic mò.

5.12.3.5 Phép kéo theo Larsen


Larsen dã su’. du.ng phép nhân sô´ ho.c và di.nh nghı̃a nhu. sau:

– R = A × B tu.o.ng ú.ng vó.i hàm thuô.c


∼ Larsen ∼ ∼
µR (x, y) = µA (x) ? µB (y).
∼ ∼ ∼

– Tru.ò.ng ho..p cho N luâ.t có su’. du.ng liên kê´t OR:

RN = ∨Rk vó.i k = 1, 2, 3, ..., N và


µRN (x, y) = ∨k (µAk (x) ∗ µBk (y)).


∼ ∼ ∼

Hai phép kéo theo cu’a Mamdani và Larsen du.o..c áp du.ng nhiê ` u trong
` u khiê’n mò., dă.c biê.t trong tâ´t ca’ các bô. diê
chê´ ta.o các bô. diê ` u khiê’n mò.
công nghiê.p có su’. du.ng mô.t trong các phép kéo theo mò. nói trên và nói
riêng kéo theo cu’a Mamdani su’. du.ng tı́nh toán nhanh ho.n và râ´t thu.ò.ng
xuyên.

5.13 Các luâ.t ho..p thành cu’a suy diê


˜n
Gia’ su’. cho hai luâ.t mò. có diê
` u kiê.n sau:
1
R : IF A THEN B
∼ ∼
R2 : IF B THEN C
∼ ∼
Ta có thê’ tô’ ho..p 2 luâ.t này dê’ ta.o ra mô.t luâ.t:
R12: IF A THEN C .
∼ ∼
Phép ho..p thành cu’a 2 luâ.t này cho ta mô.t luâ.t du.o..c biê’u diê˜n nhu. sau:
R12 = R1 ◦ R2 , trong dó ◦ là phép ho..p thành. Mamdani dã su’. du.ng toán
tu’. Max-Min và dã du.a ra hàm thuô.c sau dây:

µR12 (x, z) = ∨y (µR1 (x, y) ∧ µR2 (y, z))


= max(min(µR1 (x, y), µR2 (y, z)))
5.13. Các luâ.t ho..p thành cu’a suy diê˜n 195

và trong khi dó Larsen su’. du.ng toán tu’. Max-product:

µR12 (x, z) = ∨y (µR1 (x, y) ? µR2 (y, z))


= max(µR1 (x, y) ? µR2 (y, z)).

. .
. ng : Gia’ su’ cho hai tâ.p mò :
Áp du
A = {µA (x)/x} vó.i x ∈ X và
∼ ∼

B = {µB (y)/y} vó.i y ∈ Y , trong dó luâ.t suy diê˜n ho..p thành:
∼ ∼

R = {µ (x, y)/(x, y)} vó.i x ∈ X và y ∈ Y


R
∼ ∼

Ta suy diê˜n dê´n kê´t luâ.n, nê´u su.. kiê.n dâ


` u vào du.o..c thay dô’i chút ı́t
thành A0 tú.c là A0 = {µA0 (x)/x} vó.i x ∈ X.
∼ ∼ ∼
Khi dó ta có phu.o.ng trı̀nh quan hê. mò. nhu. sau:

B 0 = A0 ◦ R
∼ ∼ ∼

= ∨x (µA (x)/x ∧ µR (x, y)/(x, y)) vó.i x ∈ X và y ∈ Y


∼ ∼

hoă.c su’. du.ng toán tu’. Max–product:


0 0
B =A ◦ R
∼ ∼

= ∨x (µA (x)/x ∗ µR (x, y)/(x, y)) vó.i x ∈ X và y ∈ Y.


∼ ∼

Thı́ du. 5.13.1 Mô.t cách cu. thê’ ho.n ta xét luâ.t: “IF A is Slow THEN B is
∼ ∼
Fast”
trong dó :

µA (x) = {1 + 0.7 + 0.3 + 0 + 0 + 0} và


µB (y) = {0 + 0 + 0.3 + 0.7 + 1 + 1}


vó.i tâ.p nê


` n X = Y = {1, 2, 3, 4, 5, 6}.
Bây giò. ta muô´n xác di.nh dâ
` u ra, nê´u ta cho.n A0 =“slightly Slow” nhu.ng

không có luâ.t. Khi dó dê˜ dàng tı́nh du.o..c:
196 Chu.o.ng 5. Logic mò.

x\y 1 2 3 4 5 6
 
1 0 0 0.3 0.7 1 1
 
2 0 0 0.3 0.7 0.7 0.7
 
3 0 0 0.3 0.3 0.3 0.3
R = A × B = {min[µA (x), µB (y)]} = 

∼ ∼ ∼ ∼ ∼ 4 0 0 0 0 0 0
 
5 0 0 0 0 0 0
6 0 0 0 0 0 0

Nê´u su.. kiê.n A du.o..c thay dô’i thành A0 tu.o.ng ú.ng vó.i hàm thuô.c, chă’ng
∼ ∼
ha.n:
µA0 = {0.3 + 0.7 + 1 + 0.7 + 0.3 + 0}

Su’. du.ng luâ.t suy diê˜n mò. ho..p thành:


B 0 = A0 ◦ R vó.i toán tu’. Max-Min (luâ.t Mamdani):
∼ ∼ ∼
µB0 (y) = max(min(µA0 (x), µR(y)))
∼ ∼ ∼

Ta nhâ.n du.o..c kê´t qua’ sau:


 
0 0 0.3 0.3 0.3 0.3
 
0 0 0.3 0.7 0.7 0.7 
 
0 0 0.3 0.3 0.3 0.3
µB 0 (y) = max  
y 0 0 0 0 0 0

 
 
0 0 0 0 0 0
0 0 0 0 0 0
= (0 0 0.3 0.7 0.7 0.7),

tú.c là:
0 0 0.3 0.7 0.7 0.7
µB0 (y) = + + + + +
∼ 1 2 3 4 5 6
Nê´u ta dùng luâ.t ho..p thành Max-product, ta du.o..c:

R∗ = A × B = {µA (xi ) ? µB (y)},


∼ ∼ ∼ ∼
5.13. Các luâ.t ho..p thành cu’a suy diê˜n 197

và tu.o.ng ú.ng vó.i

µB 0 (y) = max(µA0 (x) ? µR (yj ))


∼ y ∼ ∼
 
0 0 0.09 0.21 0.3 0.3
 
0 0 0.15 0.35 0.49 0.49 
 
0 0 0.09 0.21 0.3 0.3 
= max  
y 0 0 0 0 0 0 
 
 
0 0 0 0 0 0 
0 0 0 0 0 0
= (0 0 0.15 0.35 0.49 0.49)

tú.c là
0 0 0.15 0.35 0.49 0.49
µB 0 (y) = + + + + +
∼ 1 2 3 4 5 6
` u khiê’n vó i m dâ
Mô.t cách tô’ng quát, nê´u ta diê . ` u vào và mô.t dâ
` u ra, ta có:
N .
R = {µRN (x1, x2 , ..., xm, y)/(x1, x2 , ..., xm, y) vó i xk ∈ Xk và y ∈ Y .
∼ ∼
Bây giò. ta có:

A0 = {µA0 (xk )/xk } vó.i xk ∈ Xk (k = 1, 2, ...m)


∼k ∼k

thı̀ khi dó kê´t qua’ B 0 là:


B 0 = (∧k A0 ) ◦ RN vó.i k = 1, 2, 3, ..., m hay là


∼ ∼k ∼

B = {µB0 (y)/y} vó.i y ∈ Y


0
∼ ∼

trong dó

µB0 (y) = ∨ ∨ .... ∨ [∧k (µA0 ∧ µRN (x1, x2 , ..., xm))] vó.i k = 1, 2, ..., m
∼ x1 x2 xm ∼k ∼

Cuô´i cùng, nê´u ta dùng phép ho..p thành Max-product ta có:


µB 0 (y) = ∨ ∨ .... ∨ [Πk (µA0 ? µRN (x1 , x2, ..., xm, y))]
∼ x1 x2 xm ∼k ∼
trong dó
µRN (x1, x2, ..., xm, y) = ∨j Πk [µAj (xk ) ? µB j (y)]
∼ k
.
vó i k=1, 2, ..., m và j = 1, 2, 3, ..., N .
198 Chu.o.ng 5. Logic mò.

` “su.. phát minh mó.i” cu’a thı́


Thı́ du. 5.13.2 Ta kha’o sát tiê´p tu.c thı́ du. vê
du. 5.7.1.
Gia’ su’. ta thay dô’i mú.c duy nhâ´t thành A0 = “almost high uniqueness”
` u nhu. duy nhâ´t cao) nhu. sau:
(hâ
0 0.5 1 0
A = “almost high uniqueness” ={ + + }
∼ 1 2 4
. .
Khi dó ta su’ du.ng phép ho. p thành Max-Min:

0.5 0.5 0.6 0.6 0.5 0.5


B 0 = A0 ◦ R = { + + + + + }
∼ ∼ ∼ 1 2 3 4 5 6
và ta thu du.o..c tâ.p mò. B 0 chı’ ra “market size” (pha.m vi thu.o.ng ma.i), trong

dó không có giá tri. thuô.c quá chă.t hoă.c quá yê´u dô´i vó.i mô.t thi. tru.ò.ng,
` n 0 hoă.c gâ
nghı̃a là không có giá tri. thuô.c gâ ` n 1.

.
5.14 Ú ng du.ng
Mô.t thu..c tê´ chú.ng minh su.. phát triê’n vu.o..t bâ.c cu’a lý thuyê´t tâ.p mò. và
công nghê. mò. o’. Nhâ.t Ba’n pha’i nhă´c dê´n du.. án LIFE tù. năm 1989 dê´n 1995
do GS. T. Terano làm giám dô´c diê ` u hành và o’. dây ho. dã chuyê’n dâ ` n các
kê´t qua’ trong phòng thı́ nghiê.m sang thành sa’n phâ’m hàng hoá du.a ra thi.
tru.ò.ng mô˜i năm mô.t tăng cao. Các ú.ng du.ng bao gô`m nhu.:

` u khiê’n mò., chă’ng ha.n máy giă.t Fuzzy, máy tı́nh hiê’u du.o..c ngôn
• Diê
ngũ. tu.. nhiên nhu. “cao”, “nóng”, “â´m”, “yê´u”, ...

• Dùng logic mò. dê’ biê’u diê˜n tri thú.c nhu. các hê. chuyên gia mò. trong
các lı̃nh vu..c y ho.c, nông nghiê.p, qua’n lý, xã hô.i ho.c, môi tru.ò.ng...

• Giao tiê´p giũ.a ngu.ò.i và máy thông qua ngôn ngũ. tu.. nhiên nhu. Robot
thông minh Asimo, các hê. hô˜ tro.. quyê´t di.nh.

• Trı́ tuê. nhân ta.o tı́ch ho..p: giao lu.u và tı́ch ho..p giũ.a trı́ tuê. nhân ta.o,
logic mò., ma.ng no.ron và con ngu.ò.i, v.v...
5.15. Bài tâ.p chu.o.ng 5 199

Trong sô´ nhũ.ng ú.ng du.ng thu..c su.. thành công pha’i nhă´c dê´n bô. FLC
dùng trong qua’n lý sân bay, các hê. thô´ng diê` u khiê’n du.ò.ng să´t và các hê.
thô´ng câ` n câ’u container. Ngoài ra, mô.t ú.ng du.ng khác cu’a diê
` u khiê’n mò.
` u khiê’n “The camera tracking” cu’a NASA.
là hê. diê

5.15 Bài tâ.p chu.o.ng 5


1. Gia’ su’. ta xác di.nh nhiê.t dô. cu’a tâ.p T nhiê.t dô. cu’a nu.ó.c theo do.n vi.
Faradây (F):
T = {50, 55, 60}

và tâ.p O chú.a ôxy trong nu.ó.c: O={1, 2, 6}.


Gia’ su’. ta có quan hê. mò.:
1 2 6
 
50 0.1 0.2 0.9
 
R = T × O = 55 0.1 1 0.7
∼ ∼ ∼
60 0.8 0.7 0.1

Mă.t khác gia’ su’. ta có tâ.p mò. cu’a nhiê.t dô. “trên 55◦ F” vó.i hàm thuô.c
là:

0.5 1 0.7
I ={ + + }.
∼T 50 55 50

a) Su’. du.ng phép ho..p thành Max-min dê’ tı̀m S = I ◦ (T × O ).


∼ ∼ ∼ ∼ T

b) Su’. du.ng phép ho..p thành Max-product dê’ tı̀m S = I ◦ R.


∼ ∼ ∼ T

2. Trong ma.ng máy tı́nh có tô`n ta.i mô´i quan hê. giũ.a mú.c su’. du.ng ma.ng
băng thông rô.ng và tô´c dô. du.ò.ng chuyê
` n peer- to - peer. Gia’ su’. X

là tâ.p mò. cu’a mú.c su’. du.ng băng thông rô.ng và Y là tâ.p mò. tô´c dô.

truyê` n (in milliseconds) vó.i hàm thuô.c:
200 Chu.o.ng 5. Logic mò.

0.2 0.5 0.8 1.0 0.6 0.1


X ={ + + + + + }
∼ 10 20 40 60 80 100
và
0.3 0.6 0.9 1.0 0.6 0.3
Y ={ + + + + + }
∼ 0.5 1 1.5 4 8 20
a) Hãy tı̀m quan hê. R = X × Y
∼ ∼ ∼
. .
Gia’ su’ có thêm tâ.p mò Z băng thông rô.ng sau dây:

0.3 0.6 0.7 0.9 1 0.5


Z ={ + + + + + }
∼ 10 20 40 60 80 100

b) Hãy tı̀m S = Z ◦ R có su’. du.ng phép ho..p thành:


∼ ∼ ∼

(1) max- min;


(2) max- product.

3. Xét luâ.t IF THEN


(1) If x is A1 then y is B1
∼ ∼
(2) If x is A2 then y is B2
∼ ∼
trong dó A1 , A2 là các tâ.p mò. trên X = {x1, x2, x3 } và B1 , B2 là các
∼ ∼ ∼ ∼
tâ.p mò. trên Y = {y1, y2 } có da.ng sau dây:

1 0.9 0.1
A1 = + + ;
∼ x1 x2 x3
0.9 1 0.2
A2 = + + ;
∼ x1 x2 x3
1 0.2
B1 = + ;
∼ y1 y2
0.2 0.9
B2 = + ;
∼ y1 y2

Cho su.. kiê.n “x is A ” , trong dó A = 0.8


0 0 0
0.9 0.1
x 1
+ x 2
+ x 3
hãy tı́nh B bă` ng
∼ ∼ ∼
cách su’. du.ng phép ho..p thành Max-min và Max – *?
5.15. Bài tâ.p chu.o.ng 5 201

4. Các qui luâ.t suy diê˜n sau dây giũ. mô.t vai trò quan tro.ng trong lâ.p
` n thô´ng. Dó là các luâ.t:
luâ.n truyê
a) Modus Ponens: P ∧ (P → Q) → Q
b) Modus Tollens: (P → Q) ∧ Q → P

4.1. Nê´u luâ.t Modus Ponens du.o..c yêu câ


` u thı̀ tı̀m quan hê. mò. R cho

luâ.t (1) cu’a bài tâ.p 3?
4.2. Nê´u luâ.t Modus Tollens du.o..c yêu câ
` u thı̀ tı̀m quan hê. R cho luâ.t

(1) cu’a bài tâ.p 3?
4.3. Nê´u ca’ 2 luâ.t Modus Ponens và Modus Tollens du.o..c yêu câ ` u thı̀
` u gı̀ sẽ xa’y ra cho quan hê. R cho luâ.t (1) cu’a bài tâ.p 3?
diê

5. Hãy cho mô.t thı́ du. vê` cuô.c sô´ng dò.i thu.ò.ng cu’a mô˜i mô.t kiê’u mê.nh
` mò. và biê’u diê˜n mê.nh dê
dê ` theo da.ng chuâ’n tă´c.

` trong thı́ du. cu’a bài tâ.p 5 bă` ng cách su’. du.ng
6. Hãy gia’i quyê´t vâ´n dê

0.6 1 0.9
A= + + ;
∼ x1 x2 x3
0.6 1
B= + ;
∼ y1 y2
0 0.5 0.9 1
A = + + .
∼ x1 x2 x3

7. Tù. các gia’ thiê´t dã cho cu’a bài tâ.pp 6, hãy tı́nh quan hê. tâ.p mò.:

R = A×B
∼ ∼ ∼

và sau dó tı̀m B theo phu.o.ng trı̀nh quan hê.


0

0 0
B =A ◦R
∼ ∼ ∼

vó.i luâ.t ho..p thành Max-min, và Max-product.


202 Chu.o.ng 5. Logic mò.

8. Trong quá trı̀nh làm a’nh có hai khâu mâ´u chô´t: thò.i gian ru’.a (exposure
time) và thò.i gian tráng a’nh (development time). Gia’ su’. ră` ng mô˜i mô.t
khâu du.o..c dă.c tru.ng bo’.i tâ.p mò. sau:
0 1 0.7 0.1
A = “exposure” = { + + + }
∼ 0 1 2 3
` n X = [0, 3] (giây) và
trong dó tâ.p nê

0 0.2 0.3 0.5 0.7 1 0.9 0.6


B = “developmenttime” = { + + + + + + + }
∼ 0 1 2 3 4 5 6 7
` n Y = [0, 7] (phút)
trong dó tâ.p nê
a) Hãy xây du..ng quan hê. tâ.p mò. theo mê.nh `
dê
IF A THEN B trên co. so’. phép kéo theo cu’a Mamdani.
∼ ∼

b) Gia’ su’. thò.i gian tráng mó.i cho:

0 0 1 0.4 0
A = “about 1” = { + + + }
0 1 2 3
Su’ du.ng phu o ng pháp ho. p thành Max- min hãy tı̀m thò.i gian ru’.a a’nh
. . . .
mó.i B có quan hê. vó.i thò.i gian tráng phim mó.i A .
0 0

∼ ∼
Tài liê.u tham kha’o

1. A. D. Aczel, Câu chuyê.n hâ´p dâ˜n vê


` bài toán Phécma, Ba’n di.ch tiê´ng
` n Văn Nhung, Dô˜ Trung Hâ.u, Nguyê˜n Kim Chi, Nhà xuâ´t
Viê.t cu’a Trâ
ba’n Giáo du.c, 2002.

2. G. Asser, Einführung in die Mahtematische Logik, Teil I, II Leipzig


1959 bzw 1972, Teil III 1981.

3. Bùi Công Cu.ò.ng, Hê. mò., ma.ng no.ron và ú.ng du.ng, Nhà xuâ´t ba’n
Khoa ho.c và Kỹ thuâ.t, 2001.

` n Tho. Châu, Lu.ó.i Petri mò. và mô.t diê


4. Trâ ` n cu’a luâ.t tu.o.ng
` u kiê.n câ
pha’n trong logic mò., Ta.p chı́ Tin ho.c và Diê ` u khiê’n ho.c, Tâ.p 16, Sô´
3, 2000.

5. P. C. Cohen, Set Theory and the Continuum Hypothes, 1966.

6. Phan Tru.o.ng Dâ ` n, Lâ.p trı̀nh Turbo Prolog 2.0, Nhà xuâ´t ba’n Khoa
ho.c và Kỹ thuâ.t, 1998.

7. Phan Dı̀nh Diê.u, Logic Toán và Co. so’. Toán ho.c, Nhà xuâ´t ba’n Da.i
ho.c Quô´c gia Hà Nô.i, 2003.

8. Dô˜ Dú.c Giáo, Toán rò.i ra.c, Nhà xuâ´t ba’n Da.i ho.c Quô´c gia Hà Nô.i,
2004.

9. J. B. Grize, Logique Moderne, Mouton/ Gauthier-Villars, 2e Edition,


1972.
204 Tài liê.u tham kha’o

10. Ba.ch Hu.ng Khang, và n.n.k , Prolog và Hê. chuyên gia, Tâ.p 1, Viê.n
` u khiê’n, 1988.
khoa ho.c tı́nh toán và diê

11. R. E. King, Computational Intelligence in Control Engineering, Maried


Dekker, Inc., 1993.

12. S.C. Kleene, Mathematical Logic, John Wiley & Sons, Inc., 1988.

13. J. Legrand, Le Langage PROLOG Exemples in Turbo Prolog, L’Edition


Technique, 1992.

14. E. Mendelson, Introduction to Mathematical Logic, D. Van Nostrand


Co., Inc, 1964, 4th Edition 1997.

15. Nguyê˜n Hũ.u Ngu.., Giáo trı̀nh Logic Toán, Da.i ho.c Tô’ng ho..p Hà Nô.i,
1989.

16. P. S. Novikov, Grundzüge der Mathematischen Logik, VEB Deutscher


Verlag der Wissenschaften Berlin, 1973.

17. T. J. Rose, Fuzzy Logic with Engineering Application, McGraw-Hill,


Inc., International Edition, 1995.

18. Dă.ng Huy Ruâ.n, Ba’y phu.o.ng pháp gia’i các bài toán Logic, Nhà xuâ´t
ba’n Khoa ho.c và kỹ thuâ.t, 2002.

19. P. Suppes, Introduction to Logic, D. Van Nostrand Inc., 1957, 3th Edi-
tion, 1994.

You might also like