다른 객체 집합을 포함하는 데이터 유형을 만들려면 어떻게해야합니까? 기본적으로, 나는 다음과 같은 코드를하고있는 중이 야 : (define-sort Set(T) (Array Int T))
(declare-datatypes() ((A f1 (cons (value Int) (b (Set B))))
(B f2 (cons (id Int) (a (Set
TPTP 파일에서 Z3을 사용할 때 (예 : http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Problems&Domain=SYN&File=SYN054+1.p) 추측을 증명하는 데 사용 된 공리를 찾는 방법이 있습니까? 또는 Z3이 TPTP 증명을 생성 할 수 있습니까? 건배
SMTLIB 배열을 사용하는 동안 Z3의 이론과 광산에 대한 이해가 달라졌습니다. 나는 공식 웹 사이트 [1]에서 찾을 수 SMTLIB 배열 이론을 사용하고 있습니다. 내 문제는 간단한 예를 들어 설명하는 것이 가장 좋습니다. (store (store (store ((as const (Array Int Int)) 0) 0 1) 1 2) 0 0)
SMT2 표준 (또는 Z3 확장)은 API 호출 "check_assumptions"와 동일한 명령을 제공합니까? Josh Berdine에 따르면 푸시 - 팝 스코프보다 가드 리터럴 및 check_assumptions을 사용하는 것이 더 빠릅니다. 그러나, 나는 지금 stdio를 통해 Z3을 사용하고있다. 그리고 (check-assumoptions p)만을
SMTLIB 2 언어를 사용하여 QF_BV 논리에서 표현한 문제를 해결하기 위해 Z3 SMT 솔버를 사용하고 있습니다. 모델이 만족스럽지 않으며 해결사가 unsat-core를 생성하려고합니다. 내 모델은 assert 문을 사용하여 지정하는 몇 가지 '필수'제약 조건으로 구성됩니다. 코어가 생성되지 않은 것으로 간주하려는 어설 션은 (assert (! (EX
수식의 모든 중첩 된 한정 기호를 가장 바깥 쪽 레벨로 가져 오려고합니다. 나는 Z3에서 작동하려면 다음 명령을 예상하지만 그렇지 않은 : (set-option :pull-nested-quantifiers true)
(simplify (exists ((x Int)) (and (>= x 0)
(forall ((y Int)) (and (>
한정 기호가있는 수식에는 trans 함수의 선언이 포함되어 있습니다. Z3은 모델을 성공적으로 찾은 다음 인쇄합니다. 그러나 trans!1!4464, trans!7!4463 ..와 같은 기능의 모델도 인쇄합니다.이 모델은 모델의 어느 곳에서도 사용되지 않습니다. 이게 뭐야? 이 출력을 어떻게 비활성화 할 수 있습니까? 여기 쿼리입니다 : http://dl.