Skip to content
Snippets Groups Projects
  1. Jan 11, 2013
    • Viktor Kuncak's avatar
    • Viktor Kuncak's avatar
      Synthesis (and verification) benchmarks: · 31df5929
      Viktor Kuncak authored
        Address book
        Converting trees to lists
        Mikael's new year
      31df5929
    • Philippe Suter's avatar
      Fixed ClassLoader issue and type errors in evaluation. · 198a5489
      Philippe Suter authored
      This fixes the classloader issue that we had, where, in codegen, a
      library class would be loaded twice and be incompatible with itself.
      
      It also fixes an oversight in evaluating expressions, where the returned
      ground term was sometimes untyped (typically: empty sets and the like).
      We now copy the type of the (unevaluated) expression in such situations.
      198a5489
    • Philippe Suter's avatar
      --evalground makes FairZ3 evaluate ground applications · 1a0b9f93
      Philippe Suter authored
      Without the flag, functions applied to ground arguments are treated the
      same way as every other one: by unrolling their body. This is
      suboptimal, as we can instead pass to Z3 the equality f(a0, a1) = v,
      instead of letting it "discover" it by itself.
      
      Note that this hasn't been shown to bring any major performance
      improvement; ground applications hardly show up in verification, for
      instance. But think about it, you'll agree using evaluation there is
      "The right thing to do.™".
      
      Note that testing --evalground currently highlights some bugs.
      1a0b9f93
    • Etienne Kneuss's avatar
      Propagate expected types to onSuccess · e4a278b4
      Etienne Kneuss authored
      This allows CostModels to estimate correctly the minimal cost of a
      applying a rule.
      
      With type information on the expected types of a solution
      reconstruction, the cost model can provide dummy values of the correct
      type, avoiding assertion errors when composing solutions.
      e4a278b4
  2. Jan 10, 2013
  3. Jan 09, 2013
  4. Jan 08, 2013
    • Philippe Suter's avatar
      Sorting testcases. · 2f5c6c88
      Philippe Suter authored
      Includes completely verified implementations of merge sort and insertion
      sort. The synthesis tasks are currently beyond our reach.
      2f5c6c88
    • Etienne Kneuss's avatar
      Allow onSuccess to fail. This is necessary to prevent soundness issues. · 965264c3
      Etienne Kneuss authored
      The synthesizer used to generate wrong programs by generating inductive
      programs with an impossible base-case. onSuccess on inductive rules now
      prevents this by checking that sufficiently many cases have precondition
      == true. Otherwise, onSuccess fails. This last-moment failure is now
      handled correctly.
      
      Strenghten precondition
      965264c3
    • Etienne Kneuss's avatar
      Add various benchmarks · abd6a94c
      Etienne Kneuss authored
      New Verification Benchmarks:
          - Addresses
          - AmortizedQueue
          - TreeListSet
      
      New Synthesis Benchmarks:
          - List
          - BinaryTree
          - AVLTree (incomplete)
      abd6a94c
    • Etienne Kneuss's avatar
      Accelerate CEGIS by disabling features we thought would help · 087889d5
      Etienne Kneuss authored
      CEGIS now support internal flags that can enable/disable its features:
      
      1) Injecting Counter-Examples on top of the unsat core to drive the
         search to interesting areas. Does not help => disabled
      
      2) Computing Unsat-Cores to strenghten the search of programs. Help in
         some cases, doesn't hurt much => enabled
      
      3) Checking whether the formula is unsat without blockers, to unrolling
         when there is no chance of finding a solution. Does not help =>
         disable
      
      4) Add support for function calls in CEGIS generators. This is disabled
         by default and can be enabled using --cegis:gencalls.
      
      It seems that doing additional checks in 1) and 3) triggers FairZ3 to
      unroll more, tempering with the performance of the solver.
      
      Also, this implements some improvements in the resulting programs by
      simplifying further expressions.
      087889d5
  5. Jan 07, 2013
  6. Jan 04, 2013
  7. Jan 03, 2013
  8. Dec 21, 2012
    • Régis Blanc's avatar
      Implement a new XlangAnalysisPhase · 32d53a55
      Régis Blanc authored
      This commit introduces a new XlangAnalysisPhase that run
      all the xlang phase as well as the AnalysisPhase. It updates
      the Main accordingly.
      
      The reason for this change is to be able to correctly control
      the --functions option as well as transforming each VerificationCondition
      about function postcondition into loop invariant.
      
      The previous solution was to use some mutable states inside the FunDef object.
      Those are cleaned by this commit. To do so, it was necessary to change the
      transformation phases signature in order to return along with the modified
      program a Set or Map (depending on which phase) of freshly introduced
      functions and their correspondance in the original program.
      
      One small change that was necessary was to not print the verification report
      in the analysis phase but only in the Main. This allows the XlangAnalysisPhase
      to update correctly the verification conditions in the report before it gets
      printed. This is also arguably a better design decision to have it printed
      in the Main since it was returned by the AnalysisPhase.
      32d53a55
  9. Dec 20, 2012
    • Philippe Suter's avatar
      New verification testcase. · 9fccd029
      Philippe Suter authored
      Finite sorting functions (essentially, hard-coded insertion sort for up
      to 5 values). Also included as a regression test.
      9fccd029
    • Philippe Suter's avatar
      Displaying counter-examples. · a2479356
      Philippe Suter authored
      FairZ3Solver no longer displays counter-examples. As a result, they were
      not shown when doing verification. The fix is to have AnalysisPhase
      display the counter-examples when it wants to.
      a2479356
    • Philippe Suter's avatar
      Bug fix in code generation. · 3c0a8231
      Philippe Suter authored
      Before this fix, generation for Iff would trigger an infinite loop,
      because of automated conversions between Equals for Booleans and Iff.
      
      Includes a regression test for the fixed issue.
      3c0a8231
  10. Dec 19, 2012
Loading