(rise4fun here)에 다음과 같은 SMTLIB 프로그램을 고려 :smt.arith.nl.gb가 (구문) 평등을 가진 추론에 예기치 않은 영향을 미쳤습니까?
(set-option :auto_config false)
(set-option :smt.mbqi false)
(set-option :smt.arith.nl.gb false)
(declare-const n Int)
(declare-const i Int)
(declare-const r Int)
(assert (= i n))
(assert (= r (* i n)))
(push)
(assert (not (= r (* n n))))
(check-sat) ; unknown
(pop)
을 단지 구문 평등과 추론, Z3 (4.3.2 공식 출시하고, 또한 4.4.0 b6c40c6c0eaf)를 필요로 보이지만 그럼에도 불구 보여 실패 최종 어설 션은 unsat
입니다.
예기치 (적어도 내게) smt.arith.nl.gb
true
로 설정하는 것은 예 (즉 check-sat
unsat
수율)을 확인한다. 그것은 가치가 무엇인지에 대한
, 여기에 몇 가지 더 관찰은 다음과 같습니다
각각 곱셈
(* i n)
또는(* n i)
로 변경되는 경우unsat
를 표시 할 수 있습니다 마지막 주장,그것은 수 없습니다은
(* i i)
로 변경하면
unsat
으로 표시됩니다. 그들이 설명 관찰
에 영향을주지 않고 제거 할 수 있습니다 즉
(push)
및 (pop)
이 버그가, 예에 영향을 나타나지 않습니다 또는 smt.arith.nl.gb
이 예제를 제시해야되는 이유가있다 unsat
?
상세한 설명에 대한 감사와 크리스토프, 잠재적으로 유용한 전술에 대한 포인터! –