- Mar 21, 2014
-
-
Etienne Kneuss authored
-
- Mar 20, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
- Holes become chooses - Unhandled types are removed, Untyped is now checked for and a warning is issued if an untyped expression is found.
-
- Mar 17, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
This allows us to use them in synthesis. Expose --solvers=.. option for synthesis.
-
Etienne Kneuss authored
-
- Mar 14, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Mar 13, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Mar 11, 2014
-
-
Lomig Mégard authored
-
Lomig Mégard authored
-
- Mar 05, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Mar 04, 2014
-
-
Etienne Kneuss authored
-
- Mar 03, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Feb 28, 2014
-
-
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
-
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.
-
- Feb 24, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Feb 20, 2014
-
-
Ivan Kuraj authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Feb 18, 2014
-
-
Etienne Kneuss authored
-
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 13, 2014
-
-
Etienne Kneuss authored
-
- Feb 12, 2014
-
-
Etienne Kneuss authored
-
- Feb 10, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
Improve debugging capabilities of Pretty/Scala printer w.r.t. types
-
- Feb 05, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Feb 04, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
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.
-
- Feb 03, 2014
-
-
Etienne Kneuss authored
-
- Jan 31, 2014
-
-
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.
-