Refactor FiniteArray to an implicit representation
FiniteArray now takes an Expr for the length, a default Expr, and a Map of defined Expr for some of its elements. Adapt the rest of Leon to the new trees. The PrettyPrinter tries to be a little bit smart about how to print the array, only printing a few elements when the array gets too big. The regression test produces an huge array counter-example that used to lead to a crash of Leon with the previous implementation of Array (fully represented in memory).
Showing
- src/main/scala/leon/codegen/CodeGeneration.scala 4 additions, 3 deletionssrc/main/scala/leon/codegen/CodeGeneration.scala
- src/main/scala/leon/codegen/CompilationUnit.scala 2 additions, 2 deletionssrc/main/scala/leon/codegen/CompilationUnit.scala
- src/main/scala/leon/evaluators/RecursiveEvaluator.scala 12 additions, 16 deletionssrc/main/scala/leon/evaluators/RecursiveEvaluator.scala
- src/main/scala/leon/frontends/scalac/CodeExtraction.scala 1 addition, 1 deletionsrc/main/scala/leon/frontends/scalac/CodeExtraction.scala
- src/main/scala/leon/purescala/Extractors.scala 17 additions, 4 deletionssrc/main/scala/leon/purescala/Extractors.scala
- src/main/scala/leon/purescala/PrettyPrinter.scala 29 additions, 3 deletionssrc/main/scala/leon/purescala/PrettyPrinter.scala
- src/main/scala/leon/purescala/ScalaPrinter.scala 27 additions, 1 deletionsrc/main/scala/leon/purescala/ScalaPrinter.scala
- src/main/scala/leon/purescala/TreeOps.scala 1 addition, 1 deletionsrc/main/scala/leon/purescala/TreeOps.scala
- src/main/scala/leon/purescala/Trees.scala 10 additions, 2 deletionssrc/main/scala/leon/purescala/Trees.scala
- src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala 2 additions, 2 deletionssrc/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala
- src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala 10 additions, 2 deletionssrc/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala
- src/main/scala/leon/solvers/smtlib/SMTLIBZ3Target.scala 4 additions, 3 deletionssrc/main/scala/leon/solvers/smtlib/SMTLIBZ3Target.scala
- src/main/scala/leon/solvers/z3/AbstractZ3Solver.scala 12 additions, 18 deletionssrc/main/scala/leon/solvers/z3/AbstractZ3Solver.scala
- src/main/scala/leon/verification/VerificationReport.scala 0 additions, 1 deletionsrc/main/scala/leon/verification/VerificationReport.scala
- src/test/resources/regression/verification/purescala/invalid/BigArray.scala 11 additions, 0 deletions.../regression/verification/purescala/invalid/BigArray.scala
- src/test/scala/leon/test/evaluators/DefaultEvaluatorTests.scala 43 additions, 0 deletions...st/scala/leon/test/evaluators/DefaultEvaluatorTests.scala
Loading
Please register or sign in to comment