Tôi cần một định lý lý thuyết cho một số vấn đề số học tuyến tính đơn giản. Tuy nhiên, tôi không thể có được Z3 để làm việc ngay cả trên các vấn đề đơn giản. Tôi biết rằng nó là không đầy đủ, tuy nhiên nó sẽ có thể xử lý các ví dụ đơn giản này:Hỗ trợ định lượng Z3
(assert (forall ((t Int)) (= t 5)))
(check-sat)
Tôi không chắc chắn nếu tôi đang nhìn cái gì đó, nhưng điều này nên được tầm thường để bác bỏ. Tôi thậm chí đã thử ví dụ đơn giản này:
(assert (forall ((t Bool)) (= t true)))
(check-sat)
Điều đó phải được giải quyết bằng cách thực hiện tìm kiếm toàn diện, vì khởi động chỉ chứa hai giá trị.
Trong cả hai trường hợp, câu trả lời z3 không rõ. Tôi muốn biết nếu tôi đang làm một cái gì đó sai ở đây hoặc nếu không nếu bạn có thể giới thiệu một định lý prover cho các loại công thức.
Tuyệt vời. Nó hoạt động. Bạn có thể cho tôi biết làm thế nào để xác định điều này bằng cách sử dụng C Api? Vì hàm Z3_check không chấp nhận bất kỳ đối số nào khác. – ThorstenT
Bạn phải tạo một chiến thuật và chuyển đổi nó thành một người giải quyết. Tôi đã thêm một ví dụ bằng cách sử dụng các API C/C++. –
Điều đó thực sự tuyệt vời. Bây giờ Z3 hoạt động như tôi muốn nó :) – ThorstenT