- Feb 23, 2015
-
-
Emmanouil (Manos) Koukoutos authored
-
manoskouk authored
-
- Feb 17, 2015
-
-
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.
-
- Feb 12, 2015
-
-
Emmanouil (Manos) Koukoutos authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Emmanouil (Manos) Koukoutos authored
-
Emmanouil (Manos) Koukoutos authored
-
Emmanouil (Manos) Koukoutos authored
-
Etienne Kneuss authored
- evaluate it to simplest value - solve it to arbitrary value - Use within CEGLESS as bank of exprs - Avoid GuidedCloser if non-det expr (contains choose, holes, ..)
-
Etienne Kneuss authored
Introduces a guiding witness, indicating what the original solution was. This original solution is then either 1) tried as potential solution (verification) 2) used as decomposition, for instance on If expressions.
-
Etienne Kneuss authored
Introduces terminates(f(..)) witnesses in the spec, used to generate safe recursive calls. After a split i.e. on a List with Cons, the witness becomes terminates(f(.., Cons(h, t), ..)) at which point we know that calling f(.., t, ..) is safe termination-wise.
-
- Oct 30, 2014
-
-
Emmanouil (Manos) Koukoutos authored
-
- Oct 29, 2014
-
-
Emmanouil (Manos) Koukoutos authored
-
- Oct 27, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Oct 08, 2014
-
-
Etienne Kneuss authored
- Introduce Leon strings (smt-based solvers only) Available in leon.lang.string._ - Print method calls properly, specialize binary ops
-
- Sep 04, 2014
-
-
Etienne Kneuss authored
-
- Aug 18, 2014
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Aug 14, 2014
-
-
Etienne Kneuss authored
-
- Aug 07, 2014
-
-
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]
-
Etienne Kneuss authored
-
- Jun 05, 2014
-
-
Etienne Kneuss authored
-
- May 30, 2014
-
-
Etienne Kneuss authored
-
- May 21, 2014
-
-
Etienne Kneuss authored
-
- Apr 11, 2014
-
-
Etienne Kneuss authored
-
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
-
- Mar 20, 2014
-
-
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 14, 2014
-
-
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
-
- 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.
-
- 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
-
- Oct 30, 2012
-
-
Etienne Kneuss authored
-
Etienne Kneuss authored
-
- Oct 24, 2012
-
-
Philippe Suter authored
-
- Oct 19, 2012
-
-
Etienne Kneuss authored
-