- Sep 16, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
- Implement smt and smt-z3/smt-cvc4 as options for --solvers - Uses a main solver sources for verification/CLP, taking into account --solvers - Implement Z3-SMT sets - Add tests for Z3-SMT
-
Régis Blanc authored
-
- Aug 20, 2014
-
-
Emmanouil (Manos) Koukoutos 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 10, 2014
-
-
Etienne Kneuss authored
-
- 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 31, 2014
-
-
Régis Blanc authored
UnrollingSolver now uses an underlying incremental solver and use push and pop to drive the unrolling instead of creating a new solver each time
-
- Oct 01, 2013
-
-
Etienne Kneuss authored
Solvers wrap solvers or factories, depending on the needs. Factories no longer wrap factories, except for the special case of timeoutsolverfactories (it does it in a typesafe way though). Fix TupleRewrite with new posts, fix ScopeSimplified, Fix pretty printer
-