sat/smt tutorial (3) smt theory - seoul national...

29
SAT/SMT tutorial SMT 해결기 내부 이우석 서울대학교 프로그래밍 연구실

Upload: others

Post on 11-Aug-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

SAT/SMT tutorialSMT 해결기 내부

이우석

서울대학교 프로그래밍 연구실

Page 2: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

3 ( 3) ( 6)i j f i f j

Page 3: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

3 ( 3) ( 6)i j f i f j

unsat

Page 4: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

4 ( 2) ( 1)x y f x f y

Page 5: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

4 ( 2) ( 1)x y f x f y

if sat2

2

(0) 1

(1) 3

x

y

f

f

Page 6: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

SMT 식의 만족해를 찾는핵심 알고리즘 소개

발표의 목표

Page 7: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Satisfiability Modulo Theory(SMT)

• 만족 핛당 찾기(satisfiability)는 주어진 식을 참으로 만드는 핛당을 찾는 문제

• 논리식이 명제논리식(propositional logic)라면, (SAT)

– 각 변수에 참, 혹은 거짓을 값으로 핛당

• 논리식이 1차논리(first-order logic)라면, (SMT)

– 각 변수에 특정 종류의 값들을 핛당(실수, 정수, 등등)

Page 8: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

SMT는 어떻게 푸나?

• 기본적으로 SAT 해결기에 의존

• + 표현하는 식에 관련된 정보가 관여됨

Theory

Page 9: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Theory?• 구성요소(Signature) + 공리(Axiom)

• 모르는 함수가 낀 방정식

(Equality with Uninterpreted function)

– 구성요소 :

– 공리

1

.

. .

. . .

. .( ) ( ) ( )n

i ii

x x x

x y x y y x

x y z x y y z x z

x y x y f x f y

,, , }{ ,f g h

Page 10: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

• 선형 산술 (linear arithmetic)

– 구성요소 :

– 공리

• + 결합법칙

• + 항등원

• + 역원

• + 교환법칙

{0,1, , , , , }

Page 11: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

• 배열

– 구성요소 :

– 공리

• 그 외

– Bitvector

– Recursive datatypes

– …

{ (..), (..), }read write

( ( ( , , ), ) )

( ( ( , , ), ) ( , ))

a i v read write a i v i v

a i j v i j read write a i v j read a j

Page 12: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

SMT식 풀기 방법 1 : eager approach

• 문제를 SAT 문제로 바꿔서 푼다

• 왜 eager?

– 모든 theory 정보를 처음부터 이용하니까

• 특성

– 잘만들어진 SAT solver를 바로 사용핛 수 있음

– 각 theory마다 각기 다른 식 변환 방식 필요

Page 13: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Eager approach : EUF를 예로

• 먼저 함수를 없앤다

– f(a), f(b), f(c) … 를 A,B,C로 바꿈

– 다음 식을 덧붙임

• 각 변수들을 비트열로 표현하여 부울식으로 바꿈

A B

a c C

b c B C

a b

A

Page 14: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Eager approach 예제

1 2 3 4 5

( )B d a b c d a b AA c B

3 41 2

) (( )g b dg c a b c da

1 2 3 4 5

( )B d a b c d aA b A Bc

만족 불가능!

함수 제거

CNF로

부울식으로

1 1 1 1 2 20 0 2 2

1

0 0(( ) ( ) ( )( )) ( ( )) ( ( ))...A c A c A cA c A c A c

Page 15: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Lazy approach

• SAT solver에게 를 해결하라고 던져줌

• SAT solver가 {1,2,4} 가 참이면 된다고 알려줌.

• 그러나 1과 2가 동시에 참이 될 수 없다고Theory solver가 알려줌

41 2 3

( ( ( )) ( )) ( ) )(g f g a f c g a d cc da

(2 ) 41 3

Page 16: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Lazy approach

• SAT solver에게

를 해결하라고 던져줌

• SAT solver가 가 참이면 된다고 알려줌.

• 그러나 1,3,4가 동시에 참이 될 수 없다고Theory solver가 알려줌

41 2 3

( ( ( )) ( )) ( ) )(g f g a f c g a d cc da

(2 3) 4 (1 41 2 )

2,{1, 3,4}

Page 17: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Lazy approach

• SAT solver에게

를 해결하라고 던져줌

• SAT solver가 이 식이 만족될 수 없다고 함

41 2 3

( ( ( )) ( )) ( ) )(g f g a f c g a d cc da

(2 3) 4 (1 2 4) (1 2 31 4)

Page 18: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

Lazy approach

• 특성

– Modular 하고 유연함

– Theory 정보가 해 탐색을 안내하지 않음

• 실제로는 많은 최적화가 일어남

Page 19: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

여러 theory 결합

• 소프트웨어 검증은 산술, 배열, 비트벡터등에 관핚 표현식들을 필요로 핚다.

• 예)

• 각 theory의 decision procedure를 결합하여 해결

[ 1] 4 ( [ 3] 2 ( 1) ( 1))2 B a A b fa fb a b

Page 20: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

여러 theory 결합

• 두 Theory가 관계되어 있음 :

– 실수 산술 연산

– 모르는 함수가 낀 방정식

( ( ) ( ))

(0) 2

f f x f y a

f a

x y

( )Arithmetic( )EUF

Page 21: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

• 그렇게 하는 이유?

– 변수와 ‘=‘ 는 모든 theory 공통 구성요소

( ( ) ( ))f f x f y a 1

1

)

) )

(

( (e

f e a

f x f y

1

1 2 3

2

3

(

( )

( )

)

f e a

e e

e f x

e

f ye

• 1단계 : 변수가 아닌 literal들에게 새로운이름을 주어 하나의 theory에만 관계되게핚다.

EUF 부분 만들기

Page 22: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

• 1단계 : 변수가 아닌 literal들을 새로운 변수로 대치하여 하나의 theory에만 관계되게 핚다.

(0) 2f a 4

4

)

( 2

0

f

e

e a

54

4

5

(

0

2

)

ef e

ae

e

Arithmetic 부분 만들기

Page 23: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

• 2단계 : 각 theory solver가 식 만족여부를검사하고 공통된 변수( )의방정식을 서로 교환

21

5

3

4 0

2

e e

ae

e

e

4

1

5

2

3

(

(

( )

( )

)

)

f e a

ef e

f x e

f y e

x y

1 2 3 4 5, , , , ,e e e e e a

EUF Arithmetic

Page 24: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

21

5

3

4 0

2

e e

ae

e

e

1

5

2

3

2 3

4

(

(

( )

( )

)

)

af e

ef e

ef x

ef y

x y

e e

EUF ArithmeticSAT

• 2단계 : 각 theory solver가 식 만족여부를검사하고 공통된 변수( )의방정식을 서로 교환

1 2 3 4 5, , , , ,e e e e e a

Page 25: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

4

5

1 2 3

32

41

0

2

e e

e a

ee

e

e

ee

4

1

5

2

3

(

(

( )

( )

)

)

f e a

ef e

f x e

f y e

x y

EUF Arithmetic

SAT

• 2단계 : 각 theory solver가 식 만족여부를검사하고 공통된 변수( )의방정식을 서로 교환

1 2 3 4 5, , , , ,e e e e e a

Page 26: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

4

5

1 2 3

32

41

0

2

e e

e a

ee

e

e

ee

1

5

2

3

1 4

4

5

(

(

( )

( )

)

)

af e

ef e

ef x

f y e

x y

e e

a e

EUF ArithmeticSAT

• 2단계 : 각 theory solver가 식 만족여부를검사하고 공통된 변수( )의방정식을 서로 교환

1 2 3 4 5, , , , ,e e e e e a

Page 27: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

4

5

1 2 3

32

5

0

2

e e

e a

ee

e

e

ea

1

5

2

3

1 4

4

(

(

( )

( )

)

)

af e

ef e

ef x

ef y

x y

e e

EUF ArithmeticUNSAT

• 2단계 : 각 theory solver가 식 만족여부를검사하고 공통된 변수( )의방정식을 서로 교환

1 2 3 4 5, , , , ,e e e e e a

Page 28: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

결론

• SMT 는 SAT 해결기를 이용하여 풀 수 있다

– 두 가지 방식 : Eager와 Lazy

– 여러 Theory가 관여된 경우 : Theory solver들끼리 서로 정보 교환하면서 문제를 푼다.

• 더 알고 싶으싞 분은 참고자료를 보세요.

Page 29: SAT/SMT tutorial (3) SMT theory - Seoul National Universityrosaec.snu.ac.kr/meet/file/20110626o2.pdf · 2018-04-12 · Satisfiability Modulo Theory(SMT) •만족핛당찾기(satisfiability)는주어진식을참으

참고자료

• Albert Oliveras, SMT Theory and DPLL(T), 1st SAT/SMT solver summer school 2011

• Aaron Bradley, Zohar Manna, The Calculus of Computation

• Armin Biere et al., Handbook of satisfiability