Z3의 DPLL (T) 레이어는 정수, 실제, 비트 벡터 및 문자열과 같은 다양한 도메인에 대한 이론 솔버와 함께 부울 만족도 (SAT) 해결을 통합하여 해결 기능을 크게 향상시킵니다. 작동 방식은 다음과 같습니다.
1. 부울 구조 처리 : DPLL (t) 층은 입력 공식의 부울 구조를 처리하여 원자가 부울 변수로 대체되는 SAT 문제로 변환합니다. 이것은 효율적인 SAT 해결 기술을 문제의 부울 추상화에 적용 할 수있게한다 [3].
2. 이론 솔버 통합 : DPLL (T) 프레임 워크는 특정 도메인에 대해 추론 할 수있는 이론 솔버를 통합합니다 (예 : 정수 산술, 비트 벡터). 이 솔버는 해당 이론에 따라 과제의 일관성을 확인합니다. 모순이 발견되면 DPLL (t) 층은 이론 솔버에서 파생 된 새로운 제약 조건을 추가하여 SAT 공식을 개선합니다 [1] [3].
3. 역 추적 및 정제 : 이론 솔버가 불일치를 감지 할 때 DPLL (t) 레이어는 SAT 문제에 새로운 조항을 추가하여 검색을 개선합니다. 이 프로세스는 검색 공간이 효율적으로 탐색되고 관련된 모든 이론에서 솔루션이 일관되도록 보장합니다 [1] [3].
4. 효율성 개선 : Z3STR3에서 볼 수 있듯이 이론 인식 분기와 같은 기술은 분지가 이론 리터럴의 구조를 알리면 DPLL (t) 층의 효율성을 더욱 향상시킵니다. 이것은 검색 중에 더 똑똑한 결정을 허용하여 더 복잡한 것보다 간단한 이론 리터럴을 우선시합니다 [2].
전반적으로 Z3의 DPLL (T) 레이어는 SAT 해결의 강점을 도메인 별 추론과 결합하여 복잡한 SMT 문제를 해결하기위한 강력한 프레임 워크를 제공하여보다 효율적이고 효과적인 해결 기능을 제공합니다.
인용 :[1] https://www.cs.purdue.edu/homes/xyzhang/comp/fse13.pdf
[2] http://www.cs.toronto.edu/~fbacchus/csc2512/readings/z3str3.pdf
[3] https://en.wikipedia.org/wiki/dpll(t)
[4] https://stackoverflow.com/questions/7268221/what-methods-does-z3-use-to-solve-contifier-free-bit-formulas-qf-qf-bv
[5] http://theory.stanford.edu/~nikolaj/z3navigate.html
[6] https://cs.nyu.edu/media/publications/dejan_thesis.pdf
[7] https://z3prover.github.io/papers/z3internals.html
[8] https://arxiv.org/html/2307.10266v3