Z3 정리 프로베라

Z3 Theorem Prover
Z3 정리 프로베라
Z3 Theorem Prover Logo 329x329.jpg
원본 작성자마이크로소프트 리서치
개발자마이크로소프트
초기 릴리즈2012; 10년 전(2012년)
안정적 해제
z3-4.8.14 / 2021년 12월 23일; 2개월(2021-12-23)[1]
리포지토리github.com/Z3Prover/z3
기록 위치C++
운영 체제Windows, FreeBSD, Linux(Debian, Ubuntu), MacOS
플랫폼IA-32, x86-64
유형정리프로베라
면허증MIT 라이선스
웹사이트github.com/Z3Prover

Z3 Orgion Prober라고도 알려진 Z3마이크로소프트가 제안한 교차 플랫폼 만족도 모듈로 이론(SMT) 해결사다.[2]

개요

Z3는 마이크로소프트 리서치사의 소프트웨어 엔지니어링(RSE) 그룹에서 개발됐으며 소프트웨어 검증소프트웨어 분석에서 발생하는 문제를 해결하는 것을 목표로 하고 있다.Z3은 산술, 고정 크기 비트 벡터, 확장 배열, 데이터 유형, 해석되지 않은 함수 및 정량자를 지원한다.그것의 주요 적용 분야는 확장된 정적 확인, 테스트 사례 생성, 술어 추상화다.

2015년에는 ACM SIG플랜으로부터 프로그래밍 언어 소프트웨어상을, 2018년에는 Z3가 유럽공동 소프트웨어 이론 및 실무회의(ETAPS)로부터 Test of Time Award를 받았다.[3][4][5]마이크로소프트의 연구원인 니콜라즈 비외르너와 레오나르도 드 모우라는 Z3로 증명된 정리를 진전시킨 공로를 인정받아 2019년 헤르브랜드상을 수상하였다.[6][7]

Z3는 2015년 초에 오픈 소싱되었다.[8]소스 코드는 MIT 라이센스에 따라 라이센스가 부여되며 GitHub에서 호스팅된다.[9]해결사는 Visual Studio, Makefile 또는 CMake를 사용하여 빌드할 수 있으며 Windows, FreeBSD, LinuxMacOS에서 실행된다.

C, C++, Java, Julia, Haskell, OCaml, Python, WebAssembly, 다양한 프로그래밍 언어의 바인딩을 가지고 있다.NET/Mono.기본 입력 형식은 SMTLIB2이다.

명제적 및 술어적 논리학

이 예에서 명제 논리 주장은 명제 a와 b를 나타내는 함수를 사용하여 점검한다.다음 Z3 스크립트는 b이(가) 표시되는지 점검한다

(선언-fun a) bool)(선언-fun b) bool)(assert (=(및 b)가 아님(또는 (a)가 아님)) (check-sat))

결과:

언스태트의

이 대본은 관심 제안의 부정을 주장한다는 점에 유의한다. 결과는 부정된 명제가 만족스럽지 못함을 의미하므로, 원하는 결과(De Morgan의 법칙)를 증명한다.

풀림 방정식

다음 스크립트는 변수 a와 b에 적합한 값을 찾아 주어진 두 방정식을 해결한다.

(선언-수치-수치-수치-수치-수치-수치-수치-수치-수치-수치-b) (수치(=+ b) 20) (수치 (+2 b) 10) (수치-수치-수치-수치) (get-모형)

결과:

sat (모델 정의-fun b) Int -10)(define-fun a ()Int 30) )

참고 항목

참조

  1. ^ "Release z3-4.8.14 · Z3Prover/Z3".
  2. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2020-11-17. Retrieved 2019-12-01.{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크)
  3. ^ "Programming Languages Software Award". www.sigplan.org.
  4. ^ 마이크로소프트 Z3 정리 프로베러상 수상
  5. ^ ETAPS 2018 Test of Time Award
  6. ^ Z3 정리 프로베렐 뒤에 숨겨진 내면의 마술 - 마이크로소프트 리서치
  7. ^ 허브랜드상
  8. ^ "Microsoft's Visual Studio timeline and Z3 Theorem Prover, Google Cloud Launcher, Facebook's Fresco—SD Times news digest: March 27, 2015". March 27, 2015.
  9. ^ "GitHub - Z3Prover/z3: The Z3 Theorem Prover". December 1, 2019 – via GitHub.

추가 읽기

외부 링크