SAT for Software Model Checking Introduction to SAT-problem for newbie
description
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/1.jpg)
Choi, Chang-Beom@pswlab
2007.09.07
![Page 2: SAT for Software Model Checking Introduction to SAT-problem for newbie](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/2.jpg)
β’ Motivation
β’ Model Checking as a SAT problem
β’ SAT & SAT-solver?
β’ Discussion
![Page 3: SAT for Software Model Checking Introduction to SAT-problem for newbie](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/4.jpg)
Target Program Requirement
Properties
![Page 5: SAT for Software Model Checking Introduction to SAT-problem for newbie](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/5.jpg)
μ 5 μΈλΆκ³Όμ : κΉλ¬Έμ£Ό
2 processes3 processes
4 processes
![Page 6: SAT for Software Model Checking Introduction to SAT-problem for newbie](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/8.jpg)
β’ 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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/9.jpg)
β’ 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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/10.jpg)
β’ 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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/11.jpg)
β’ 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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/13.jpg)
{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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/14.jpg)
β’ 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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022051516/5681440b550346895db0a2d2/html5/thumbnails/18.jpg)
β’ 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?