그래서 Z3에서 풀어야 할 큰 문제가 있다고 가정하고, 한 번에 해결하려고하면 너무 많은 시간이 걸릴 것입니다. 그래서 저는이 문제를 부분적으로 나누어서 개별적으로 풀어냅니다. 장난감 예를 들어 내 복잡한 문제가 그 3 개 방정식을 해결하는 것으로 가정 할 수 있습니다으로 :Z3의 해결 전략을 제어하십시오.
eq1: x>5
eq2: y<6
eq3: x+y = 10
그래서 제 질문은, 예를 들어 처음 EQ1과 EQ2를 해결할 수있을 것입니다 여부입니다. 그런 다음 결과를 사용하여 eq3를 해결하십시오.
assert eq1
assert eq2
(check-sat)
assert eq3
(check-sat)
(get-model)
효과가있는 것처럼 보이지만 실적이 좋은지 확실하지 않습니까? 점진적 해결이 도움이 될까요? 아니면 내 문제를 파티션하기 위해 사용할 수있는 z3의 다른 기능이 있습니까?