Skip to content
Snippets Groups Projects
  1. May 26, 2015
  2. May 21, 2015
  3. May 06, 2015
  4. Apr 16, 2015
  5. Apr 15, 2015
  6. Mar 18, 2015
  7. Mar 06, 2015
  8. Feb 12, 2015
  9. Aug 14, 2014
  10. May 05, 2014
    • Etienne Kneuss's avatar
      New Ensuring/Require/Assert trees · 8403fa94
      Etienne Kneuss authored
      - Ensurings/Require are now proper purescala trees
      - Introduce Assert as a tree
      - Simplify tactics to support arbitrary asserts/errors/inner ensurings
      - New phase to inject assertions for unsafe calls (array/map access)
      - Refactor Default and Induction tactic
      8403fa94
  11. Apr 11, 2014
  12. Mar 14, 2014
  13. 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
  14. 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
  15. Jan 27, 2014
    • Régis Blanc's avatar
      Introduce array access VC in DefaultTactic · 55246deb
      Régis Blanc authored
      Previously, array access were generated via a code transformation in
      ArrayTransformation in xlang, where Array Select and Update were
      wrapped in if-then-else with an Error in the else branch. They are
      now natively supported in VC generation.  Some testcases --- that would
      trigger bugs when --xlang is not used with functional array ---- are
      included in this commit
      
      The commit introduces a new abstraction to traverse Leon trees and collect
      path conditions. This traverser is used for the implementation of the
      VC generation for arrays.
      55246deb
  16. Dec 02, 2013
  17. Aug 27, 2013
  18. 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
  19. Jun 03, 2013
  20. 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
  21. Oct 26, 2012
  22. Oct 24, 2012
  23. May 03, 2012
  24. Apr 18, 2012
  25. Apr 17, 2012
  26. Mar 05, 2012
  27. May 30, 2011
  28. May 26, 2011
Loading