Skip to content
Snippets Groups Projects
  1. Jun 03, 2013
    • Etienne Kneuss's avatar
      Apply BSD 2 clauses license · 3cb6d843
      Etienne Kneuss authored
      3cb6d843
    • Régis Blanc's avatar
      Introduces a phase to protect exact type of vars · f697e53d
      Régis Blanc authored
      This new phase is invoked after the extraction phase. It will rewrite
      precondition (and postcondition) of functions to add instanceOf when the
      parameter (and return type) is a case class concrete type (instead of abstract
      class).
      
      If not done, then during the mapping to Z3 we lose the precise subtype
      information, and Z3 will be able to find non valid counter-examples,
      of a different case class for example.
      
      Since tests are very important, we introduce two testcases that make
      sure the issue is fixed. We also needed to update the Testcase runners
      to make use of the new pipeline.
      f697e53d
  2. May 30, 2013
  3. May 21, 2013
  4. May 06, 2013
  5. Apr 23, 2013
  6. Apr 16, 2013
    • Régis Blanc's avatar
      Introduces purely functional array benchmarks · ae34a9ea
      Régis Blanc authored
      This commit use array with a purely functional styles to process them.
      In particular, it uses recursive function instead of while loop.
      Those benchmarks are easier to debug than the equivalent ones relying
      on imperative features, because they do not go through any code
      transformations.
      
      Note that they still have the same limitation as the imperative ones
      (cannot prove inductive properties), which shows that the imperative
      transformation are not responsible for the limitation in proving
      validity of program over arrays.
      ae34a9ea
  7. Apr 12, 2013
  8. Apr 03, 2013
    • Régis Blanc's avatar
      Completes Justify testcase · 1178be3d
      Régis Blanc authored
      This commit completes the Justify testcase with some more
      advanced properties.
      
      It provides both an implementation with its specification for
      verification, and a synthesis benchmark where choose is used
      to try to derive the correct implementation.
      1178be3d
  9. Mar 26, 2013
    • Etienne Kneuss's avatar
      Support for LetTuple in Fairz3 · f8ef4879
      Etienne Kneuss authored
      f8ef4879
    • Philippe Suter's avatar
      Introducing term enumeration. · 8dee703b
      Philippe Suter authored
      This commit introduces `leon.purescala.DataGen`, an object that contains
      two static methods; `generate` and `findModels`. `generate` is a term
      generator based on composition of streams. It can generate hundreds of
      instances of recursive types in less than a tenth of a second.
      `findModels` leverages `generate` to perform (small-)model finding. Pass
      it an expression and an evaluator (preferably `CodeGenEvaluator`) and
      watch it find models to your formula.
      
      The commit also includes a small regression test suite.
      
      (Note that although we have currently no use for this, the `generate`
      function can in principle be used to generate arbitrary terms. E.g. you
      could pass variables as fixed generators for certain types.)
      8dee703b
  10. Mar 25, 2013
    • Etienne Kneuss's avatar
      Correct handling of choose in verification. · 63477d6c
      Etienne Kneuss authored
      - Choose expressions becomes uninterpreted functions under the same
        constraints.
      
      - Fix bug with variablesOf considering choose binders as free.
      
      - Silence evaluator errors when occuring with tentative lucky models.
        Note that choose expressions cannot be evaluated nor compiled.
      63477d6c
    • Ivan Kuraj's avatar
      MarkDown README · 992458e7
      Ivan Kuraj authored
      992458e7
  11. Mar 20, 2013
  12. Mar 11, 2013
  13. Mar 09, 2013
  14. Mar 08, 2013
  15. Feb 13, 2013
Loading