Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法在 muZ3 关系规范中不确定地执行递归调用?具体来说,我想翻译如下函数:
int foo(int x) { ... if (*) y = foo(y); ... }
到 muZ3 规则格式。
您可以为这两种情况制定单独的规则:
(declare-fun foo (Int Int) Bool) (assert (forall ((x Int) (y Int) (z Int)) (=> (and ... (foo x y) ...) (foo x z))) (assert (forall ((x Int) (y Int) (z Int)) (=> (and ... true ...) (foo x z)))