Bài toán của SMT

Một phần của tài liệu Kiểm chứng chương trình dựa trên SMT (Trang 35)

Bài toán của SMT (Satisability Modulo Theories) [25] là vấn đề quyết định tính thỏa mãn của một công thức trên một nền tảng lý thuyết (Theory) nào đó. Trong khi SAT chỉ tập trung vào tính thỏa mãn của công thức mệnh đề. Thì

SMT lại nhằm phát hiện tính thỏa mãn của một công thức ở dạng phức tạp và có ý nghĩa hơn.

Việc giải bài toán SMT gồm hai phần

1. Giải công thức dạng trừu tượng của SMT với SAT solver.

2. Quyết định thủ tục cho nền tảng lý thuyết T-ký hiệu là DPT bằng cách kiểm tra tính nhất quán (consistency) của các atoms được giải bởi SAT solver hoặc suy luận kết quả từ các atoms này.

Ví dụ: Cho công thức F = (x ≥ 2) (y > 5) (x2 + y < 8) trên nền tảng lý thuyết số học phi tuyến (non-linear arithmetic) T. Ta thực hiện các bước sau để giải:

Bƣớc 1: Chúng ta xác định các atom của F là: x ≥ 2, y > 5, x2

+ y < 8. Ta tiến hành trừu tượng hóa các atoms này bằng các biến mạnh đề tương ứng A1, A2, A3 ta được F = A1 A2 A3.

Bƣớc 2: Giả sử sai khi giải với SAT solver ta được phép gán M thỏa mãn biểu thức F như sau: A1 = true, A2 = true, A3 = true.

Bƣớc 3: Áp dụng thủ tục DPT để kiểm tra tính nhất quán (consistency) ta thực

hiện:

𝑥 ≥ 2 = 𝑡𝑟𝑢𝑒 𝑦 > 5 = 𝑡𝑟𝑢𝑒

(𝑥2 + 𝑦 < 8) = 𝑡𝑟𝑢𝑒

Trong trường hợp này DPT chỉ ra rằng không nhất quán trên lý thuyết T đã cho kí hiệu T- inconsistency. Trong trường hợp nếu DPT chỉ ra là nhất quán ta kí hiệu T - consistency.

Cách tiếp cận của SMT có thể phân thành hai nhóm: EagerLazy. Trong cách tiếp cận Eager, biểu thức đầu vào được chuyển thành công thức logic mệnh đề dạng CNF mà không làm thay đổi tính thỏa mãn của nó. Chẳng hạn như cách thức trừu tượng hóa ở ví dụ trên.

Đối với cách tiếp cận lazy chúng ta sử dụng một solver cụ thể với từng lý thuyết T riêng cho việc quyết định tính thỏa mãn của các biểu thức dạng CNF tương ứng trên lý thuyết này. Sau đó, thủ tục quyết định cho SMT có thể dễ

dàng thực hiện bằng cách chuyển biểu thức sang định dạng DNF (disjunctive normal form) và sử dụng T- solver để kiểm tra xem hội của DNF có thỏa mãn hay không.

Một phần của tài liệu Kiểm chứng chương trình dựa trên SMT (Trang 35)

Tải bản đầy đủ (PDF)

(82 trang)