Z3을 사용하여 작업 상점 스케줄링 문제점을 모델링하려고합니다. 특히 각각의 작업에 다른 작업 종속성이있는 작업 집합이 있다고 가정 해 봅시다. 그런 다음 마지막 작업, 즉 메이 판을 예약하는 시간을 최소화하고 싶습니다. 다른 작업에 종속되지만 앞으로 종속성이없는 작업이 여러 개있을 수 있으므로 (작업이이 작업에 종속되지 않음) Z3의 간단한 최소화 작업으
Z3 비트 벡터에서 엔디안이 어떻게 작동하는지 이해하기가 어렵습니다. 그것은 기본 CPU에 묶여 있습니까? 나는 intel cpu를 사용하고 Extract는 예상대로 리틀 엔디안을 사용하는 것처럼 보이지만 endian-ness 값을 연결하면 endian-ness가 반대로 보입니다. 예를 CONCAT를 들어 (를 0xAA는 0xbb 경계) 0xaabb 아니라
SHA (x)와 같은 z3에서 해시 함수를 나타내고 싶습니다. 몇 가지 조사를 한 후에 z3이 분사 성을 잘 지원하지 않기 때문에 제약 조건을 가질 수 없다는 것을 깨달았습니다. (그리고 이것은 충돌로 인해 엄격히 말해서 진실이 아니라는 것을 깨닫는 동안, 휴리스틱으로 유용합니다. 프로젝트) forall([x, y],Implies(SHA(x)==SHA(y)
의 조건을 만족 찾기 간단한 산술 : lambda i: Or(i == 0, i > 2)
내가 원하는이 만족 인덱스 N에 인덱스 0의 요소의 총 수를 아는 것입니다 조건 (일반적인 파이썬 목록이라면 len(filter(lambda i: i == 0 or i > 2, x))처럼 보일 것입니다. z3에서이를 수행하는 방법을 알 수 없습니다. z3.z3type
기본 이론으로 정규 트리 문법을 사용하는 검증 작업을하고 있습니다. Z3을 사용하면 해석되지 않은 함수로 자신 만의 내용을 정의 할 수 있지만 의사 결정 절차가 재귀적일 때는 언제나 잘 작동하지 않습니다. 그들은 플러그인을 허용하는 데 사용했지만 그것은 depricated되었습니다, 제 생각에는. 내가 궁금한 점은, 사용자 정의 이론을위한 의사 결정 절차를
파일에 배열과 관련된 두 개의 정수 계산식이 있습니다. 각 표현식을 메모리에 저장하는 가장 좋은 방법은 무엇입니까? 등식이 구문 상 동등해진다. 그 구조를 비교해 보면 동등성을 찾을 수 있습니다. 동등성을 먼저 확인하려면 구조가 동일하면 같고 그렇지 않으면 SMT 솔버를 사용하십시오. Ex. a [i + 2] +5 및 a [i + 3-1] + 4 + 1은
크기 제한은 v0 = Int('v0')
const = 0x12345678
I wrote this :
s.add((const*(v0 + const*(func(v0*const) - v0)) - v0) == somevalueof64bits)
내 문제가있는 방정식의 계산의 크기를 제한하는 방법을 알고 그 (CONST * (V0 '의 계산 +
저는 Python으로 Z3 Thoerem Prover로 방정식을 풀려고합니다. 하지만 내가 얻는 해결책은 잘못되었습니다. from z3 import *
solv = Solver()
x = Int("x")
y = Int("y")
z = Int("z")
s = Solver()
s.add(x/(y+z)+y/(x+z)+z/(x+y)==10, x>0,
저는 Z3에서 (배열을 사용하여 정의 된) 쌍 쌍 사이의 부분 관계 (아래 코드에서 C라고 함)를 정의하려고합니다. 반사성, transitivity 및 antisymmetry를 정의하는 3 assert를 썼지 만 Z3은 "unknown"을 반환하고 나는 그 이유를 이해하지 못합니다. (define-sort Set() (Array Int Bool))
(de