Một bộ các ký hiệu của logic modal bao gồm: biến; ký hiệu hằng; ký hiệu hàm; ký hiệu vị từ; các toán tử: A , V, -1, các toán tử modal □, 0; các lượng từ V, 3; các ký hiệu dấu ngoặc % )”, dấu phẩy ‘V’.
Các toán tử □, 0 có ngừ nghĩa đa dạng, tùy thuộc vào ngữ cảnh. Tuy nhiên, lớp nghĩa phổ biến nhất là: □ có nghĩa là “cần thiết / nhất thiết”, 0 có nghĩa là “khả năng / có thể”.
Định nghĩa: (Công thức [4])
Một công thức trong logic modal được định nghĩa quy nạp như sau:
+ Nếu p là một ký hiệu vị từ n-ngôi và \ị, ỉ2, ... t„ là các hạng thức thìp(tj, ỉ2, tn) là một công thức. Và được gọi là nguyên tổ cổ điển (classical atom).
+ N e il ậ và ụ/ là các công thức thì (—lệ), (lị/ V ệ), (lựA ệ), (\ự—> ệ), (u\ự), (Oệ) cũng là các công thức.
+ Neu ệ là một công thức và X là một hiến thì (Vx ộ), (3c ệ) cũng là các công thức.
Phạm vi cùa Vx (tương ứng là 3x) trong công thức Vx (ị) (tương ứng là 3 X ộ) là (ị). Một xuất hiện buộc (bound) của 1 biến trona một công thức là sự xuất hiện của biến đó ngay sau lượng từ hoặc trong phạm vi cùa lượng từ (trường hợp cùng một lượng từ cho nhiều biến). Mọi biển xuất hiện ở các vị trí khác là các biến tự do.
Một công thức đóng (closed formulât-) là một công thức không có sự xuất hiện cùa biến tự do
Một hạng thức nền là một hạng thức không có biến. Một công thức nền là một công thức không có các lượng từ và không có biến. Vũ trụ Herbrand là tập tất cả các hạng thức nền. Cơ sở Herbrand là tập tất cả các nguyên tổ cổ điển nền (ground classical atom).
4.2.2. Ngôn ngữ MProlog
Định nghĩa: (Câu chương trình [4])
Một câu chương trình (ông quát là một công thức có dạng: o5(A <— Bị, .... B j
Trong đó: s > o 1, n > 0, A, BI, B n là các công thức có dạng E, ũE, OE, với E là một nguyên tố cổ điển (classical atom). ds được gọi là neữ cảnh modal (modal context). A là phần đầu (head), B | . B n là phần thân của câu chương trình.
Ví dụ: các câu sau
D(P,(X) <- p2(X)). □ (ap2(X) <- 0p3(X)). 0p3(X) <- P«(X).
là các câu chương trình Mprolog
Một câu đơn vị là câu chương trình không có phần thân (n=0). Ví dụ:
Pt(a).
là một câu đơn vị.
Định nghĩa: Nguyên tổ dích MProlog [4] (tổng quát trong mọi hệ logic
modal)
Một nguyên tố đích MProlog là một công thức có dạng; 0SE hoặc ũs OE (s >
C).
Ví dụ:
op,(a), Op,(a)
ỉà các nguyên tố đích
Chú ỷ: s ờ đây cùng phụ thuộc vào từng hệ logic mà có miền giá trị khác
nhau.
Một câu truy vấn MProlog (Q) là một công thức có dạng: rlX|, Bxk(B] A ...A Bn) (n > 0). Trong đó:
+ X|, xk là các biển xuất hiện trong B |,.... Bn + mồi Bị là một nguyên tố đích MProlog.
Một câu đích MProlog (G) là -iQ.
Ký hiệu: —i3xI, 3xk(Bi A ... A Bn) là <- B|, Bn. Do đó, câu đích MProloe; G = < - B|, B„(n>0). Ví dụ:
api(a), p2(a). <— 0pi(3).
là các câu đích Mprolog
Định nghĩa: (Chương trình Mprolog [4])
Một chương trình MProlog là một tập các câu chương trình.
Ví dụ: chương trình Mprolog p trong hệ logic KD gồm các câu sau:
ap i(a )
□ ( p 2(X) < - Pi(X )) °(P 3(X ) <— P i(X ), p 2(X))
^P<(X) <— np3(X)
Với chương trình p, ta đưa vào một câu đích G = <-0p4(a). Quá trình chứng minh câu 0p4(a) trong hệ logic KD được thực hiện qua các bước theo sơ đồ sau:
ôp4(a □P3(X0) 0p4(X) <- op3(X) Pi(X), p2(X)) -□p2(X2) -□Pi(X3) □ □Pi (a) □(p2(X) <- Pi(X))
Trong quá trình chứng minh, tiên đề K đà được áp dụng tại các bước suy diễn cùa câu vào a(p3(X) <r- pi(X), pi(X)) và d(p2(X) Pi( X ) ) . Tiên đề D thực sự không được áp dụng lần nào.
Câu rỗng là kểt quà cuối cùne, của quá trình suy diễn. Điều này chứng minh G là hệ quà logic cùa p theo hệ logic KD.
Phép thể của quá trinh suy diễn là 0 = {Xo / X|, Xi / a, XI / x 2, X2 / X3, X3 / a}. Như vậy, với một chưtmg trình MProlog p, một câu truy vấn MProlog Q và một câu đích tương ứng G = -iQ trong một hệ logic modal L, ta cần chi ra Q là hệ quà logic cùa p theo L.
Điều đó tương đương với việc cần chứng minh P u {G} là không thỏa được theo L.
4.2.3. Mô hình và khung làm việc (Model & frame)
Với một công thức (ị), tính thỏa được (satisfaction) và tính xác đáng (validity) là quan trọna. Tính thỏa được hay đúng đắn của cône thức phải gắn với một mô hình nào đó còn tính xác đáng phải gắn với một khung (frame) nào đó. Sau đây chúng ta sỗ định nghĩa mô hình và frame.
Định nghĩa: (Khung làm việc (Frame) Ị9j)
Một frame của ngôn ngữ modal cơ bàn là một cập F = (W, R) thỏa mãn : + IV là một tập khác rong
+ R là một quan hệ nhị phân trên w
Nghĩa là, frame đơn giản là một cấu trúc quan hệ bao gồm một miền giá trị khác rồng và một quan hệ nhị phân.
Định nghĩa: (Mô hình (Model) [9])
Một mô hình (model) của ngôn ngữ modal cơ bản là một cặp M=(F, V), Trong đó, F ỉà một frame, V ìà một hàm gán moi ký hiệu v/ từ p trong tập công thức 0 một tập con V(p) Œ w. V(p) là tập các điểm trong mô hình mà p là đúng (true). Hàm V được gọi là hàm licợng giá (valuation). Khi đỏ, chúng ta nói mô hình m dựa trên frame F.
Như vậy, cả frame F và mô hình m dựa trên nó đơn giản là các mô hình quan hệ dựa trên cùng một miền giá trị (vũ trụ), mô hình chính là frame được bổ sung thêm một tập các quan hệ không có ngôi.
Tuy nhiên, frame & mô hình cũng cỏ những điểm khác nhau. Đó là, frame có tính khái quát hơn, mô hinh nhấn mạnh đến các thông tin cụ thể hơn bởi hàm lượng giá V.
Trong lập trình logic, ta quan tâm đến một lớp các frame và lớp các mô hình nhỏ hơn là Kripke frame và mô hình Kripke
Định nghĩa: (Kripke frame [4])
M ột K rip ke fr a m e là m ột b ộ b a (W, T, R). Trong đ ó :
+ w là một tập khác rong các phần tử.
+ r là một phần tử, r e w.
+ R là một quan hệ nhị phân trên w, được gọi là quan hệ cỏ thể truy cập được (accessibility relation).
Nếu R(w, u) đúng thì ta nói phần từ u có thể truy cập được từ w hay u có thể đạt được từ vv.
Định nghĩa: Kripke model [4] (Mô hình Kripke với miền giá trị và các hạng thức cố định)
Mô hình Kripke là một bộ M = (D, w, r, R, m). Trong đó: + D là một tập được gọi là miền.
+ (W, T, R) là K rỉp ke fra m e.
+ m là một thê hiện cùa các kỷ hiệu hang, ký hiệu hàm, ký hiệu vị từ.
Với một ký hiệu hàng a, m(a) là một phần từ thuộc D, ký hiệu là aM .
Với một ký hiệu hàm n ngôi f, m(f) là một ánh xạ m(f): Dn -» D, ký hiệu f^. Với vị từ n ngôi p và một phần từ vv e w, m(w)(p) là một quan hệ n ngôi trên w, ký hiệu là pM'".
Định nghĩa: (Phép gán biến [4])
Gọi M là một mô hình Kripke. Phép gán biến đoi với M (ký) hiệu w.r.t M) là một hàm ánh xạ mỗi biến vào một phần tử của miền D của mô hình M. Giả trị của hạng thức t trong phép gán bien V được ký hiệu là V(t) và được định nghĩa như sau:
+ Nếu t là một ký hiệu hằng a thì Vịt) = as'
+ Neu t ỉà một biến X thì V(ỉ) - V(x)
+ Nếu t là một hàm f(ih .... t j thì Vịt) =f'(V(ti), V(tJ).
Sau đây là các định nghĩa về tính thỏa được và tính xác đáng của một công thức tronẹ mô hình Kripke
Định nghĩa: (Tính thỏa được (satisfaction) của công thức [4])
Cho một mô hình Kripke M = (D, w, T, R, m), một phép gán biến V và một
phần từ vv e w. Khỉ đó, một công thức ộ là thỏa được trong mô hình M tại w với phép gán biến V (k)> hiệu M, V, w Ị= ệ) được định nghĩa như sau:
1. M, V, w I-p(ti, Ụ nếu và chi nếu phl w(V(tị), V(Ụ)
2. M, V, w ụ -lệ nếu và chỉ nếu M, V, w
3. M, V, vv ụ ệ A ự) nếu và chi nếu M, V, H ’ ụ ệ và M, V, w (p 4. M, V, w ệ V (Ọ nếu và chi nếu M, V, w ụ ệ hoặc M, V, w Ị= (p
7. M, V, w 1= Oệ nếu và chi nếu tồn tại V 6 w sao cho R(w, v) thì M, V, V Ị= ệ
8. M, V, vv ụ Vxệ nếu và chi nếu với mọi a € D sao cho M, V, vv y (Ị>. Ở đây,
V’(x) = a và V’(y) = V(y) với X # v
9. M, V, w 1= 3xệ nếu và chi nếu iồn tại a e D sao cho M, V, w ^ ệ. Ở đây,
V'(x) = a và V'(y) = V(y) với X *y.
Nếu M, V, \v ^ ệ thì ta nói ệ đúng tại w trong w với phép gán biến V. Chúne ta viết M, \v Ị= <Ị) thay vì viết M. V, w \ (Ị) với mọi phép gán biến V. Chúng ta nói M thòa mãn (Ị) (hay <Ị> đúng trong M) và viết M [= <Ị> nếu M, T Ị= ộ. Với tập T các công thức, chúng ta gọi M là mô hình của T và viết M ụ T nếu M ụ (ị) với Vệe T.
Một hệ logic có thể định nghĩa là một tập các công thức được thiết lập đúng đan (well formed fomulae - vvwf), một lớp các thể hiện có thể chấp nhận và một quan hệ thỏa được. Trong đó, lớp các thể hiện có thể chấp nhận được của một hệ logic modal L thông thường là các Kripke frame (được chấp nhận cho L) hạn định một sổ điều kiện trên đó.
Nếu chúng ta định nghĩa một lớp các thể hiện chấp nhận được là lớp tất cả các mô hình Kripke (khône hạn định các điều kiện trên các quan hệ có thể truy cập dược) thì chúng ta sẽ có được logic modal cấp một miền cố định với các hạng thức cố định gọi là hệ logic K. Hệ logic này được tiên đề hỏa bởi các luật sau:
Tấí cả các tiên đề trong logic vị từ
Tiên đề K: ũ(ệ-xp) -» (oộ—>aq>)
Tiên đề Barcan: Vxoệ -> ũVx(ị) Tiên đề định nghĩa 0: 0ộ -» —lộ
(Ị), è —>(p
Luât Modus Ponens: — --- * <p
Luật sinh: Vx ộ
ộ Luật sinh modal: EkỊ)
Các tiên đề trong hệ K là đúng đắn và đầy đù với mọi hệ logic modal.
Tiên đề ngược của tiên đề Barcan là ũVxệ -» VxD<ị> là hệ quả của các tiên đề trên. Tiên đề này cũng là đúng đắn & đầy đủ.
Các tiên đề K, Modus ponens, luật sinh modal là các luật cơ bản nhất trong chứng minh logic. Trong đó, tiên đề K là quan trọng nhất.
Mọi hệ logic mà các tiên đề của nó được mờ rộng từ tiên đề K được gọi là logic modal thông thường (normal modal logic).
Một số tiên đề như D, T, B, 4, 5 tương ứng với các điều kiện xác định trên các quan hệ có thể truy cập được được trình bày trons bảng sau:
Tiên đề Luật Điều kiện trẽn R
D nệ 0<Ị> Vw3u R(w,u)
T dộ -> ộ V w R(w,w)
B ộ -» DỘ(ị) V w , u R(w, u) -> R(u, w )
4 oộ -> □□({> Vvv, u, V R(w, u) A R(u, v)-> R(w, v) 5 0(ị> -> o0<ị> Vw, u, V R(w, u) A R(w, v)-> R{u, v)
Đe chứng minh tính thỏa được của các công thức chúng ta phải dựa vào các tiên đề trong các hệ logic (ví dụ: các tiên đề trona hệ logic K). Hệ logic K là nhò nhất (bao gồm ít nhất các tiên đề) và cơ bàn nhất (eồm các tiên đề cơ sở) trong việc áp dụng để chứng minh các công thức. Tuy nhiên, với một số trường hợp thì hệ K không đủ mạnh để áp dụng và người ta mờ rộng hệ K thành các hệ logic mới bằng cách thêm vào hệ K một sổ tiên đề (trong bảng trên). Các hệ mới này cũng đã được chứng minh là đủng đắn & đầy đù.
Bảng; sau đây liệt kê một số hệ logic được mở rộng từ hệ logic K:
Hệ logic Tiên đô được thêm vào trong K
K KD D T T KB B KDB DB B TB K4 4 KD4 D4 S4 T4 K5 5 KD5 D5 K45 45 KD45 D45 KB5 B5 S5 T5
Các hệ logic modal khác K sẽ phải cỏ những hạn định nhất định trên R. Sau đây là quy ước một số ký hiệu dùna trong MProlog
+ T: ký hiệu hàng giá trị đúng (true). + D, E, F: các nguyên tố cổ điển hoặc T.
+ X, Y: biến của các nguyên tố cổ điển hoặc T, gọi tắt là biến nguyên tổ. + <E>: 0 được gán nhãn E.
+ < x > : 0 được gán nhãn X.
+ V : ộ, <E> hoặc < x > được gọi là toán tử modal + A: dãy các toán từ modal
+ A, B: các công thức có dạng E hoặc VE, được gọi là các nguyên tố đơn. + a, P: công thức có dạng AE, được sọi là các nguyên tổ.
+ <Ị>, \ụ: công thức (có thể chứa <E> hoặc <x>).
Bộ sinh mô hình (Model generator)
Bộ sinh mô hình - đó là một tập các thể hiện của mô hình Kripke.
Gọi L là một trong những hệ logic modal: KD, T, KDB, B, KD4, S4, KD5, KD45, S5. Với mọi bộ sinh mô hình I, luôn tồn tại một mô hình được gọi là mô hình L chuẩn (standard L model) cùa I và đỏ chính là mô hình nhỏ nhất của I [4].
Định nghĩa: (Bộ sinh mô hình [4])
Một bộ sinh mô hình là một tập các nguyên tố nền không chứa kỷ hiệu toán từ ộ, <T>, T.
Một bộ sinh mô hình I được gọi là bộ sinh mô hình thông thường (theo L) nếu:
+ L 0 ỊKD5, KD45, S5} hoặc
+ L - KD5 và Ị chỉ chứa các nguyên to có dạng E, VE, □ VE hoặc
+ L € {KD45, S5} và ỉ chỉ chừa các nguyên tố có dạng E, VE
Với mọi chương trình MProlog p và hệ logic modal L, luôn tồn tại bộ sinh mô hình nhỏ nhất cho p là IL p sao cho p Ị= IL p và mô hình chuẩn theo L của I|„ |> là mô hình nhỏ nhất theo L của p [4ị.
Với một bộ sinh mô hình thông thườn» (theo L) I, chúng ta có thể xây dựng dược mô hình nhỏ nhất (theo L) cho I dựa trên các mờ rộng theo L của I và mô hinh chuẩn theo L cùa i [4].
Neu trong lập trinh logic cổ điển, với một chương trình p luôn tồn tại mô hình Herbrand nhỏ nhất của p thì trone lập trình loeic modal cũng tương tự, luôn tồn tại một mô hình nhỏ nhất được sinh ra từ một bộ sinh mô hình.
Với một chương trình MProỉog P. hệ logic modal L, luôn tồn tại một mô hình nhỏ nhất cho p theo L, ký hiệu là ML, p.
Chi tiết đặc tà về mô hình nhỏ nhất của một chương trình MProỉog với hệ logic L được trình bày trong [4].
4.2.4. Điểm bất động
Tương tự như lập trình logic cổ điển, với một chương trình MProlog p, một hệ logic modal L luôn tồn tại một ánh xạ đơn điệu và liên tục liên kết với nó kv hiệu là T| p. Tl p: Tập các bộ sinh mô hình —» Tập các bộ sinh mô hình. [4]
Luôn tồn tại điểm bất dộng nhò nhất của T|„ p ký hiệu là II p [4]. Và I[ p đối với một chương trình MProlog cũng có vai trò quan trọng trong việc tìm lời giải cho bài toán “xác định tính không thỏa được của p u {G} theo L” (G là một đích M Prolog).
I|, p là hệ quả logic cùa p theo L, ký hiệu là p ụ L I|„ p. Chứng minh trong [4]. Và IL p cũng chính là M| p [4],
Với một chương trình MProlog p, một bộ sinh mô hình thông thường (theo L) I, chúng ta muốn áp dụng các câu trong p vào I để đạt được các bộ sinh mô hình khác và lặp lại quá trinh trên với bộ sinh mô hình mới cho đến khi đạt được điểm bất động - đó chính là bộ sinh mô hình nhỏ nhất.
Ví dụ:
Cho chương trình logic Mprlog p trong hệ logic KD gồm các câu sau:
cp, = Op,(a) <-
(P2 = a (a p 2 (X ) <— Pi(X )) <p3 = a (p 3(X) «- P,(X), op2(X)) Cp4 = op-t(X) <— 0 p 3(X)
Ta xây dựng bộ sinh mô hình I của p theo hộ KD là tập các nguyên tố như
X é l câu <Pi, theo định nghĩa về tính đúng của công thức thì Opi(a) Pi(a) đúng tại w e w, nên Opi(a) 6 I. Nhưng I khôna dược chứa ký hiệu toán tử 0 nên ta gán nhãn 0 bởi <pj(a)> và thêm <pi(a)>pi(a) vào 1 => 1 = (<pi(a)>pi(a)}.
Xét câu (p2, áp dụng tiên đê K và D ta được <P2 Onp2(a) <- Opi(a), gán nhãn như trên ta có (p2 ^ <pi(a)> ũp2(a) <- <pi(a)>pi(a). Vì <pi(a)>pi(a) e I nên <p,(a)>ap2(a) e I => I = {<pj(a)>pi(a), <pi(a)>ũp2(a)}.
Tương tự, áp dụng câu (p3 với I, ta có <pi(a)>p3(a) € I => I = (<pi(a)>pi(a), <p,(a)>op2(a), <pi(a)>p3(a)}.
Á p dụng câu q>4 với I, ta có Gp4(a) e I = > I = {< p i(a )> p i(a ), <p i(a)> op 2(a), <Pi(a)>P3(a), ũp4(a)}.
Như vậy tập I thu được là tập nhỏ nhất các nguyên tố nền suy diễn từ p theo hệ logic KD, Ikd.p = (<pi(a)>pi(a), <pi(a)>Dp2(a), <pi(a)>p3(a). Dp.i(a)}.
IKI) I> cũng là điểm bất động nhỏ nhất cùa ánh xạ Tkd. p và được gọi là bộ sinh mô hình nhỏ nhất cho p theo hệ logic KD.
4.2.5. Thuật giải SLD
Tư tưởng cơ bản của thuật giải SLD đối với một chương trình MProlog cũng tưane như trong lập trình logic cổ điển. Thuật giải SLD áp dụng với một chương trình MProlog p và đích MProlog G để xác định câu trả lời đúng đẳn của P u {GỊ trong một hệ logic modal L.
Trong phần này, sẽ tập trung vào các ví dụ minh họa cho thuật giải SLD. Ví dụ 1: Cho một chương trình MProlog p gồm các công thức sau:
<ị>i = Opi(a) *— <t>2 = o(P2(X) <— Pi(X)) Ộ3 = o (o p 3(X) <- Pi(X), p2(X))