Skip to content
Snippets Groups Projects
  1. Feb 23, 2015
  2. Feb 17, 2015
    • Regis Blanc's avatar
      Int becomes bitvector · 2bb7a742
      Regis Blanc authored
      Leon now matches Scala semantics of Int as 32 bits bit-vectors.
      This commits modifies the semantics of IntLiteral to be treated
      as 32 bits integer everywhere (solver, evaluator, ...).
      
      Introduces a new literal type, InfiniteIntegerLiteral, representing
      a natural integer. The front-end maps the use of BigInt to these
      new trees, and the solver properly handles them as mathematical
      integers.
      
      The behaviour of many regression tests changes due to this new
      semantics. In particular many of them now timeout because they
      are no longer proving properties over mathematical integers. This
      commit updates the tests to reflect this new semantics.
      2bb7a742
  3. Feb 12, 2015
  4. Oct 30, 2014
  5. Oct 29, 2014
  6. Oct 27, 2014
  7. Oct 08, 2014
  8. Sep 04, 2014
  9. Aug 18, 2014
  10. Aug 14, 2014
  11. Aug 07, 2014
    • Etienne Kneuss's avatar
      New list operations · ad33512e
      Etienne Kneuss authored
      List:
        slice(from: Int, to: Int): List[T]
        replace(from: T, to: T): List[T]
        chunks(s: Int): List[List[T]]
        zip[B](that: List[B]): List[(T, B)]
        -(e: T): List[T]
        --(that: List[T]): List[T]
        &(that: List[T]): List[T]
        pad(s: Int, e: T): List[T]
        find(e: T): Option[Int]
        lastOption: Option[T]
        firstOption: Option[T]
        unique: List[T]
        splitAt(e: T): List[List[T]]
        split(seps: List[T]): List[List[T]]
        count(e: T): Int
        evenSplit: (List[T], List[T])
        insertAt(pos: Int, l: List[T]): List[T]
        replaceAt(pos: Int, l: List[T]): List[T]
        rotate(s: Int): List[T]
      
      ListOps:
        flatten[T](ls: List[List[T]]): List[T]
      ad33512e
    • Etienne Kneuss's avatar
  12. Jun 05, 2014
  13. May 30, 2014
  14. May 21, 2014
  15. Apr 11, 2014
    • Etienne Kneuss's avatar
      Actually add the files · 3cee85d7
      Etienne Kneuss authored
      3cee85d7
    • 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
  16. Mar 20, 2014
  17. Mar 14, 2014
  18. 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
  19. 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
  20. Jul 11, 2013
    • Etienne Kneuss's avatar
      Upgrade Leon to Scala 2.10.x · c521d3bd
      Etienne Kneuss authored
      - Refactor code extraction
        - Standardize extractors
        - Fix type identification by resolving type aliases
      
      - Redo reporter integration with Scalac
        - Fix relining to prevent bizarre compile-errors
      
      - Refactor Pretty-Printers
        - Extensible class interface
        - Not returning mutable string-buffers anymore
      
      - Fixes according to 2.10
          - 100% false warnings in Tests
          - imports for postfix-ops or implicits
      
      - Upgrade ScalaZ3 to 2.10
      
      - Upgrade Cafebabe to 2.10
      c521d3bd
  21. Jun 03, 2013
  22. Oct 30, 2012
  23. Oct 24, 2012
  24. Oct 19, 2012
Loading