Skip to content
Snippets Groups Projects
  1. May 11, 2015
  2. May 06, 2015
  3. May 05, 2015
  4. Apr 28, 2015
  5. Apr 24, 2015
  6. Apr 23, 2015
  7. Apr 20, 2015
  8. Apr 16, 2015
  9. Apr 15, 2015
  10. Apr 02, 2015
  11. Mar 18, 2015
  12. Mar 03, 2015
  13. Feb 12, 2015
  14. Nov 02, 2014
  15. Oct 23, 2014
  16. Sep 16, 2014
  17. Aug 28, 2014
  18. Aug 20, 2014
  19. Apr 11, 2014
    • Etienne Kneuss's avatar
      All-seeing synthesis with Oracles, library reorganisation · 8f2438cc
      Etienne Kneuss authored
      - NormalizationRule becomes priorities, so that we can have multiple
        distinct layers
      
      - Use the @library annotation, move synthesis stuff to synthesis,
        Oracles.
      
      - Make sure tests use PreprocessingPhase and import synthesis when
        adequate
      
      - Extract proper package objects fix patternRecons and simplifiers
      
      - Reorganize library:
        - leon.{choose,???} -> leon.lang.synthesis
        - leon.{waypoint,epsilon} -> leon.lang.xlang
      8f2438cc
  20. Mar 20, 2014
  21. Mar 14, 2014
  22. 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
  23. 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
  24. Feb 04, 2014
    • 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
  25. Dec 02, 2013
  26. Oct 10, 2013
Loading