summaryrefslogtreecommitdiff
path: root/Source
Commit message (Collapse)AuthorAge
* Did some refactoring.Gravatar wuestholz2014-09-23
|
* Fixed an issue in the verification result caching (recycled errors).Gravatar wuestholz2014-09-22
|
* minor fix to abshoudini's handling of quantifiersGravatar akashlal2014-09-20
|
* a small fix to prefix calculationGravatar qadeer2014-09-19
|
* a bug fix in Houdini (also AbsHoudini)Gravatar qadeer2014-09-19
|
* Patch by Jeroen Ketema.Gravatar Dan Liew2014-09-19
| | | | | | Only set produce-unsat-cores in the case /explainHoudini is passed. This allows contract inference to be used with solvers that do no support unsat cores, as long as no explanation of the Houdini run is required.
* Fixed minor issue.Gravatar wuestholz2014-09-19
|
* InlineAssume attribute for ensures clauses; if present, the ensures ↵Gravatar qadeer2014-09-18
| | | | condition is assumed while inlining.
* fixed various CodeContracts issues.Gravatar qadeer2014-09-18
|
* added a commentGravatar qadeer2014-09-17
|
* fixed a bug in inliningGravatar qadeer2014-09-17
| | | | changed the attribute on callee ensures to "HoudiniAssume" rather than "assume"
* fixed a crashGravatar qadeer2014-09-16
|
* Added the ability to attach arbitary objects to Absy nodes using anGravatar Dan Liew2014-09-03
| | | | | | | | | | | | | | | | | | | | | | integer as a key. This allows any arbitrary "metadata" to be attached at runtime. The implementation is lazy so the container is only created if the SetMetadata<T>() method is called which should keep the memory overhead very minimal. Example usage: var TheAssert = new AssertCmd(...); ... TheAssert.SetMetadata(0, new List<Expr>()); TheAssert.GetMetadata<List<Expr>>(0); foreach (var keyValue in TheAssert.NumberedMetaData) { // do something } Debug.Assert(TheAssert.NumberedMetaDataCount == 1);
* Added missing Expr.Neg() static method.Gravatar Dan Liew2014-08-15
|
* mergeGravatar qadeer2014-08-08
|\
* | fixed codexpr bug reported by Michael Emmi; removed special handling of ↵Gravatar qadeer2014-08-08
| | | | | | | | codexpr in InjectPostConditions
| * Bug fix in SIGravatar akashlal2014-08-03
| |
| * Minor refactoringGravatar wuestholz2014-08-03
| |
| * MergeGravatar Dan Rosén2014-08-01
| |\ | |/ |/|
| * Add alpha equivalence check for Expr, and use it when lambda liftingGravatar Dan Rosén2014-08-01
| |
* | Changed how canceled tasks are dealt with.Gravatar wuestholz2014-07-31
| |
* | removed /doNotUseParallelismGravatar qadeer2014-07-30
| |
* | Made it bound the number of executing tasks by the number of cores specified ↵Gravatar wuestholz2014-07-30
| | | | | | | | (vcsCores).
* | Fix bug in BinderExpr where is was possible for A.Equals(B) to returnGravatar Dan Liew2014-07-29
| | | | | | | | true but A.GetHashCode() == B.GetHashCode() return false.
* | Fix bug in NAryExpr where is was possible for A.Equals(B) to returnGravatar Dan Liew2014-07-29
| | | | | | | | | | | | | | | | | | | | | | true but A.GetHashCode() == B.GetHashCode() return false. The case of the bug was that Args.GetHashCode() was being used which uses Object.GetHashCode() which uses references to compute GetHashCode(). This is wrong because we want hash codes to equal for structural equality. To fix this I've implemented a really simple hashing method. I have not tested how resilient this is to collisions.
* | Fix bug in BinderExpr where Equals() was not corrected implemented.Gravatar Dan Liew2014-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BinderExpr was doing: object.Equals(this.TypeParameters, other.TypeParameters) && object.Equals(this.Dummies, other.Dummies) Both of these are wrong because these are of type List<> and so - object.Equals(this.TypeParamters, other.TypeParameters) will call this.TypeParameters.Equals(other.TypeParamters) (assuming they aren't references to the same list) - object.Equals(this.Dummies, other.TypeParameters) will call this.TypeParameters.Equals(other.Dummies) (assuming they aren't references to the same list) so this is becomes a reference comparision on Lists<>. This is wrong because Equals() has been overloaded to implement structural equality. This affects the classes ForallExpr, LambdaExpr and ExistsExpr.
* | MergeGravatar akashlal2014-07-28
|\ \
* | | Fix bug in NAryExpr where Equals() override was not correctly implemented.Gravatar Dan Liew2014-07-28
| | | | | | | | | | | | | | | | | | | | | | | | The previous implementation which called object.Equals(this.Args, other.Args) would in turn call ``this.Args.Equals(others.Args)`` which for List<> is reference equality. Equals() is purposely overloaded on Expr classes in Boogie to provide structural equality so this has been fixed so a comparision of elements in the list is performed.
| * | Some simplificationsGravatar akashlal2014-07-28
| | |
| * | Helper proceduresGravatar akashlal2014-07-28
|/ /
* | ExplainHoudini change to add reasons for inconsistency as well.Gravatar shuvendu2014-07-27
| |
* | Fix bug where Visitors could not visit Requires or Ensures becauseGravatar Dan Liew2014-07-27
| | | | | | | | the StdDispatch method was missing on both Classes.
* | deleted the free assume about gates after parallel callsGravatar qadeer2014-07-26
|/
* enabled merging of yield callsGravatar qadeer2014-07-20
|
* added support for facoring out calls to yield checkers; this will help avoid ↵Gravatar qadeer2014-07-20
| | | | quadratic space complexity
* MergeGravatar qadeer2014-07-15
|\
* | updated the linear type system based on Chris' design with linear, ↵Gravatar qadeer2014-07-15
| | | | | | | | linear_in, linear_out
| * Fix nasty bug introduced by commit 61a94f409975.Gravatar Dan Liew2014-07-15
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were many calls in the code to ``` new TokenTextWriter("<buffer>", buffer, false) ``` Prior to 61a94f409975 this was a call to the following constructor ``` TokenTextWriter(string filename, TextWriter writer, bool setTokens) ``` After that commit these then became calls to ``` TokenTextWriter(string filename, TextWriter writer, bool pretty) ``` An example of where this would cause issues was if ToString() was called on an AbsyCmd then the its token would be modified because the setTokens parameter was effectively set to True when the original intention was for it to be set to false! To fix this I've * Removed the default parameter value for pretty and fixed all uses so that we pass false where it was implicitly being set before * Where the intention was to set setTokens to false this has been fixed so it is actually set to false! Unfortunately I couldn't find a way of observing this bug from the Boogie executable so I couldn't create a test case. I could only observe it when I was using Boogie's APIs.
* fixed a regression failureGravatar qadeer2014-07-15
|
* mergeGravatar qadeer2014-07-15
|\
* | simplified yield type chcking and added treiber stack (not fully done)Gravatar qadeer2014-07-15
| |
| * Fixed a minor issue.Gravatar wuestholz2014-07-14
| |
| * Refactored how checksums are computed.Gravatar wuestholz2014-07-13
|/
* fixed some tests in ogGravatar qadeer2014-07-11
| | | | | added another test in linear (based on bug reported by Chris) removed the QED build configuration
* Worked on the more advanced verification result caching.Gravatar wuestholz2014-07-10
|
* Worked on the more advanced verification result caching (ignore comments for ↵Gravatar wuestholz2014-07-10
| | | | computing statement checksums).
* Worked on the more advanced verification result caching.Gravatar wuestholz2014-07-10
|
* Worked on the more advanced verification result caching.Gravatar wuestholz2014-07-09
|
* Worked on adding support for "canned errors".Gravatar wuestholz2014-07-07
|
* Added more tests and worked on adding support for "canned errors".Gravatar wuestholz2014-07-06
|