Skip to content
Snippets Groups Projects
  1. Mar 03, 2014
  2. Feb 28, 2014
    • Etienne Kneuss's avatar
      Implement the Leon library. Support classes and methods. · 027c0d4c
      Etienne Kneuss authored
      - Implement the Leon Library in Leon-land rather than Scala-land.
        import leon.Utils._ becomes import leon.lang._
        import leon.Annotations._ becomes import leon.annontation._
      
        For now, the library defines generic Options and Lists.
        The library is automatically imported from the ./leon script, unless
        the --library=no option is passed.
      
      - Support parsing of multiple files and modules.
      
      - Introduce new annontations:
          @ignore: remove definition from Leon
          @verified: do not consider for verification unless explicitly
              specified
      027c0d4c
    • Etienne Kneuss's avatar
      EnumeratingSolver / PortfolioSolver · aab7b7f3
      Etienne Kneuss authored
      Use a datagen-based solver to find simple counter-examples. Note that
      this solver returns Unknown most of the time, so it is best to combine
      it with a full-fledged solver.
      
      PortfolioSolver allows us to combine solvers and have them run in
      parallel. The first result (!= Unknown) is used. Solvers can be selected
      for verification using the --solvers option.
      aab7b7f3
  3. Feb 24, 2014
  4. Feb 20, 2014
  5. Feb 18, 2014
  6. Feb 17, 2014
    • Etienne Kneuss's avatar
      Introduce support for methods and multiple objects/fields · 9c7e02b5
      Etienne Kneuss authored
      Methods:
      --------
      
      Methods are now supported in ADT roots only (e.g. single case classes or
      abstract classes). The phase `MethodLifting` converts them to normal
      global functions which makes them transparent to the rest of Leon.
      
      Introducing Leon Library:
      -------------------------
      
      Common structures and functionalities can be shipped as part of the
      Library.scala file, which is a set of ADTs with methods.
      
      Imported via `import leon.Library._`
      
      New Annotations:
      ----------------
      
      - @verified means library function will not be considered for verification
        unless specifically given through --functions
      
      - @proxy allows non-pure bodies, which will be silently ignored.
        pre/post need to be in purescala.
      
      Functions without bodies (e.g. proxy methods) are now materialized with
      a choose construct automatically, replicating the post-condition. This
      allows compilation to bytecode and execution of VCs refering to proxy
      methods.
      
      Tree Modifications:
      -------------------
      - FunDef now have params, not args.
      
      - VarDecl is renamed ValDef.
      
      - Added methods in ClassDef, as well as This and MethodInvocation,
        both are converted to normal function calls by the MethodLifting
        phase.
      9c7e02b5
  7. Feb 13, 2014
  8. Feb 12, 2014
  9. Feb 10, 2014
  10. Feb 05, 2014
  11. Feb 04, 2014
    • Etienne Kneuss's avatar
      Instanciate Lets correctly · 6043f2ab
      Etienne Kneuss authored
      6043f2ab
    • Etienne Kneuss's avatar
      Release Leon 2.2 with generics · 46a48f1d
      Etienne Kneuss authored
      46a48f1d
    • Etienne Kneuss's avatar
      Implement generics for functions and ADTs · 1708d239
      Etienne Kneuss authored
      - Calling functions are now typed, FunctionInvokation takes a
        TypedFunDef which is basically a FunDef with type parameters' values.
        Instantiation of types within the signature/body is done on demand
        through this wrapper class.
      
      - Operations on ADTs are now taking a *ClassType instead of *ClassDef.
        Similarly, Case/AbstractClassType takes values for type parameters.
      
      - Introduces a GenericValue tree for models targeting abstract types.
        e.g. foo[T](a: T, b: T) { a == b } ensuring (_) will find a model with
        { a -> T#1, b -> T#2 }
      
      - Only "simple" hierarchies allowed with type parameters. All members of
        the hierarchy must define the same number of type parameters and
        correctly pass them to parent classes.
      
      - Type parameters are invariant.
      1708d239
  12. Feb 03, 2014
  13. Jan 31, 2014
    • Régis Blanc's avatar
      remove the need for innerXXX methods · a3cab185
      Régis Blanc authored
      Refactor the TimeoutSolver and TimeoutAssumptionSolver so
      that they no longer use innerCheck methods. We now only
      create solver as subclassing Solver or IncrementalSolver and
      implementing the interuptible trait, and we can turn them into
      TimeoutSolver at instantiation time with a mixin.
      a3cab185
    • Régis Blanc's avatar
      Unrolling solver takes an incremental solver · e53c900a
      Régis Blanc authored
      UnrollingSolver now uses an underlying incremental solver
      and use push and pop to drive the unrolling instead of creating
      a new solver each time
      e53c900a
  14. Jan 29, 2014
  15. Jan 27, 2014
  16. Jan 10, 2014
  17. Dec 16, 2013
    • Etienne Kneuss's avatar
      Support Choose in evaluation, range positions, tracing. · e02cd510
      Etienne Kneuss authored
      - Simplify code generation by replacing CompilationEnvironment with a
        simple scope state.
      
      - Support Choose construct in both evaluators.
      
      - Introduce RecursiveEvaluator (renamed from Naive) and TracingEvaluator
        which tracks intermediate values as well.
      
      - Introduce offset as well as ranged positions, extract all positions
        from trees. Try to propagate them as much as possible. Introduced
        .copiedFrom
      
      - Remove dead-code, and improve TreeOps a bit.
      
      - Introduce Pretty-printer arguments
      e02cd510
  18. Dec 03, 2013
  19. Dec 02, 2013
  20. Nov 29, 2013
Loading