@@ -191,20 +191,19 @@ object SolverFactory {
191
191
}
192
192
})
193
193
194
- case _ if finalName.startsWith( " smt-z3" ) => create(p)(finalName, {
194
+ case " smt-z3-opt " => create(p)(finalName, {
195
195
val chooseEnc = ChooseEncoder (p)(enc)
196
196
val fullEnc = enc andThen chooseEnc
197
197
val theoryEnc = theories.Z3 (fullEnc.targetProgram)
198
198
val progEnc = fullEnc andThen theoryEnc
199
199
val targetProg = progEnc.targetProgram
200
200
val targetSem = targetProg.getSemantics
201
- val executableName = if (finalName == " smt-z3" ) " z3" else finalName.drop(7 )
202
201
203
202
() => new {
204
203
val program : p.type = p
205
204
val context = ctx
206
205
val encoder : enc.type = enc
207
- } with UnrollingSolver with TimeoutSolver with tip. TipDebugger {
206
+ } with UnrollingOptimizer with TimeoutSolver {
208
207
override protected val semantics = sem
209
208
override protected val chooses : chooseEnc.type = chooseEnc
210
209
override protected val theories : theoryEnc.type = theoryEnc
@@ -216,26 +215,26 @@ object SolverFactory {
216
215
protected val underlying = new {
217
216
val program : progEnc.targetProgram.type = progEnc.targetProgram
218
217
val context = ctx
219
- } with smtlib.Z3Solver {
218
+ } with smtlib.optimization. Z3Optimizer {
220
219
val semantics : program.Semantics = targetSem
221
- override def targetName = executableName
222
220
}
223
221
}
224
222
})
225
223
226
- case " smt-z3-opt " => create(p)(finalName, {
224
+ case _ if finalName.startsWith( " smt-z3" ) => create(p)(finalName, {
227
225
val chooseEnc = ChooseEncoder (p)(enc)
228
226
val fullEnc = enc andThen chooseEnc
229
227
val theoryEnc = theories.Z3 (fullEnc.targetProgram)
230
228
val progEnc = fullEnc andThen theoryEnc
231
229
val targetProg = progEnc.targetProgram
232
230
val targetSem = targetProg.getSemantics
231
+ val executableName = if (finalName == " smt-z3" ) " z3" else finalName.drop(7 )
233
232
234
233
() => new {
235
234
val program : p.type = p
236
235
val context = ctx
237
236
val encoder : enc.type = enc
238
- } with UnrollingOptimizer with TimeoutSolver {
237
+ } with UnrollingSolver with TimeoutSolver with tip. TipDebugger {
239
238
override protected val semantics = sem
240
239
override protected val chooses : chooseEnc.type = chooseEnc
241
240
override protected val theories : theoryEnc.type = theoryEnc
@@ -247,8 +246,9 @@ object SolverFactory {
247
246
protected val underlying = new {
248
247
val program : progEnc.targetProgram.type = progEnc.targetProgram
249
248
val context = ctx
250
- } with smtlib.optimization. Z3Optimizer {
249
+ } with smtlib.Z3Solver {
251
250
val semantics : program.Semantics = targetSem
251
+ override def targetName = executableName
252
252
}
253
253
}
254
254
})
0 commit comments