는 Z3 /smt2 /st
가 실수 엔진 "/ 문제가 많은 일을한다"경우 판단하기 위해 도움이 될 수 생산하는 통계의 Z3의 실수를 사용하여 인코딩 된 문제를 감안할 때? 내 경우 Z3 실제 산술 및 통계
conflicts
및
quant-instantiations
은 대부분 동일하지만, 다른 예를
grobner
,
pivots
및
nonlinear-horner
를 들어 아니라는 것을 보여줍니다.
두 개의 서로 다른 통계는 gist으로 사용할 수 있습니다.
편집 (레오의 코멘트를 해결하기 위해) :
두 버전에 의해 생성 된 SMT2 인코딩입니다 ~ 30K 라인과 실수가 사용되는 주장은 모든 코드 뿌려있다. 가장 큰 차이점은 인코딩 B가 0.0
에서 1.0
범위의 덜 구체화 된 실수 형 상수를 사용한다는 것입니다.이 상수는 부등식으로 묶입니다. 0.0 < r1 < 1.0
또는 0.0 < r3 < 0.75 - r1 - r2
인 반면, 인코딩에서 이러한 많은 지정되지 않은 상수가 동일한 범위의 고정 된 실수 값, 예를 들어 0.1
또는 0.75 - 0.01
으로 대체되었습니다. 두 인코딩 모두 비선형 실수 산술을 사용합니다. r1 * (1.0 - r2)
. 두 인코딩에서
몇 가지 임의의 예는 gist으로 사용할 수 있습니다. 발생하는 모든 변수는 위에 설명 된대로 구체화되지 않은 실제 값입니다.
PS : 예를 들어,
(define-sort $Perms() Real)
(declare-const $Perms.$Full $Perms)
(declare-const $Perms.$None $Perms)
(assert (= $Perms.Zero 0.0))
(assert (= $Perms.Write 1.0))
상당한 성능 저하를 입힐 고정 실제 값에 대한 별칭을 도입 하는가?
인코딩 A와 B를 게시 할 수 있습니까? –
@ 레오 : 편집 된 질문보기 –