summaryrefslogtreecommitdiff
path: root/Jennisys
Commit message (Collapse)AuthorAge
* Jennisys: changed the fixpoint solver to pick only the true clause in a ↵Gravatar Unknown2011-10-10
| | | | disjunction (if there is one that is true)
* Jennisys: implemented minimization of inferred guardsGravatar Unknown2011-10-10
|
* Jennisys: added some more simple methods in Simple.jen, implemented a couple ofGravatar Unknown2011-10-08
| | | | optimiations/exensions
* Jennisys: Implemented some support for mutator methods by keeping track of ↵Gravatar Aleksandar Milicevic2011-10-07
| | | | the pre state
* - updated the examples to use the new keywords (interface/datamodel)Gravatar Aleksandar Milicevic2011-09-29
| | | | | | - updated the README.txt file with instructions on how to run examples - added descriptions for command-line switches - changed genMod option to be true by default
* Jennisys: change of keywords, now: interface/datamodel/codeGravatar Rustan Leino2011-09-28
| | | | Jennisys: allow assignment statements in interfaces (for now, these are syntactic sugar for ensures clauses)
* Jennisys: added /break flag as a convenient way to break into the debuggerGravatar Rustan Leino2011-09-21
|
* Jennisys: added synthesized code for examplesGravatar Aleksandar Milicevic2011-08-26
|
* Jennisys: SetNode.Find exampleGravatar Aleksandar Milicevic2011-08-23
|
* Jennisys: changed the Combiner method to produce moreGravatar Aleksandar Milicevic2011-08-23
| | | | combinations, so now List.Find works
* Jennisys: changed the Combiner method to produce moreGravatar Aleksandar Milicevic2011-08-22
| | | | combinations, so now List.Find works
* Jennisys:Gravatar Aleksandar Milicevic2011-08-22
| | | | | | | - worked on some additional list examples - added expression simplification function - added "decreases Repr" for recursive methods - added desugaring when printing out method calls to Dafny
* jennisys: got the List.Get example to work. List.Tail also works. Others ↵Gravatar Aleksandar Milicevic2011-08-21
| | | | should follow soon
* Jennisys: added some more infrastructure for synthesizing read only methodsGravatar Aleksandar Milicevic2011-08-20
|
* Jennisys:Gravatar Aleksandar Milicevic2011-08-16
| | | | | | | | | | | | | - changed the way candidate conditions are discovered; now it simply uses all sub-expressions found in the spec that evaluate to TrueLiteral - changed the implementation so that when trying to infer a precondition, try out several different possibilities (and see which one works) - added some very basic (and incomplete) type inference - fixed a bug in the Modularizer (it didn't fix the solution after trying out the spec infered from the solution) - fixed a bug in DafnyModelUtils so that now when reading from the boogie model file it keeps getting information from Seq# functions until reaching a fixpoint (that's needed because the order or reads is important)
* Jennisys:Gravatar Aleksandar Milicevic2011-08-15
| | | | | | | | | - added concreteValues field to HeapInstance - brought back reading from Seq#Build when restoring Boogie models - changed the how the candidate conditions are inferred: now it only looks for unmodifiable concrete fields - method in parameter values are added to the list of potential candidate conditions
* Jennisys:Gravatar Aleksandar Milicevic2011-08-14
| | | | | | | | - changed the synthesis of the Valid() function to synthesize both unrolled and recursive definition of it, because both are needed in certain cases - to make the recursive definition of Valid() work, a "decreases" clause is needed. For now, decreases clause is always "decreases Repr", and that seems to be enough for now.
* Jennisys: added some more infrastructure for synthesizing read only methods, soGravatar Aleksandar Milicevic2011-08-13
| | | | that now a simple example like Node.Tail work.
* Jennisys:Gravatar Aleksandar Milicevic2011-08-12
| | | | | | - added "modifiable objects" to heap instance - when verifying synthesized program, only fields of the modifiable objects are considered
* Jennisys: started to work on synthesizing some methods. So far, onlyGravatar Aleksandar Milicevic2011-08-10
| | | | | | infrastructural things have been implemented, like handling return parameters, generating different "fresh" spec for methods than for constructors, adding "Valid()" to method preconditions.
* Jennisys:Gravatar Aleksandar Milicevic2011-08-05
| | | | - small fixes to the modular synthesis
* Jennisys:Gravatar Aleksandar Milicevic2011-08-03
| | | | | | - moved modularization and method unification stuff to their own modules - improved the modular synthesis so that whole branches can be delegated to existing methods.
* Jennisys: implemented a unification algorithm that tries to find an existingGravatar Aleksandar Milicevic2011-08-02
| | | | method that matches (specification-wise) a synthesized one
* Jennisys: (1) fixed a bug in "TryInferConditionals"; (2) added synthesized ↵Gravatar Aleksandar Milicevic2011-07-29
| | | | modular code
* Jennisys:Gravatar Aleksandar Milicevic2011-07-29
| | | | | | - finished the initial version of the modular code for constructors (excluding the unification part where it tries to find an existing function that meets the required spec)
* Jennisys:Gravatar Aleksandar Milicevic2011-07-27
| | | | - continued to work on the implementation of the modular code for constructors
* Jennisys:Gravatar Unknown2011-07-27
| | | | | | | | - implemented an initial version of modular code synthesis (where the initialization code is delegated to receiver objects instead of modifying their private stuff directly). For now, it just generates stub methods with appropriate specification. Another analysis can be called for such methods to synthesize their bodies.
* Jennisys:Gravatar Unknown2011-07-26
| | | | | - added a rule to discover when some method arguments are equal and to use that equality as a potential pre-condition
* Jennisys:Gravatar Unknown2011-07-26
| | | | | - added "inferConds" cmd line option - refactored out some pieces of code into their own functions
* - restored the "old" (as it was before switching from map to list)Gravatar Unknown2011-07-25
| | | | ordering of field assignments
* - changed heapInst.assignments' type from Map to List (because assignment ↵Gravatar Unknown2011-07-25
| | | | | | order can matter) - fixed a bug in the piece of code for desugaring quantifiers
* Jennisys:Gravatar Unknown2011-07-21
| | | | | | | - added the following desugaring rule forall v :: v in {a1, a2, ..., an} ==> e ~~~> e[v/a1] && e[v/a2] && ... && e[v/an] - added the "help" command line option
* - changed the way Valid() is unrolledGravatar Unknown2011-07-20
| | | | - removed reading from Seq#Build because it doesn't seem to be needed anymore
* - added synthesized code for the examplesGravatar Unknown2011-07-19
|
* - added synthesis of Repr stuff (it generates Repr invariants,Gravatar Unknown2011-07-19
| | | | | | | | | and updates the Repr fields at the end of every constructor) - refactoring: - removed ExprConst - change the implementation to use HeapModel and HeapInstance (as opposed to propagating heap/env/ctx)
* - implemented synthesizing constructors with if conditionsGravatar Unknown2011-07-14
| | | | - added some number examples (Number.jen)
* - finished evaluating expressionsGravatar Unknown2011-07-13
|
* - changed the parser to create VarLiteral instead of IdLiteral forGravatar Unknown2011-07-13
| | | | | | | | method arguments in method pre/post conditions and quantiication variables in quantified expressions - refactoring: changed the EvalSym method to return an expression instead of a constant.
* - still working on infering branching structureGravatar Unknown2011-07-12
|
* - removed "exit 43" from StartDafny-jen.batGravatar Unknown2011-07-12
| | | | - some very small changes
* - added the "timeout" optionGravatar Unknown2011-07-11
| | | | - started to work on infering branches
* - typosGravatar Unknown2011-07-11
|
* - fixed a bug in DafnyModelUtils.fs (reading set values from models)Gravatar Unknown2011-07-11
| | | | | - changed Dafny so that it returns an exit code - changed CheckDafnyProgram so that it checks Dafny exit code as well
* - added Set.jen exampleGravatar Unknown2011-07-11
| | | | | | | | - fixed implementation for sets - generalized unification rules - added command line options - removed the "Exact" active pattern for strings (the same thing is already supported by F#) - added a ternary if-then-else expression to Jennisys langauge and IteExpr and SetExpr to AST
* - removed VarConst from ConstGravatar Unknown2011-07-08
| | | | | - generalized the AstUtils.EvalSym functions and made the Resolver.Eval function re-use it.
* - fixed some bugs with applying unification over list elementsGravatar Unknown2011-07-06
| | | | | | - fixed the List.jen example (generic list) - changed SeqConst and SetConst to contain a list/set of "Const" and not "Const option" like before
* - implemented some sorts of symbolic evaluation of expressionsGravatar Unknown2011-07-06
| | | | | | - changed that the intermediate dafny files are written into separate files for different method analyses - added README and StartDafny-jen.bat
* - implemented synthesis of some simple constructors with parametersGravatar Unknown2011-07-05
| | | | | | | - added some desugaring to help the verifier. Expression like lst = [p] + [q r] are desugared into lst = [p] + [q r] && lst[0] = p && lst[1] = q && lst[2] = r
* added some doc commentsGravatar Unknown2011-07-03
|
* - when analyzing a constructor, repeated "assume <inv>" statement explicitlyGravatar Unknown2011-07-02
| | | | | | since "assume Valid()" doesn't always work - added optional verification step after code has been synthesized