81
Học viện công nghệ bưu chính-Viễn thông Khoa công nghệ thông tin Bài giảng Nhập môn logic

Bài giảng Nhập môn logic

  • Upload
    clux

  • View
    135

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Bài giảng Nhập môn logic

Học viện công nghệ bưu chính-Viễn thông

Khoa công nghệ thông tin

Bài giảng

Nhập môn logic

Người biên soạn: TSKH Nguyễn Minh Hải

Hà nội 2010

Page 2: Bài giảng Nhập môn logic

Mục lục

1. Lời nói đầu……………………………………….32. Giới thiệu môn học……………………………… 3

3. Phép quy nạp……………………………………. 7

4. Logic mệnh đề…………………………………..11

5. Logic vị từ………………………………………31

6. Logic tình thái………………………………… 59

Tài liệu tham khảo…………………………………64

Page 3: Bài giảng Nhập môn logic

1. Lời nói đầu Giáo trình này dành cho những người làm khoa học máy tính có quan tâm đến Logic. Giáo trình này không đòi hỏi người đọc cần có những kiến thức đặc biệt ngoài những khái niệm cơ bản về quan hệ và sắp thứ tự. Giáo trình có thể sử dụng để giảng dạy cho các sinh viên ngành công nghệ thông tin của các trường đại học.

2. Giới thiệu môn học

2.1. Giới thiệu Mặc dù logic đã được nghiên cứu và phát triển từ thời Aistotle và Megara (430-360 trước Công nguyên), nhưng lần đầu tiên logic được trình bày dưới dạng một ngôn ngữ hình thức hoàn toàn vào cuối thế kỷ 19. Có nhiều nhà toán học như Leibliz, Boole… đóng góp cho việc hình thức hóa logic nhưng người đặt nền tảng cho việc này là Gottfried Frege khi ông đưa ra ý tưởng về hình thức hóa (formalisation) và diễn giải (deduction). Khái niện diễn giải đặc biệt thú vị đối với khoa học máy tính vì xuất phát từ đó việc tự động hóa các quá trình lập luận được nghiên cứu. Việc phát triển logic toán hiện đại diễn ra cùng với sự khủng hỏang sâu sắc trong toán học: Cuối thế kỷ 19 sang đầu thế kỷ 20, việc tiên đề hóa Lý thuyết tập hợp và Lý thuyết số trở thành tiêu điểm của nghiên cứu toán học và trong các năm 1910-1013 Whitehead và Rusell đã công bố công trình Principia Mathematica, một nỗ lực hình thức hóa toàn bộ toán học trên cơ sở logic hình thức do Frege đưa ra. Việc hình thức hóa này cho phép tránh được một số antinomies được tranh luận vào thời đó. Tuy nhiên vào năm 1931 Kurt Goedel đã chứng minh trong đinh lý nổi tiếng của ông về tính không đầy đủ rằng mọi cách tiếp cận hình thức hóa số học là không đầy đủ. Rất quan trọng khi nhận xét rằng tại thời kỳ đó nền tảng của khoa học máy tính cũng được đặt ra: Alan Turing công bố công trình của mình về tính toán được (computability) và mô hình máy lý thuyết mang tên máy Turing, Alonso Church xây dựng λ-calculus và Stephen Kleene phát triển nền tảng của lý thuyết đệ quy (recursion theory).

Phần còn lại của chương này chúng ta sẽ tìm hiểu việc sử dụng logic trong khoa học máy tính.

2.2. Lập trình (Programming)

Page 4: Bài giảng Nhập môn logic

Lịch sử phát triển xã hội những năm gần đây cho thấy các hệ thống được máy tính hóa đã thực sự trở thành cơ sở cho nền công nghệ hiện đại. Phần mềm xuất hiện trong hầu hết các thiết bị của một ngôi nhà hiện đại, trong ôtô, máy bay, vũ khí… Vì vậy không cần đi sâu vào chi tiết, người ta cũng thấy ngay rằng đối với hầu hết các ứng dụng tính đúng đắn, an toàn và bền vững của hành vi là đòi hỏi bắt buộc đối với hệ thống. Người ta thừa nhận một cách rộng rãi rằng chỉ khi áp dụng những phương pháp hình thức trong toàn bộ quá trình xây dựng phần mềm thì mới có thể bảo đảm được điều này. Sau đây chúng ta sẽ mô tả một cách ngắn gọn những công việc mà việc sử dụng logic tỏ ra cực kỳ có ích.

2.3. Abstract Datatypes Kiểu dữ liệu trừu tượng Để định nghĩa kiểu dữ liệu và đưa ra cài đặt hiệu quả của nó thì khái niệm định nghĩa kiểu dứ liệu trừu tượng đóng vai trò trung tâm. Ý tưởng chính là xác định các tính chất trừu tượng của kiểu dữ liệu thay vì việc đưa ra những thể hiện cụ thể của dữ liệu. Một ví dụ đơn giản và tầm thường nhất là định nghĩa của stack: Giả sử Σ là một bảng chữ cái. Để định nghĩa một stack S trên Σ chúng ta giải thiết clear là một hàm không ngôi và xác định các tính chất sau đây của stack:

Từ đây chúng ta có các hàm clear, push và pop để tạo nên stack và một vị từ empty. Tiếp theo chúng ta cần những tính chất sau đối với phép tử push:

Và chúng ta cần phải đưa ra các tính chất liên quan đến tổ hợp của các hàm:

Page 5: Bài giảng Nhập môn logic

Công thức trên chỉ ra kỳ vộng của chúng ta về các tính chất mà các stack cần có. Nó không chỉ ra cách cài đặt kiểu dữ liệu này như thế nào. Thay vào đó đặc tả này có mục đích đưa ra các vấn đề khác cần giải quyết. Ví dụ

Đặc tả này có đúng đắn không? Tức là liệu có tồn tại một tập S với các toán tử như trên để các tiên đề là thỏa mãn?

Đặc tả này có đầy đủ không? Tức là liệu các tiên đề đó có kéo theo tất cả các tính chất mà chúng ta giả thiết một cách trực cảm một stack cần có? Liệu có những tập hợp S không đáp ứng được kỳ vộng của chúng ta?

Người đọc hoàn toàn có thể đã nhận thấy rằng các tiên đề không thể hiện điều gì khác ngòai việc chúng là các công thức trong logic vị từ, tức là tất cả các biến logic như x hoặc s cùng với các lượng từ và được sử dụng. Hai câu hỏi trên về tính đúng và tính đủ chính là những chủ đề trung tâm đối với việc thiết kế các hệ hình thức trong logic. Việc chứng minh các tính chất này thương là khó và đắt nhưng bù lại nó là tính ưu việt rõ ràng của các hệ thống logic khi cho phép chứng minh chúng một cách hình thức. Trong phần chính của giáo trình này chúng ta sẽ thảo luận những vấn đề này một cách tường minh.

2.4. Phát triển chương trình (Program Developments) Có rất nhiều nỗ lực đưa ra các phương pháp cho phép phát triển chương trình với các chứng cứ về sự đúng đán của nó. Chúng ta sẽ đưa ra một ý tưởng tất sơ lược bằng ví dụ. Giả sử chương trình đơn giản sau chỉ gồn một vòng lặp (loop) và chúng ta có một mảng các số nguyên:

max := a(1); do i = 2,n if a(i) > max then max := a(i) end

Để có thể hiểu điều gì xảy ra khi chúng ta khai thác chương trình này thì tính chất bất biến vòng lặp (loop invariant) sau đây rất có ích:

Điều này có nghĩa rằng đối với mọi giá trị của I, tức là trước hay sau mỗi lần thực hiện câu lệnh if bên trong cấu trúc do-loop, công thức trên đều đúng. Bây giờ giả sử rằng vòng lặp thực hiện vòng cuối cùng, tức là giá trị của I sau khi khai thác toàn bộ vòng lặp là n, người ta có thể kết luận rằng biến max chứa giá trị lỡn nhất của mảng:

Một vấn đề quan trong khác trong việc phát triển chương trình là đặc tả chương trình (specification of programs). Để đưa ra đặc tả hình thức của chương trình trên có thể sử dụng công thức logic sau:

Page 6: Bài giảng Nhập môn logic

Lưu ý rằng trong đặc tả này S là một tập hợp và không có một quyết định nào cho thấy S được cài đặt bằng một mảng.

Mặt khác logic có thể được sử dụng không chỉ chó đặc tả mà còn cho cả chính chương trình. Sau đây là chương trình logic tính tìm giá trị lớn nhất của một danh sách các giá trị. Các danh sách được biểu diễn đước dạng [đầu.đuôi] với đầu ký hiệu phần tử đầu tiên của danh sách và đuôi chi ra phần còn lại của danh sách và nil là danh sách rỗng.

max([m.nil], m) <- . max([head.tail], m) <- max([tail], m), head < m. max([head.tail], head) <- max([tail], m), head >= m.

2.5. Trí tuệ nhân tạo (Artificial Intelligence)Một trong những nhánh con lâu đời nhất của trí tuệ nhân tạo là nghiên cứu về chứng minh định lý tự động (automated theorem proving). Ở thời kỳ đầu tiên, nhiều người rất lạc quan về việc sử dụng các bộ chứng minh định lý như các bộ giải bài toán tổng quát đối với các công việc khác nhau như lập kế hoạch hành động, biểu diễn tri thức hay kiển chứng chương trình. Đến nay người ta đã thấy rằng không thể có bộ giải bài toán tổng quát mà với mỗi công việc cụ thể cần thiết xây dựng một hệ thống lập luận riêng. Chúng ta sẽ đưa ra những bình luận trong mục này với mục đích chưng minh các định lý toán học và biểu diễn tri thức. Ý tưởng này bắt nguồn từ các ý tưởng của Gottfried Wilhelm Leibnitz (1646 - 1716), người luôn có giắc mơ thường trức về hình thức hóa và thận chí tự động hóa toán học.

Thành tựu mới nhất hiện nay là chứng minh đự đoán của Robbins (Robbins cọnecture) mà tờ báo New York Time cũng đề cập đến. Vào năm 1933, E.V. Huntington đã trình bày cơ sở sau đây đối với đại số boolean:

x + y = y + x. [commutativity] (x + y) + z = x + (y + z). [associativity] n(n(x) + y) + n(n(x) + n(y)) = x. [Huntington equation]

Ngay sau đó, Herbert Robbins đã dự đoán rằng đẳng thức Huntington có thể được thay thế bằng đẳng thức đơn giản hơn sau đây:

n(n(x + y) + n(x + n(y))) = x. [Robbins equation]

Page 7: Bài giảng Nhập môn logic

Robbins và Huntington không đưa ra được chứng minh cho dự đoán này. Sau này Tarski và các sinh viên của ông sau này nghiên cứu bài toán Robbins. Đến tháng 10 năm 1996 lời giải cho bài toán được đưa ra bởi Bộ chứng minh định lý EQP. Trong nhiều khía cạnh EQP tương tự như chương trình nổi tiếng hơn http://www.mcs.anl.gov/AR/otter/. Những khác nhau cơ bản là EQP có việc đồng nhất giao hoán-kết hợp (associative-communicative unification), một đặc trưng gắn với logic có dấu bằng và nó tạo nên nhiền chiến lược song module hóa (paramodulation strategies) hơn. Có thể tìm hiểu chi tiết hơn về EQP trong http://www.mcs.anl.gov/~mccune/papers/33-basic-test-problems/.

2.6. Biểu diễn tri thức (Knowledge Representation)Trong trí tuệ nhân tạo việc biểu diễn và xử lý tri thức là các công việc trung tâm. Đến nay nhiều lý thuyết hình thức hướng đồ thị đã được đưa ra.

Ngữ nghĩa không hình thức của ký pháp đồ thị chỉ ra rằng cả con người và súc vật đều là động vật có vú và con người có thuộc tính tuổi, dân tộc trong khi đó súc vật chỉ có thuộc tính tuổi mà không có thuộc tính dân tộc. Một nghiên cứu gần đây về ngữ nghĩa của lý thuyết hình thức này cho thấy, nó chỉ là thể hiện bằng hình ảnh của tập các công thức logic vị từ sau:

Ví dụ:

Page 8: Bài giảng Nhập môn logic

3. Phép quy nạp (Induction)3.1. Quy nạp (Induction)

Quy nạp giữ một vai trò quan trọng trong giáo trình này ít nhất ở hai khía cạnh. Thứ nhất nó là một nguyên lý chúng minh chính của toán học và logic. Đặc biệt nó có thể được sử dụng để tìm hiểu các tính chất của các tập vô hạn. Người ta rất thường xuyên sử dụng quy nạp tự nhiên (natural induction) đối với các số tự nhiên. Chúng ta sẽ giới thiệu phép quy nạp như một nguyên lý tổng quát hơn trên những tập sắp tốt bộ phận (well founded partial orders) và thường được gọi là quy nạp cấu trúc (structural induction).

Chúng ta bắt đầu với một cấu trức tổng quát hơn trên một tập tùy ý gọi là tập sắp thứ tự bộ phận (partial orders). Một quan hệ R trên A là một thứ tự bộ phận khi và chỉ khi nó là phản xạ, bắc cầu và không đối xứng. Tức là:

Các tập được sắp thứ tự bộ phận (partial odered sets - p.o. sets) thường được ký hiệu là .

Định nghĩa 1Cấu trúc cần thiết cho nguyên lý quy nạp của chúng ta là một thứ tự bộ phận sao cho tồn tại các phần tử nhỏ nhất. Cho một tập sắp thứ tự bộ phận , chúng ta định nghĩa:

x < y khi và chỉ khi và . được gọi là sắp tốt khi và chỉ khi không tồn tại một chuỗi vô hạn

và . được gọi là một xích (chain) khi và chỉ khi hoặc

là thứ tự toán phần khi và chỉ khi nó là một xích.

Bổ đề 1

là sắp tốt khi và chỉ khi mọi tập con không rỗng của A đều có một phần tử nhỏ nhất.

Chứng minh. Dành như bài tập.

Page 9: Bài giảng Nhập môn logic

Chúng ta đưa ra định nghĩa nguyên lý quy nạp hoàn toàn như sau:

Định nghĩa 2 (Complete (structural) induction)

Cho một tập sắp tốt và một vị từ . Nguyên lý quy nạp được cho bởi công thức bậc hai (second order) như sau

Bổ đề 2Nguyên lý quy nạp là đúng đối với mọi tập sắp tốt.

Chứng minh: Chứng minh bằng phản chứng: Giả sử nguyên lý này là sai, tức là phép kéo theo là sai. Điều đó có nghĩa rằng tiền đề là đúng:

và kết luận là sai:

Vì vậy chúng ta có thể giả sử rằng tập là không rỗng.

Bởi X là tập con của tập sắp tốt nên nó có phần tử nhỏ nhất và giả sử đó là b. Từ điều giả thiết về tiền đề chúng ta có

Đến đây chúng ta phân biệt hai trường hợp:

b là phần tử nhỏ nhất trong: Như vậy không tồn tại , sao cho y < b. Vì tiền đề của phép kéo theo là đúng nên ta cũng ngận được P(b) là đúng. Điều này dẫn tới mâu thuẫn với giả thiết !

b không là phần tử nhỏ nhất trong A: Khi đó là đúng và P(y) cũng phải đúng vì nếu khác đi thì và b không là phần tử nhỏ nhất trong X. Như vậy một lần nữa tiền đề của phép kéo theo là đúng và dẫn tới kết luận P(b) là đúng. Điều này mâu thuẫn với giả thiết rằng

!

Page 10: Bài giảng Nhập môn logic

3.2. Ví dụTrong mục này chúng ta đưa ra một chứng minh chi tết bằng quy nạp. Để làm điều đó chúng ta cần mở rộng định nghĩa của tập thứ tự bộ phận:

Định nghĩa 3(Thứ tự từ điển - Lexicographic Ordering)

Một tập thứ tự bộ phận sẽ kéo theo một quan hệ thứ tự từ điển trên xác định như sau:

khi và chỉ khi

và hoặc hoặc và

Bổ đề 3

Nếu là tập sắp tốt thì cũng là tập sắp tốt.

Định lý 1Hàm Ackermann ACK được xác định một cách đệ quy sau đây là hàm toàn phần trên

ACK(x,y) = if x=0 then y+1 else if y=0 then ACK(x-1,1) else ACK(x-1,ACK(x, y-1))

Chứng minh: Để bắt đầu quy nạp chúng ta lấy phần tử nhỏ nhất (0,0) của tập sắp tốt , với là quan hệ thứ tự từ điển sinh bởi . Giả thiết rằng, x =

0,y = 0. Theo định nghĩa của ACK, chúng ta kết luận rằng ACK(0,0) = 1 và vì vậy nó là xác định tại điểm này. Giả sử rằng đối với (m,n) bất kỳ, ACK(m',n') đẫ xác định đối với tất cả , nếu

Chúng ta phân biệt các trường hợp sau:

m = 0: tức là ACK(0,n) = n + 1 và vì vậy nó xác định.

Page 11: Bài giảng Nhập môn logic

và n = 0: Chúng ta biết rằng và . Từ giả thiết quy nạp chúng ta thấy rằng ACK(m − 1,1)

cũng xác định và ACK(m,0) = ACK(m − 1,1). và : theo định nghĩa của ACK chúng ta xét hai trường hợp:

o và : Từ giả thiết quy nạp chúng ta có thể kết luận ngay rằng ACK(m,n − 1) là xác định.

o và : Một cách độc lập với các giá trị của x và y. Nếu chúng ta giả thiết y=ACK(m,n − 1) và z = n, chúng ta lại có thể kết luận từ giả thiết rằng ACK(m − 1,ACK(m,n − 1)) là xác định và vì vậy ACK(m,n) cũng xác định

Từ tất cả những điều trên chúng ta kết luận rằng ACK(x,y) xác định với mọi .

4. Logic mệnh đề (Propositional Logic)Mục này giới thiệu về logic mệnh đề. Chúng ta sẽ làn quen với cú pháp và mô hình hóa ngữ nghĩa lý thuyết của ngôn ngữ logic mệnh đề cổ điển đồng thời tìm hiểu các phép tính khác nhau (calculi) để thấy các tính chất nào đó của các câu trong ngôn ngữ này.

4.1. Mở đầu (Preliminaries)Để làm ví dụ chsung ta xem xét một mạch số gồm một cổng or1 (orgate) và hai invertor inv1 và inv2 như trên hình 1. Mô tả hệ thống được cho bởi các công thức mệnh đề với các nhãn để tiện theo dõi những phần tương ứng trên hình 1. Những từ gợi nhớ được sử dụng để đặt tên trong các công thức như sau:

Ký hiệu , và dùng để chỉ "or", "and" và "not" . i1 và i2 dùng để chỉ các đầu vào trên or-gate, i là inverter và o là đầu ra của gate. high là vị từ dùng để chỉ sự kiện rằng giá trị các đối số của nó có “điện thế cao”,

tức là ở trạng thái bật. ab là vị từ có nghĩa “không bình thường” , tức biểu thức có thể

được đọc là “inverter một không phải là không bình thường” .

Page 12: Bài giảng Nhập môn logic

Các công thức này chứa các nhãn diễn đật ý nghĩa mong muốn của chúng: OR1 là công thức mô tả chức năng của or-gate, IN1 và In2 mô tả hành vi (đồng nhất) của hai invertors: CON1 và CON2 đặc tả phương pháp các đầu vào của or-gate liên kết với các đầu ra của hai invertors. Nhận xét rằng trong mô tả này đầu vào và đầu ra của hệ thống chưa được xác định. Và chúng ta quan sát trên mô tả đồ thị thì cả đầu vào và đầu ra của mạch đều có điện thế thấp, tức là chúng ta có thể diễn đạt bởi các công thức

Ví dụ này chỉ ra một mênh đè dạng high(inv1,o) có thể được sử dụng thế nào để mô tả một cách hình thức hành vi của mạch điện tử. Chú ý rằng high(inv1,o) có thể được đọc một cách trực giác là “đầu vào của invertor 1 là cao” và tất nhiên câu này có thể tiếp tục được đơn giản hóa khi bỏ qua cấu trúc câu và hiểu nó đơn giản là một xâu đơn giản” “đầu_vào_của_invertor_1_là_cao”. Nếu chúng ta tiếp tục làm như vậy đối với các mệnh đề khác, chúng ta sẽ nhận được công thức như sau:

the_output_of_inverter_1_is_high the_input_of_inverter_1_is_high

Công thức này chứa 2 mệnh đề được liên kết với nhau qua mũi tên hai chiều. Dễ ràng thấy rằng công thức nhận được theo cách này là khá dài dòng và từ đó chúng ta có thể viết tắt các mệnh đề bằng các xâu đơn giản hơn như P1 hoặc P2 để tạo nên công thức

. Theo mục đích của chúng ta, công thức này mang thông tin giống như . Sự khác nhau duy nhất là ở chỗ là với dạng sau

một trực cảm nào đó sẽ gắn với người đọc, điều chúng ta sẽ bỏ qua trong khuôn khổ logic hình thức để quan tâm tới các mệnh đề bất kỳ.

Sau đây chúng ta sẽ loại trừ một cách có hệ thống mọi trục cảm về ý nghĩa của thế giới thực trong việc thiết kế ngôn ngữ của chúng ta. Chúng ta sẽ chỉ tập trung nghiên cứu các khía cạnh logic có thể được diễn đạt bởi ngôn ngữ của chúng ta mà không quan tâm ý nghĩa nào đó mà nó hướng tới. Nói cách khác, sự giới thiệu trước đây của chúng ta về các công thức logic mô tả mạnh điện tử hướng quá nhiều tới việc giải nghĩa hình vẽ.

Page 13: Bài giảng Nhập môn logic

Chúng ta sẽ giới thiệu ngữ pháp của logic mệnh đề bằng một định nghĩa quy nạp rất đơn giản và sau đó xác định ngữ nghĩa hình thức bằng một định nghĩa riêng khác.

4.2. Ngữ pháp (Syntax)Để định nghĩa ngữ pháp, chúng ta sẽ bắt đầu từ một tập các công thức nguyên tử (atomic formulae) như là điểm xuất phát của định nghĩa quy nạp. Từ đó nhờ các liên từ logic và các dấu đóng, mở ngoặc chúng ta sẽ định nghĩa một cách quy nạp các công thức phức tạp hơn

Định nghĩa 1 (Ngữ pháp của Logic mệnh đề - Syntax of propositional Logic)Giả sử chúng ta có

một tập đếm được các công thức nguyên tử Pi, , các liên từ logic , và , các dấu tách câu ( và ).

Tập các công thức mệnh đề được xác định bởi phép quy nạp sau:

các công thức nguyên tử là công thức. nếu F và G là các công thức, thì và cũng là các công thức. nếu F là một công thức, thì cũng là công thức

Các dạng công thức khác nhau được gọi tương ứng là hội, tuyển và phủ định. Chú ý rằng đó chỉ là thói quen nói bằng lời và cho đến đây chúng ta vẫn chưa cho bắt cứ ngữ nghĩa nào của các liên từ logic để giải thích các ký pháp đó.

Định nghĩa này của tập các công thức cũng đồng thời đưa ra một thứ tự bộ phân theo cách rất tự nhiên khi chũng ta xét đến khái niệm công thức con.

Page 14: Bài giảng Nhập môn logic

Định nghĩa 2 (Công thức con - Subformula)Một công thức con (subformula) của một công thức là một xâu con tạo nên một công thức.

Chú ý rằng quan hệ “là một công thức con” tạo nên một thứ tự bộ phận.

The set of formulae together with the subformula-relation is a well-founded relation.

Tập các công thức cùng với quan hệ xâu con là một quan hệ sắp tốt

In order to facilitate notations We introduce the following abbreviations:

Để tiện cho việc trình bày, chúng ta đưa ra cách viết tắt như sau:

A,B,C thay cho P1,P2,P3

thay cho

thay cho

thay cho

thay cho

Các ký pháp này (trừ ký pháp đầu tiên) là các viết tắt đơn giản; tại bất cứ nơi nào trong công thức có xuất hiện các ký hiệu mũi tên hoặc các liên từ được chỉ số hóa, các công thức con tương ứng có thể được thay thế theo định nghĩa này.

Quay trở lại với ví dụ trước, chúng ta có thể thấy

có thể được viết như một công thức tương ứng với định nghĩa trên bằng việc đưa thêm vào các dấu ngoặc:

Các dấu ngoặc được đưa vào nhằm tránh nhẫm lẫn. Để tăng tính đọc được (readability), chúng ta sẽ bỏ qua chúng ở những nới có thể. Nếu chúng ta áp dụng bổ xung cách viết tắt

Page 15: Bài giảng Nhập môn logic

như trên, chúng ta sẽ tạo được công thức sau:

4.3. Ngữ nghĩa (Semantics)

Định nghĩa 3 (Ngữ nghĩa của Logic mệnh đề - Semantics of propositional logic)Đối với ngữ nghĩa của ngôn ngữ hình thức của các mệnh đề chúng ta không hướng tới một giải nghĩa cụ thể mà chỉ quan tâm tới giá trị chân lý (truth values). Chúng ta giả sử có một phép gán giá trị chân lý ban đầu cho các công thức nguyên tử. Dựa trên phép gán này chúng ta sẽ xác định giá trị chân lý của các công thức phức tạp hơn. Tập các giá trị chân lý là tập {true,false}. Một phép gán đối với tập D các công thức nguyên tử là một hàm:

. Giả sử E là tập các công thức chứa D, tức là và các công thức của E được xây dựng từ D theo định nghĩa của ngữ pháp. Khi đó mở rộng của

trên E, , được cho như sau:

 :

Page 16: Bài giảng Nhập môn logic

Sau đây chúng ta sẽ bỏ chỉ số E để chỉ mở rộng của phép gán .

Nhận xét rằng đây chính là nơi phù hợp để gọi công thức dạng là tuyển, công thức dạng là hội và công thức dạng là phủ định.

Sau đay là một ví dụ về ước lượng giá trị chân lý của công thức phức tạp theo định nghĩa một phép gán : Giả sử cho và . Khi đó

= false

Đinh nghĩa 4Giả sử là một phép gán và F là một công thức. được gọi là phép gán đối với F nếu

xác định trên mọi công thức con của F. Nếu là phép gán đối với F và thì chúng ta gọi là một mô hình đối với F và viết . Nếu

là phép gán đối với F và , chúng ta viếte .

Một công thức F được gọi là thỏa mãn được (satisfiable), khi và chỉ khi tồn tại một mô hình đối với F. Ngược lại F được gọi là không thỏa mãn được (unsatisfiable). F được gọi là valid (hay một tautology) khi và chỉ khi mọi phép gán đỗi với F đều là mô hình và chúng ta viết . Ngược lại chúng ta viết .

Định lý 1

Page 17: Bài giảng Nhập môn logic

Công thức F là valid khi và chỉ khi là không thỏa mãn được.

Chứng minh: F là valid

khi và chỉ khi mọi phép gán đối với F đều là mô hình đối với F

khi và chỉ khi mọi phép gán đối với F (tất nhiên cũng là phép gán đối với ) không là mô hình đối với

khi và chỉ khi không có mô hình

khi và chỉ khi không thỏa mãn được.

Đinh nghĩa 5 (Hệ quả - Consequence)

Công thức G được gọi là hệ quả (consequence) của các công thức , nếu với mọi phép gán đốii với G và điều sau là đúng: nếu là mô hình đối với các công thức , thì cũng là mô hình đối với G. Khi đó chúng ta viết

.

Định lý sau được suy ra trực tiếp từ Định nghĩa 5:

Theorem 2

G là hệ quả của các công thức ,

khi và chỉ khi là một tautologie

khi và chỉ khi là không thỏa mãn được.

Rõ rằng rằng tính validity của một công thức chỉ phụ thuộc vào phép gán đối với các công thức con nguyên tử của nó: Nếu và là các phép gán đối với F và nếu chúng cho cùng giá trị đối với các công thức công nguyên tử xuất hiện trong F thì ta có

. Từ đó chúng ta có thể nói rằng để kiểm tra tính validity của một công thức F chúng ta chỉ cần thực hiện kiểm tra trên tất cả các phép gán đối với các công thức con nguyên tử của F. Phép kiểm tra đó được vẽ trên bảng có dạng sau với F là công thức tùy ý chứa n công thức nguyên tử khác nhau .

F

Page 18: Bài giảng Nhập môn logic

false false false

false false true

true true true

Khi áp dụng thủ tục này, việc đưa ra các kết quả trung gian cho các công thức con có thể mang lại lới ích như trong vid dụ sau.

A B ( ))

false false true true true

false true true true true

true false false false true

true true false true true

Chú ý rằng chúng ta vừa phác họa một thuật toán để kiểm tra tính validity của một công thức. Giả sử công thức chứa n công thức con nguyên tử. Khi đó bảngmà chúng ta xây dựng sẽ chứa 2n dòng. Để ước lượng giá của việc tính toán đối với thuật toán lũy thừa như vậy, chúng ta giả sử việc thực hiện kiểm tra trên mỗi dòng mất 1 micro-second. Khi F chỉ cần chứa 100 công thức con nguyên tử thì thời gian tính toán sẽ mất 2100 micro-seconds. Đây là một con số khổng lồ và điều đó cho thấy thuật toán là không khả thi đối với những công thức có số lương công thưc con nguyên tử rất lớn.

Bảng chân lý (Truth Tables)Bài toán liệu một công thức có thỏa mãn được hay không được gọi là bài toán SAT và bài toán liêu một công thức có là một tautology không được gọi là bài toán TAUT.

SAT là bài toán NP-đầy đủ (NP-complete problem), và vì vậy SAT có là tractable hay không vẫn chưa có câu trả lời. Câu hỏi liệu TAUT có thuộc lớp NP hay không vẫn là bài toán mở. Đối với TAUT người ta chỉ biết rằng nó sẽ thuộc NP khi và chỉ khi NP là đóng dưới phép bù (complementation). Cả hai bài toán SAT và TAUT giữ một vai trò nỗi bật trong việc nghiên cứu độ phức tạp tính toán, đặc biệt đối với câu hỏi liệu P = NP hay không.

Page 19: Bài giảng Nhập môn logic

4.4. Sự tương đương và các dạng chuẩn (Equivalence and Normal Forms)Cho đến đây chúng ta chỉ bàn đến các công thức đơn lẻ và các tính chất ngữ nghĩa của chúng. Trong mục này chúng ta sẽ xem xét liệu các công thức có thể được biến đổi thành dậng khác mà vẫn giữ nguyên ngữ nghĩa của chúng. Để làm điều đó, chúng ta đưa ra khái niệm tương đương logic (logical equivalence) và sử dụng nó để nghiên cứu phép biến đổi một công thức về dạng chuẩn (normal form) của nó.

Đinh nghĩa 6Hai công thức F và G được gọi là tương đương ngữ nghĩa (semantically equivalent), khi và chỉ khi với mọi phép gán đối với F và G, . Khi đó chúng ta viết

.

Các công thức chứa các công thức con khác nhau cũng có thể tương đương. Trương hợp đặc biệt là các tautologies đều tương đương ngữ nghĩa. Điều thú vị hơn được thể hiện trong định lý sau:

Đinh lý 3 (Thay thế được - Substituitivity)Giả sử và H là công thức chứa ít nhất một lần xuất hiện của công thứa F như một công thức con. Khi đó , với H' là công thức nhận được từ H bằng việc thay thể mọi xuất hiện của F bởi G.

Chứng minh: Việc chứng minh được thực hiện bằng quy nạp trên cấu trúc của công thức H:

Giả sử H là công thức nguyên tử. Khi đó H = F và việc thay thế xuất hiện duy nhất của F bằng G sẽ cho H' = G. Do nên chúng ta có . Giả sủ định lý đúng với tất cả các công thức con thực sự của H: nếu F = H chúng ta có điều tương tự như ở trên. Nếu thì có 3 trường hợp xảy ra:

: vì h1 là công thức con của H chúng ta kết luận rằng , với h1' được xây dựng từ h1 bằng việc thay thế mọi xuất hiện của F bởi G. Từ định nghĩa

ngữ nghĩa của chúng ta kết luận rằng và vì vậy với là công thức được xây dựng từ H bằng việc thay thế mọi xuất hiện của F trong

H bởi G. : Không mất tính tổng quát có thể giả thiết rằng F chỉ xuất hiện

trong h1. Khi đó có và theo định nghĩa ngữ nghĩa của phép chúng ta

kết luận rằng .

Page 20: Bài giảng Nhập môn logic

tương tự.

Định lý 4Các tương đương sau là đúng:

F

F (Idempotence)

(Commutativity)

(Associativity)

F

F (Absorption)

(Distributivity)

F (Double negation)

(deMorgan's rule)

F, nếu F là một tautology

G, nếu F là một tautology (Rule of Tautology)

G, nếu F không thỏa mãn được

F, nếu F không thỏa mãn được (Rule of Unsatisfiability)

Page 21: Bài giảng Nhập môn logic

Proof: Tất cả các tương đương đều có thể chứng minh bằng cách dùng bảng chân lý. Dưới đây là chúng minh cho quy tắc absortion thứ hai (second rule of absorption):

F G ( ) ( ))

false false false false

false true false false

true false false true

true true true true

Bây giờ chúng ta sử dụng các tương đương và Định lý 3 về tính thay thế được để chứng minh tương đương sau:

Associativity and TS

Commutativity and TS

Distributivity

Commutativity and TS

Distributivity and TS

Unsatisfiability and TS

Commutativity and TS

Commutativity and TS

Định nghĩa 7 (Các dạng chuẩn - Normal Forms)

Page 22: Bài giảng Nhập môn logic

Một literal là một công thức nguyên tử hoặc phủ định của một công thức nguyên tử. Một công thức F có dạng chuẩn hội (conjunctive normalform - CNF) khi và chỉ khi

ở đây mỗi Lij là một literal.

Một công thức F có dạng chuẩn tuyển (disjunctive normalform - DNF) khi và chỉ khi

ở đây mỗi Lij là một literal

Định lý 5Mọi công thức F đều có một công thức tương đương có dạng chuẩn DNF và một công thức tương đương có dạng chuẩn CNF.

Let us formulate an algorithm to transform a given formula F into an equivalent normalform:

Sau đây chúng ta đưa ra một thuật toán biến đổi một công thức cho trước F thành dạng chuẩn CNF tương đương.

Cho: một công thức F

1. Thay thế các công thức con trong F theo quy tắc sau

cho đến khi không còn công thức con nào có các dạng này.

2. Trong công thức nhận được từ bước trên ta thay mọi công thức con theo cac quy tắc sau:

Page 23: Bài giảng Nhập môn logic

cho đến khi không con các công thức nào có dang trên.

Kết quả: Một công thức tương đương của F có dạng chuẩn CNF

Cho đến đay chúng ta đã nghiên cứu cách biến đổi một công thức mệnh đề về dậng chuẩn tương đương. Trong ngữ cảnh bàn luận về các dạng chuẩn nảy sinh một vấn đề là làm sao xây dựng được một công thức ở dạng chuẩn khi ta không biết tường minh công thức ban đầu mà chỉ biết hành vi của nó thông qua bảng chân lý. Giả sử một công thức được cho bằng bảng chân lý sau:

A B C F

false false false true

false false true false

false true false false

false true true false

true false false true

true false true true

true true false false

true true true false

Để xây dựng một công thức có dạng chuẩn DNF tương đương với F, chúng ta phải tính đến một điều rằng mỗi dòng trên bảng chân lý ứng với giá trị true của công thức là một phép hội nên nếu một phép gán cho giá trị của literal Ai là true thì phép hội tương ứng với dòng này sẽ có dạng , còn nếu giá trị Ai là false thì phép hội đó sẽ có dạng . Như vậy đối với ví dụ trên chúng ta có công thức ở dạng chuẩn DNF sau:

Nếu chúng ta thay đổi vai trò của true bằng false và bằng trong thủ tục trên, chúng ta nhận được công thức ở dạng chuẩn CNF sau:

Page 24: Bài giảng Nhập môn logic

Chúng ta đã đưa ra cách biểu diễn đặc biệt của các công thức dưới dạng chuẩn. Trong ví dụ về mạch điện tử của chúng ta trong phần giới thiệu, chúng ta đã sử dụng một dạng rất đặc biệt của các dạng chuẩn. Đó là phép kéo theo đối với các công thức có dạng chuẩn CNF: mỗi công thức con Fi của phép hội được viết như sau:

Dễ ràng thấy rằng phép kéo theo này là tương đương logic với phép tuyển . Đôi khi phép kéo theo này được viết dưới

dạng

Đôi khi người ta cũng dùng một ký pháp nhập nhằng trong một vài trường hợp với quy định dấu “phẩy” ở tiền đề thay cho phép hội còn dấu “phẩy” ở kết luận thay cho phép tuyển:

Trong nhiều thủ tục lập luận logic (logical reasoning) quan trọng chúng ta bắt buộc phải biểu diễn công thức không chỉ dưới dạng chuẩn mà còn đòi hỏi chúng ở dạng clause-form như trong định nghĩa sau.

Definition 8Nếu F là một công thức ở dạng CNF, tức là

thì biểu diễn tương ứng của nó dưới dạng clause form được cho như sau:

Page 25: Bài giảng Nhập môn logic

Các tập được gọi là các clauses.

Biểu diễn công thức dưới dạng clause form có ưu điểm là các literal có thể xuất hiện theo bất cứ thứ tự nào và nếu một literal xuất hiện nhiều lần trong một phép tuyển thì ta chỉ cần lưu trữ nó một lần trong biểu diễn dưới dạng clause form. Điều đó có nghĩa rằng chúng ta đã tích hợp các tính chất associativity, commutativity và Idempotence vào trong chính biểu diễn này.

           

4.5. Horn clausesTrong mục này chúng ta sẽ giới thiệu một lớp có ý nghĩa đặc biệt của các công thức trong lập trình logic. Lớp công thức này cho phép kiểm tra một cách hiệu quả tính thỏa mãn được trong logic mệnh đề.

Definition 9Một công thức là một công thức Horn (Horn formula) nếu nó ở dạng chuẩn CNF và mỗi phép hội chứa nhiều nhất một literal dương. Horn clauses là các clauses chứa nhều nhât một literal dương.

         

          

               

        

ở đây true là một tautology và false là một công thức không thỏa mãn được.

Dưới dạng câu, công thức trên có thể được viết như sau

và trong ngữ cảnh của lập trình logic nó trở thành:

Page 26: Bài giảng Nhập môn logic

  

         }

Đối với công thức Horn tồn tại một thuật toán hiệu quả để kiểm tra tính thỏa mãn của nó. Thuật toán này được mô tả bằng giả mã dưới đây:

Xác định tính thỏa mãn được của các công thức Horn F

1. Nếu có một công thức con có dạng : gán nhãn cho tất cả các xuất hiện của A trong F.

2. Áp dụng các quy tắc sau cho đến khi không còn có thể áp dụng chúng được:o Nếu là một công thức con và các đã

được gán nhãn và B chưa được gán nhãn. Khi đó gán nhãn cho mọi xuất hiện của B trong F.

o Nếu là một công thức con và các đã được gán nhãn thì Stop: công thức không thỏa mãn được

3. Stop: Satisfiable Phép gán “ khi và chỉ khi A được gán nhãn” là một mô hình.

Định lý 6Thuật toán trên là đúng đắn và dừng sau n bước với n là số các công thức nguyên tử có trong công thức.

Chúng ta có thể thấy một hệ quả trực tiếp là một công thức Horn sẽ là thỏa mãn được nếu nó không chứa công thức con có dạng .

Các công thức Horn chấp nhận các mô hình nhỏ nhất duy nhất (unique least model) theo nghĩa là mô hình nhỏ nhất duy nhất đối với F nếu đối với mọi mô hình và mọi công thức nguyến tử B trong F chúng ta có: nếu thì .

Page 27: Bài giảng Nhập môn logic

Chú ý rằng tính chất mô hình nhỏ nhất duy nhất này không đúng với các công thức không phải là công thức HornNote. Ví dụ công thức không phải là công thức Horn và chúng ta có

là hai mô hình nhỏ nhất khác nhau của nó.

4.6. Phép giải (Resolution)Trong mục này chúng ta sẽ xây dựng một lý thuyết tính toán (calculus) cho logic mệnh đề. Cho đến đây chúng ta đã có một ngôn ngữ, tức là một tập các công thức, và chúng ta cũng nghiên cứu ngữ nghĩa và một số tính chất của các công thức hoặc tập các clauses. Sau đây chúng ta sẽ đưa ra một quy tắc suy diễn (inference rule hay là resolution rule) cho phép đưa ra các clauses mới từ những clauses cho trước.

Định nghĩa 10Một clause R là một resolvent của các clauses C1 and C2, nếu tồn tại một literal L sao cho

và và

với

Chú ý rằng trong trường hợp đặc biệt khi chúng ta tạo resolvent của hai literals L và chúng ta sẽ thu được một resolvent rỗng và nó được ký hiệu bởi ký hiệu đặc biệt .

ký hiệu một công thức không thỏa mãn được. Chúng ta định nghĩa một tập clause có chứa clause rỗng này là tập clause không thỏa mãn được.

Sau đây chúng ta sẽ nghiên cứu tính chất của quy tắc giải và toàn bộ lý thuyết tính toán. Bổ đề sau nới về tính đúng đắn của một áp dụng đơn của quy tắc giải.

Định lý 7

Nếu S là tập các clauses và R là một resolvent của , thì

Chứng minh: Giả sử một là phép gán đối với S; Ta cần chứng minh nó cung là phép gán đối với . Vì nên với mọi clauses C thuộc S, chúng ta có . Resolvent R của C1 và C2 có dạng:

Page 28: Bài giảng Nhập môn logic

với và . Có 2 trường hợp xảy ra:

: Từ và , ta có và vì vậy .

: Từ chúng ta có và vì vậy .

Chiều ngược lại của Bổ đề là hiển nhiên.

Định nghĩa 11Giả sử S là tập các clauses và

ta sẽ ký hiệu

Res0(S) = S

Nếu chúng ta hiểu quá trình lặp toán tử Res như một thủ tục dẫn xuất ra các clauses mới từ tập các clauses cho trước và trong trường hợp đặc biệt dẫn xuất ra clause rỗng thì một câu hỏi nảy ra là trong tình huống nào chúng ta sẽ nhận được clause rỗng và ngược lại, khi chúng ta nhận được clause rỗng thì điều đó có ý nghĩa gì. Hai Định lý sau đâu cho chúng ta câu trả lời cho các câu hỏi đó.

Định lý 8 (Tính đúng - Correctness)

Giả sử S là một tập các clauses. Nếu thì S là không thỏa mãn được.

Chứng minh: Từ chúng ta kết luận rằng nhận được bằng quy tắc giải từ hai clauses C1 = {L} and . Do đó sao cho và

. Như vậy Resn(S) là không thỏa mãn được. Theo Định lý 7 ta có và vì vậy S là không thỏa mãn được.

Định lý 9 (Tính đủ - Completeness)

Page 29: Bài giảng Nhập môn logic

Giả sử S là tập hữu hạn các clauses. Nếu S là không thỏa mãn được thì .

Chứng minh: Chúng ta quy nạp theo n là số lương công thức nguyên tử trong S.

Với n = 0 chúng ta có và vì vậy .

Giả sử n cố định và kết luận trên là đúng, tức là với bất kỳ tập các clauses S không thỏa mãn được có n công thức nguyên tử chúng ta có .

Bây giờ giả sử tập các clauses S gồm có các công thức nguyên tử . Sau đây chúng ta sẽ xây dựng hai tập clause Sf và St như sau:

Sf nhận được từ S bằng việc bỏ đi tất cả các xuất hiện của An + 1 trong mỗi clause và bỏ đi tất cả các clause có chứa . Phép biến đổi này rõ ràng tương ứng với việc giải nghĩa công thức nguyên tử An + 1 là false,

St nhận được bằng cách tương tự khi các xuất hiện của và các clauses chứa An + 1 được bỏ đi. Điều này có nghĩa chúng ta coi An + 1 là true.

Chúng ta sẽ chỉ ra rằng cả Sf và St đều là không thỏa mãn được. Thật vậy, giả sử một phép gán đối với các công thức nguyên tử là mô hình của Sf. Như vậy phép gán

sẽ là một mô hình của S. Điều này mâu thuẫn với giả thiết S không thỏa mãn được. Tương tự như vậy ta cũng chỉ ra rằng St là không thỏa mãn được.

Từ đó chúng ta kết luận rằng và . Như vậy sẽ có một dãy các

sao cho hoặc Ci là một resolvent của hai clauses Ca and Cb với a,b < i. Tương tự ta cũng có một dãy như vậy trong St:

Bây gời chúng ta đưa trở lại các literals trước đay đã bị xóa An + 1 and vào hai dãy này:

Page 30: Bài giảng Nhập môn logic

Clause Ci nhận được từ kết quả của việc lọai bỏ An + 1 từ các clause gốc trong S sẽ được biến đổi thành và chúng ta nhận được dãy mới

với hoặc là hoặc bằng chính An + 1.

Một cách tương tự ta đưa trở lại vào dãy thứ hai và nhận được hoặc là hoặc bằng

Trong tất cả các trường hợp trên chúng ta đều nhận được sau một bước thực hiện quy tắc gải với và .

Trên cơ sở của các định lý về tính đúng và tính đủ, chúng ta đưa ra thủ tục quyết định tính thỏa mãn được của một công thức mênh đề như sau.

Deciding Satisfiability of Propositional Formulae

Given a propositional formula F.

Transform F into an equivalent CNF S. Compute Resn(S) for

o If then Stop: unsatisfiable .

o if Resn(S) = Resn + 1(S) then Stop: satisfiable .

Định lý 10

Nếu S là một tập hữu hạn các clauses, thì tồn tại một số nguyên sao cho

Resk(S) = Resk + 1(S)

Cho tới đây chúng ta đã thảo luận những vấn đề liên quan đến một tập các clauses. Tiếp theo chúng ta sẽ xét việc áp dụng một dãy liên tiếp quy tắc giải.

Định nghĩa 12

Page 31: Bài giảng Nhập môn logic

Một diễn giải (deduction) của một clause C từ tập các clauses S là một dãy , sao cho

Cn = C and

Một diễn giải của một clause rỗng từ S được gọi là một phản biện (refutation) của S.

Ví dụ: Chúng ta muốn chỉ ra rằng công thức là một hệ quả logic của . Để chỉ ra điều đó, chúng ta lấy phủ định của K và chúng minh tính không thỏa mãn được của

Chúng ta có thể thực hiện việc này ít nhất theo 2 cách:

Dùng bảng chân lý để chúng minh tính không thỏa mãn được Biến đổi công thức về dạng CNF và sau đó thực hiện thủ tục giải để kiểm tra tính

thỏa mãn được của công thức CNF nhận được.

5. Logic vị từ (Predicate Logic)5.1. Logic vị từ (Predicate Logic)Khi giới thiệu về logic mệng đề, để xử lý ví dụ của mạnh logic chúng ta đã thống nhất rằng một xâu kiểu high(inv1,o) có thể được đọc theo trực giác là “đầu ra của inverter 1 là cao” và sau đó biểu diễn nó dưới dạng mệnh đề "the_output_of_inverter_1_ is_high". Trong phần hình thức của lý thuyết tính toán thậm chí chúng ta còn trừa tượng hóa tiếp tục khi cho các mệnh đề dưới dạng một tập đếm được và nghiên cứu một ngôn ngữ logic có khả năng kết nối những mệnh đề này. Trong mục tiếp theo chúng ta sẽ nhìn một cách gần hơn vào cấu trúc của các mệnh đề khi chúng ta có thể chỉ ra một cách tường minh các đối tượng dạng inv1 hoặc đầu ra của nó o trong các câu của một ngôn ngữ mạnh hơn là logic vị từ. Trong ngôn ngữ đó chúng ta sẽ đưa ra khái niệm biến để chỉ đối tượng tùy ý trong miền xác định nào đó. Ví dụ chúng ta có thể viết high(x,o) để chỉ ra rằng đầu ra của x là cao. Như là hệ quả của khái niệm mới này chúng ta cũng đưa vào các lượng từ để có thể viết câu dạng với nghĩa là tồn tại một đối tương x có đầu ta cao hoặc với ý nghĩa là mọi x đều có đầu ra cao.

Page 32: Bài giảng Nhập môn logic

Với các khái niệm mới này, chúng ta cũng có thể diễn đạt các tính chất trừa tương hơn của các đối tượng thuộc miền xác định. Ví dụ, chúng ta muốn đưa ra khái niệm các phần tử trong mạch được kết nối. . Chúng ta sẽ nói connected(inv1,inv2) và connected(inv2,inv3). Bây giờ với ý nghĩa “được kết nối”, chúng ta giả thiết rằng các inverter inv1 và inv3 cũng được kết nối. Tất nhiên chúng ta có thể đưa vào một câu mới để diễn đạt điều này như connected(inv1,inv3); Nhưng việc làm như vậy sẽ bất tiện ở chỗ chũng ta sẽ phải đưa ra các câu như vậy với mọi cặp đối tượng trong miền xác định. Trong logic vị từ tính chất bắc cầu của kết nối được diễn đạt không cần tham chiếu tường minh tới các đối tượng bằng câu sau đây:

5.2. Ngữ pháp (Syntax)

Định nghĩa 1 (Syntax of predicate logic - Terms)Gả sử ta có

một tập đếm được các ký hiệu hàm một tập đếm được các biến

Tâhp các term được định nghĩa một cách quy nạp như sau:

Các biến xi là các terms.

Nếu là các terms và là một ký hiệu hàm thì là một term.

Các có dạng là các terms đặc biệt được gọi là các hằng. Trong trường hợp này

chúng ta bỏ qua dấu ngoặc và ký hiệu chúng là .

Các Terms là phần thể hiện ngữ pháp (syntactic counterpart) của các đối tượng nhắc đến ở trên. Các hằng sẽ ký hiệu các phần tử của domain và ký hiệu hàm chỉ ra cách tham chiếu tới các đối tương đó.

Chsung ta đưa ra định nghĩa các công thức như sau.

Định nghĩa (Syntax of predicate logic - Formulae)

Giả sử ta có một tập đếm được các ký hiệu vị từ . Tập các công thức xây dựng đúng được định nghĩa một cách quy nạp như sau:

Page 33: Bài giảng Nhập môn logic

Nếu là các terms và là ký hiệu vị từ thì là một công thức.

Nếu F và G là các công thức thì và cũng là các công thức. Nếu F là một công thức thì cũng là công thức. Nếu x là một biễn và F là một công thức thì và cũng là các công

thức.

Công thức có dạng được gọi là các công thức nguyên tử.

Chú ý rằng khái niệm công thức con hòan toán giống với với trường hợp logic mệnh đề.

Chúng ta đưa ra các quy định viết viết tắt sau đây và chúng có thể được sử dụng kềm theo chỉ số:

u,v,w,x,z, Là các biếnLà các hằngLà các ký hiệu hàmLà các vị từ

Chú ý rằng ngôi của các ký hiệu hàm và các lý hiệu vị từ được bỏ qua trong cách viết tắt này. Chúng ta sẽ xác định ngôi theo ngữ cảnh.

Example: Giả sử chúng ta mong muốn biểu diễn đẳng thức đúng với mọi phần tử trên một trường (field) sau đây:

x * (y + z) = x * y + x * z

Hai toán tử * và + được biểu diễn trong công thức logic vị từ như là các ký hiệu hàm hai

ngôi và , các biến là x1,x2 và x3, quan hệ đẳng thức = là vị từ hai ngôi . Khi đó chúng ta có thể viết công thức logic vị từ tương ứng với đẳng thức trên như sau:

Sau đây chúng ta sẽ sử dụng ký pháp rõ ràng và phong phú hơn như trong trường hợp logic mệnh đề.

Định nghĩa 3Một xuất hiện (occurrence) của biến x trong công thức F được gọi là xuất hiện buộc nếu nó xuất hiện trong một công thức con của F có dạng hoặc . Các trường hợp khác được gọi là xuất hiện tự do.

Page 34: Bài giảng Nhập môn logic

Một công thức không chứa xuất hiện tự do của biến được gọi là công thức đóng.

Ví dụ: Công thức sau đây chứa cả xuất hiện buộc và xuất hiện tự do của x và y.

5.3. Ngữ nghĩa (Semantics)

Định nghĩa 4 (Ngữ nghĩa của logic vị từ - Semantics of predicate logic. Giải nghĩa - interpretation)

Một giải nghĩa (interpretation) là một cặp , với

là một tập không rỗng tùy ý được gọi là miền xác định (domain) hoặc vũ trụ (universe).

là một ánh xạ biến o một ký hiệu vị từ k ngôi thành một vị từ a k ngôi trên ,o một ký hiệu hàm k ngôi thành một hàm k ngôi trên o một biến thành một phần tử trên miền xác định.

Giả sử F là một công thức và là một giải nghĩa. Chúng ta gọi là một giải nghĩa đối với F nếu được xác định đối với mỗi ký hiệu vị từ, ký hiệu hàm và mọi biến xuất hiện tự do trong F .

Ví dụ: Giả sử . Sau đây chúng ta đưa ra hai giải nghĩa đối với F:

, sao cho o

o

o

oo A1(a) = 2o A1(z) = 3

Theo giải nghĩa này công thức F có thể được đọc thành "Mọi số tự nhiên đều nhỏ hơn số tiếp theo của nó và tổng của 2 và 3 là một số nguyên tố."

, sao cho o

Page 35: Bài giảng Nhập môn logic

o A2(f)(t) = f(t) for o A2(g)(t1,t2) = g(t1,t2), if o A2(a) = ao A2(z) = f(f(a))o A2(p) = {p(a,a),p(f(a),f(a)),p(f(f(a)),f(f(a)))}o

Đối với một giải nghĩa đã cho chúng ta viết thay chof A(p); ký pháp viết tắt cúng được sử dụng đối với các ký hiệu hàm và biến.

Định nghĩa 5 (Semantics of predicate logic. Đánh giá công thức - Evaluation of Formulae)Giả sử F là một công thức và là một giải nghĩa đối với F. Với terms t, ta định nghĩa giá trị như sau:

, nếu là các terms và f là ký hiệu hàm k ngôi. (cả trong trường hợp k = 0.)

Giá trị của công thức F được cho như sau

Page 36: Bài giảng Nhập môn logic

ở đây

Các khái niệm thỏa mãn được,, valid, và được xác định như trong trường hợp logic mênh đề.Chú ý rằng lý thuyết tính toán vị từ là một mở rộng của lý thuyết tính toán mệnh đề. Thật vậy, nếu một công thức trong logic vị từ chỉ gồm các ký hiệu vị từ không ngôi và các công thức không chứa biến (tức là không có term và lương từ) thì nó chính là một công thức xây dựng đúng trong logic mệnh.

Mặt khác lý thuyết tính toán vị từ cũng có thể được mở rộng: Nếu người ta cho phép các lượng từ đối với cả các ký hiệu vị từ lẫn ký hiệu hàm thì chúng ta sẽ được lý thuyết tính toán vị từ bậc hai (second order predicate calculus). Ví dụ:

5.4. Sự tương đương và các dạng chuẩn (Equivalence and Normal Forms)Sự tương đương của các công thức được định nghĩa tương tự như trong trường hợp logic mệnh đề:

Định nghĩa 6Các công thức F và G được gọi là tương đương ngữ nghĩa (semantically equivalent) nếu với mọi giải nghĩa đối với F và G, . Khi đó chúng ta viết .

Các tương đương của logic mệnh đề cũng là các tương đương của logic vị từ. Ngòai ra đối với các lượng từ chúng ta có thêm các tương đương sau:

Định lý 1

Page 37: Bài giảng Nhập môn logic

Các tương đương sau là đúng:

Nếu x không xuất hiện tự do trong G:

Chứng minh: Chúng ta chỉ đưa ra chúng minh cho tương đương sau

với x không xuất hiện tự do trong G. Giả sử một giải nghĩa sao cho

chú ý rằng các trường hợp đối xứng sau đây là không đúng:

là không tương đương với

Page 38: Bài giảng Nhập môn logic

là không tương đương với

Định lý thay thế được cũng đúnh như trong trường hợp logic mệnh đề.

Ví dụ: Chsung ta biến đổi các công thức sau bằng phép thay thế và các tương đương trongĐịnh lý 1:

Định nghĩa 7Giả sử F là một công thức, x là một biến và t là một term. F[x / t] nhận được từ F bằng việc thay thế các xuất hiện tự do của x bởi t.Chú ý rằng khái niệm này có thể có lặp: F[x / t1][y / t2] và t1 có thể chứa xuất hiện tự do của y.

Bổ đề 1Giả sử F là một công thức, x là một biến và t là một term.

Bổ đề 2 (Đặt lại tên biến buộc - Bounded Renaming)

Giả sử F = QxG là một công thức với và y là một biến không xuất hiện trong G. Khi đó

Định nghĩa 8Một công thức được gọi là proper nếu không có biến vừa là biến tự do vừa là biến buộc và sau mỗi lượng từ đều có các biến khác nhau.

Bổ đề 3 (Proper Formula)

Page 39: Bài giảng Nhập môn logic

Đối với mỗi công thức F tồn tại một công thức proper G tương đương với F.Chứng minh: Kéo theo trực tiếp từ việc đặt lại tên biến buộc.Ví dụ:

có công thức proper tương đương sau

Định nghĩa 9

Một công thức được gọi là ở dạng prenex nếu nó có dạng với và trong F không có bất cứ lương từ nào.

Định lý 2Mọi công thức đều có một công thức proper tương đương ở dạng prenex.Ví dụ:

Chứng minh: Việc quy nạp trên cấu trúc của công thức ngay lập tức cho chúng ta tính đúng đắn của định lý đối với các công thức nguyên tử.

: Tồn tại một với và tương đương với F0. Vì vậy chúng ta có

ở đây

Page 40: Bài giảng Nhập môn logic

với . Tồn tại G1,G2 là các công thức proper ở dạng prenex và , . Với việc đặt lại tên biến buộc chúng ta xây dựng

với và vì vậy

Sau đây chúng ta gọi các công thức proper trong dạng prenex là PP-formulae hoặc PPF’s.

Định nghĩa 10Giả sử F là một PPF. Khi F chứa lương từ chúng ta thực hiện phép biến đổi sau:

F có dạng

với G là một PPF và f là một ký hiệu hàm n angôi không xuất hiện trong G.

Đặt F là

Nếu không tồn tại lương từ nào nữa thì F được gọi là ở dạng Skolem.

Định lý 3Giả sử F là một PPF. F thỏa mãn được khi và chỉ khi dạng Skolem của F là thỏa mãn được.

Chứng minh: Giả sử ; sau một phép biến đổi tương ứng trong vòng while-loop chúng ta có

Page 41: Bài giảng Nhập môn logic

với f là một ký hiệu hàm mới. Chúng ta chứng minh rằng phép biến đổi này bảo toàn tính thỏa mãn được.

Giả sử F' là thỏa mãn được. Khi đó tồn tại một mô hình đối với F' và là một giải nghĩa đối với F. Từ tính chất của mô hình chúng ta có với mọi

Từ Bổ đề 1 chúng ta kết luận

với . Do đó đối với mọi tồn tại , sao cho

và vì vậy . Điều đó có nghĩa I là một mô hình đối với F.

Để chúng minh chiều ngược lại chúng ta giả thiết rằng công thức F có một mô hình . Khi đó đối với mọi tồn tại sao cho

Page 42: Bài giảng Nhập môn logic

Giả sử là một giải nghĩa sai lệch với chỉ ở chỗ nó được định nghĩa đối với ký hiệu

hàm f không được định nghĩa trong . Chúng ta giả sử với v được chọn tương ứng với đẳng thức trên.

Từ đó với mọi ta có:

và từ Bổ đề 1 chúng ta kết luận rằng với mọi

Điều đó có nghĩa và là một mô hình đối với F'.

Các kết quả trên được sử dụng để biến đổi một công thức thành tập các clauses và dạng chuẩn clause của nó:

Transformation into Clause Normal Form

Cho một công thức bậc nhất F.

Biến đổi F thành công thức proper tương đương F1 bằng việc đổi tên biến buộc. Giả sử là các biến tự do từ F1. Biến đổi F1 thành

Biến đổi F2 thành dạng prenex thương đương F3. Biến dổi F3 thành dạng Skolem tương đương

Page 43: Bài giảng Nhập môn logic

Biến đổi G thành dạng tương đương CNF với Lij là các. Từ đó nhận được

Viếte F5 dưới dạng tập các clauses:

với

5.5. Lý thuyết Herbrand (Herbrand Theories)Trong mục trên chsung ta đã xem xét những giải nghĩa bất kỳ trong lohic vị từ. Đặc biệt chsung ta đã sử dụng các số cho giải nghĩa về miền xác định và các hàm như phép công và hàm phần tử tiến theo (successor). Sau đây chúng ta sẽ tập trung vào một trường hợp đặc biệt là giải nghĩa Herbrand và thảo luận mối liên quan của chúng với trường hợp tổng quát.

Định nghĩa 11Giả sử S là tập các clauses. Vũ trụ Herbrand UH đối với S được cho như sau:

Tất cả các hằng xuất hiện trong S đều thuộc UH (nếu không có hằng nào xuất hiện trong S, chúng ta giả thiết có một hằng đơn lẻ a trong UH).

Đối với mỗi ký hiệu hàm n ngôi f trong S và mỗi , .

Ví dụ: Cho tập các clauses , chúng ta xây dựng vũ trụ Herbrand

Đối với tập các clauses chúng ta có vũ trụ Herbrand

Page 44: Bài giảng Nhập môn logic

UH = {a}.

Định nghĩa 12

Giả sử S là tập các clauses. Một giải nghĩa là giải nghĩa Herbrand khi và chỉ khi

Đối với mỗi ký hiệu hàm n ngôi ( ) f và

Chú ý rằng ở đây không hề có rằng buộc nào lên phép gán các quan hệ cho các ký hiệu vị từ (tất nhiên trù trường hợp chúng có quan hệ trên vũ trụ Herbrand UH).

Để có thể thảo luận về giải nghĩa của các ký hiệu vị từ chúng ta cần đưa ra khái niệm cơ sở Herbrand.

Định nghĩa 13Một nguyên tử nền (ground atom) hay một term nền (ground term) là một nguyên tử hay một term không có sự xuất hiện của biến. Cơ sở Herbrand đối với một tập các clauses S là tập các nguyên tử nền , với p là ký hiệu vị từ n ngôi từ S và

Chúng ta sẽ ký hiệu phép gán các quan hệ cho các ký hiệu vị từ một cách đơn giản bằng việc cho một tập , trong đó mỗi phần tử là một literal với các nguyên tử của nó thuộc cơ sở Herbrand.

Ví dụ:

Định nghĩa 14

Page 45: Bài giảng Nhập môn logic

Giả sử là một giải nghĩa đối với tập các clauses S. Giải nghĩa Herbrand tương ứng với là một giải nghĩa Herbrand thỏa mãn điều kiện sau: Giả sử

là các phần tử của vũ trụ Herbrand UH đối với S. Theo giải nghĩa mỗi ti

được ánh xạ thàng một . Nếu , thì được gán giá trị true(false) trong .

Chúng ta sẽ phát biểu một bổ đề đơn giản và rất hiển nhiên về giải nghĩa Herbrand nhưng sẽ rất có ích cho chúng ta sau đây.

Bổ đề 4Nếu là một mô hình đối với một tập các clauses S thì mọi giải nghĩa Herbrand tương ứng đều là một mô hình đối với S

Định lý 4Một tập các clauses S là không thỏa mãn được khi và chỉ khi không có mô hình Herbrand đối với S.

Chứng minh: Nếu S là không thỏa mãn được thì rõ ràng không có mô hình Herbrand đối với S.Giả sử rằng không có mô hình Herbrand đối với S và S là thỏa mãn được. Khi đó, có một mô hình đối với S và như vậy theo Bổ đề 4 the giải nghĩa Herbrand tương ứng là một mô hình đối với S. Điều này mâu thuẫn với giả thiết và Đinh lý được chứng minh.

5.6. Cây ngữ nghĩa (Semantic Trees)Trong mục này chúng ta sẽ giới thiệu khái niệm cây ngữ nghĩa (semantic trees) và việc sử dụng chúng để chứng minh tính đầy đủ của quy tắc giải. Chúng ta giả thiết độc giả quen thuộc với các khái niệm cây (trees), cây nhị phân (binary trees) và nhánh (paths) trên cây.

Định nghĩa 15Một cây ngữ nghĩa đối với tập các clauses S là một cây nhị phân T với gốc N0 sao chocác cạnh được gán nhãn là các literals xây dựng từ các phần tử của cơ sở Herbrand của S trong đó:

Nếu N là node trong thì hai cạnh ra của nó được gán nhãn bằng các literals bù nhau A và .

Mỗi nhánh đến node N trong cây T không chứa các literals trong I(N) với I(N) là tập các literals được gán dọc theo các cạnh của nhánh.

Page 46: Bài giảng Nhập môn logic

Định nghĩa 16Một cây ngữ nghĩa được gọi là đầy đủ nếu mỗi nhánh đều chứa tất cả các nguyên tử từ cơ sở Herbrand dưới dạng khẳng định hoặc phủ định.

Ví dụ: S = {p(x),q(f(x))} với cơ sở Herbrand

Chú ý rằng đối với một cây ngữ nghĩa T và một node N tập I(N) có thể xem như một phép gán giá trị chân lý đối với các nguyên tử nền như trong trường hợp được làm với giải nghĩa Herbrand. Vì vậy chúng ta gọi I(N) là một giải nghĩa bộ phận. Một cây ngữ nghĩa đầy đủ tương ứng với một phép liệt kê toàn bộ các giải nghĩa.

Định nghĩa 17 Một node N của cây ngữ nghĩa T là node thất bại (failure node) nếu I(N) làm

cho một thể hiện nền nào đó (ground instance) của một clause trong S trở thành sai nhưng I(N') không làm cho bất cứ một thể hiện nền của một clause trong S là sai đói với mọi node tiến bối (ancestor node) N' của N.

Một cây ngữ nghĩa T được gọi là đóng nếu mọi nhánh đều chứa một node thất bại. Một node N của cây ngữ nghĩa đóng được gọi là một node suy diễn (inference

node) nếu cả hai node hậu bối trực tiếp (immediate descendant nodes) đều là các node thất bại.

Ví dụ:

với cơ sở Herbrand

Giả sử T là một cây ngữ nghĩa đầy đủ thì chúng ta gọi cây nhận được từ cây T bằng việc cắt bỏ mọi nhánh tại node thất bại là cây ngữ nghĩa đóng tương ứng (corresponding closed semantic tree)

Định lý 5 (Herbrand's Theorem – Phiên bản 1)Một tập các clauses S là không thỏa mãn được khi và chỉ khi mọi cây ngữ nghĩa đầy đủ đối với S đều có cây ngữ nghĩa đóng tương ứng hữu hạn.

Chứng minh: Giả sử S là không thỏa mãn được và T là cây ngữ nghĩa đầy đủ đối với S. Với mỗi nhánh P chúng ta có một tập các nhãn IB tạo thành một giải nghĩa vì cây T là đầy đủ. Do đó IB làm cho một thể nền C' của một clause trở thành sai (do S là

Page 47: Bài giảng Nhập môn logic

không thỏa mãn được). Bởi vì trong C' chỉ có một số hứu hạn các literals nên phải tồn tại một node thất bại NB ở một khỏang cách hứu hạn đến gốc. Do P là nhánh bất kỳ nên có thể kết luận mọi nhánh đều có một node thất bại với khỏang cách hữu hạn đến gốc. Điều đó đồng nhất với việc cây ngữ nghĩa đóng tương ứng là hữu hạn.

Để chúng minh điều ngược lại ta giả thiết rằng đối với mọi cây ngữ nghĩa đầy đủ T đều có một cây ngữ nghĩa tương đóng tương ứng hữu hạn . Như vậy mọi nhánh đều chứa một node thất bại và do đó mọi giải nghĩa đều làm cho S trở thành sai. Điều này chứng tỏ S là không thỏa mãn được.

Đinh lý 6 (Herbrand's Theorem – Phiên bản 2)Một tập S các clauses là không thỏa mãn được khi và chỉ khi tồn tại một tập không thỏa mãn được hữu hạn S' các thể hiện nền của các clauses trong S.

Chứng minh: Giả sử S là không thỏa mãn được và T là một cây ngữ nghĩa đầy đủ đối với S. Theo Định lý Herbrand phiên bản 1 sẽ có một cây ngữ nghĩa đóng hữu hạn đối với S. Giả sử S' là tập các thể hiện nền của các clauses sai ở tất cả các node thất bại của cây . S' là hữu hạn và là sai với mọi giải nghĩa và vì vậy là không thỏa mãn được.

Nhận xét rằng phiên bản này của Định lý Herbrand có thể biến đổi trực tiếp thành thủ tục chúng minh sau:

Cho tập các clauses S :

Tạo các tập thể hiện nền của các clauses của S : . Thực hiện kiểm tra tính không thỏa mãn được của mỗi tập hợp đó theo cách làm trong logic mệnh đề (vì các thể hiện nền chính là các mệnh đề).

Theo Định lý Herbrand, sẽ tồn tại một SN' hữu hạn và không thỏa mãn được nếu S là không thỏa mãn được.

5.7. Phép giải (Resolution)Trong logic mệnh đề chúng ta đã định nghĩa một quy tắc giải bằng việc loại bỏ các cặp literals bù nhau trong hai clauses đưa vào giải. Tuy nhiên đối với logic vị từ điều đó không phải luôn luôn áp dụng được. Ví dụ cho:

Trong hai clauses này không có các literals bù nhau. Tuy nhiên, sau khi thay thế term f(a) cho biến x trong C1 và a cho biến x trong C2 chúng ta nhận được:

Page 48: Bài giảng Nhập môn logic

Và bây giờ chúng ta hòan toàn có thể áp dụng quy tắc giải của logic mệnh đề và nhận được resolvent q(f(a)).

Một khả năng khác là thay thế f(x') cho x trong C1 để nhận được

và sau đó chúng ta có resolvent q(f(x')) của C1'' và C2. Resolvent này theo một nghĩa nào đó là tổng quát hơn resolvent nhận được ở trên.

Định nghĩa 18Một phép thế σ là một hàm ánh xạ các biến vào các và nó là một ánh xạ đồng nhất hầu kgắp nơi. Chúng ta có thể biểu diễn phép thế như sau

Nếu là các term nền (ground terms) chúng ta sẽ gọi σ là một phép thế nền. Phép thế rỗng được ký hiệu là ε .

Định nghĩa 19

Giả sử là một pjép thế và E là một biểu thức (expression) (tức là một literal hoặc một term). Khi đó Eθ là một biểu thức nhận được từ E bằng việc thay thế đồng thời mỗi xuất hiện của trong E bởi term ti.

Ví dụ:Với θ = {x / a,y / f(b),z / e} và E = p(x,y,z), chúng ta có Eθ = p(a,f(b),c)

Định nghĩa 20

Giả sử và là các phép thế. Khi đó hợp của các phép thế trên cũng là một phép thế ký hiệu là và được xác định từ bằng việc bỏ đi mọi phần tử xj / tjλ mà tjλ = xj và mội phần tử yi / si mà .

Định nghĩa 21

Giả sử là một tập các biểu thức và θ là một phép thế. Khi đó θ được gọi là phép đồng nhất (unifier) đối với khi và chỉ khi

Page 49: Bài giảng Nhập môn logic

.

Một phép đồng nhất θ được gọi là phép đồng nhất tổng quát nhất (most general unifier) khi và chỉ khi đối với mọi phép đồng nhất σ tồn tại một phép thế λ sao cho .

Sau đây chúng ta sẽ trình bày một thuật toán tìm phép đồng nhất tổng quát nhất. Giả thiết rằng tập các terms có thể đồng nhất được. Đầu tiên chúng ta đưa vào một biến mới y không xuất hiện trong tập trên và lập tập các đẳng thức

Bây giờ chúng ta biến đổi tập đẳng thức này sao cho các phép đồng nhất của nó trở nên bất biến. Một phép thế σ là một phép đồng nhất của tập đẳng thứ

nếu là đúng.

Phép đồng nhất (Unification)

Cho một tập các biểu thức. Biến đổi nó thành tập các đẳng thức N như cách trên. Áp dụng các quy tắc biến đổi sau đây khi còn có thể:

1. Orient

ở đây x là một biến và t một term không chứa biến

2. Delete

3. Decompose (Termreduction)

4. Eliminate (Elimination of variable I)

nếu x không có trong t nhưng có trong R

5. Coalesce (Elimination of variable II)

Page 50: Bài giảng Nhập môn logic

nếu trong R

6. Conflict

nếu hoặc

7. Occur Check

nếu x có trong t

Định lý 7Giả sử N là một tập các biểu thức. Thuật toán trên luôn kết thúc với mọi N. Nếu thuật toán trả về kết quả FAIL thì tập N không đồng nhất được (hay là không có phép đồng nhất cho các biểu thức của nó). Ngược lại N được biến thành tập các đẳng thức

là biểu diễn của phép đồng nhất tổng quát nhất của N.

Định nghĩa 22Nếu hai hoặc nhiều hơn các literals của clause C có một phép đồng nhất σ thì Cσ được gọi là một factor của C.

Ví dụ:Với và σ = {x / f(y)} chúng ta có factor

Định nghĩa 23

Giả sử C1 và C2 là hai clauses không có biến chung và và có phép đồng nhất tổng quat nhất σ. Một resolvent nhị phân của C1 và C2 là

Ví dụ:

Page 51: Bài giảng Nhập môn logic

Cho C1 = {p(x),q(x)} và . Sau khi đặt lại tên trong C2 để nhận được chúng ta sẽ có resolvent {q(a),r(y)} bằng việc sử dụng phép đồng nhất tổng quát nhất {x / a}.

Người ta thường biểu diễn resolvent dưới dạng đồ thị như sau

Đinh nghĩa 24Một resolvent của hai clauses C1 và C2 là một trong các resolvents nhị phân sau đây:

một resolvent nhị phân của C1 và C2

một resolvent nhị phân của C1 và một factor của C2

một resolvent nhị phân của một factor C1 và C2

một resolvent nhị phân của một factor C1 và một factor của C2

Ví dụ:

Cho C1 = {p(x),p(f(y)),r(g(y))} và .

Một factor của C1 là . Một resolvent nhị phân của và C2 đồng thời cũng là resolvent của C1 và C2 là C3 = {r(g(g(a))),q(b)}.

Bổ đề sau được sử dụng để chúng minh tính đầy đủ của phép giải.

Bổ đề 5 (Lifting lemma)

Nếu và là các thể hiện tương ứng của C1 và C2, là một resolvent của và , thì sẽ tồn tại một resolvent C của C1 và C2 sao cho là một thể hiện của C.

Page 52: Bài giảng Nhập môn logic

Hình 1

Định lý 8Một tập các clauses S là không thỏa mãn được khi và chỉ khi một clause rỗng được sinh ra từ S bằng phép giải.Chúng minh:Giả sử S là không thỏa mãn được. Đặt là tập các nguyên tử nền của S. Như vậy A cũng là cơ sở Herbrand đối với S. Ký hiệu T là cây nhị phân đầy đủ như trên Hình 2. Theo Định lý Herbrand phiên bản 1 sẽ tồn tại một cây ngữ nghĩa hữu hạn đóng . Khi đó có hai trường hợp xảy ra:

Nếu chỉ có một node (tức là chỉ có gốc). Khi đó giải nghĩa được hình thành từ nhánh rỗng trên cây này chỉ làm clause rỗng thành sai. Từ đó clause rỗng phải thuộc S.

Giả sử có nhiều hơn một node. Khi đó phải tồn tại một node suy diễn N trong với cả hai hậu bối của nó N1 và N2 là các node thất bại (vì ngược lại thì mọi

node đều có ít nhất một node không thất bại. Điều đó có nghĩa tồn tại một nhánh vô hạn trong . Như vậy dẫn tới mâu thuẫn vì là cây ngữ nghĩa hữu hạn đóng như chỉ ra ở trên). Với N, N1, N2 là các node như đã chỉ ra và

Giả sử C1' và C2' là các thể hiện nền của các clauses C1 và C2 sao cho C1' là sai bởi I(N1), C2' là sai bởi I(N2) và cả hai cùng sai bởi I(N).

Từ đó chúng ta có và . A có thể xây dựng resolvent

Page 53: Bài giảng Nhập môn logic

C' phải là sai trong I(N) bởi cả và (C2' − mn + 1) là sai trong I(N). Theo Bổ đề 5 sẽ tồn tại một resolvent C của C1 và C2, sao cho C' là thể hiện nền của C. Giả sử là cây ngữ nghĩa đóng đối với nhận được từ bằn việc bỏ đi tất cả các node kế ngay sau node đầu tiên làm cho C' sai. Chú ý rằng S là không thỏa mãn được khi và chỉ khi cũng là không thỏa mãn được. Như vậy rõ ràng rằng

có số lương node ít hơn so với và chúng ta có thể lặp lại quá trình này cho tới khi chỉ còn lại node gốc. Điều đó có nghĩa chúng ta đã nhận được clause rỗng .

Đối với chiều ngược lại chúng ta giả thiết rằng clause rỗng nhận được bằng cách áp dụng phép giải vào tập S và là các resolvents được tạo ra trong quá trình đó. Giả sử S là thỏa mãn được và M là một mô hình đối với S. Từ Bổ đề về tính đúng đắn của logic mệnh đề chúng ta thấy rằng nếu một mô hình thỏa mãn hai clauses thì nó cũng thỏa mãn resolvent của chúng. Do đó M phải thỏa mãn . Điều này không thể xảy ra vì một trong các resolvents đó là .

Hình 2

5.8. Các chiến lược giải (Strategies for Resolution)

5.8.1. Giải tuyến tính (Linear Resolution)

Page 54: Bài giảng Nhập môn logic

Trái ngược với the saturation-based procedure mà chúng ta đã đưa ra đối với phép giải trong logic mệnh đề, trong mục này chúng ta sẽ làm quen với chiến lược sinh resolvent hướng đích (goal directed generation of resolvents). Chúng ta sẽ thấy rằng chiến lược giải tuyến tính này là cơ sở cho việc giải nghĩa các chương trình logic đối với trường hợp của các Horn clauses.

Definition 25Cho một tập các clauses S và một clause C0 trong S. Một suy diễn tuyến tính (linear deduction) của clause C0 là một dãy , với và Ci là một resolvent của Ci và B với . Nếu thì dãy trên được gọi là từ chối tuyến tính (linear refutation).

Ví dụ: Cho tập các clauses S:

Với đích (goal) , chúng ta có từ chối sau (các clauses của S được đưa ra với các chỉ số tương ứng): , (4), , (2),

, (1), cause(c2), (6), treatment(t2),

Định lý sau đây sẽ chỉ ra tính đúng và tính đủ của chiến lược giải tuyến tính. Chú ý rằng tính đầy đủ chỉ nới đến sự tồn tại của từ chối tuyến tính mà không bảo đảm rằng mỗi clause trong dãy thực sự là cần thiết để dẫn đến clause rỗng.

Page 55: Bài giảng Nhập môn logic

Định lý 9Chiến l;ược giải tuyến tính là đúng và đủ.

Ví dụ:

Page 56: Bài giảng Nhập môn logic

5.8.2. Giải đầu vào và giải đơn vị (Input and Unit Resolution)

Định nghĩa 26Cho một tập các clauses S. Quy tắc suy diễn giải đầu vào (input resolution) là phép giải trong đó có một clause cha-mẹ là clause của S. Quy tắc suy diễn giải đơn vị (unit resolution) là phép giải có ít nhất một clause cha-mẹ là clause đơn vị hoặc là một factor đơn vị của một clause cha-mẹ.

Các khái niệm dẫn xuất đơn vị (đầu vào) và từ chối được xác định tương ứng với phép giải.

Định lý 10Đối với tập các clauses S, từ chối đơn vị tồn tại khi và chỉ khi tồn tại từ chối đầu vào. Phép giải đơn vị (và vì vậy phép giải đầu vào) là không đầy đủ đối với toàn bộ các logic bậc nhất!

Page 57: Bài giảng Nhập môn logic

Tuy nhiên đối với các Horn clauses nó là một chiến lược đầy đủ và là cơ sở cho nguyên lý giải SLD (SLD-resolution principle).

5.8.3. Phép giải SLD (SLD Resolution)Trong mục này chúng ta sẽ trình bày một dạng đặc biệt của phép giải tuyến tính đối với các Horn clauses. Chúng ta sẽ giải thích một clause là một chương trình được viết bằng ký pháp sau đây::

Định nghĩa 27Giả sử P là tập các program clauses. Giả sử chúng ta có một hàm lựa chọn đưa ra một subgoal Ai đối với mỗi goal cho trước . Tiếp theo giả sử rằng có một goal và hàm lựa chọn đưa ra Am. Giả sử

là một variant của một clause trong P, không có biến chung với Gi . Nếu θi + 1 là phép đồng nhất tổng quát nhất của Am vàd A thì goal

được gọi là SLD-resolvent

Định nghĩa 28

Một SLD-deduction (-refutation) của đối với tập các of program clauses P và một goal clause G là một linear deduction (refutation) trong đó chỉ có các bước SLD-resolution xuất hiện và G là clause khởi đầu.

Một R-computed answer substitution θ đối với là is , với là các mgUs từ một SLD-refutation

của với hàm lựa chọn R. Một phép thế θ đối với Var(G) là một answer substitution đối với . Nó là một correct answer substitution đối với , nếu

Định lý 11Giả sử P là một tập các program clauses, G là một goal clause và R là một hàm lựa chọn. Với mọi correct answer substitution θ đối với đều tồn tại một R-

Page 58: Bài giảng Nhập môn logic

computed answer substitution σ đối với và một phép thế γ sao cho

5.8.4. Một cài đặt kiểu Prolog (A Prolog-like Implementation)

gprove(true,_).gprove((G & H),A):- gprove(G,A), gprove(H,A).gprove(G,A):- member(G,A).gprove(G,A):- (G <- B), neg(G,NG), gprove(B,[NG|A]).

p(a,X) <- ~p(b,Y) & q(X,Y). p(b,Y) <- ~p(a,X) & q(X,Y).~q(X,Y) <- ~p(a,X) & ~p(b,Y). p(Z,Z) <- true. q(b,a) <- true. yes <- p(U,V).~p(U,V) <- ~yes.

5.8.5. Deepending lặp (Iterative Deepending)Deepening lặp là chiến lượng tìm kiếm đầu đủ kết hợp cả tìm kiếm sâu và tìm kiếm rộng.

depthbound = 1 do while (not found)

Search by limited depth-first search until depthbound.Set depthbound = depthbound + 1

Số lượng thác triển trên cây với nhân tố rẽ nhánh b cho đến độ sâu d là

Số lượng toàn bộ thác triển trong tìm kiếm deepening lặp là

Page 59: Bài giảng Nhập môn logic

Vì vậy độ phức tạp tìm kiếm theo deepening là O(bd).

6. Logic tình thế (Modal Logic)6.1. Logic tình thế (Modal Logic)Logic tình thế là logic nghiên cứu về các tình thế trong logic. Các tinh thế có thể là tính cần thiết (necessity), tính có thể (possibility), tính provability hoặc tính không chắc chắn (uncertainty). Trong logic mệnh đề cổ điển các mệnh đề dạng married(tom,mary) là đúng hoặc sai (true hoặc false); Tuy nhiên trong cuộc sống thực tế giá trị chân lý của các mệnh đề như trên có thể thây đổi theo thời gian. Trong một ngữ cảnh khác giá trị chân lý có thể là khác nhau trong các thế giới khác nhau. Ví dụ Tom đang mơ về một đám cưới với Mary bởi vì trong thế giới của giắc mơ của anh ta mệnh đề đó có thể đúng nhưng trong thế giới thực nó có thể sai. Trong một ngữ cảnh khác, giá trị chân lý của mệnh đề lại phụ thuộc vào tính chất pháp lý của luật hôn nhân. Việc Tom và Mary lấy nhâu một cách hợp pháp trong xã hội thiên chúa giáo chỉ có thể khi hai người đều độc thân. Logic tình thế được nghiên cứu một cách rộng rãi trong nửa đầu thế kỷ 20 bởi nhiều nhà logic. Tuy nhiên điểm đột phá chính trong hướng nghiện cứu này là việc thiết lập ngữ nghĩa hình thức của logic tình thế do Kripke đề xuất

Các logic mệnh đề có thể được mở rộng bằng các tình thế để mô tả niềm tin (belief), tri thức (knowledge) hoặc các khía cạnh thời gian (temporal aspects). Vì vậy logic tình thế rất phù hợp trong các hệ thống biểu diễn tri thức. Hiện nay logic tình thế thường được sử dụng như một công cụ mô tả ngữ nghĩa của logic mô tả (description logics) trong các công việc kiểm chúng (verification).

Ví dụ:

Có 3 đứa trẻ chơi trong vườn. Chúng là những đứa trẻ có tư duy, trung thực và luôn đưa ra câu trả lời khi chúng biết. Khi chơi trong vườn chúng có thể bị dính bùn lên trán. Mọi đứa trẻ đều có thể nhìn thấy những đứa trẻ khác có dính bùn trên trán hay không nhưng không thể nhìn thấy bùn trên trán mình. Một người lớn đi qua và nối với lũ trẻ: “ Có ít nhất một người trong các cháu bị lấm bùn trên trán”. Sao đó người này hỏi: “Có ai trong số các cháu biết được mình có bùn trên trán hay không?”. Lần đầu không có câu trả lời. Người này lặp lại câu hỏi trên lần thứ hai cũng không có câu trả lời. Đến làn thứ 3 thì nhận được một câu trả lời hoặc nhiều hơn. Vây có bao nhiêu trẻ có bùn trên trán?

Vấn đề khó khăn này có thể được giải bằng cách xây dựng một cấu trúc Kripke bao gôgm một tập các trạng thái cùng với các đường liên kết thể hiện tính truy cập được của trạng thái (accessbility of states). Có 3 đứa trẻ, mỗi đứa có thể bị dính bùn hoặc không. Như vây chúng ta có 23 các trạng thái có thể. Các trạng thái có thể được biểu diễn bởi bộ

Page 60: Bài giảng Nhập môn logic

ba các giá trị boolean với giá trị 1 ở vị trí nào thì nghĩa là đứa trẻ tương ứng bị dính bùn và giá trị 0 có nghĩa đứa trẻ đó không dinh bùn.

Cấu trúc Kripke có thể được định nghĩa như sau: Xét trạng thái (111). Vì đứa trẻ 1 không biết nó có bị dính bùn hay không nên nó không thể ở trạng thái (011). Tuy nhiên, đối với đứa trẻ thứ hai trạng thái (011), là không truy cập được vì đứa trẻ thứ hai biết rằng đứa trẻ thứ nhất bị dính bùn.

Một cấu trúc được xây dựng như trên có thể được sử dung để giải quyết vấn đề khó khăn đặ ra bằn việc vẽ ra cấu trúc như là kết quả sau mỗi hành vi ngôn ngữ của người lớn tham gia vào quá trình được mô tả.

6.2. Ngữ pháp (Syntax)Chúng ta sử dụng ngữ pháp của logic mệnh đề cổ điển đã được trình bày với việc bổ xung hai quy tắc ngữ pháp sau: Nếu A là một công thức thì:

cũng là những công thức.

Thông thường các ký hiệu và được dùng để chỉ possibility và necessity; trong ngữ cảnh của logoc thời gain (temporal logic) chúng có ý nghĩa là always và eventually, tức là tương ứng với câu “A is eventually true” và tương ứng với “A is always true”.

6.3. Ngữ nghĩa Kripke (Kripke Semantics)

Định nghĩa 1

Một frame Kripke là một cặp , với W là một tập không rỗng các thế giới có thể và R là quan hệ nhị phân trên W. Chúng ta viết wRw' khi và chỉ khi và chúng ta nói rằng thể giới w' là truy cập được từ thế giới w hoặc thể giới w' có thể đạt được từ thế giới w hoặc w' là tiếp theo (successor) của w.

Một mô hình Kripke là bộ ba , với W và R như trên, V là một ánh xạ , và là tập các biến mệnh đề. V(p) ký hiệu tập các thế giới có thể mà p

đúng trong đó theo đánh giá V.

Cho một mô hình và một thế giới , chúng ta định nghĩa quan hệ thỏa mãn ký hiệu là như sau:

Page 61: Bài giảng Nhập môn logic

Chúng ta nói rằng w thỏa mãn A khi và chỉ khi (không nói đến đánh giá V). Một công thức A được gọi là thỏa mãn được trong một mô hình , khi và chỉ khi tồn tại một thế giới nàm đó sao cho . Một công thức A được gọi là thỏa mãn được trong một frame , khi và chỉ khi tồn tại một đánh giá nào đó V và một thế giới nào đó sao cho . Một công thức A được gọi là valid trong một mô hình , và được viết là , khi và chỉ khi nó là đúng tại mọi thế giới trong W. Một công thức A là valid trong một frame , và được viết là , khi và chỉ khi nó là valid trong mọi mô hình .

Bổ đề 1

Các toán tử và là đối ngẫu, tức là với mọi công thức A và mọi frames , quan hệ tương đương là đúng.

6.4. Tiên đề hóa (Axiomatics)Logic tình thái đơn giản nhất được gọi là K và được cho với các tiên đề sau:

Tất cả các tautologies cổ điển (và vì vậy cả các phép thế) Các tiên đề tình thái: Tất cả các công thức dạng

Và các quy tắc suy diễn

Quy tắc Modus Ponens: Kết luận Y từ X và Quy tắc Necessitation: Kết luận từ X

Một K dẫn xuất A của X từ tập các công thức S là một dãy các công thức kết thúc bởi X, mỗi công thức là một tiên đề của K, một phần tử của S hoặc được kéo theo từ các terms trước đó bằng cách áp dụng một quy tắc suy diễn or follows from earlier terms by application of an inference rule. Một K proof của X là một K dẫn xuất của X từ .

Page 62: Bài giảng Nhập môn logic

Ví dụ: K proof của :

Có một chứng minh tương tự cho điều ngược lại của phép kéo theo này. Vì vậy trong K chúng ta có

Chú ý rằng tính phân phối không đúng trên phép tuyển! (Tại sao?)

Mở rộng của KKhởi đầu từ logic tính thái K người ta có thể bổ xung các tiến đề mới để tạo nên các logic khác. Chúng ta liệt kê các tiên đề cơ bản sau đây:K :

T :

D :

4 :

5 :

B :

Một cách truyền thống, nếu chúng ta bổ xung các tiên đề vào logicc K người ta gọi logic nhận được là . Tuy nhiên, cố một số logic rất quen thuộc và chúng được tham chiếu đến dưới một tên khác, ví dụ KT4 được gọi là S4.

Các logic này cũng có thể được đặc trưng bởi một lớp nào đó các frames bởi vì chúng ta biết rằng các tiên đề cụ thể tương ứng với các ràng buộc cụ thể lên quan hệ tính đạt được (reachability relation) R của frame. Nếu là một frame thì một tiên đề nào đó sẽ

Page 63: Bài giảng Nhập môn logic

là valid trên , khi và chỉ khi R thỏa mãn một ràng buộc nào đó. Một vài ràng buộc có thể biểu diến được bằng các công thức logic bậc nhất với vị từ hai ngôi R(x,y) biểu diễn quan hệ đạt được (reachability relation):

6.5. Logic thời gian (Temporal Logics)Hai tình thái và không thể dùng để phân biệt quá khứ với tương lai. Để khắc phục điều này, người ta phân chia mỗi tình thái đó để cho phép chúng thể hiện được các hiện tượng liệ quan đến thời gian bằng cách sau.

Đối với thình thái

[F]A: A luôn đúng trong tương lai [P]A: A luôn đúng trong quá khứ [A]A: A luôn luôn đúng

Đối với tình thái :

: A đúng tại thời điển nào đó trong tương lai : A đúng tại thời điểm nào đó trong quá khứ : A đúng tại một thời điểm nào đó

Ngữ nghĩa được cho như trước đây bằng cách đưa ra các ràng buộc đối với các quan hệ đạt được hoặc đối với các tiên đề. Ví dụ.

: Tính bắc cầu; . : nếu chúng ta đi từ thời điểm t để tới tương lai t', chúng ta có

thể quay ngược lại quá khứ tới thời điểm ở đó A là đúng. : kết nối giữa quá khứ với tương lai.

Thêm nữa chúng ta có thể đưa ra nhiều khía cạnh khác của logic thời gian. Ví dụ người ta có thể phân biệt các cấu trúc tuyến tính trái (hoặc phải) hoặc các câu trúc thời gian liên tục hay rời rạc.

Page 64: Bài giảng Nhập môn logic

Tài liệu tham khảo[1] Jean H. Gallier. Logic for Computer Science. Foundations of Automatic Theorem Proving. Second Edition, 2003

[2] Steve Reeves and Mike Clarke. Logic for Computer Science. Second Edition. Addision-Wesley Publishers Ltd. 2003. [3] Herbert B. Enderton. A Mathematical Introduction to Logic. Second Edition. Hardcourt/Academic Press. 2001

[4] Kenneth H. Rosen. Toán học rời rạc ứng dụng trong tin học. Nhà xuất bản khoa học và kỹ thuật. 2000.