a theorem prover for boolean bi - seoul national...
TRANSCRIPT
![Page 1: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/1.jpg)
A Theorem Prover for Boolean BIA Theorem Prover for Boolean BI
POSTECH 프로그래밍 언어 연구실박종현 서정봉
![Page 2: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/2.jpg)
목표목표
일반적인 C 프로그램을위한 연역 검증 도구 개발
2012-01-18제 7 회 ROSAEC 홍콩워크샵2
![Page 3: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/3.jpg)
Hoare 논리Hoare 논리{ P } C { Q }조건 P가 만족된 상태에서,프로그램 C가 실행 후 종료된다면,램 가 실행 후 종 된다면,조건 Q가 만족된다.
2012-01-18제 7 회 ROSAEC 홍콩워크샵3
![Page 4: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/4.jpg)
분리 논리 = Hoare 논리의 확장분리 논리 = Hoare 논리의 확장{ P } C { Q }조건 P가 만족된 상태에서,프로그램 C가 실행 후 종료된다면,램 가 실행 후 종 된다면,조건 Q가 만족된다.
동적 메모리와 관련된 성질을분리 논리곱(*)과 분리 함의( -*) 연산자를 이용해서분리 논리곱( )과 분리 함의( ) 연산자를 이용해서직관적으로 기술 가능
2012-01-18제 7 회 ROSAEC 홍콩워크샵4
![Page 5: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/5.jpg)
리스트 뒤집기리스트 뒤집기
b := nil
while a != nil do kk := [a + 1];
[a + 1] := b; a
k
……3 4[a + 1] := b;
b := a;
a := k; b 2a := k;
end while
b ……2
2012-01-18제 7 회 ROSAEC 홍콩워크샵5
![Page 6: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/6.jpg)
리스트 뒤집기: 검증{ List α0 a }
리스트 뒤집기: 검증
b := nil
while a != nil do
k := [a + 1];
[a + 1] := b;[a + 1] := b;
b := a;
a := k;a := k;
end while
{ R }{ List α0R b }
2012-01-18제 7 회 ROSAEC 홍콩워크샵6
![Page 7: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/7.jpg)
리스트 뒤집기: a = b?리스트 뒤집기: a = b?{ List α0 a }
b := nil
while a != nil do kk := [a + 1];
[a + 1] := b; a ……
k
3 4[a + 1] := b;
b := a;
a := k; ba := k;
end while
{ R }
b
실제로는발생하지 않음{ List α0
R b }
2012-01-18제 7 회 ROSAEC 홍콩워크샵7
![Page 8: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/8.jpg)
반복문 불변식 @ Hoare 논리반복문 불변식 @ Hoare 논리{ List α0 a }b := nil{ ∃α, β. List α a ∧ List β b ∧ α0
R = αR. β∧(∀k. reachable(a, k) ∧ reachable(b, k) ⇒ k = nil) }
while a != nil do
k := [a + 1];
[a + 1] := b;
b := a;
a := k;
end while{ List α0
R b }
2012-01-18제 7 회 ROSAEC 홍콩워크샵8
![Page 9: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/9.jpg)
반복문 불변식 @ 분리 논리반복문 불변식 @ 분리 논리{ List α0 a }
b := nil
{ ∃α, β. List α a * List β b∧ α0R = αR.β }β β 0 β }
while a != nil do
k := [a + 1];k := [a + 1];
[a + 1] := b;
b := a;b := a;
a := k;
iend while
{ List α0R b }
2012-01-18제 7 회 ROSAEC 홍콩워크샵9
![Page 10: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/10.jpg)
분리 논리에 기반한 검증 도구들분리 논리에 기반한 검증 도구들
Smallfoot (2005) …… Ynot (2008)( ) ……
분리 논리곱(*) 연산자는사용하지만분리 논리곱( ) 연산자는사용하지만,
분리 함의(-*) 연산자는사용하지않음리 의( ) 자 사용하지
2012-01-18제 7 회 ROSAEC 홍콩워크샵10
![Page 11: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/11.jpg)
A * B의 유용성: 직관적인 반복문 불변식A -* B의 유용성: 직관적인 반복문 불변식“An Example of Local Reasoning in BI pointer logic: the Schorr-Waite
h ki l i h ”graph marking algorithm”
알고리즘에 의해변형되지 않은 부분
기존 List -* 기존 Graph뒤집어진 List
2012-01-18제 7 회 ROSAEC 홍콩워크샵11
![Page 12: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/12.jpg)
A * B의 유용성: 메모리 상태 표현A -* B의 유용성: 메모리 상태 표현“Relational Inductive Shape Analysis” - Xisa
검증에 무관한 부분
ListList =* List List
vv
2012-01-18제 7 회 ROSAEC 홍콩워크샵12/36
![Page 13: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/13.jpg)
왜냐하면왜냐하면… -*를지원하는자동증명기가존재하지않음
This incompleteness could be dealt with if we instead used the b k d i k di i f S i L i backwards-running weakest pre-conditions of Separation Logic. Unfortunately, there is no existing automatic theorem proverwhich can deal with the form of these assertions (which use which can deal with the form of these assertions (which use quantification and the separating implication -*). If there were such a prover, we would be eager consumer of it.
A -* B도지원하는분리논리자동증명기를만들자!
“Symbolic Execution with Separation Logic”에서인용
2012-01-18제 7 회 ROSAEC 홍콩워크샵13
![Page 14: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/14.jpg)
분리 논리 = Boolean BI의 특수한 경우분리 논리 = Boolean BI의 특수한 경우 Boolean BI? 추상화된 “자원”에대한성질
분리논리! 추상화된 “메모리”에대한성질을기술하는 Boolean BIA -* B도지원하는분리논리자동증명기를만들자! 자원 ≈ 메모리
Boolean BI 자동증명기를만들자!
2012-01-18제 7 회 ROSAEC 홍콩워크샵14
![Page 15: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/15.jpg)
기존 연구 결과 (~2011 06)기존 연구 결과 ( 2011.06)
2012-01-18제 7 회 ROSAEC 홍콩워크샵15
![Page 16: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/16.jpg)
핵심 목표: 컷 제거 귀추계산법핵심 목표: 컷-제거 귀추계산법 귀추계산법 (sequent calculus)? 자동증명기설계를위한이론적도구
컷-제거 (cut-free) 성질 ≈ 보조 정리 규칙
2012-01-18제 7 회 ROSAEC 홍콩워크샵16
![Page 17: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/17.jpg)
새로운 귀추 계산법 S새로운 귀추 계산법 SBBI
2012-01-18제 7 회 ROSAEC 홍콩워크샵17
![Page 18: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/18.jpg)
S 의 주요 성질SBBI의 주요 성질
2012-01-18제 7 회 ROSAEC 홍콩워크샵18
![Page 19: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/19.jpg)
다음 목표: 증명 탐색다음 목표: 증명 탐색
2012-01-18제 7 회 ROSAEC 홍콩워크샵19
![Page 20: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/20.jpg)
연구 성과 (~2012 01)연구 성과 ( 2012.01)
2012-01-18제 7 회 ROSAEC 홍콩워크샵20
![Page 21: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/21.jpg)
목표 기반 단순 탐색 전략
목표 기반 단순 탐색 전략
2012-01-18제 7 회 ROSAEC 홍콩워크샵21
![Page 22: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/22.jpg)
문제점은?문제점은?1. 적용가능한규칙이너무많습니다!
2 규칙을적용하는방법도너무많습니다! 2. 규칙을적용하는방법도너무많습니다!
2012-01-18제 7 회 ROSAEC 홍콩워크샵22
![Page 23: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/23.jpg)
또 다른 귀추 계산법 CS또 다른 귀추 계산법 CSBBI
2012-01-18제 7 회 ROSAEC 홍콩워크샵23
![Page 24: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/24.jpg)
CS 의 주요 성질CSBBI의 주요 성질
2012-01-18제 7 회 ROSAEC 홍콩워크샵24
![Page 25: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/25.jpg)
CSBBI 첫 번째 성질: 도치 가능한 (invertible) 규칙들도치 가능한 (invertible) 규칙들 도치가능한규칙이란? 결론이증명가능하다면, 전제도항상증명가능하다.
다시말해서, 어떤규칙이도치가능하다면, 해당규칙이적용가능할때, 항상적용하면된다!
모든 CSBBI 규칙이도치가능
2012-01-18제 7 회 ROSAEC 홍콩워크샵25
![Page 26: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/26.jpg)
CSBBI 두 번째 성질: 축약 없는(contraction free) 증명 가능성축약 없는(contraction-free) 증명 가능성
2012-01-18제 7 회 ROSAEC 홍콩워크샵26
![Page 27: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/27.jpg)
목표 기반 단순 탐색 전략
목표 기반 단순 탐색 전략
2012-01-18제 7 회 ROSAEC 홍콩워크샵27
![Page 28: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/28.jpg)
결과는?결과는?
2012-01-18제 7 회 ROSAEC 홍콩워크샵28
![Page 29: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/29.jpg)
손으로 증명할 경우손으로 증명할 경우
2012-01-18제 7 회 ROSAEC 홍콩워크샵29
![Page 30: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/30.jpg)
하지만하지만……
2012-01-18제 7 회 ROSAEC 홍콩워크샵30
![Page 31: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/31.jpg)
첫 번째 문제점첫 번째 문제점항상다시적용가능 같은구조의중복
2012-01-18제 7 회 ROSAEC 홍콩워크샵31
![Page 32: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/32.jpg)
EAC2회 적용
DA2회 적용
CA
BB AC D
2012-01-18제 7 회 ROSAEC 홍콩워크샵32
![Page 33: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/33.jpg)
두 번째 문제점두 번째 문제점
무지막지한 무지막지한무지막지한증명!
무지막지한증명!
2012-01-18제 7 회 ROSAEC 홍콩워크샵33
![Page 34: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/34.jpg)
해결 방법 1: 우선 순위를 주자!해결 방법 1: 우선 순위를 주자!
AB
DC D
CB A
2012-01-18제 7 회 ROSAEC 홍콩워크샵34
![Page 35: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/35.jpg)
해결 방법 2: 재사용하자!해결 방법 2: 재사용하자!
증명
2012-01-18제 7 회 ROSAEC 홍콩워크샵35
![Page 36: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/36.jpg)
결과는?결과는?
최적화 (X) 최적화 (O)
< 0.01초 0.01초
6.10초 0.01초
67.87초 0.98초
> 20000초 25.53초
2012-01-18제 7 회 ROSAEC 홍콩워크샵36
![Page 37: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/37.jpg)
현재 단계 및 향후 계획현재 단계 및 향후 계획
분리 논리
분리논리
검증기
Boolean BI
분리 논리
증명기
Boolean BI
증명기
Boolean BI 증명이론
2012-01-18제 7 회 ROSAEC 홍콩워크샵37
![Page 38: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/38.jpg)
2012-01-18제 7 회 ROSAEC 홍콩워크샵38
![Page 39: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/39.jpg)
POSTECH 프로그래밍 언어 연구실은POSTECH 프로그래밍 언어 연구실은…… 멋쟁이박성우교수님의지도하에,
주로, 다음과같은주제에대한주 다음과같은주제에대한 타입이론 증명 이론 ……
연구를주로하고있습니다.
2012-01-18제 7 회 ROSAEC 홍콩워크샵39
![Page 40: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness](https://reader033.vdocuments.pub/reader033/viewer/2022041714/5e4a2a83447f3f22263f6f67/html5/thumbnails/40.jpg)
2012-01-18제 7 회 ROSAEC 홍콩워크샵40