Unify and simplify function templates and unrolling banks
- Both Expr-based solvers and z3-based solvers rely on same template generation routines and unrolling strategy. Templates and unrolling bank is refactored in solvers.templates._ - Encoding is done through TemplateEncoder. Performance highly relies on an efficient TemplateEncoder.substitute() implementation.
Showing
- src/main/scala/leon/solvers/SolverFactory.scala 2 additions, 4 deletionssrc/main/scala/leon/solvers/SolverFactory.scala
- src/main/scala/leon/solvers/combinators/UnrollingSolver.scala 132 additions, 102 deletions...main/scala/leon/solvers/combinators/UnrollingSolver.scala
- src/main/scala/leon/solvers/templates/FunctionTemplate.scala 131 additions, 0 deletionssrc/main/scala/leon/solvers/templates/FunctionTemplate.scala
- src/main/scala/leon/solvers/templates/TemplateCallInfo.scala 13 additions, 0 deletionssrc/main/scala/leon/solvers/templates/TemplateCallInfo.scala
- src/main/scala/leon/solvers/templates/TemplateEncoder.scala 18 additions, 0 deletionssrc/main/scala/leon/solvers/templates/TemplateEncoder.scala
- src/main/scala/leon/solvers/templates/TemplateGenerator.scala 38 additions, 89 deletions...main/scala/leon/solvers/templates/TemplateGenerator.scala
- src/main/scala/leon/solvers/templates/UnrollingBank.scala 191 additions, 0 deletionssrc/main/scala/leon/solvers/templates/UnrollingBank.scala
- src/main/scala/leon/solvers/z3/FairZ3Solver.scala 32 additions, 204 deletionssrc/main/scala/leon/solvers/z3/FairZ3Solver.scala
- src/main/scala/leon/solvers/z3/FunctionTemplate.scala 0 additions, 344 deletionssrc/main/scala/leon/solvers/z3/FunctionTemplate.scala
Loading
Please register or sign in to comment