summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-02Parse standard separation logic inputs (#2257)Andrew Reynolds
2018-08-02Improve CEGQI heuristics involving equality and multiple instantiations (#2254)Andrew Reynolds
2018-08-02Fix candidate rewrite utilities for non-first-class types (#2256)Andrew Reynolds
2018-08-02Make strings robust to regular expression variables. (#2255)Andrew Reynolds
The theory solver for strings does not support regular expression variables. With this PR, we properly throw an exception if it is given one. However, the rewriter needs to handle regular expression variables (for various reasons: rewriting an expression before its asserted, sygus explanation generalization, etc.). This corrects a few miscellaneous issues in the strings rewriter to make it sound for these cases. It also corrects a seg fault in simpleRegexpConsume when testing memberships `(str.in.re "" R)`, where R is a *non-constant* regular expression (which will now be allowed if variables are allowed). This is in preparation for adding `RegLan` as a token to the smt2/sygus parsers.
2018-08-02Add rewrites for BITVECTOR_ITE and BITVECTOR_COMP with const ↵Aina Niemetz
condition/child. (#2259)
2018-08-02 Remove references to deprecated propagate as decision feature (#2258)Andrew Reynolds
2018-08-02Remove Subversion build info (#2250)Andres Noetzli
2018-08-01Fix API call for reg exp. (#2248)Andrew Reynolds
2018-08-01Improvements and fixes in cegqi arithmetic (#2247)Andrew Reynolds
This includes several improvements for cegqi with arithmetic: - Randomly choose either lower or upper bounds instead of always using lower bounds (this is similar to cegqi+BV), - Equalities are handled by processAssertions, - Resort to *only* model values at full effort instead of trying to mix model values/bounds (this is also similar to cegqi+BV), - cegqi+arithmetic does not try multiple instantiations unless the flag cbqiMultiInst is set. This makes it so that ceg_instantiator does not have exponential behavior when the strategy is non-monotonic. It also includes a core fix to computing what bound is optimal based on an ordering that incorporates virtual terms. Previously, we would consider, e.g.: `a+b*delta > c+d*delta if a>=c and b>=d` Whereas the correct check is lexicographic: `a+b*delta > c+d*delta if a>c or a=c and b>d` This means e.g. 2+(-1)*delta > 3 was previously wrongly inferred. This is part of merging https://github.com/ajreynol/CVC4/tree/cegqiSingleInst, which is +3-0 on SMTLIB BV and +12-9 on SMTLIB LIA+LRA+NRA+NIA.
2018-08-01Remove outdated references to TLS (#2245)Andres Noetzli
2018-08-01Fix issues with printing parametric datatypes in smt2 (#2213)Andrew Reynolds
2018-08-01Fix wrong evaluation of STRING_STOI (#2252)Andres Noetzli
2018-08-01Fix bool-to-bv preprocessing pass for non-{bv,bool} equalities. (#2251)Mathias Preiner
2018-08-01 InteractiveShell: Remove redundant options argument. (#2244)Aina Niemetz
2018-08-01New C++ API: Fixed ownership of options object. (#2243)Aina Niemetz
2018-08-01Fix issues with bv2nat (#2219)Andrew Reynolds
This includes: - A missing case in the smt2 printer, - A bug in an inference of int2bv applied to bv2nat where the types are different.
2018-08-01 Fix assertion in conjecture generator (#2246)Andrew Reynolds
Makes minor improvements and removes the need to have the assertion (which was incorrect). This fixes the nightlies.
2018-08-01Make conjecture generator's uf term enumeration safer (#2172)Andrew Reynolds
This ensures that the function getEnumerateUfTerm does not have out of bounds accesses. This is an alternative fix to the one brought up in #2158.
2018-07-31Make candidate rewrite match filtering handle polymorphic operators properly ↵Andrew Reynolds
(#2236) Currently, the discrimination tree index used for candidate rewrite rule filtering based on matching does not properly distinguish polymorphic operators, which leads to type errors. This makes the index handle them correctly. Fixes #1923.
2018-07-31Improvements and tests for the API around separation logic (#2229)ayveejay
- Introduces a system that validating that, when not using THEORY_SEP, that it is not possible to obtain the separation logic heap/nil (validate_exception()) - Introduces a system test demonstrating how to use the separation logic theory, and then how to use the "getters" to obtain and interrogate the heap/nil expressions (validate_getters()) - Refactors the original getters to avoid duplicate code - Add a check as part of the getters to ensure that THEORY_SEP is in use
2018-07-31Remove hasAssertions() method from eager BV solver. (#2239)Mathias Preiner
2018-07-31Fix option handler for lazy/bv-sat-solver combinations. (#2225)Mathias Preiner
Further, unifies all *limitHandler and *limitPerHandler to limitHandler.
2018-07-30Add support for incremental eager bit-blasting. (#1838)Mathias Preiner
Eager incremental solving is achieved via solving under assumptions. As soon as incremental and eager bit-blasting is enabled, assertions are passed to the SAT solver as assumptions rather than assertions. This requires the eager SAT solver to support incremental solving, which is currently only supported by CryptoMiniSat.
2018-07-30Fix several spelling errors (#2231)FabianWolff
2018-07-29Storing a std::pair<Key,Data> on CDOhash_map.Tim King
Changing the return type of CDHashMap::iterator* to return a reference. Requires performance testing.
2018-07-27Require argument description for non-{bool,void} options. (#2228)Mathias Preiner
Not adding the argument description for non-{bool,void} options is now an error. Further, adds missing argument descriptions.
2018-07-27Fix issues related to cxxtest in configure.ac (#2226)Andres Noetzli
Fixes #2188. There were two issues related to cxxtest in configure.ac: - `AC_PATH_PROGS` was used wrong (the third argument is a value to assign to the first argument and cannot be used for arbitrary commands) - The `test` command always executes both sides of an "and" (`-a`), so `basename` was called without arguments when `CXXTESTGEN` was empty This commit fixes both issues.
2018-07-27Make Python a required CVC4 dependency. (#2227)Mathias Preiner
Python is required for generating the options code. The dependency is now required. Now autoconf searches for a Python version >= 2.7 and sets the corresponding environment variables. mkoptions.py is now called with $(PYTHON). This fixes the broken competition and windows nightly builds.
2018-07-27Fix for candidate rewrite rule filtering. (#2220)Andrew Reynolds
2018-07-27 Make check-synth robust for assertions that are not the synth conjecture ↵Andrew Reynolds
(#2217)
2018-07-27Fix Node::hasFreeVar for function variables (#2216)Andrew Reynolds
A Node has free variables if its operator has free variables.
2018-07-26Fix CryptoMiniSat config to allow system versions. (#2223)Mathias Preiner
2018-07-26New C++ API: Enable examples. (#2222)Aina Niemetz
2018-07-26Removing unused CDTrailHashmap. (#2221)Tim King
2018-07-26Disabling bvLazyRewriteExtf in the right place (#2214)yoni206
2018-07-26Changing CDInsertHashMap to store <const Key, const Data> pairs. This is in ↵Tim King
preparation for adding map utility functions. (#2209)
2018-07-26Changing the arithmetic static learner to use CDHashMap. This is 2/3 PRs for ↵Tim King
deprecating CDTrailHashMap. (#2207)
2018-07-26Fix rewriter for lambda (#2211)Andrew Reynolds
The rewriter for lambda is currently too aggressive, there are cases like: lambda xy. x = y that are converted into an array representation that when indexing based on x gives (store y true false), which is subsequently converted to: lambda fv_1 fv_2. fv_1 = y where fv_1 and fv_2 are canonical free variables. Here, y is used as index but was not substituted hence is incorrectly made free. To make things simpler, this PR disables any rewriting for lambda unless the array representation of the lambda is a constant, which hardcodes/simplifies a previous argument (reqConst=true). This fixes a sygus issue I ran into yesterday (regression added in this PR). Some parts of the code were formatted as a result.
2018-07-26 Fix a few issues in the sygus sampler related to evaluation (#2215)Andrew Reynolds
2018-07-26Avoid explicit dependency on Python 3 (#2195)ayveejay
2018-07-26New C++ API: Third batch of commands (SMT-LIB). (#2212)Aina Niemetz
2018-07-26New C++ API: Second batch of commands (SMT-LIB). (#2201)Aina Niemetz
2018-07-25Changing ArithIteUtils to use CDInsertHashMap. (#2206)Tim King
This is 1/3 PRs for deprecating CDTrailHashMap.
2018-07-25Removing support for CDHashMap::iterator's postfix increment. (#2208)Tim King
2018-07-25 Move reg exp rewrites from prerewrite to postrewrite (#2204)Andrew Reynolds
2018-07-25Performing clang-format on the original change-set of #2194 (#2203)ayveejay
2018-07-25Use CryptoMiniSat 5.6.3. (#2205)Mathias Preiner
2018-07-24Improvements to sets + cardinality + quantifiers (#2200)Andrew Reynolds
2018-07-24Adding API access methods to get heap/nil expressions when using separation ↵ayveejay
logic (#2194)
2018-07-24 New C++ API: First batch of commands (SMT-LIB and non-SMT-LIB). (#2199)Aina Niemetz
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback