- May 26, 2015
-
-
Manos Koukoutos authored
-
Manos Koukoutos authored
-
- May 21, 2015
-
-
Manos Koukoutos authored
-
- May 06, 2015
-
-
Regis Blanc authored
-
Etienne Kneuss authored
-
- Apr 16, 2015
-
-
Manos Koukoutos authored
-
- Apr 15, 2015
-
-
Etienne Kneuss authored
-
- Mar 18, 2015
-
-
Manos Koukoutos authored
-
Manos Koukoutos authored
-
Manos Koukoutos authored
-
- Mar 06, 2015
-
-
Manos Koukoutos authored
-
Manos Koukoutos authored
-
- Feb 12, 2015
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Emmanouil (Manos) Koukoutos authored
-
- Aug 14, 2014
-
-
Etienne Kneuss authored
-
- May 05, 2014
-
-
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
-
- Apr 11, 2014
-
-
Nicolas Voirol authored
-
- Mar 14, 2014
-
-
Etienne Kneuss authored
-
- Feb 17, 2014
-
-
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.
-
- Feb 04, 2014
-
-
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.
-
- Jan 27, 2014
-
-
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.
-
- Dec 02, 2013
-
-
Etienne Kneuss authored
-
- Aug 27, 2013
-
-
Etienne Kneuss authored
-
- Jul 11, 2013
-
-
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
-
- Jun 03, 2013
-
-
Etienne Kneuss authored
-
- Dec 21, 2012
-
-
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.
-
- Oct 26, 2012
-
-
Philippe Suter authored
-
Philippe Suter authored
-
Philippe Suter authored
-
- Oct 24, 2012
-
-
Etienne Kneuss authored
-
- May 03, 2012
-
-
Régis Blanc authored
-
- Apr 18, 2012
-
-
Régis Blanc authored
-
- Apr 17, 2012
-
-
Régis Blanc authored
-
Régis Blanc authored
-
Régis Blanc authored
-
- Mar 05, 2012
-
-
Philippe Suter authored
-
Philippe Suter authored
-
- May 30, 2011
-
-
Ali Sinan Köksal authored
append commute
-
- May 26, 2011
-
-
Philippe Suter authored
-