Chương 3 Kiểm chứng mô hình
3.4. Logic thời gian tuyến tính (Linear Temporal Logic LTL)
3.4.3. Các thuộc tính an toàn (safety properties)
Các thuộc tính an toàn thường mô tả là “không có gì tồi tệ có thể xảy ra’ (nothing bad should happen). Ví dụ trong bài toán mutual – thuộc tính luôn luôn có nhiều nhất là 1 tiến trình trong đoạn găng – đây là một thuộc tính an toàn cơ bản.
a. Bất biến (Invariants)
Trong thực tế, thuộc tính safety ở trên là một trường hợp cụ thể của invariants.
Bất biến là những thuộc tính thời gian tuyến tính được định nghĩa bởi 1 điều kiện Φ cho các trạng thái và yêu cầu Φ giữ tất cả các trạng thái có thể đạt được.
Định nghĩa 3.11. Bất biến
Một thuộc tính thời gian tuyến tính Pinv trên AP là bất biến nếu có một công thức logic mệnh đề Φ trên AP thỏa mãn
(3.3)
Φ được gọi là một điều kiện bất biến (hay là một điều kiện trạng thái) của Pinv. Công thức (3.3) chỉ ra rằng Pinv một tập các từ trong bảng chữ cái sao cho các từ này thoả mãn công thức logic mệnh đề Φ.
Lưu ý rằng:
khi và chỉ khi với tất cả đường dẫn π trong TS khi và chỉ khi với tất cả trạng thái s thuộc một đường dẫn của TS
khi và chỉ khi với tất cả trạng thái .
Khái niệm “bất biến” có thể giải thích như sau: điều kiện Φ được thoả mãn bởi tất cả các trạng thái ban đầu và tính thoả mãn của Φ là bất biến dưới mọi phép chuyển trong đường dẫn có thể đạt được của hệ thống chuyển. Ngoài ra, nếu Φ giữ trạng thái nguồn s của phép chuyển thì Φ cũng sẽ giữ trạng thái đích của phép chuyển.
b. Thuộc tính an toàn
Định nghĩa 3.12. Thuộc tính an toàn, các tiền tố xấu (Safety properties, bad prefixes)
Một thuộc tính thời gian tuyến tính Psafe trên AP được gọi là một thuộc tính an toàn nếu tất cả các từ \ Psafe khi tồn tại một tiền tố hữu hạn của σ thỏa mãn:
Bất kỳ từ hữu hạn được gọi là một tiền tố xấu của Psafe .Một tiền tố xấu nhỏ nhất của Psafe ký hiệu là một tiền tố của Psafe khi không có tiền tố nào của là một tiền tố xấu của Psafe. Nói cách khác là các tiền tố xấu tối thiểu là các tiền tố xấu có độ
dài tối thiểu. Tập tất cả các tiền tố xấu của Psafe ký hiệu là BadPref(Psafe), tập hợp tất cả các tiền tố xấu nhỏ nhất là MinBadPref(Psafe).
Định lý 3.13. Mối quan hệ thỏa mãn cho các thuộc tính an toàn (Satisfaction Relation for Safety Properties)
Cho hệ chuyển TS không có trạng thái kết thúc và một thuộc tính an toàn Psafe :
khi và chỉ khi (3.4)
Công thức (3.4) chỉ ra rằng hệ chuyển TS thoả mãn thuộc tính an toàn khi và chỉ khi không có tiền tố xấu nào của trên các vết có kết thúc của hệ chuyển TS.
3.4.4. Các thuộc tính hoạt động được (liveness properties)
Các thuộc tính được gọi là thuộc tính “hoạt động được”, chúng tuyên bố rằng “những điều tốt” sẽ xảy ra. Trong khi các thuộc tính an toàn bị vi phạm trong thời gian hữu hạn bởi một hệ thống hữu hạn, thì thuộc tính hoạt động được bị vi phạm trong thời gian vô hạn bởi một hệ thống vô hạn.
a. Thuộc tính hoạt động được
Định nghĩa 3.14. Thuộc tính hoạt động được
Thuộc tính thời gian tuyến tính LT Plive trên AP là một thuộc tính hoạt động được
khi .
Vì vậy, một thuộc tính hoạt động được (trên AP) là một thuộc tính thời gian tuyến tính P mà mỗi từ hữu hạn có thể được mở rộng thành một từ vô hạn thỏa mãn P. Với các trạng thái khác nhau, P là một thuộc tính hoạt động được khi và chỉ khi tất cả
các từ hữu hạn có tồn tại một từ vô hạn thỏa mãn .
b. So sánh các thuộc tính an toàn và thuộc tính hoạt động được
Phần này nói về mối quan hệ giữa thuộc tính an toàn và thuộc tính hoạt động được. Cụ thể là nó sẽ trả lời cho hai câu hỏi sau:
Các thuộc tính an toàn và thuộc tính hoạt động được có tách rời nhau không? Một thuộc tính thời gian tuyến tính bất kỳ là thuộc tính an toàn hay thuộc tính hoạt động được?
Với câu hỏi đầu tiên, các thuộc tính an toàn và thuộc tính hoạt động được thực sự là tách rời nhau. Nói một cách chính xác hơn thì nó chỉ ra rằng một thuộc tính có cả hai tính chất là an toàn và hoạt động được là rất hạn chế.
Câu hỏi thứ hai là kết quả trong một câu trả lời phủ định. Với bất kỳ thuộc tính thời gian tuyến tính P nào cũng sẽ có một thuộc tính thời gian tuyến tính P’ tồn tại một sự kết hợp (như là phép giao) của một thuộc tính an toàn và một thuộc tính hoạt động được.
Chỉ có duy nhất một thuộc tính LT trên AP vừa là thuộc tính an toàn và vừa là thuộc tính hoạt động được là .
3.4.5. Sự công bằng (fairness)
Một khía cạnh quan trọng của hệ phản vệ là sự công bằng. Các giả định công bằng loại bỏ các hành vi vô hạn mà được xem xét một cách không thực tế, và thường cần để chứng minh các thuộc tính hoạt động được.
a. Các ràng buộc công bằng (Fairness Constraints)
Thông thường, một thực thi công bằng (hay một vết) là được mô tả bởi một thực tế là các ràng buộc công bằng phải được thỏa mãn. Ràng buộc công bằng thường được dùng để loại bỏ các tính toán được đánh giá là vô lý với hệ thống đang xem xét. Các ràng buộc công bằng được xem xét dưới các khía cạnh sau:
Công bằng vô điều kiện (unconditional fairness) Công bằng mạnh (strong fairness)
Công bằng yếu (Weak fairness)
Định nghĩa 3.16. Công bằng (A-fair ) vô điều kiện, mạnh và yếu
Với hệ chuyển TS = (S, Act, →, I, AP, L) không có trạng thái kết thúc,
và đường thực thi vô hạn của TS:
1. là A-fair vô điều kiện khi và chỉ khi (3.5)
2. là A-fair mạnh khi và chỉ khi
(3.6)
3. là A-fair yếu khi và chỉ khi
(3.7)
Ở đây, có nghĩa là “tồn tại j” và có nghĩa là “ hầu như với mọi j” trong nghĩa “với tất cả, trừ một số trạng thái hữu hạn của j”. Biến j thuộc trường số tự nhiên.
Công thức (3.5) chỉ ra rằng một công bằng là vô điều kiện khi và chỉ khi tồn tại j và hành động trong tập hành động A là luôn luôn thực hiện được.
Công thức (3.6) nói rằng một công bằng là mạnh khi vào chỉ khi tồn tại giá trị j trên tập hành động của trạng thái sj giao với tập trạng thái A thì tồn tại hành động trong tập hành động A sẽ thực thi được.
Công thức (3.7) nói rằng một công bằng là yếu khi vào chỉ khi hầu như mọi giá trị j trên tập hành động của trạng thái sj giao với tập trạng thái A thì tồn tại hành động trong tập hành động A sẽ thực thi được.
Mối quan hệ giữa các loại công bằng là mỗi công bằng vô điều kiện là bao hàm công bằng mạnh, mỗi công bằng mạnh là bao hàm một công bằng yếu. Ví dụ một đường thực thi là công bằng mạnh, nhưng nó không phải là một công bằng vô điều kiện, còn một công bằng vô điều kiện thì chắc chắn là một công bằng mạnh. Chiều ngược lại không đúng.
Công bằng vô điều kiện => Công bằng mạnh => Công bằng yếu
Định nghĩa 3.17. Giả định công bằng (Fairness Assumption)
Một giả định công bằng cho tập hành động Act là một bộ
Với . Thực thi ρ là nếu:
Nó là một A-fair vô điều kiện với tất cả , Nó là một A-fair mạnh với tất cả , và Nó là một A-fair yếu với tất cả ,
Nếu tập là rỗng trong trường hợp này, chúng ta dùng khái niệm công bằng (fair) thay cho .
b. Tính công bằng và tính an toàn
Trong khi giả định công bằng là cần thiết để kiểm tra các thuộc tính hoạt động được, chúng lại không thích hợp để kiểm tra các thuộc tính an toàn, bởi vì chúng luôn đảm bảo rằng có một chiến lược lập lịch thích hợp. Bởi vậy các giả định công bằng được gọi là các giả định công bằng có thể nhận thức được. Một giả định công bằng không thể nhận thức được trong một hệ chuyển khi tồn tại một trạng thái có thể đạt được tại chỗ mà đường dẫn không công bằng bắt đầu. Trong trường hợp này, không thể thiết kế một bộ lịch biểu để giải quyết vấn đề không đơn định như khi chỉ có các đường dẫn công bằng còn lại.
Định nghĩa 3.18. Giả định công bằng có thể nhận thức được (Realizable Fairness Assumption)
TS là một hệ chuyển với một tập các hành động Act và là một giả định công bằng cho tập Act. được gọi là có thể nhận thức được trong TS nếu với mỗi trạng thái đạt được s phải khác rỗng ta có:
3.4.6. Logic thời gian tuyến tính (Linear temporal logic - LTL)
a. Cú pháp của LTL
Theo [10], LTL dựa trên các phép toán mệnh đề; công thức của các phép toán mệnh đề bao gồm các mệnh đề nguyên tử (ký hiệu bởi các chữ cái p, q…) và các phép toán như trong bảng 3.1.
Bảng 3.1. Các toán tử trong LTL
Phép toán Ký hiệu toán Ký hiệu trong SPIN
Not And Or
Kéo theo Tương đương
Chúng ta có thể dùng cả hai cách ký hiệu toán học và cú pháp để viết các công thức trong SPIN. Ví dụ như:
Theo [10], một công thức của LTL được xây dựng từ các mệnh đề nguyên thủy và từ các toán tử bao gồm các toán tử của các phép toán mệnh đề cũng như các toán tử thời gian. Các toán tử thời gian được mô tả trong bảng 3.2.
Bảng 3.2. Các toán tử thời gian trong LTL
Phép toán Ký hiệu trong SPIN
Luôn luôn (always) Tồn tại (eventually) Cho đến khi (until)
Toán tử luôn luôn và tồn tại là toán tử 1 ngôi, và toán tử cho đến khi là toán tử hai ngôi. Toán tử thời gian và toán mệnh đề được kết hợp tự do. Ví dụ như trong công thức sau: công thức này được đọc là luôn luôn có p giao với q, kéo theo là r giữ cho đến khi (p hoặc q) giữ.
b. Ngữ nghĩa của LTL
Ngữ nghĩa của một công thức đúng cú pháp được định nghĩa trong một thể hiện: bảng chân giá trị với T(true - đúng) hoặc F (false - sai), với các mệnh đề nguyên tử của nó. Bảng chân giá trị của 2 mệnh đề nguyên tử A và B được mô tả trong bảng 3.3.
Bảng 3.3. Bảng chân giá trị A B A B T T F T T T T T F F F T F F F T T F T T F F F T F F T T
Trong logic thời gian, ngữ nghĩa của một công thức được định nghĩa theo phép tính và trạng thái của phép tính. Các mệnh đề nguyên tử của logic thời gian là biếu thức Boolean có thể được đánh giá trong một trạng thái đơn độc lập của một tính toán. Ví dụ critical là giá trị của một biến critical trong một chương trình về đoạn găng; biểu thức critical <= 1 là một mệnh đề nguyên tử, bởi vì nó có thể được gán giá trị đúng trong một trạng thái s bằng việc kiểm tra giá trị của biến critical trong trạng thái s.