SAT for Software Model Checking Introduction to SAT-problem for newbie

18
Choi, Chang-Beom@pswlab 2007.09.07

description

SAT for Software Model Checking Introduction to SAT-problem for newbie. Choi, Chang-Beom@pswlab 2007.09.07. Content. Motivation Model Checking as a SAT problem SAT & SAT-solver? Discussion. Motivation. Model Checking. Requirements. Target Program. ↓. ↓. Requirement Properties. - PowerPoint PPT Presentation

Transcript of SAT for Software Model Checking Introduction to SAT-problem for newbie

Page 1: SAT for Software Model Checking Introduction to SAT-problem for newbie

Choi, Chang-Beom@pswlab

2007.09.07

Page 2: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ Motivation

β€’ Model Checking as a SAT problem

β€’ SAT & SAT-solver?

β€’ Discussion

Page 3: SAT for Software Model Checking Introduction to SAT-problem for newbie

Requirements

Target Program

Requirement Properties

Model Checker

↓

System Model

↓

Okay

Satisfied Not satisfied

Counter example

Page 4: SAT for Software Model Checking Introduction to SAT-problem for newbie

Target Program Requirement

Properties

Page 5: SAT for Software Model Checking Introduction to SAT-problem for newbie

제 5 μ„ΈλΆ€κ³Όμ œ : κΉ€λ¬Έμ£Ό

2 processes3 processes

4 processes

Page 6: SAT for Software Model Checking Introduction to SAT-problem for newbie

1981 Clarke / Emerson: CTL Model CheckingSifakis / Quielle

1982 EMC: Explicit Model CheckerClarke, Emerson, Sistla

1990 Symbolic Model CheckingBurch, Clarke, Dill, McMillan

1992 SMV: Symbolic Model VerifierMcMillan

1998 Bounded Model Checking using SATBiere, Clarke, Zhu

2000 Counterexample-guided Abstraction Refinement

Clarke, Grumberg, Jha, Lu, Veith

105

10100

101000

CBMC

MAGIC

Page 7: SAT for Software Model Checking Introduction to SAT-problem for newbie

Requirements

Target Program

Requirement Properties

Model Checker

↓

System Model

↓

Okay

Satisfied Not satisfied

Counter example

SAT-solver

+

Page 8: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ What we are going to do

Requirements

Target Program

Requirement Properties

Model Checker

↓

System Model

↓

Okay

Satisfied Not satisfied

Counter example

SAT-solver

+

Program Code

Program Code

SoftwareModel

Checking

Page 9: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ SAT = Satisfiability = Propositional Satisfiability

β€’ NP-Complete problem– We can get the answer sometimes

SATproblem

SATproblem

PropositionalFormula

PropositionalFormula

SAT

UNSAT

Page 10: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ A set of propositional variables and clauses involving variables– (x1 ∨ x2’ ∨ x3) (x2 ∨ x1’ ∨ x4)– x1, x2, x3 and x4 are variables (true or false)

β€’ Literals: Variable and its negation– x1 and x1’

β€’ A clause is satisfied if one of the literals is true– x1=true satisfies clause 1– x1=false satisfies clause 2

β€’ Solution: An assignment that satisfies all clauses

Page 11: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ Started with DPLL (1962)– Able to solve 10-15 variable problems

β€’ Satz (Chu Min Li, 1995)– Able to solve some 1000 variable problems

β€’ Chaff (Malik et al., 2001)– Intelligently hacked DPLL , Won the 2004 competition– Able to solve some 10000 variable problems

β€’ Current state-of-the-art– Minisat and SATELITEGTI (Chalmer’s university, 2004-2006)– Jerusat and Haifasat (Intel Haifa, 2002)– Ace (UCLA, 2004-2006)

Page 12: SAT for Software Model Checking Introduction to SAT-problem for newbie

while (1) {if (decide_next_branch()) { //1. Branching

while (deduce()==conflict) { //2. Deducingblevel=analyze_conflicts() // 3. Learningif (blevel < 0)return UNSATelse backtrack(blevel) // 4. Backtracking}

else RETURN UNSAT;}

Page 13: SAT for Software Model Checking Introduction to SAT-problem for newbie

{p ∨ r} ∧{p ∨ q ∨ r} ∧{p ∨ r}{T∨r} ∧{T ∨ q ∨ r} ∧{T ∨ r} {F ∨ r} ∧{F ∨ q ∨ r} ∧{F ∨ r}

p=T p=F

{q,r} {r} ∧{r}{}

SIMPLIFY

SIMPLIFY

SIMPLIFY

decide_next_branch()decide_next_branch()

deduce()deduce()

analyze_conflicts()

Page 14: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ CBMC (C Bounded Model Checker, In CMU)– Handles function calls using inlining

– Unwinds the loops a fixed number of times

– Allows user input to be modeled using non-determinism

β€’ So that a program can be checked for a set of inputs rather than a single input

– Allows specification of assertions which are checked using the bounded model checking

Page 15: SAT for Software Model Checking Introduction to SAT-problem for newbie

x=0;while (x < 2) { y=y+x; x++;}

x=0;if (x < 2) { y=y+x; x++;}if (x < 2) { y=y+x; x++;}if (x < 2) { y=y+x; x++;}

assert (! (x < 2))

Original code Unwinding the loop 3 times

Unwinding assertion:

Page 16: SAT for Software Model Checking Introduction to SAT-problem for newbie

x=x+y;if (x!=1) x=2;else x++;assert(x<=3);

x1=x0+y0;if (x1!=1) x2=2;else x3=x1+1;x4=(x1!=1)?x2:x3;assert(x4<=3);

C x1=x0+y0 x2=2 x3=x1+1 (x1!=1 x4=x2 x1=1 x4=x3)P x4 <= 3

Check if C P is satisfiable, if it is then the assertion is violated

C P is converted to Boolean logic using a bit vector representation for the integer variables y0,x0,x1,x2,x3,x4

Original code Convert to static single assignment

Generate constraints

Page 17: SAT for Software Model Checking Introduction to SAT-problem for newbie

for(i=0;i<2;i++){ a[i]=i;}

p cnf 1117 3191 1 0 1 2 0 βˆ’1 βˆ’2 0 1 3 0 βˆ’2 3 0 βˆ’1 2 βˆ’3 0 1 4 0 βˆ’3 4 0 βˆ’1 3 βˆ’4 0 1 5 0 βˆ’4 5 0 βˆ’1 4 βˆ’5 0 1 6 0 βˆ’5 6 0 βˆ’1 5 βˆ’6 0 1 7 0 βˆ’6 7 0 βˆ’1 6 βˆ’7 0 1 8 0 βˆ’7 8 0 βˆ’1 7 βˆ’8 0 1 9 0 βˆ’8 9 0 βˆ’1 8 βˆ’9 0 1 10 0 βˆ’9 10 0 βˆ’1 9 βˆ’10 0 1 11 0 βˆ’10 11 0 βˆ’1 10 βˆ’11 0 1 12 0 βˆ’11 12 0 βˆ’1 11 βˆ’12 0 1 13 0 βˆ’12 13 0 βˆ’1 12 βˆ’13 0 1 14 0 βˆ’13 14 0 βˆ’1 13 βˆ’14 0 1 15 0 βˆ’14 15 0 βˆ’1 14 βˆ’15 0 1 16 0 βˆ’15 16 0 βˆ’1 15 βˆ’16 0 1 17 0 βˆ’16 17 0 βˆ’1 16 βˆ’17 0 1 18 0 βˆ’17 18 0 βˆ’1 17 βˆ’18 0 1 19 0 βˆ’18 19 0 βˆ’1 18 βˆ’19 0 1 20 0 βˆ’19 20 0 βˆ’1 19 βˆ’20 0 1 21 0 βˆ’20 21 0 βˆ’1 20 βˆ’21 0 1 22 0 βˆ’21 22 0 βˆ’1 21 βˆ’22 0 1 23 0 βˆ’22 23 0 βˆ’1 22 βˆ’23 0 1 24 0 βˆ’23 24 0 βˆ’1 23 βˆ’24 0 1 25 0 βˆ’24 25 0 βˆ’1 24 βˆ’25 0 1 26 0 βˆ’25 26 0 βˆ’1 25 βˆ’26 0 1 27 0 βˆ’26 27 0 βˆ’1 26 βˆ’27 0 1 28 0 βˆ’27 28 0 βˆ’1 27 βˆ’28 0 1 29 0 βˆ’28 29 0 βˆ’1 28 βˆ’29 0 1 30 0 βˆ’29 30 0 βˆ’1 29 βˆ’30 0 1 31 0 βˆ’30 31 0 βˆ’1 30 βˆ’31 0 1 32 0 βˆ’31 32 0 βˆ’1 31 βˆ’32 0 33 34 0 βˆ’32 34 0 βˆ’33 32 βˆ’34 0 34 0 1 131 0 βˆ’1 βˆ’131 0 1 132 0 βˆ’1 βˆ’132 0 1 133 0 βˆ’1 βˆ’133 0 1 134 0 βˆ’1 βˆ’134 0 1 135 0 βˆ’1 βˆ’135 0 1 136 0 βˆ’1 βˆ’136 0 1 137 0 βˆ’1 βˆ’137 0 1 138 0 βˆ’1 βˆ’138 0 1 139 0 βˆ’1 βˆ’139 0 1 140 0 βˆ’1 βˆ’140 0 1 141 0 βˆ’1 βˆ’141 0 1 142 0 βˆ’1 βˆ’142 0 1 143 0 βˆ’1 βˆ’143 0 1 144 0 βˆ’1 βˆ’144 0 1 145 0 βˆ’1 βˆ’145 0 1 146 0 βˆ’1 βˆ’146 0 1 147 0 βˆ’1 βˆ’147 0 1 148 0 βˆ’1 βˆ’148 0 1 149 0 βˆ’1 βˆ’149 0 1 150 0 βˆ’1 βˆ’150 0 1 151 0 βˆ’1 βˆ’151 0 1 152 0 βˆ’1 βˆ’152 0 1 153 0 βˆ’1 βˆ’153 0 1 154 0 βˆ’1 βˆ’154 0 1 155 0 βˆ’1 βˆ’155 0 1 156 0 βˆ’1 βˆ’156 0 1 157 0 βˆ’1 βˆ’157 0 1 158 0 βˆ’1 βˆ’158 0 1 159 0 βˆ’1 βˆ’159 0 1 160 0 βˆ’1 βˆ’160 0 1 161 0 βˆ’1 βˆ’161 0 1 162 0 βˆ’1 βˆ’162 0 1 163 0 βˆ’131 163 0 βˆ’1 131 βˆ’163 0 132 βˆ’164 0 163 βˆ’164 0 βˆ’132 βˆ’163 164 0 βˆ’132 165 0 βˆ’164 165 0 βˆ’163 165 0 132 164 163 βˆ’165 0 133 βˆ’166 0 165 βˆ’166 0 βˆ’133 βˆ’165 166 0 βˆ’133 167 0 βˆ’166 167 0 βˆ’165 167 0 133 166 165 βˆ’167 0 134 βˆ’168 0 167 βˆ’168 0 βˆ’134 βˆ’167 168 0 βˆ’134 169 0 βˆ’168 169 0 βˆ’167 169 0 134 168 167 βˆ’169 0 135 βˆ’170 0 169 βˆ’170 0 βˆ’135 βˆ’169 170 0 βˆ’135 171 0 βˆ’170 171 0 βˆ’169 171 0 135 170 169 βˆ’171 0 136 βˆ’172 0 171 βˆ’172 0 βˆ’136 βˆ’171 172 0 βˆ’136 173 0 βˆ’172 173 0 βˆ’171 173 0 136 172 171 βˆ’173 0 137 βˆ’174 0 173 βˆ’174 0 βˆ’137 βˆ’173 174 0 βˆ’137 175 0 βˆ’174 175 0 βˆ’173 175 0 137 174 173 βˆ’175 0 138 βˆ’176 0 175 βˆ’176 0 βˆ’138 βˆ’175 176 0 βˆ’138 177 0 βˆ’176 177 0 βˆ’175 177 0 138 176 175 βˆ’177 0 139 βˆ’178 0 177 βˆ’178 0 βˆ’139 βˆ’177 178 0 βˆ’139 179 0 βˆ’178 179 0 βˆ’177 179 0 139 178 177 βˆ’179 0 140 βˆ’180 0 179 βˆ’180 0 βˆ’140 βˆ’179 180 0 βˆ’140 181 0 βˆ’180 181 0 βˆ’179 181 0 140 180 179 βˆ’181 0 141 βˆ’182 0 181 βˆ’182 0 βˆ’141 βˆ’181 182 0 βˆ’141 183 0 βˆ’182 183 0 βˆ’181 183 0 141 182 181 βˆ’183 0 142 βˆ’184 0 183 βˆ’184 0 βˆ’142 βˆ’183 184 0 βˆ’142 185 0 βˆ’184 185 0 βˆ’183 185 0 142 184 183 βˆ’185 0 143 βˆ’186 0 185 βˆ’186 0 βˆ’143 βˆ’185 186 0 βˆ’143 187 0 βˆ’186 187 0 βˆ’185 187 0 143 186 185 βˆ’187 0 144 βˆ’188 0 187 βˆ’188 0 βˆ’144 βˆ’187 188 0 βˆ’144 189 0 βˆ’188 189 0 βˆ’187 189 0 144 188 187 βˆ’189 0 145 βˆ’190 0 189 βˆ’190 0 βˆ’145 βˆ’189 190 0 βˆ’145 191 0 βˆ’190 191 0 βˆ’189 191 0 145 190 189 βˆ’191 0 146 βˆ’192 0 191 βˆ’192 0 βˆ’146 βˆ’191 192 0 βˆ’146 193 0 βˆ’192 193 0 βˆ’191 193 0 146 192 191 βˆ’193 0 147 βˆ’194 0 193 βˆ’194 0 βˆ’147 βˆ’193 194 0 βˆ’147 195 0 βˆ’194 195 0 βˆ’193 195 0 147 194 193 βˆ’195 0 148 βˆ’196 0 195 βˆ’196 0 βˆ’148 βˆ’195 196 0 βˆ’148 197 0 βˆ’196 197 0 βˆ’195 197 0 148 196 195 βˆ’197 0 149 βˆ’198 0 197 βˆ’198 0 βˆ’149 βˆ’197 198 0 βˆ’149 199 0 βˆ’198 199 0 βˆ’197 199 0 149 198 197 βˆ’199 0 150 βˆ’200 0 199 βˆ’200 0 βˆ’150 βˆ’199 200 0 βˆ’150 201 0 βˆ’200 201 0 βˆ’199 201 0 150 200 199 βˆ’201 0 151 βˆ’202 0 201 βˆ’202 0 βˆ’151 βˆ’201 202 0 βˆ’151 203 0 βˆ’202 203 0 βˆ’201 203 0 151 202 201 βˆ’203 0 152 βˆ’204 0 203 βˆ’204 0 βˆ’152 βˆ’203 204 0 βˆ’152 205 0 βˆ’204 205 0 βˆ’203 205 0 152 204 203 βˆ’205 0 153 βˆ’206 0 205 βˆ’206 0 βˆ’153 βˆ’205 206 0 βˆ’153 207 0 βˆ’206 207 0 βˆ’205 207 0 153 206 205 βˆ’207 0 154 βˆ’208 0 207 βˆ’208 0 βˆ’154 βˆ’207 208 0 βˆ’154 209 0 βˆ’208 209 0 βˆ’207 209 0 154 208 207 βˆ’209 0 155 βˆ’210 0 209 βˆ’210 0 βˆ’155 βˆ’209 210 0 βˆ’155 211 0 βˆ’210 211 0 βˆ’209 211 0 155 210 209 βˆ’211 0 156 βˆ’212 0 211 βˆ’212 0 βˆ’156 βˆ’211 212 0 βˆ’156 213 0 βˆ’212 213 0 βˆ’211 213 0 156 212 211 βˆ’213 0 157 βˆ’214 0 213 βˆ’214 0 βˆ’157 βˆ’213 214 0 βˆ’157 215 0 βˆ’214 215 0 βˆ’213 215 0 157 214 213 βˆ’215 0 158 βˆ’216 0 215 βˆ’216 0 βˆ’158 βˆ’215 216 0 βˆ’158 217 0 βˆ’216 217 0 βˆ’215 217 0 158 216 215 βˆ’217 0 159 βˆ’218 0 217 βˆ’218 0 βˆ’159 βˆ’217 218 0 βˆ’159 219 0 βˆ’218 219 0 βˆ’217 219 0 159 218 217 βˆ’219 0 160 βˆ’220 0 219 βˆ’220 0 βˆ’160 βˆ’219 220 0 βˆ’160 221 0 βˆ’220 221 0 βˆ’219 221 0 160 220 219 βˆ’221 0 161 βˆ’222 0 221 βˆ’222 0 βˆ’161 βˆ’221 222 0 βˆ’161 223 0 βˆ’222 223 0 βˆ’221 223 0 161 222 221 βˆ’223 0 161 βˆ’223 βˆ’224 0 βˆ’161 223 βˆ’224 0 161 223 224 0 βˆ’161 βˆ’223 224 0 225 226 0 224 226 0 βˆ’225 βˆ’224 βˆ’226 0 226 0 βˆ’32 βˆ’227 0 224 βˆ’227 0 32 βˆ’224 227 0 βˆ’228 0 1 βˆ’229 0 βˆ’131 βˆ’229 0 βˆ’132 βˆ’229 0 βˆ’133 βˆ’229 0 βˆ’134 βˆ’229 0 βˆ’135 βˆ’229 0 βˆ’136 βˆ’229 0 βˆ’137 βˆ’229 0 βˆ’138 βˆ’229 0 βˆ’139 βˆ’229 0 βˆ’140 βˆ’229 0 βˆ’141 βˆ’229 0 βˆ’142 βˆ’229 0 βˆ’143 βˆ’229 0 βˆ’144 βˆ’229 0 βˆ’145 βˆ’229 0 βˆ’146 βˆ’229 0 βˆ’147 βˆ’229 0 βˆ’148 βˆ’229 0 βˆ’149 βˆ’229 0 βˆ’150 βˆ’229 0 βˆ’151 βˆ’229 0 βˆ’152 βˆ’229 0 βˆ’153 βˆ’229 0 βˆ’154 βˆ’229 0 βˆ’155 βˆ’229 0 βˆ’156 βˆ’229 0 βˆ’157 βˆ’229 0 βˆ’158 βˆ’229 0 βˆ’159 βˆ’229 0 βˆ’160 βˆ’229 0 βˆ’161 βˆ’229 0 βˆ’1 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 229 0 βˆ’229 βˆ’230 βˆ’231 0 229 230 βˆ’231 0 βˆ’229 230 231 0 229 βˆ’230 231 0 βˆ’231 0 βˆ’229 βˆ’232 0 67 βˆ’232 0 229 βˆ’67 232 0 βˆ’229 233 0 βˆ’232 233 0 229 232 βˆ’233 0 229 βˆ’234 0 131 βˆ’234 0 βˆ’229 βˆ’131 234 0 βˆ’229 βˆ’235 0 68 βˆ’235 0 229 βˆ’68 235 0 βˆ’234 236 0 βˆ’235 236 0 234 235 βˆ’236 0 229 βˆ’237 0 132 βˆ’237 0 βˆ’229 βˆ’132 237 0 βˆ’229 βˆ’238 0 69 βˆ’238 0 229 βˆ’69 238 0 βˆ’237 239 0 βˆ’238 239 0 237 238 βˆ’239 0 229 βˆ’240 0 133 βˆ’240 0 βˆ’229 βˆ’133 240 0 βˆ’229 βˆ’241 0 70 βˆ’241 0 229 βˆ’70 241 0 βˆ’240 242 0 βˆ’241 242 0 240 241 βˆ’242 0 229 βˆ’243 0 134 βˆ’243 0 βˆ’229 βˆ’134 243 0 βˆ’229 βˆ’244 0 71 βˆ’244 0 229 βˆ’71 244 0 βˆ’243 245 0 βˆ’244 245 0 243 244 βˆ’245 0 229 βˆ’246 0 135 βˆ’246 0 βˆ’229 βˆ’135 246 0 βˆ’229 βˆ’247 0 72 βˆ’247 0 229 βˆ’72 247 0 βˆ’246 248 0 βˆ’247 248 0 246 247 βˆ’248 0 229 βˆ’249 0 136 βˆ’249 0 βˆ’229 βˆ’136 249 0 βˆ’229 βˆ’250 0 73 βˆ’250 0 229 βˆ’73 250 0 βˆ’249 251 0 βˆ’250 251 0 249 250 βˆ’251 0 229 βˆ’252 0 137 βˆ’252 0 βˆ’229 βˆ’137 252 0 βˆ’229 βˆ’253 0 74 βˆ’253 0 229 βˆ’74 253 0 βˆ’252 254 0 βˆ’253 254 0 252 253 βˆ’254 0 229 βˆ’255 0 138 βˆ’255 0 βˆ’229 βˆ’138 255 0 βˆ’229 βˆ’256 0 75 βˆ’256 0 229 βˆ’75 256 0 βˆ’255 257 0 βˆ’256 257 0 255 256 βˆ’257 0 229 βˆ’258 0 139 βˆ’258 0 βˆ’229 βˆ’139 258 0 βˆ’229 βˆ’259 0 76 βˆ’259 0 229 βˆ’76 259 0 βˆ’258 260 0 βˆ’259 260 0 258 259 βˆ’260 0 229 βˆ’261 0 140 βˆ’261 0 βˆ’229 βˆ’140 261 0 βˆ’229 βˆ’262 0 77 βˆ’262 0 229 βˆ’77 262 0 βˆ’261 263 0 βˆ’262 263 0 261 262 βˆ’263 0 229 βˆ’264 0 141 βˆ’264 0 βˆ’229 βˆ’141 264 0 βˆ’229 βˆ’265 0 78 βˆ’265 0 229 βˆ’78 265 0 βˆ’264 266 0 βˆ’265 266 0 264 265 βˆ’266 0 229 βˆ’267 0 142 βˆ’267 0 βˆ’229 βˆ’142 267 0 βˆ’229 βˆ’268 0 79 βˆ’268 0 229 βˆ’79 268 0 βˆ’267 269 0 βˆ’268 269 0 267 268 βˆ’269 0 229 βˆ’270 0 143 βˆ’270 0 βˆ’229 βˆ’143 270 0 βˆ’229 βˆ’271 0 80 βˆ’271 0 229 βˆ’80 271 0 βˆ’270 272 0 βˆ’271 272 0 270 271 βˆ’272 0 229 βˆ’273 0 144 βˆ’273 0 βˆ’229 βˆ’144 273 0 βˆ’229 βˆ’274 0 81 βˆ’274 0 229 βˆ’81 274 0 βˆ’273 275 0 βˆ’274 275 0 273 274 βˆ’275 0 229 βˆ’276 0 145 βˆ’276 0 βˆ’229 βˆ’145 276 0 βˆ’229 βˆ’277 0 82 βˆ’277 0 229 βˆ’82 277 0 βˆ’276 278 0 βˆ’277 278 0 276 277 βˆ’278 0 229 βˆ’279 0 146 βˆ’279 0 βˆ’229 βˆ’146 279 0 βˆ’229 βˆ’280 0 83 βˆ’280 0 229 βˆ’83 280 0 βˆ’279 281 0 βˆ’280 281 0 279 280 βˆ’281 0 229 βˆ’282 0 147 βˆ’282 0 βˆ’229 βˆ’147 282 0 βˆ’229 βˆ’283 0 84 βˆ’283 0 229 βˆ’84 283 0 βˆ’282 284 0 βˆ’283 284 0 282 283 βˆ’284 0 229 βˆ’285 0 148 βˆ’285 0 βˆ’229 βˆ’148 285 0 βˆ’229 βˆ’286 0 85 βˆ’286 0 229 βˆ’85 286 0 βˆ’285 287 0 βˆ’286 287 0 285 286 βˆ’287 0 229 βˆ’288 0 149 βˆ’288 0 βˆ’229 βˆ’149 288 0 βˆ’229 βˆ’289 0 86 βˆ’289 0 229 βˆ’86 289 0 βˆ’288 290 0 βˆ’289 290 0 288 289 βˆ’290 0 229 βˆ’291 0 150 βˆ’291 0 βˆ’229 βˆ’150 291 0 βˆ’229 βˆ’292 0 87 βˆ’292 0 229 βˆ’87 292 0 βˆ’291 293 0 βˆ’292 293 0 291 292 βˆ’293 0 229 βˆ’294 0 151 βˆ’294 0 βˆ’229 βˆ’151 294 0 βˆ’229 βˆ’295 0 88 βˆ’295 0 229 βˆ’88 295 0 βˆ’294 296 0 βˆ’295 296 0 294 295 βˆ’296 0 229 βˆ’297 0 152 βˆ’297 0 βˆ’229 βˆ’152 297 0 βˆ’229 βˆ’298 0 89 βˆ’298 0 229 βˆ’89 298 0 βˆ’297 299 0 βˆ’298 299 0 297 298 βˆ’299 0 229 βˆ’300 0 153 βˆ’300 0 βˆ’229 βˆ’153 300 0 βˆ’229 βˆ’301 0 90 βˆ’301 0 229 βˆ’90 301 0 βˆ’300 302 0 βˆ’301 302 0 300 301 βˆ’302 0 229 βˆ’303 0 154 βˆ’303 0 βˆ’229 βˆ’154 303 0 βˆ’229 βˆ’304 0 91 βˆ’304 0 229 βˆ’91 304 0 βˆ’303 305 0 βˆ’304 305 0 303 304 βˆ’305 0 229 βˆ’306 0 155 βˆ’306 0 βˆ’229 βˆ’155 306 0 βˆ’229 βˆ’307 0 92 βˆ’307 0 229 βˆ’92 307 0 βˆ’306 308 0 βˆ’307 308 0 306 307 βˆ’308 0 229 βˆ’309 0 156 βˆ’309 0 βˆ’229 βˆ’156 309 0 βˆ’229 βˆ’310 0 93 βˆ’310 0 229 βˆ’93 310 0 βˆ’309 311 0 βˆ’310 311 0 309 310 βˆ’311 0 229 βˆ’312 0 157 βˆ’312 0 βˆ’229 βˆ’157 312 0 βˆ’229 βˆ’313 0 94 βˆ’313 0 229 βˆ’94 313 0 βˆ’312 314 0 βˆ’313 314 0 312 313 βˆ’314 0 229 βˆ’315 0 158 βˆ’315 0 βˆ’229 βˆ’158 315 0 βˆ’229 βˆ’316 0 95 βˆ’316 0 229 βˆ’95 316 0 βˆ’315 317 0 βˆ’316 317 0 315 316 βˆ’317 0 229 βˆ’318 0 159 βˆ’318 0 βˆ’229 βˆ’159 318 0 βˆ’229 βˆ’319 0 96 βˆ’319 0 229 βˆ’96 319 0 βˆ’318 320 0 βˆ’319 320 0 318 319 βˆ’320 0 229 βˆ’321 0 160 βˆ’321 0 βˆ’229 βˆ’160 321 0 βˆ’229 βˆ’322 0 97 βˆ’322 0 229 βˆ’97 322 0 βˆ’321 323 0 βˆ’322 323 0 321 322 βˆ’323 0 229 βˆ’324 0 161 βˆ’324 0 βˆ’229 βˆ’161 324 0 βˆ’229 βˆ’325 0 98 βˆ’325 0 229 βˆ’98 325 0 βˆ’324 326 0 βˆ’325 326 0 324 325 βˆ’326 0 βˆ’225 0 1 327 0 βˆ’131 327 0 βˆ’1 131 βˆ’327 0 βˆ’132 βˆ’327 βˆ’328 0 132 327 βˆ’328 0 βˆ’132 327 328 0 132 βˆ’327 328 0 132 βˆ’329 0 327 βˆ’329 0 βˆ’132 βˆ’327 329 0 1 330 0 βˆ’329 330 0 βˆ’1 329 βˆ’330 0 βˆ’133 βˆ’330 βˆ’331 0 133 330 βˆ’331 0 βˆ’133 330 331 0 133 βˆ’330 331 0 133 βˆ’332 0 330 βˆ’332 0 βˆ’133 βˆ’330 332 0 1 333 0 βˆ’332 333 0 βˆ’1 332 βˆ’333 0 βˆ’134 βˆ’333 βˆ’334 0 134 333 βˆ’334 0 βˆ’134 333 334 0 134 βˆ’333 334 0 134 βˆ’335 0 333 βˆ’335 0 βˆ’134 βˆ’333 335 0 1 336 0 βˆ’335 336 0 βˆ’1 335 βˆ’336 0 βˆ’135 βˆ’336 βˆ’337 0 135 336 βˆ’337 0 βˆ’135 336 337 0 135 βˆ’336 337 0 135 βˆ’338 0 336 βˆ’338 0 βˆ’135 βˆ’336 338 0 1 339 0 βˆ’338 339 0 βˆ’1 338 βˆ’339 0 βˆ’136 βˆ’339 βˆ’340 0 136 339 βˆ’340 0 βˆ’136 339 340 0 136 βˆ’339 340 0 136 βˆ’341 0 339 βˆ’341 0 βˆ’136 βˆ’339 341 0 1 342 0 βˆ’341 342 0 βˆ’1 341 βˆ’342 0 βˆ’137 βˆ’342 βˆ’343 0 137 342 βˆ’343 0 βˆ’137 342 343 0 137 βˆ’342 343 0 137 βˆ’344 0 342 βˆ’344 0 βˆ’137 βˆ’342 344 0 1 345 0 βˆ’344 345 0 βˆ’1 344 βˆ’345 0 βˆ’138 βˆ’345 βˆ’346 0 138 345 βˆ’346 0 βˆ’138 345 346 0 138 βˆ’345 346 0 138 βˆ’347 0 345 βˆ’347 0 βˆ’138 βˆ’345 347 0 1 348 0 βˆ’347 348 0 βˆ’1 347 βˆ’348 0 βˆ’139 βˆ’348 βˆ’349 0 139 348 βˆ’349 0 βˆ’139 348 349 0 139 βˆ’348 349 0 139 βˆ’350 0 348 βˆ’350 0 βˆ’139 βˆ’348 350 0 1 351 0 βˆ’350 351 0 βˆ’1 350 βˆ’351 0 βˆ’140 βˆ’351 βˆ’352 0 140 351 βˆ’352 0 βˆ’140 351 352 0 140 βˆ’351 352 0 140 βˆ’353 0 351 βˆ’353 0 βˆ’140 βˆ’351 353 0 1 354 0 βˆ’353 354 0 βˆ’1 353 βˆ’354 0 βˆ’141 βˆ’354 βˆ’355 0 141 354 βˆ’355 0 βˆ’141 354 355 0 141 βˆ’354 355 0 141 βˆ’356 0 354 βˆ’356 0 βˆ’141 βˆ’354 356 0 1 357 0 βˆ’356 357 0 βˆ’1 356 βˆ’357 0 βˆ’142 βˆ’357 βˆ’358 0 142 357 βˆ’358 0 βˆ’142 357 358 0 142 βˆ’357 358 0 142 βˆ’359 0 357 βˆ’359 0 βˆ’142 βˆ’357 359 0 1 360 0 βˆ’359 360 0 βˆ’1 359 βˆ’360 0 βˆ’143 βˆ’360 βˆ’361 0 143 360 βˆ’361 0 βˆ’143 360 361 0 143 βˆ’360 361 0 143 βˆ’362 0 360 βˆ’362 0 βˆ’143 βˆ’360 362 0 1 363 0 βˆ’362 363 0 βˆ’1 362 βˆ’363 0 βˆ’144 βˆ’363 βˆ’364 0 144 363 βˆ’364 0 βˆ’144 363 364 0 144 βˆ’363 364 0 144 βˆ’365 0 363 βˆ’365 0 βˆ’144 βˆ’363 365 0 1 366 0 βˆ’365 366 0 βˆ’1 365 βˆ’366 0 βˆ’145 βˆ’366 βˆ’367 0 145 366 βˆ’367 0 βˆ’145 366 367 0 145 βˆ’366 367 0 145 βˆ’368 0 366 βˆ’368 0 βˆ’145 βˆ’366 368 0 1 369 0 βˆ’368 369 0 βˆ’1 368 βˆ’369 0 βˆ’146 βˆ’369 βˆ’370 0 146 369 βˆ’370 0 βˆ’146 369 370 0 146 βˆ’369 370 0 146 βˆ’371 0 369 βˆ’371 0 βˆ’146 βˆ’369 371 0 1 372 0 βˆ’371 372 0 βˆ’1 371 βˆ’372 0 βˆ’147 βˆ’372 βˆ’373 0 147 372 βˆ’373 0 βˆ’147 372 373 0 147 βˆ’372 373 0 147 βˆ’374 0 372 βˆ’374 0 βˆ’147 βˆ’372 374 0 1 375 0 βˆ’374 375 0 βˆ’1 374 βˆ’375 0 βˆ’148 βˆ’375 βˆ’376 0 148 375 βˆ’376 0 βˆ’148 375 376 0 148 βˆ’375 376 0 148 βˆ’377 0 375 βˆ’377 0 βˆ’148 βˆ’375 377 0 1 378 0 βˆ’377 378 0 βˆ’1 377 βˆ’378 0 βˆ’149 βˆ’378 βˆ’379 0 149 378 βˆ’379 0 βˆ’149 378 379 0 149 βˆ’378 379 0 149 βˆ’380 0 378 βˆ’380 0 βˆ’149 βˆ’378 380 0 1 381 0 βˆ’380 381 0 βˆ’1 380 βˆ’381 0 βˆ’150 βˆ’381 βˆ’382 0 150 381 βˆ’382 0 βˆ’150 381 382 0 150 βˆ’381 382 0 150 βˆ’383 0 381 βˆ’383 0 βˆ’150 βˆ’381 383 0 1 384 0 βˆ’383 384 0 βˆ’1 383 βˆ’384 0 βˆ’151 βˆ’384 βˆ’385 0 151 384 βˆ’385 0 βˆ’151 384 385 0 151 βˆ’384 385 0 151 βˆ’386 0 384 βˆ’386 0 βˆ’151 βˆ’384 386 0 1 387 0 βˆ’386 387 0 βˆ’1 386 βˆ’387 0 βˆ’152 βˆ’387 βˆ’388 0 152 387 βˆ’388 0 βˆ’152 387 388 0 152 βˆ’387 388 0 152 βˆ’389 0 387 βˆ’389 0 βˆ’152 βˆ’387 389 0 1 390 0 βˆ’389 390 0 βˆ’1 389 βˆ’390 0 βˆ’153 βˆ’390 βˆ’391 0 153 390 βˆ’391 0 βˆ’153 390 391 0 153 βˆ’390 391 0 153 βˆ’392 0 390 βˆ’392 0 βˆ’153 βˆ’390 392 0 1 393 0 βˆ’392 393 0 βˆ’1 392 βˆ’393 0 βˆ’154 βˆ’393 βˆ’394 0 154 393 βˆ’394 0 βˆ’154 393 394 0 154 βˆ’393 394 0 154 βˆ’395 0 393 βˆ’395 0 βˆ’154 βˆ’393 395 0 1 396 0 βˆ’395 396 0 βˆ’1 395 βˆ’396 0 βˆ’155 βˆ’396 βˆ’397 0 155 396 βˆ’397 0 βˆ’155 396 397 0 155 βˆ’396 397 0 155 βˆ’398 0 396 βˆ’398 0 βˆ’155 βˆ’396 398 0 1 399 0 βˆ’398 399 0 βˆ’1 398 βˆ’399 0 βˆ’156 βˆ’399 βˆ’400 0 156 399 βˆ’400 0 βˆ’156 399 400 0 156 βˆ’399 400 0 156 βˆ’401 0 399 βˆ’401 0 βˆ’156 βˆ’399 401 0 1 402 0 βˆ’401 402 0 βˆ’1 401 βˆ’402 0 βˆ’157 βˆ’402 βˆ’403 0 157 402 βˆ’403 0 βˆ’157 402 403 0 157 βˆ’402 403 0 157 βˆ’404 0 402 βˆ’404 0 βˆ’157 βˆ’402 404 0 1 405 0 βˆ’404 405 0 βˆ’1 404 βˆ’405 0 βˆ’158 βˆ’405 βˆ’406 0 158 405 βˆ’406 0 βˆ’158 405 406 0 158 βˆ’405 406 0 158 βˆ’407 0 405 βˆ’407 0 βˆ’158 βˆ’405 407 0 1 408 0 βˆ’407 408 0 βˆ’1 407 βˆ’408 0 βˆ’159 βˆ’408 βˆ’409 0 159 408 βˆ’409 0 βˆ’159 408 409 0 159 βˆ’408 409 0 159 βˆ’410 0 408 βˆ’410 0 βˆ’159 βˆ’408 410 0 1 411 0 βˆ’410 411 0 βˆ’1 410 βˆ’411 0 βˆ’160 βˆ’411 βˆ’412 0 160 411 βˆ’412 0 βˆ’160 411 412 0 160 βˆ’411 412 0 160 βˆ’413 0 411 βˆ’413 0 βˆ’160 βˆ’411 413 0 1 414 0 βˆ’413 414 0 βˆ’1 413 βˆ’414 0 βˆ’161 βˆ’414 βˆ’415 0 161 414 βˆ’415 0 βˆ’161 414 415 0 161 βˆ’414 415 0 161 βˆ’416 0 414 βˆ’416 0 βˆ’161 βˆ’414 416 0 1 417 0 βˆ’416 417 0 βˆ’1 416 βˆ’417 0 227 βˆ’418 0 233 βˆ’418 0 βˆ’227 βˆ’233 418 0 βˆ’227 βˆ’419 0 67 βˆ’419 0 227 βˆ’67 419 0 βˆ’418 420 0 βˆ’419 420 0 418 419 βˆ’420 0 227 βˆ’421 0 236 βˆ’421 0 βˆ’227 βˆ’236 421 0 βˆ’227 βˆ’422 0 68 βˆ’422 0 227 βˆ’68 422 0 βˆ’421 423 0 βˆ’422 423 0 421 422 βˆ’423 0 227 βˆ’424 0 239 βˆ’424 0 βˆ’227 βˆ’239 424 0 βˆ’227 βˆ’425 0 69 βˆ’425 0 227 βˆ’69 425 0 βˆ’424 426 0 βˆ’425 426 0 424 425 βˆ’426 0 227 βˆ’427 0 242 βˆ’427 0 βˆ’227 βˆ’242 427 0 βˆ’227 βˆ’428 0 70 βˆ’428 0 227 βˆ’70 428 0 βˆ’427 429 0 βˆ’428 429 0 427 428 βˆ’429 0 227 βˆ’430 0 245 βˆ’430 0 βˆ’227 βˆ’245 430 0 βˆ’227 βˆ’431 0 71 βˆ’431 0 227 βˆ’71 431 0 βˆ’430 432 0 βˆ’431 432 0 430 431 βˆ’432 0 227 βˆ’433 0 248 βˆ’433 0 βˆ’227 βˆ’248 433 0 βˆ’227 βˆ’434 0 72 βˆ’434 0 227 βˆ’72 434 0 βˆ’433 435 0 βˆ’434 435 0 433 434 βˆ’435 0 227 βˆ’436 0 251 βˆ’436 0 βˆ’227 βˆ’251 436 0 βˆ’227 βˆ’437 0 73 βˆ’437 0 227 βˆ’73 437 0 βˆ’436 438 0 βˆ’437 438 0 436 437 βˆ’438 0 227 βˆ’439 0 254 βˆ’439 0 βˆ’227 βˆ’254 439 0 βˆ’227 βˆ’440 0 74 βˆ’440 0 227 βˆ’74 440 0 βˆ’439 441 0 βˆ’440 441 0 439 440 βˆ’441 0 227 βˆ’442 0 257 βˆ’442 0 βˆ’227 βˆ’257 442 0 βˆ’227 βˆ’443 0 75 βˆ’443 0 227 βˆ’75 443 0 βˆ’442 444 0 βˆ’443 444 0 442 443 βˆ’444 0 227 βˆ’445 0 260 βˆ’445 0 βˆ’227 βˆ’260 445 0 βˆ’227 βˆ’446 0 76 βˆ’446 0 227 βˆ’76 446 0 βˆ’445 447 0 βˆ’446 447 0 445 446 βˆ’447 0 227 βˆ’448 0 263 βˆ’448 0 βˆ’227 βˆ’263 448 0 βˆ’227 βˆ’449 0 77 βˆ’449 0 227 βˆ’77 449 0 βˆ’448 450 0 βˆ’449 450 0 448 449 βˆ’450 0 227 βˆ’451 0 266 βˆ’451 0 βˆ’227 βˆ’266 451 0 βˆ’227 βˆ’452 0 78 βˆ’452 0 227 βˆ’78 452 0 βˆ’451 453 0 βˆ’452 453 0 451 452 βˆ’453 0 227 βˆ’454 0 269 βˆ’454 0 βˆ’227 βˆ’269 454 0 βˆ’227 βˆ’455 0 79 βˆ’455 0 227 βˆ’79 455 0 βˆ’454 456 0 βˆ’455 456 0 454 455 βˆ’456 0 227 βˆ’457 0 272 βˆ’457 0 βˆ’227 βˆ’272 457 0 βˆ’227 βˆ’458 0 80 βˆ’458 0 227 βˆ’80 458 0 βˆ’457 459 0 βˆ’458 459 0 457 458 βˆ’459 0 227 βˆ’460 0 275 βˆ’460 0 βˆ’227 βˆ’275 460 0 βˆ’227 βˆ’461 0 81 βˆ’461 0 227 βˆ’81 461 0 βˆ’460 462 0 βˆ’461 462 0 460 461 βˆ’462 0 227 βˆ’463 0 278 βˆ’463 0 βˆ’227 βˆ’278 463 0 βˆ’227 βˆ’464 0 82 βˆ’464 0 227 βˆ’82 464 0 βˆ’463 465 0 βˆ’464 465 0 463 464 βˆ’465 0 227 βˆ’466 0 281 βˆ’466 0 βˆ’227 βˆ’281 466 0 βˆ’227 βˆ’467 0 83 βˆ’467 0 227 βˆ’83 467 0 βˆ’466 468 0 βˆ’467 468 0 466 467 βˆ’468 0 227 βˆ’469 0 284 βˆ’469 0 βˆ’227 βˆ’284 469 0 βˆ’227 βˆ’470 0 84 βˆ’470 0 227 βˆ’84 470 0 βˆ’469 471 0 βˆ’470 471 0 469 470 βˆ’471 0 227 βˆ’472 0 287 βˆ’472 0 βˆ’227 βˆ’287 472 0 βˆ’227 βˆ’473 0 85 βˆ’473 0 227 βˆ’85 473 0 βˆ’472 474 0 βˆ’473 474 0 472 473 βˆ’474 0 227 βˆ’475 0 290 βˆ’475 0 βˆ’227 βˆ’290 475 0 βˆ’227 βˆ’476 0 86 βˆ’476 0 227 βˆ’86 476 0 βˆ’475 477 0 βˆ’476 477 0 475 476 βˆ’477 0 227 βˆ’478 0 293 βˆ’478 0 βˆ’227 βˆ’293 478 0 βˆ’227 βˆ’479 0 87 βˆ’479 0 227 βˆ’87 479 0 βˆ’478 480 0 βˆ’479 480 0 478 479 βˆ’480 0 227 βˆ’481 0 296 βˆ’481 0 βˆ’227 βˆ’296 481 0 βˆ’227 βˆ’482 0 88 βˆ’482 0 227 βˆ’88 482 0 βˆ’481 483 0 βˆ’482 483 0 481 482 βˆ’483 0 227 βˆ’484 0 299 βˆ’484 0 βˆ’227 βˆ’299 484 0 βˆ’227 βˆ’485 0 89 βˆ’485 0 227 βˆ’89 485 0 βˆ’484 486 0 βˆ’485 486 0 484 485 βˆ’486 0 227 βˆ’487 0 302 βˆ’487 0 βˆ’227 βˆ’302 487 0 βˆ’227 βˆ’488 0 90 βˆ’488 0 227 βˆ’90 488 0 βˆ’487 489 0 βˆ’488 489 0 487 488 βˆ’489 0 227 βˆ’490 0 305 βˆ’490 0 βˆ’227 βˆ’305 490 0 βˆ’227 βˆ’491 0 91 βˆ’491 0 227 βˆ’91 491 0 βˆ’490 492 0 βˆ’491 492 0 490 491 βˆ’492 0 227 βˆ’493 0 308 βˆ’493 0 βˆ’227 βˆ’308 493 0 βˆ’227 βˆ’494 0 92 βˆ’494 0 227 βˆ’92 494 0 βˆ’493 495 0 βˆ’494 495 0 493 494 βˆ’495 0 227 βˆ’496 0 311 βˆ’496 0 βˆ’227 βˆ’311 496 0 βˆ’227 βˆ’497 0 93 βˆ’497 0 227 βˆ’93 497 0 βˆ’496 498 0 βˆ’497 498 0 496 497 βˆ’498 0 227 βˆ’499 0 314 βˆ’499 0 βˆ’227 βˆ’314 499 0 βˆ’227 βˆ’500 0 94 βˆ’500 0 227 βˆ’94 500 0 βˆ’499 501 0 βˆ’500 501 0 499 500 βˆ’501 0 227 βˆ’502 0 317 βˆ’502 0 βˆ’227 βˆ’317 502 0 βˆ’227 βˆ’503 0 95 βˆ’503 0 227 βˆ’95 503 0 βˆ’502 504 0 βˆ’503 504 0 502 503 βˆ’504 0 227 βˆ’505 0 320 βˆ’505 0 βˆ’227 βˆ’320 505 0 βˆ’227 βˆ’506 0 96 βˆ’506 0 227 βˆ’96 506 0 βˆ’505 507 0 βˆ’506 507 0 505 506 βˆ’507 0 227 βˆ’508 0 323 βˆ’508 0 βˆ’227 βˆ’323 508 0 βˆ’227 βˆ’509 0 97 βˆ’509 0 227 βˆ’97 509 0 βˆ’508 510 0 βˆ’509 510 0 508 509 βˆ’510 0 227 βˆ’511 0 326 βˆ’511 0 βˆ’227 βˆ’326 511 0 βˆ’227 βˆ’512 0 98 βˆ’512 0 227 βˆ’98 512 0 βˆ’511 513 0 βˆ’512 513 0 511 512 βˆ’513 0 227 βˆ’514 0 βˆ’131 βˆ’514 0 βˆ’227 131 514 0 βˆ’227 βˆ’515 0 131 βˆ’515 0 227 βˆ’131 515 0 βˆ’514 516 0 βˆ’515 516 0 514 515 βˆ’516 0 227 βˆ’517 0 328 βˆ’517 0 βˆ’227 βˆ’328 517 0 βˆ’227 βˆ’518 0 132 βˆ’518 0 227 βˆ’132 518 0 βˆ’517 519 0 βˆ’518 519 0 517 518 βˆ’519 0 227 βˆ’520 0 331 βˆ’520 0 βˆ’227 βˆ’331 520 0 βˆ’227 βˆ’521 0 133 βˆ’521 0 227 βˆ’133 521 0 βˆ’520 522 0 βˆ’521 522 0 520 521 βˆ’522 0 227 βˆ’523 0 334 βˆ’523 0 βˆ’227 βˆ’334 523 0 βˆ’227 βˆ’524 0 134 βˆ’524 0 227 βˆ’134 524 0 βˆ’523 525 0 βˆ’524 525 0 523 524 βˆ’525 0 227 βˆ’526 0 337 βˆ’526 0 βˆ’227 βˆ’337 526 0 βˆ’227 βˆ’527 0 135 βˆ’527 0 227 βˆ’135 527 0 βˆ’526 528 0 βˆ’527 528 0 526 527 βˆ’528 0 227 βˆ’529 0 340 βˆ’529 0 βˆ’227 βˆ’340 529 0 βˆ’227 βˆ’530 0 136 βˆ’530 0 227 βˆ’136 530 0 βˆ’529 531 0 βˆ’530 531 0 529 530 βˆ’531 0 227 βˆ’532 0 343 βˆ’532 0 βˆ’227 βˆ’343 532 0 βˆ’227 βˆ’533 0 137 βˆ’533 0 227 βˆ’137 533 0 βˆ’532 534 0 βˆ’533 534 0 532 533 βˆ’534 0 227 βˆ’535 0 346 βˆ’535 0 βˆ’227 βˆ’346 535 0 βˆ’227 βˆ’536 0 138 βˆ’536 0 227 βˆ’138 536 0 βˆ’535 537 0 βˆ’536 537 0 535 536 βˆ’537 0 227 βˆ’538 0 349 βˆ’538 0 βˆ’227 βˆ’349 538 0 βˆ’227 βˆ’539 0 139 βˆ’539 0 227 βˆ’139 539 0 βˆ’538 540 0 βˆ’539 540 0 538 539 βˆ’540 0 227 βˆ’541 0 352 βˆ’541 0 βˆ’227 βˆ’352 541 0 βˆ’227 βˆ’542 0 140 βˆ’542 0 227 βˆ’140 542 0 βˆ’541 543 0 βˆ’542 543 0 541 542 βˆ’543 0 227 βˆ’544 0 355 βˆ’544 0 βˆ’227 βˆ’355 544 0 βˆ’227 βˆ’545 0 141 βˆ’545 0 227 βˆ’141 545 0 βˆ’544 546 0 βˆ’545 546 0 544 545 βˆ’546 0 227 βˆ’547 0 358 βˆ’547 0 βˆ’227 βˆ’358 547 0 βˆ’227 βˆ’548 0 142 βˆ’548 0 227 βˆ’142 548 0 βˆ’547 549 0 βˆ’548 549 0 547 548 βˆ’549 0 227 βˆ’550 0 361 βˆ’550 0 βˆ’227 βˆ’361 550 0 βˆ’227 βˆ’551 0 143 βˆ’551 0 227 βˆ’143 551 0 βˆ’550 552 0 βˆ’551 552 0 550 551 βˆ’552 0 227 βˆ’553 0 364 βˆ’553 0 βˆ’227 βˆ’364 553 0 βˆ’227 βˆ’554 0 144 βˆ’554 0 227 βˆ’144 554 0 βˆ’553 555 0 βˆ’554 555 0 553 554 βˆ’555 0 227 βˆ’556 0 367 βˆ’556 0 βˆ’227 βˆ’367 556 0 βˆ’227 βˆ’557 0 145 βˆ’557 0 227 βˆ’145 557 0 βˆ’556 558 0 βˆ’557 558 0 556 557 βˆ’558 0 227 βˆ’559 0 370 βˆ’559 0 βˆ’227 βˆ’370 559 0 βˆ’227 βˆ’560 0 146 βˆ’560 0 227 βˆ’146 560 0 βˆ’559 561 0 βˆ’560 561 0 559 560 βˆ’561 0 227 βˆ’562 0 373 βˆ’562 0 βˆ’227 βˆ’373 562 0 βˆ’227 βˆ’563 0 147 βˆ’563 0 227 βˆ’147 563 0 βˆ’562 564 0 βˆ’563 564 0 562 563 βˆ’564 0 227 βˆ’565 0 376 βˆ’565 0 βˆ’227 βˆ’376 565 0 βˆ’227 βˆ’566 0 148 βˆ’566 0 227 βˆ’148 566 0 βˆ’565 567 0 βˆ’566 567 0 565 566 βˆ’567 0 227 βˆ’568 0 379 βˆ’568 0 βˆ’227 βˆ’379 568 0 βˆ’227 βˆ’569 0 149 βˆ’569 0 227 βˆ’149 569 0 βˆ’568 570 0 βˆ’569 570 0 568 569 βˆ’570 0 227 βˆ’571 0 382 βˆ’571 0 βˆ’227 βˆ’382 571 0 βˆ’227 βˆ’572 0 150 βˆ’572 0 227 βˆ’150 572 0 βˆ’571 573 0 βˆ’572 573 0 571 572 βˆ’573 0 227 βˆ’574 0 385 βˆ’574 0 βˆ’227 βˆ’385 574 0 βˆ’227 βˆ’575 0 151 βˆ’575 0 227 βˆ’151 575 0 βˆ’574 576 0 βˆ’575 576 0 574 575 βˆ’576 0 227 βˆ’577 0 388 βˆ’577 0 βˆ’227 βˆ’388 577 0 βˆ’227 βˆ’578 0 152 βˆ’578 0 227 βˆ’152 578 0 βˆ’577 579 0 βˆ’578 579 0 577 578 βˆ’579 0 227 βˆ’580 0 391 βˆ’580 0 βˆ’227 βˆ’391 580 0 βˆ’227 βˆ’581 0 153 βˆ’581 0 227 βˆ’153 581 0 βˆ’580 582 0 βˆ’581 582 0 580 581 βˆ’582 0 227 βˆ’583 0 394 βˆ’583 0 βˆ’227 βˆ’394 583 0 βˆ’227 βˆ’584 0 154 βˆ’584 0 227 βˆ’154 584 0 βˆ’583 585 0 βˆ’584 585 0 583 584 βˆ’585 0 227 βˆ’586 0 397 βˆ’586 0 βˆ’227 βˆ’397 586 0 βˆ’227 βˆ’587 0 155 βˆ’587 0 227 βˆ’155 587 0 βˆ’586 588 0 βˆ’587 588 0 586 587 βˆ’588 0 227 βˆ’589 0 400 βˆ’589 0 βˆ’227 βˆ’400 589 0 βˆ’227 βˆ’590 0 156 βˆ’590 0 227 βˆ’156 590 0 βˆ’589 591 0 βˆ’590 591 0 589 590 βˆ’591 0 227 βˆ’592 0 403 βˆ’592 0 βˆ’227 βˆ’403 592 0 βˆ’227 βˆ’593 0 157 βˆ’593 0 227 βˆ’157 593 0 βˆ’592 594 0 βˆ’593 594 0 592 593 βˆ’594 0 227 βˆ’595 0 406 βˆ’595 0 βˆ’227 βˆ’406 595 0 βˆ’227 βˆ’596 0 158 βˆ’596 0 227 βˆ’158 596 0 βˆ’595 597 0 βˆ’596 597 0 595 596 βˆ’597 0 227 βˆ’598 0 409 βˆ’598 0 βˆ’227 βˆ’409 598 0 βˆ’227 βˆ’599 0 159 βˆ’599 0 227 βˆ’159 599 0 βˆ’598 600 0 βˆ’599 600 0 598 599 βˆ’600 0 227 βˆ’601 0 412 βˆ’601 0 βˆ’227 βˆ’412 601 0 βˆ’227 βˆ’602 0 160 βˆ’602 0 227 βˆ’160 602 0 βˆ’601 603 0 βˆ’602 603 0 601 602 βˆ’603 0 227 βˆ’604 0 415 βˆ’604 0 βˆ’227 βˆ’415 604 0 βˆ’227 βˆ’605 0 161 βˆ’605 0 227 βˆ’161 605 0 βˆ’604 606 0 βˆ’605 606 0 604 605 βˆ’606 0 32 βˆ’607 0 35 βˆ’607 0 βˆ’32 βˆ’35 607 0 32 βˆ’608 0 36 βˆ’608 0 βˆ’32 βˆ’36 608 0 32 βˆ’609 0 37 βˆ’609 0 βˆ’32 βˆ’37 609 0 32 βˆ’610 0 38 βˆ’610 0 βˆ’32 βˆ’38 610 0 32 βˆ’611 0 39 βˆ’611 0 βˆ’32 βˆ’39 611 0 32 βˆ’612 0 40 βˆ’612 0 βˆ’32 βˆ’40 612 0 32 βˆ’613 0 41 βˆ’613 0 βˆ’32 βˆ’41 613 0 32 βˆ’614 0 42 βˆ’614 0 βˆ’32 βˆ’42 614 0 32 βˆ’615 0 43 βˆ’615 0 βˆ’32 βˆ’43 615 0 32 βˆ’616 0 44 βˆ’616 0 βˆ’32 βˆ’44 616 0 32 βˆ’617 0 45 βˆ’617 0 βˆ’32 βˆ’45 617 0 32 βˆ’618 0 46 βˆ’618 0 βˆ’32 βˆ’46 618 0 32 βˆ’619 0 47 βˆ’619 0 βˆ’32 βˆ’47 619 0 32 βˆ’620 0 48 βˆ’620 0 βˆ’32 βˆ’48 620 0 32 βˆ’621 0 49 βˆ’621 0 βˆ’32 βˆ’49 621 0 32 βˆ’622 0 50 βˆ’622 0 βˆ’32 βˆ’50 622 0 32 βˆ’623 0 51 βˆ’623 0 βˆ’32 βˆ’51 623 0 32 βˆ’624 0 52 βˆ’624 0 βˆ’32 βˆ’52 624 0 32 βˆ’625 0 53 βˆ’625 0 βˆ’32 βˆ’53 625 0 32 βˆ’626 0 54 βˆ’626 0 βˆ’32 βˆ’54 626 0 32 βˆ’627 0 55 βˆ’627 0 βˆ’32 βˆ’55 627 0 32 βˆ’628 0 56 βˆ’628 0 βˆ’32 βˆ’56 628 0 32 βˆ’629 0 57 βˆ’629 0 βˆ’32 βˆ’57 629 0 32 βˆ’630 0 58 βˆ’630 0 βˆ’32 βˆ’58 630 0 32 βˆ’631 0 59 βˆ’631 0 βˆ’32 βˆ’59 631 0 32 βˆ’632 0 60 βˆ’632 0 βˆ’32 βˆ’60 632 0 32 βˆ’633 0 61 βˆ’633 0 βˆ’32 βˆ’61 633 0 32 βˆ’634 0 62 βˆ’634 0 βˆ’32 βˆ’62 634 0 32 βˆ’635 0 63 βˆ’635 0 βˆ’32 βˆ’63 635 0 32 βˆ’636 0 64 βˆ’636 0 βˆ’32 βˆ’64 636 0 32 βˆ’637 0 65 βˆ’637 0 βˆ’32 βˆ’65 637 0 32 βˆ’638 0 66 βˆ’638 0 βˆ’32 βˆ’66 638 0 βˆ’32 βˆ’639 0 420 βˆ’639 0 32 βˆ’420 639 0 32 βˆ’640 0 67 βˆ’640 0 βˆ’32 βˆ’67 640 0 βˆ’639 641 0 βˆ’640 641 0 639 640 βˆ’641 0 βˆ’32 βˆ’642 0 423 βˆ’642 0 32 βˆ’423 642 0 32 βˆ’643 0 68 βˆ’643 0 βˆ’32 βˆ’68 643 0 βˆ’642 644 0 βˆ’643 644 0 642 643 βˆ’644 0 βˆ’32 βˆ’645 0 426 βˆ’645 0 32 βˆ’426 645 0 32 βˆ’646 0 69 βˆ’646 0 βˆ’32 βˆ’69 646 0 βˆ’645 647 0 βˆ’646 647 0 645 646 βˆ’647 0 βˆ’32 βˆ’648 0 429 βˆ’648 0 32 βˆ’429 648 0 32 βˆ’649 0 70 βˆ’649 0 βˆ’32 βˆ’70 649 0 βˆ’648 650 0 βˆ’649 650 0 648 649 βˆ’650 0 βˆ’32 βˆ’651 0 432 βˆ’651 0 32 βˆ’432 651 0 32 βˆ’652 0 71 βˆ’652 0 βˆ’32 βˆ’71 652 0 βˆ’651 653 0 βˆ’652 653 0 651 652 βˆ’653 0 βˆ’32 βˆ’654 0 435 βˆ’654 0 32 βˆ’435 654 0 32 βˆ’655 0 72 βˆ’655 0 βˆ’32 βˆ’72 655 0 βˆ’654 656 0 βˆ’655 656 0 654 655 βˆ’656 0 βˆ’32 βˆ’657 0 438 βˆ’657 0 32 βˆ’438 657 0 32 βˆ’658 0 73 βˆ’658 0 βˆ’32 βˆ’73 658 0 βˆ’657 659 0 βˆ’658 659 0 657 658 βˆ’659 0 βˆ’32 βˆ’660 0 441 βˆ’660 0 32 βˆ’441 660 0 32 βˆ’661 0 74 βˆ’661 0 βˆ’32 βˆ’74 661 0 βˆ’660 662 0 βˆ’661 662 0 660 661 βˆ’662 0 βˆ’32 βˆ’663 0 444 βˆ’663 0 32 βˆ’444 663 0 32 βˆ’664 0 75 βˆ’664 0 βˆ’32 βˆ’75 664 0 βˆ’663 665 0 βˆ’664 665 0 663 664 βˆ’665 0 βˆ’32 βˆ’666 0 447 βˆ’666 0 32 βˆ’447 666 0 32 βˆ’667 0 76 βˆ’667 0 βˆ’32 βˆ’76 667 0 βˆ’666 668 0 βˆ’667 668 0 666 667 βˆ’668 0 βˆ’32 βˆ’669 0 450 βˆ’669 0 32 βˆ’450 669 0 32 βˆ’670 0 77 βˆ’670 0 βˆ’32 βˆ’77 670 0 βˆ’669 671 0 βˆ’670 671 0 669 670 βˆ’671 0 βˆ’32 βˆ’672 0 453 βˆ’672 0 32 βˆ’453 672 0 32 βˆ’673 0 78 βˆ’673 0 βˆ’32 βˆ’78 673 0 βˆ’672 674 0 βˆ’673 674 0 672 673 βˆ’674 0 βˆ’32 βˆ’675 0 456 βˆ’675 0 32 βˆ’456 675 0 32 βˆ’676 0 79 βˆ’676 0 βˆ’32 βˆ’79 676 0 βˆ’675 677 0 βˆ’676 677 0 675 676 βˆ’677 0 βˆ’32 βˆ’678 0 459 βˆ’678 0 32 βˆ’459 678 0 32 βˆ’679 0 80 βˆ’679 0 βˆ’32 βˆ’80 679 0 βˆ’678 680 0 βˆ’679 680 0 678 679 βˆ’680 0 βˆ’32 βˆ’681 0 462 βˆ’681 0 32 βˆ’462 681 0 32 βˆ’682 0 81 βˆ’682 0 βˆ’32 βˆ’81 682 0 βˆ’681 683 0 βˆ’682 683 0 681 682 βˆ’683 0 βˆ’32 βˆ’684 0 465 βˆ’684 0 32 βˆ’465 684 0 32 βˆ’685 0 82 βˆ’685 0 βˆ’32 βˆ’82 685 0 βˆ’684 686 0 βˆ’685 686 0 684 685 βˆ’686 0 βˆ’32 βˆ’687 0 468 βˆ’687 0 32 βˆ’468 687 0 32 βˆ’688 0 83 βˆ’688 0 βˆ’32 βˆ’83 688 0 βˆ’687 689 0 βˆ’688 689 0 687 688 βˆ’689 0 βˆ’32 βˆ’690 0 471 βˆ’690 0 32 βˆ’471 690 0 32 βˆ’691 0 84 βˆ’691 0 βˆ’32 βˆ’84 691 0 βˆ’690 692 0 βˆ’691 692 0 690 691 βˆ’692 0 βˆ’32 βˆ’693 0 474 βˆ’693 0 32 βˆ’474 693 0 32 βˆ’694 0 85 βˆ’694 0 βˆ’32 βˆ’85 694 0 βˆ’693 695 0 βˆ’694 695 0 693 694 βˆ’695 0 βˆ’32 βˆ’696 0 477 βˆ’696 0 32 βˆ’477 696 0 32 βˆ’697 0 86 βˆ’697 0 βˆ’32 βˆ’86 697 0 βˆ’696 698 0 βˆ’697 698 0 696 697 βˆ’698 0 βˆ’32 βˆ’699 0 480 βˆ’699 0 32 βˆ’480 699 0 32 βˆ’700 0 87 βˆ’700 0 βˆ’32 βˆ’87 700 0 βˆ’699 701 0 βˆ’700 701 0 699 700 βˆ’701 0 βˆ’32 βˆ’702 0 483 βˆ’702 0 32 βˆ’483 702 0 32 βˆ’703 0 88 βˆ’703 0 βˆ’32 βˆ’88 703 0 βˆ’702 704 0 βˆ’703 704 0 702 703 βˆ’704 0 βˆ’32 βˆ’705 0 486 βˆ’705 0 32 βˆ’486 705 0 32 βˆ’706 0 89 βˆ’706 0 βˆ’32 βˆ’89 706 0 βˆ’705 707 0 βˆ’706 707 0 705 706 βˆ’707 0 βˆ’32 βˆ’708 0 489 βˆ’708 0 32 βˆ’489 708 0 32 βˆ’709 0 90 βˆ’709 0 βˆ’32 βˆ’90 709 0 βˆ’708 710 0 βˆ’709 710 0 708 709 βˆ’710 0 βˆ’32 βˆ’711 0 492 βˆ’711 0 32 βˆ’492 711 0 32 βˆ’712 0 91 βˆ’712 0 βˆ’32 βˆ’91 712 0 βˆ’711 713 0 βˆ’712 713 0 711 712 βˆ’713 0 βˆ’32 βˆ’714 0 495 βˆ’714 0 32 βˆ’495 714 0 32 βˆ’715 0 92 βˆ’715 0 βˆ’32 βˆ’92 715 0 βˆ’714 716 0 βˆ’715 716 0 714 715 βˆ’716 0 βˆ’32 βˆ’717 0 498 βˆ’717 0 32 βˆ’498 717 0 32 βˆ’718 0 93 βˆ’718 0 βˆ’32 βˆ’93 718 0 βˆ’717 719 0 βˆ’718 719 0 717 718 βˆ’719 0 βˆ’32 βˆ’720 0 501 βˆ’720 0 32 βˆ’501 720 0 32 βˆ’721 0 94 βˆ’721 0 βˆ’32 βˆ’94 721 0 βˆ’720 722 0 βˆ’721 722 0 720 721 βˆ’722 0 βˆ’32 βˆ’723 0 504 βˆ’723 0 32 βˆ’504 723 0 32 βˆ’724 0 95 βˆ’724 0 βˆ’32 βˆ’95 724 0 βˆ’723 725 0 βˆ’724 725 0 723 724 βˆ’725 0 βˆ’32 βˆ’726 0 507 βˆ’726 0 32 βˆ’507 726 0 32 βˆ’727 0 96 βˆ’727 0 βˆ’32 βˆ’96 727 0 βˆ’726 728 0 βˆ’727 728 0 726 727 βˆ’728 0 βˆ’32 βˆ’729 0 510 βˆ’729 0 32 βˆ’510 729 0 32 βˆ’730 0 97 βˆ’730 0 βˆ’32 βˆ’97 730 0 βˆ’729 731 0 βˆ’730 731 0 729 730 βˆ’731 0 βˆ’32 βˆ’732 0 513 βˆ’732 0 32 βˆ’513 732 0 32 βˆ’733 0 98 βˆ’733 0 βˆ’32 βˆ’98 733 0 βˆ’732 734 0 βˆ’733 734 0 732 733 βˆ’734 0 βˆ’32 βˆ’735 0 βˆ’227 βˆ’735 0 32 227 735 0 βˆ’32 βˆ’736 0 516 βˆ’736 0 32 βˆ’516 736 0 βˆ’32 βˆ’737 0 519 βˆ’737 0 32 βˆ’519 737 0 βˆ’32 βˆ’738 0 522 βˆ’738 0 32 βˆ’522 738 0 βˆ’32 βˆ’739 0 525 βˆ’739 0 32 βˆ’525 739 0 βˆ’32 βˆ’740 0 528 βˆ’740 0 32 βˆ’528 740 0 βˆ’32 βˆ’741 0 531 βˆ’741 0 32 βˆ’531 741 0 βˆ’32 βˆ’742 0 534 βˆ’742 0 32 βˆ’534 742 0 βˆ’32 βˆ’743 0 537 βˆ’743 0 32 βˆ’537 743 0 βˆ’32 βˆ’744 0 540 βˆ’744 0 32 βˆ’540 744 0 βˆ’32 βˆ’745 0 543 βˆ’745 0 32 βˆ’543 745 0 βˆ’32 βˆ’746 0 546 βˆ’746 0 32 βˆ’546 746 0 βˆ’32 βˆ’747 0 549 βˆ’747 0 32 βˆ’549 747 0 βˆ’32 βˆ’748 0 552 βˆ’748 0 32 βˆ’552 748 0 βˆ’32 βˆ’749 0 555 βˆ’749 0 32 βˆ’555 749 0 βˆ’32 βˆ’750 0 558 βˆ’750 0 32 βˆ’558 750 0 βˆ’32 βˆ’751 0 561 βˆ’751 0 32 βˆ’561 751 0 βˆ’32 βˆ’752 0 564 βˆ’752 0 32 βˆ’564 752 0 βˆ’32 βˆ’753 0 567 βˆ’753 0 32 βˆ’567 753 0 βˆ’32 βˆ’754 0 570 βˆ’754 0 32 βˆ’570 754 0 βˆ’32 βˆ’755 0 573 βˆ’755 0 32 βˆ’573 755 0 βˆ’32 βˆ’756 0 576 βˆ’756 0 32 βˆ’576 756 0 βˆ’32 βˆ’757 0 579 βˆ’757 0 32 βˆ’579 757 0 βˆ’32 βˆ’758 0 582 βˆ’758 0 32 βˆ’582 758 0 βˆ’32 βˆ’759 0 585 βˆ’759 0 32 βˆ’585 759 0 βˆ’32 βˆ’760 0 588 βˆ’760 0 32 βˆ’588 760 0 βˆ’32 βˆ’761 0 591 βˆ’761 0 32 βˆ’591 761 0 βˆ’32 βˆ’762 0 594 βˆ’762 0 32 βˆ’594 762 0 βˆ’32 βˆ’763 0 597 βˆ’763 0 32 βˆ’597 763 0 βˆ’32 βˆ’764 0 600 βˆ’764 0 32 βˆ’600 764 0 βˆ’32 βˆ’765 0 603 βˆ’765 0 32 βˆ’603 765 0 βˆ’32 βˆ’766 0 606 βˆ’766 0 32 βˆ’606 766 0 1 767 0 βˆ’1 βˆ’767 0 1 768 0 βˆ’1 βˆ’768 0 1 769 0 βˆ’768 769 0 βˆ’1 768 βˆ’769 0 1 770 0 βˆ’769 770 0 βˆ’1 769 βˆ’770 0 1 771 0 βˆ’770 771 0 βˆ’1 770 βˆ’771 0 1 772 0 βˆ’771 772 0 βˆ’1 771 βˆ’772 0 1 773 0 βˆ’772 773 0 βˆ’1 772 βˆ’773 0 1 774 0 βˆ’773 774 0 βˆ’1 773 βˆ’774 0 1 775 0 βˆ’774 775 0 βˆ’1 774 βˆ’775 0 1 776 0 βˆ’775 776 0 βˆ’1 775 βˆ’776 0 1 777 0 βˆ’776 777 0 βˆ’1 776 βˆ’777 0 1 778 0 βˆ’777 778 0 βˆ’1 777 βˆ’778 0 1 779 0 βˆ’778 779 0 βˆ’1 778 βˆ’779 0 1 780 0 βˆ’779 780 0 βˆ’1 779 βˆ’780 0 1 781 0 βˆ’780 781 0 βˆ’1 780 βˆ’781 0 1 782 0 βˆ’781 782 0 βˆ’1 781 βˆ’782 0 1 783 0 βˆ’782

ASSERT(main_0_i_1 = 0bin00000000000000000000000000000000); QUERY((BVLT(main_0_i_1, 0bin00000000000000000000000000000010)) =>(BVGE(main_0_i_1, 0bin00000000000000000000000000000000)) AND(BVLT(main_0_i_1, 0bin00000000000000000000000000000101))); ASSERT main_0_a_1 = IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN main_0_a_0 WITH[main_0_i_1]:= main_0_i_1 ELSE main_0_a_0 ENDIF;ASSERT(main_0_temp_i_1= IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN main_0_i_1 ELSEmain_0_temp_i_0 ENDIF); ASSERT(main_0_i_2= IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN BVPLUS(32, main_0_i_1,0bin00000000000000000000000000000001) ELSE main_0_i_1 ENDIF); QUERY((BVLT(main_0_i_2, 0bin00000000000000000000000000000010)) =>(BVGE(main_0_i_2, 0bin00000000000000000000000000000000)) AND(BVLT(main_0_i_2, 0bin00000000000000000000000000000101))); ASSERT main_0_a_2 = IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN main_0_a_1 WITH[main_0_i_2]:= main_0_i_2 ELSE main_0_a_1 ENDIF;ASSERT(main_0_temp_i_2= IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN main_0_i_2 ELSEmain_0_temp_i_1 ENDIF); ASSERT(main_0_i_3= IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN BVPLUS(32, main_0_i_2,0bin00000000000000000000000000000001) ELSE main_0_i_2 ENDIF); QUERY( (BVLT(main_0_i_2, 0bin00000000000000000000000000000010)) =>NOT( (BVLT(main_0_i_3, 0bin00000000000000000000000000000010))));

ASSERT(main_0_i_1 = 0bin00000000000000000000000000000000); QUERY((BVLT(main_0_i_1, 0bin00000000000000000000000000000010)) =>(BVGE(main_0_i_1, 0bin00000000000000000000000000000000)) AND(BVLT(main_0_i_1, 0bin00000000000000000000000000000101))); ASSERT main_0_a_1 = IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN main_0_a_0 WITH[main_0_i_1]:= main_0_i_1 ELSE main_0_a_0 ENDIF;ASSERT(main_0_temp_i_1= IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN main_0_i_1 ELSEmain_0_temp_i_0 ENDIF); ASSERT(main_0_i_2= IF (BVLT(main_0_i_1,0bin00000000000000000000000000000010)) THEN BVPLUS(32, main_0_i_1,0bin00000000000000000000000000000001) ELSE main_0_i_1 ENDIF); QUERY((BVLT(main_0_i_2, 0bin00000000000000000000000000000010)) =>(BVGE(main_0_i_2, 0bin00000000000000000000000000000000)) AND(BVLT(main_0_i_2, 0bin00000000000000000000000000000101))); ASSERT main_0_a_2 = IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN main_0_a_1 WITH[main_0_i_2]:= main_0_i_2 ELSE main_0_a_1 ENDIF;ASSERT(main_0_temp_i_2= IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN main_0_i_2 ELSEmain_0_temp_i_1 ENDIF); ASSERT(main_0_i_3= IF (BVLT(main_0_i_2,0bin00000000000000000000000000000010)) THEN BVPLUS(32, main_0_i_2,0bin00000000000000000000000000000001) ELSE main_0_i_2 ENDIF); QUERY( (BVLT(main_0_i_2, 0bin00000000000000000000000000000010)) =>NOT( (BVLT(main_0_i_3, 0bin00000000000000000000000000000010))));

SAT

SMT

Page 18: SAT for Software Model Checking Introduction to SAT-problem for newbie

β€’ SAT-solver optimization using software structures– Using control flow information to prune search

space– Data structures(Abstraction)?– User Interaction?

β€’ Code to SAT formula– Pointers?– Object-Oriented Structures?

β€’ SAT vs SMT?