위키득계정 ↗
기술

Boolector

Boolector기술
분야
비트벡터 중심 SMT solver
논리 대상
비트벡터와 배열 및 미해석 함수
API
C와 Python
유지보수
종료된 보관 프로젝트
Boolector는 고정 크기 비트벡터와 배열 및 미해석 함수의 논리식을 처리하는 SMT solver다. 현재 저장소는 최종 버전의 보관용이며 개발과 유지보수는 종료되고 Bitwuzla가 뒤를 이었다.

고정 폭 연산의 모델

비트벡터는 크기가 정해진 값과 비트 단위 연산을 표현한다. 프로그램이나 하드웨어의 제약을 이런 모델로 옮겨 만족 가능한 값이 있는지 확인한다. 부호 있는 비교와 없는 비교, 폭을 늘리거나 줄이는 연산을 잘못 선택하면 다른 문제를 풀게 된다. 입력이 원하는 연산을 나타내는지 먼저 확인한다.

점진적 질의

조건을 추가하거나 문맥을 쌓고 되돌리는 방식과 가정 아래에서 푸는 방식을 지원한다. 비슷한 질의를 반복하는 분석에서 유용하지만 현재 활성화한 조건을 정확히 관리해야 한다. 라이브러리와 명령행의 선택 및 SAT 백엔드 구성도 실행 조건에 포함된다. 풀이 결과만 보존하기보다 원래 질의도 남긴다.

기존 도구와 새 작업

과거 도구나 실험을 재현할 때는 사용한 버전과 빌드 구성을 확인한다. 설치 경로에 따라 Python 바인딩 같은 구성 요소가 빠질 수 있다. 공식 저장소는 유지보수 종료와 후속 도구를 명시한다. 새 환경에 적용할 때는 호환성과 지원 상태를 별도로 검토하며 기존 API와 후속 도구의 동작이 자동으로 같다고 가정하지 않는다.

관련 문서

Yices / cvc5 / What4