40
A Theorem Prover for Boolean BI A Theorem Prover for Boolean BI POSTECH 프로그래밍 언어 연구실 박종현 서정봉

A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Theorem Prover for Boolean BI - Seoul National …rosaec.snu.ac.kr/meet/file/20120118c.pdf왜냐하면… -*를지원하는자동증명기가존재하지않음 This incompleteness

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

목표목표

일반적인 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

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

분리 논리 = 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

리스트 뒤집기리스트 뒤집기

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

리스트 뒤집기: 검증{ 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

리스트 뒤집기: 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

반복문 불변식 @ 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

반복문 불변식 @ 분리 논리반복문 불변식 @ 분리 논리{ 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

분리 논리에 기반한 검증 도구들분리 논리에 기반한 검증 도구들

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

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

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

왜냐하면왜냐하면… -*를지원하는자동증명기가존재하지않음

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

분리 논리 = 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

기존 연구 결과 (~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

핵심 목표: 컷 제거 귀추계산법핵심 목표: 컷-제거 귀추계산법 귀추계산법 (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

새로운 귀추 계산법 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

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

다음 목표: 증명 탐색다음 목표: 증명 탐색

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

연구 성과 (~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

목표 기반 단순 탐색 전략

목표 기반 단순 탐색 전략

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

문제점은?문제점은?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

또 다른 귀추 계산법 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

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

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

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

목표 기반 단순 탐색 전략

목표 기반 단순 탐색 전략

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

결과는?결과는?

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

손으로 증명할 경우손으로 증명할 경우

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

하지만하지만……

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

첫 번째 문제점첫 번째 문제점항상다시적용가능 같은구조의중복

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

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

두 번째 문제점두 번째 문제점

무지막지한 무지막지한무지막지한증명!

무지막지한증명!

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

해결 방법 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

해결 방법 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

결과는?결과는?

최적화 (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

현재 단계 및 향후 계획현재 단계 및 향후 계획

분리 논리

분리논리

검증기

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

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

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

2012-01-18제 7 회 ROSAEC 홍콩워크샵40