Skip to content
Snippets Groups Projects
  1. Dec 19, 2012
    • Etienne Kneuss's avatar
      Improve performance of FairZ3 by lowering unrolling to the z3 level. Improve... · b9d98db8
      Etienne Kneuss authored
      Improve performance of FairZ3 by lowering unrolling to the z3 level.  Improve synthesis profiling script.
      
      Improve performance of FairZ3:
      
        Make function templates and unlocking/unrolling work directly at the z3 level for performance reasons.
      
        Implement push-pop at the unrolling-bank level. Works around a z3 bug.
      
        Z3 apparently side-effects during check-assumptions, causing a following
        check without assumptions to produce unreliable results. We work around this
        by backtracking to the state before the check-assumptions using
        push/pop.
      
      Improve synthesis profiling/benchmarking:
      
        Move benchrmarking suite away from tests. Synthesis Rule application
        benchmark can now use a --rule option specifying what rule to apply.
      
        Add Testcase to evaluate CEGIS unrolling of different depth.
        Benchmarking script is now generated via the 'bench' sbt task.
      b9d98db8
    • Etienne Kneuss's avatar
      51dd9459
  2. Dec 17, 2012
    • Philippe Suter's avatar
      Generalization of Evaluators, and CodeGenEvaluator. · d1592f32
      Philippe Suter authored
      Evaluators now have a common interface, and need to be instantiated
      before they can be used. This makes them more like solvers, and allows
      us to switch between them completely transparently.
      
      Evaluators should support `eval` and `compile`. The default
      implementation for `compile` returns a closure that invokes `eval` each
      time.
      
      `eval` returns one of three results:
        - EvaluationSuccessful: evaluation terminated with a value
        - EvaluationFailure: evaluation resulted in a runtime error
        - EvaluationError: evaluation resulted in an internal error
      
      CodeGenEvaluator is a drop-in substitute for DefaultEvaluator. It works
      by compiling Leon methods to Java bytecode which is loaded dynamically.
      The `compile` method should be used as much as possible, as `eval` will
      recompile the expression each time (the functions from the Leon program
      are always compiled only once, though). CodeGenEvaluator intercepts most
      runtime errors and rewrites them into `EvaluationFailure` results.
      
      Use --codegen to use code generation as the evaluator of choice within
      FairZ3Solver. (Has no effect if neither --feelinglucky nor --checkmodels
      is used.)
      
      Improvements of EvaluatorsTests testing suite, and verification
      regression suite is now run twice (with different options). As a result,
      the original tests for codegen are obsolete.
      d1592f32
  3. Dec 15, 2012
  4. Dec 14, 2012
  5. Dec 13, 2012
  6. Dec 12, 2012
Loading