summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2012-09-12Adding model assertions after SAT responses.Morgan Deters
To enable, use --check-models. Turning on the option can be done in debug or optimized builds, regardless of whether normal assertions are on or not. This is to allow us to check the generated models in long-running queries, and might be useful to end users as a double-check too. By default, --check-models is quiet (no output unless it detects a problem). That allows regression runs to pass unless there are problems: make regress CVC4_REGRESSION_ARGS=--check-models To see it work, use -v in addition to --check-models. There may still be bugs in the feature itself, but already I've found some apparent model-generation bugs (and discussed with Andy) from this feature, so it seems useful in its current state. --check-models turns on what SMT-LIBv2 calls "interactive mode" (which keeps the list of user assertions around), and also implies --produce-models. This version does NOT require incremental-mode, which one design did (the one mentioned in yesterday's meeting). Also: * TheoryUF::collectModelInfo() now generates UninterpretedConstants (rather than non-constants) * The UF rewriter now reduces (APPLY_UF (LAMBDA...) args...), and treats uninterpreted constants correctly (e.g. uc_U_1 != uc_U_2) * The SubstitutionMap now supports substitutions of operators for paramaterized kinds (e.g., function symbols)
2012-09-11added getCardinality to modelAndrew Reynolds
2012-09-11Partially reverting the changes made in 4308. There is now both an Expr and ↵Tim King
Node version of getValue() in TheoryModel.
2012-09-10modified getValue to return Expr instead of NodeAndrew Reynolds
2012-09-10Fixed an error in the rewriter Pascal pointed out. This was in effectively ↵Tim King
dead code. (Nobody internally made minus nodes.)
2012-09-10list portfolio_util.h in Makefile, so it gets distributed (fixes debian build)Morgan Deters
2012-09-08Add [*] footnotes to --help output indicating for many options --FOO that ↵Morgan Deters
there are --no-FOO variants.
2012-09-08Some minor changes after reviewing the portfolio "unified driver" commit.Morgan Deters
(this commit was certified error- and warning-free by the test-and-commit script.)
2012-09-08Single driver for both sequential and portfolioKshitij Bansal
A "command executer" layer between parsing commands and invoking them. New implementation of portfolio driver splits only when check-sat or query command is encountered, and then switches back to sequential till the next one. As side effect, restores functionality of interactive mode and push/pops.
2012-09-06allow SmtEngine::setOption() for trace and debug tagsMorgan Deters
2012-09-06fixes to the compatibility layer; this fixes the broken system testMorgan Deters
2012-09-06Remove SmtEngine::getStackLevel(), which exposed implementation details and ↵Morgan Deters
was only used by the compatibility layer. Make SmtEngine::internalPop() delay popping. This fixes a bug in model generation.
2012-09-06add --incremental to --smtlib2 compliance mode (thanks Peter Collingbourne)Morgan Deters
2012-09-04Accepted some patches from the Multicore Programming Group at Imperial ↵Morgan Deters
College London (via Peter Collingbourne): cvc4-0001-Look-for-cxxtestgen-as-well-as-cxxtestgen.pl-and-cxx.patch * better checking for cxxtest cvc4-0002-Do-not-read-an-additional-command-after-failure.patch * more correct failure behavior for interactive tools cvc4-0003-Only-exit-when-encountering-a-CommandFailure.patch * don't consider "unsupported" as a failure (accepted with modifications) cvc4-0004-Produce-SMT-LIB-v2-conformant-output-for-get-info.patch * better get-info responses (accepted with modifications) These patches will help the group build Boogie support for CVC4. (this commit was certified error- and warning-free by the test-and-commit script.)
2012-09-03minor cleanup leftover from fmf-develAndrew Reynolds
2012-08-31merge from fmf-devel branch. more updates to models: now with ↵Andrew Reynolds
collectModelInfo with fullModel argument, most theory-specific implementation out of the model class, model printer relegated to printer classes. Also updates to finite mode finding, modifications to datatypes making them compatible with theory combination, support for theory-specific handling of user attributes, refactoring of uf models
2012-08-30set the default expression-printing depth to "unlimited"Morgan Deters
2012-08-29* Numerous documentation fixes (fix doxygen warnings, add missing ↵Morgan Deters
documentation, etc.). * Remove sat_module.cpp, which was no longer used (was previously refactored?)
2012-08-29To the build system:Morgan Deters
* Fix "make distclean." This should fix the "local regressions fail" that caused documentation, debian, and "distcheck" nightly build targets to fail. * "make clean" now removes some options stuff that previously required a "make distclean." * Cosmetic and portability adjustments.
2012-08-28fix a bug in CLN rational printing where the base was ignored (was causing ↵Morgan Deters
the new CVC3-compatibility-API system test to fail)
2012-08-28Improved compatibility layer, now supports quantifiers. Also incorporatesMorgan Deters
numerous bugfixes, and the cvc3 system test is enabled.
2012-08-27fix a destruction-order issue that was (1) causing valgrind to complain ↵Morgan Deters
loudly about invalid reads and writes, and (2) apparently causing problems deleting the decision engine (which is now being properly deleted) (this commit was certified error- and warning-free by the test-and-commit script.)
2012-08-27* Reversing commit r4258 (which disabled failing regressions). Fixed the ↵Morgan Deters
problem so they're no longer failing (in the quantifiers rewriter). Resolves bug #381. * Added LAMBDA kind and type rule, and Node::isClosure(). (this commit was certified error- and warning-free by the test-and-commit script.)
2012-08-26minor, lying around in a wd (related to investigating bug 374)Kshitij Bansal
2012-08-26Array constants finished and working. Unit tests for array constants.Clark Barrett
2012-08-25fix unit testsMorgan Deters
2012-08-24* disallow internal uses of mkVar() (you have to mkSkolem())Morgan Deters
* add support for mkBoundVar() (BOUND_VAR_LISTs in quantifiers must be bound vars)
2012-08-24disallow assertions to inactive theories.Morgan Deters
this fixes at least one known bug where quantifiers could be asserted in quantifier-free logics, with incorrect results.
2012-08-24fix TheoryEngine::collectModelInfo() to only call collectModelInfo() on ↵Morgan Deters
active theories; resolves bug 380
2012-08-24fix warning in arrays rewriterMorgan Deters
2012-08-24fix get-value output in a couple ways; this fixes bug #378Morgan Deters
2012-08-23attribute stuff for Clark's array constantsMorgan Deters
2012-08-23Array constant coding done except for the attributes neededClark Barrett
2012-08-22Cap finite cardinalities at 2^64, as discussed in the meeting last week.Morgan Deters
Replace all cardinality comparison functions <=, ==, !=, >=, <, >, with a single compare() function that can return UNKNOWN in the case of unknown (or large-finite and thus not *precisely* known) cardinalities.
2012-08-22fix some build dependencies in options-building; should fix a strange bug ↵Morgan Deters
Andy saw when adding options & re-making, which was caused by sources not being properly recompiled when they should be
2012-08-22More progress on array constants.Clark Barrett
Here's a fun way to give yourself a week-long headache: try to figure out how to write efficient code to normalize array constants. It's mostly there now - just need to figure out how to use type enumerators and update once the new cardinality stuff is in place.
2012-08-21add some incremental in-tree regressionsMorgan Deters
2012-08-21rewriterules: fix a correction bug with --simplification=batchFrançois Bobot
Rewriterules used ppAssert to obtain early the rewriterules in order to use them in ppRewrite. But all the simplifications (ex. f x = b : [f x/b]) are not done at that point. Since --simplification=batch remove the equality (unlike =incremental), for reachability_bbttf_eT_arrays.smt2 the answer was sat instead of unsat (thx Andy). Partial fix: don't take the rewriterules during ppAssert. That changes nothing since early rewrite was already disabled. But the complete fix (when early rewrite will be enabled again) will need to take the rewriterules more than once.
2012-08-20remove duplicate function TheoryEngine::getTheory(TheoryId). It was a ↵Morgan Deters
duplicate of TheoryEngine::theoryOf(TheoryId)
2012-08-20minor cleanupMorgan Deters
2012-08-20fixes for java bindingsMorgan Deters
2012-08-191. Fix for inst_match.cpp to allow compilation on fedoraClark Barrett
2. Initial implementation of computeIsConst for arrays - still needs additional checks based on cardinality 3. Finally fixed pre-competition bug in array rewriter 4. Still to come: array rewrites for constants and STORE_ALL
2012-08-16The SmtEngine now ensures that setLogicInternal() is called even if there is ↵Morgan Deters
no explicit setLogic(). This is important for the CVC language, where the parser doesn't ensure that setLogic() is called, and for API uses. setLogicInternal() should be called in order to properly set up heuristics, even if the logic is just ALL_SUPPORTED. This means that the CVC language can now take advantage of statistics. Also added the ability to set the logic from CVC presentation language via (e.g.) OPTION "logic" "QF_UFLIA"; Disabled the justification decision heuristic for ALL_SUPPORTED, as it interferes with incrementality. Kshitij may have a fix (I warned him about this commit).
2012-08-16Replace propagateAsDecision() with Theory::getNextDecisionRequest():Morgan Deters
* arrays now uses the new approach by using a CDQueue<> * uf strong solver has had the feature disabled, pending a merge from Andy * theory kinds files now have a getNextDecisionRequest property (if you want to take part in such decision requests you have to list that property) * the staticLearning property has been renamed ppStaticLearn to match the function name * theory kinds files are now checked again for correctly-declared properties (this had been disabled) * minor documentation and other fixups
2012-08-16ArrayStoreAll should (for now) only allow constant expressions, as it is ↵Morgan Deters
itself a CONSTANT.
2012-08-16fix exceptions and mkConst() in java bindingMorgan Deters
2012-08-16some fixes for language bindingsMorgan Deters
2012-08-14Fixes to integer wrapper classes:Morgan Deters
* more uniform interface between the CLN and GMP wrappers * support base inference (base == 0) on parsing strings with the CLN wrapper; this was a difference from the GMP wrapper (resolves bug #372)
2012-08-14Implements TheoryArith::collectModelInfo(). The current implementation is ↵Tim King
quite basic. This may need to be revisited.
2012-08-14Adds substituteDelta() to DeltaRational which given a value for delta ↵Tim King
returns the corresponding rational value.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback