summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-25Refactored CnfStream to work with the bv theory Bitblaster:Liana Hadarean
* separated SatSolverInput interface class into two classes: - TheoryProxy for the sat solver to communicate with the theories - SatSolverInterface abstract class to communicate with the sat solver * instead of using #ifdef typedef for SatClauses and SatLiterals, now there are CVC4 SatLiteral/SatClause types and mappings between them and the internal sat solver clause/literal representation * added abstract classes for DPLLSatSolver and BVSatSolver different interfaces Replaced TheoryBV with bitblasting implementation: * all operators bitblasted * only operator elimination rewrite rules so far
2012-02-24Theory interface changes:Dejan Jovanović
solve -> ppAsert staticLearning -> ppStaticLearn preprocess -> ppRewrite SolveStatus -> PPAssertStatus (SOLVE_* -> PP_ASSERT_*) via Eclipse refactoring magic.
2012-02-23Added ability to set a "cvc4-specific logic" in standards-compliantMorgan Deters
SMT-LIBv1 and SMT-LIBv2 input: In SMT-LIBv1, you specify the "cvc4_logic" benchmark attribute; for instance: (benchmark actually_a_sat_benchmark_but_looks_like_uf :logic QF_UF :cvc4_logic { QF_SAT } [...] In SMT-LIBv2, you use a set-info; for instance: (set-logic QF_UF) (set-info :cvc4-logic "QF_SAT") [...] Right now, the only thing this does is disable the symmetry breaker for benchmarks like the above ones. As part of this work, TheoryEngine::setLogic() was removed (the logic field there wasn't actually used anywhere, its need disappeared when Theory::setUninterpretedSortOwner() was provided). Also, Theory::d_uninterpretedSortOwner got a name change to Theory::s_uninterpretedSortOwner, to highlight that it is static to the Theory class. This represents a breakage of our separation goals for CVC4, since it means that two SmtEngines cannot be created separately to solve a QF_AX and QF_UF problem. A bug report is pending.
2012-02-23pcvc4 only built if --with-portfolio given to the configure script ↵Morgan Deters
(Clark-requested change)
2012-02-22Fix for bug 305.Tim King
2012-02-22fixes to configure and boost.m4 to make certain boost installations nonfatal ↵Morgan Deters
errors; threading support should only be required to build pcvc4, not cvc4
2012-02-22another static library unavailability issueMorgan Deters
2012-02-22make sure to clear out READLINE_LIBS if readline causes problems at ↵Morgan Deters
configure time; fixes a bug reported by Clark for static-binary builds on machines where no static libreadline is available (like CIMS machines)
2012-02-22Added OutputChannel::propagateAsDecision() functionality, allowing a theoryMorgan Deters
to request a decision on a literal. All these theory requests are kept in a context-dependent queue and serviced in order when the SAT solver goes to make a decision. Requests that don't have a SAT literal give an assert-fail. Requests for literals that already have an assignment are silently ignored. Since the queue is CD, requests can actually be serviced more than once (e.g., if a request is made at DL 5, but not serviced until DL 10, and later, a conflict backtracks to level 7, the request may be serviced again). Performance impact: none to negligible for theories that don't use it See http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=3620&reference_id=3614&mode=&category=&p=0
2012-02-22Fixes to documentation / fixes for MacOSMorgan Deters
2012-02-22minor change to order fn in sat solver's ElimLtKshitij Bansal
(better, (marginally) faster -- regressions 3605, 3606)
2012-02-21add a "--with-portfolio" configure option that makes a missing boost-thread ↵Morgan Deters
library an error; useful for builds requiring a "pcvc4" binary at the end
2012-02-21fix src/util/hash.h to specialize GNU's hash template for <uint64_t> on ↵Morgan Deters
platforms that need it; fixes Mac builds.
2012-02-21language bindings fixes for yesterday's portfolio mergeMorgan Deters
2012-02-21Fix for bug303. The problem was with function applications that get ↵Dejan Jovanović
normalized when added to the term database. For example, if x=y exists, and the term f(x) is added, f(y) was stored. So, when getExplanation(f(x), f(y)) was called, trouble ensued. I now keep the original version so that explanations can be properly produced. Also added theory::assertions debug flag that will printout assertions of each theory for ease and uniformity of debugging in the future.
2012-02-21don't require libboost_thread (its presence is detected at configure-time), ↵Morgan Deters
and other build/documentation fixes from yesterday's portfolio merge; resolves bug 302
2012-02-20fix sharing issue for portfolio (full lit-to-node map wasn't being kept in ↵Morgan Deters
my previous checkin)
2012-02-20fix "make dist"Morgan Deters
2012-02-20zlib not required; remove configure's dependency on itMorgan Deters
2012-02-20portfolio mergeMorgan Deters
2012-02-20readline links in -ltermcap -ltinfo too (fixes breakage in static-binary builds)Morgan Deters
2012-02-20Added Theory::postsolve() infrastructure as Clark requested.Morgan Deters
(Though currently unused.) For theories that request presolve and postsolve (in their kinds file), they will get a presolve() notification before the first check(). After the final check during the current search, they get a postsolve(). presolve() and postsolve() notifications always come in pairs, bracketing all check()/propagate()/getValue() calls related to a single query. In the case of incremental benchmarks, theories may get additional presolve()/postsolve() pairs, but again, they always come in pairs. Expected performance impact: none (for theories that don't use it) http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=3598&reference_id=3581&p=5
2012-02-20By default, ONLY enable symmetry breaker ONLY for QF_UF (both SMT-LIBv1Morgan Deters
and SMT-LIBv2). There are --enable-symmetry-breaker and --disable-symmetry-breaker options that are always respected regardless of this default. Expected performance impact: positive New default (UF only) compared to old default (always on): http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=3594&reference_id=3595&p=5 Symmetry breaker remains a big win on UF: http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=3594&reference_id=3596&p=5 The last link to results looks at first that the symmetry breaker should always be turned off, since its use loses more regressions than it gains. *However*, the lost ones are only our "QF_SAT" benchmarks. For these, we should indeed turn off the symmetry breaker, but that's impossible for now because we tag them internally with the logic "QF_UF."
2012-02-16clarify wording in README, thanks for finding this Francois!Morgan Deters
2012-02-16Last commit accidentally lacked r2778 and r2779 from integer2. I have ↵Tim King
manually brought these changes over. Changed the tests used by test/regress/regress0/arith/integers/Makefile.am to be 15 of the more interesting tests. Did a bit of cleanup on TheoryArith to eliminate a warning and remove dead code.
2012-02-15This commit merges into trunk the branch branches/arithmetic/integers2 from ↵Tim King
r2650 to r2779. - This excludes revision 2777. This revision had some strange performance implications and was delaying the merge. - This includes the new DioSolver. The DioSolver can discover conflicts, produce substitutions, and produce cuts. - The DioSolver can be disabled at command line using --disable-dio-solver. - This includes a number of changes to the arithmetic normal form. - The Integer class features a number of new number theoretic function. - This commit includes a few rather loud warning. I will do my best to take care of them today.
2012-02-13precision in theoryskelFrançois Bobot
2012-02-13proper handling of improper get-valueMorgan Deters
2012-02-12copyright year updated to 2012Morgan Deters
2012-02-12separate new-theory components into a "theoryskel" directory so that new ↵Morgan Deters
files can be added to it without modifying the script.
2012-02-11ensure using bash for new-theory scriptMorgan Deters
2012-02-10attempt at a fix for the local regression failure (CLN linking issues on oneiricMorgan Deters
2012-02-10script to ease creating a new theory from scratch (will go along with new ↵Morgan Deters
reference documentation)
2012-02-10correct comment typo found during today's architectural meetingMorgan Deters
2012-02-09fixing antoher small bug in backtrackingDejan Jovanović
2012-02-08fixing a bug in uf_engine application lookup backtrackingDejan Jovanović
this should also fix bug299
2012-02-08Number of changes to cvc_printer.cpp. Specialized the printing for BVPLUS, ↵Tim King
BVSUB, and BVMULT. Fixed a bug in printing on PREFIX operators. Added parenthsis for POSTFIX operators. Passing the ouroborous test now.
2012-02-07re-adding comment about available languagesMorgan Deters
2012-02-07removing the 100 integer benchmarks from regress0, too manyDejan Jovanović
2012-02-07fixing some missing stuffDejan Jovanović
2012-02-06Fixing a bug in the integer unit tests when configured for GMP with ↵Tim King
assertions off.
2012-02-05changes to the cvc4 language printer, so that it actually prints the cvc4 ↵Dejan Jovanović
language all theory writers should take a look a what's being printed, to ensure all cases are covered
2012-02-04support for isWellFounded/mkGroundTerm on uninterpretted sorts. cvc4 now ↵Andrew Reynolds
assumes uninterpretted sorts are well-founded, allowing datatypes to work with uninterpretted sort subdata
2012-02-03updating configure to use python-config for building python bindingsDejan Jovanović
2012-01-27effecting the same change in the compat Java binding as was done to CVC3 ↵Morgan Deters
yesterday (ValidityChecker::value() and ValidityChecker::getValue())
2012-01-25Adding regress1 test ooo.rf6.smt2.Tim King
2012-01-23Partial fix to TheoryEngine::getExplanation so that SharedAssertions request ↵Tim King
explanations from the theory that can explain them. This partially fixes bug 295.
2012-01-23fix for bug295Dejan Jovanović
2012-01-17updates to smt2 parser to support datatypes, minor updates to datatypes ↵Andrew Reynolds
theory/rewriter to support datatypes with non-datatype subdata
2011-12-15Partial fix to bug 295.Tim King
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback