summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-05-09--disable-tracing at configure time now disables Trace() and Debug() ↵Morgan Deters
gestures both.
2012-05-09* simplifying equality engine interfaceDejan Jovanović
* notifications are now through the interface subclass instead of a template * notifications include constants being merged * changed contextNotifyObj::notify to contextNotifyObj::contextNotifyPop so it's more descriptive and doesn't clutter methods when subclassed * sat solver now has explicit methods to make true and false constants * 0-level literals are removed from explanations of propagations
2012-05-09rm something for a future merge that sneaked inKshitij Bansal
(gets rid of warning)
2012-05-09Merge from decision branch (ITE support)Kshitij Bansal
Major changes from last merge * ITEs supported * Don't share theory lemmas to DE, only assertions Should probably be noted that 'make regress' doesn't quite pass with --decision=justification. Throws off search in couple of arith benchmarks. No serious performance changes expected. Keep an eye.
2012-05-09Fixing the debug tags generation and related methods in configuration.cpp ↵Dejan Jovanović
that disallowed me to debug my bugs by reporting that the debug tag doesn't exists, where in fact it was in the code. 1) The grep and sed for tags wasn't picking up on .isOn("tag") 2) The isDebugTag a) didn't take a parameter b) was using binary search using strcmp which is non-portable and didn't work for tags including special characters Morgan should vet this, since there is some crazy sed stuff going on
2012-05-08Merging in bvprop branch, with proper bit-vector propagation. Liana Hadarean
This should also fix bug 325.
2012-05-07Fixing a bug with TheoryArith::ppAssert() and shared terms.Tim King
2012-05-07Fixes a sign bug in the DioSolver.Tim King
2012-05-04Guard for expensive Debug traceClark Barrett
2012-05-04options: fail if the debug or trace tag specified doesn't exist (-d -t)François Bobot
2012-05-04fix: getNumTraceTags, getNumDebugTagsFrançois Bobot
2012-05-04- This fixes a problem where simplex produced the same conflict in the ↵Tim King
single check call. - This increases the number of substitutions that ppAssert can solve on integer equations.
2012-05-03Some cleanup starting off from trying to understand the sharing code. ↵Dejan Jovanović
Changes include * fixed term visitor from the bvprop branch * removed all the warnings from builds -- warnings are there to be noted *NOT* to be used as scribbles * moved the LogicInfo into the theory constructor
2012-05-02Changing d_sharedTermsExist to logicInfo.isSharingEnabled()Clark Barrett
2012-04-30Added map from skolem variables to new ite formulas in ite removal.Clark Barrett
d_sharedTermsExist is now set based on logicInfo instead of dynamically when shared terms are found.
2012-04-28New LogicInfo functionality.Morgan Deters
src/theory/logic_info.{h,cpp} contains the CVC4::LogicInfo class, which keeps track of which theories are active (which should remain constant throughout the life of an SmtEngine) and other details (like integers, reals, linear/nonlinear, etc.). This class has a default constructor which is the most all-inclusive logic. Alternatively, this class can be constructed from an SMT-LIB logic string (the empty string gives the same as "QF_SAT"). Once constructed, theories can be enabled or disabled, quantifiers flipped on and off, integers flipped on and off, etc. At any point an SMT-LIB-like logic string can be extracted. The SmtEngine keeps a LogicInfo for itself and shares with the TheoryEngine (and, in turn, the theories) only a const reference to it. This ensures that the logic info doesn't mutate over the course of the run. As part of this commit, the TheoryEngine's old notion of "active theories" has been completely removed. As a result, SMT benchmarks that are incorrectly tagged with a logic will assert-fail or worse. (We should probably fail more gracefully in this case.) One such example was bug303.smt2, which used UF reasoning but was tagged QF_LIA. This has been fixed.
2012-04-28require boost library (but not the threading support---that's only necessary ↵Morgan Deters
for portfolio)
2012-04-28undo, againMorgan Deters
2012-04-28adding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration ↵Morgan Deters
manually; this will make the LogicInfo commit coming up much easier to integrate into trunk, and will anyway be cleaned up when quantifiers2 branch is merged into trunk.
2012-04-27undo previous commit (as it will break a number of things without additional ↵Morgan Deters
support I haven't yet committed)
2012-04-27adding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration ↵Morgan Deters
manually; this will make the LogicInfo commit coming up much easier to integrate into trunk, and will anyway be cleaned up when quantifiers2 branch is merged into trunk.
2012-04-27fix parser logic-handling oversights: QF_UFBV should now be supportedMorgan Deters
2012-04-27break dependence on zlib-dev for nowMorgan Deters
2012-04-27Fixed warning in decision_engine.h, minor tweak to caregraph function inClark Barrett
arrays, fixed bug with equalities between constants in shared terms database
2012-04-27This merges in the branch cvc4/branches/arithmetic/matrix into trunk.Tim King
- Splits the functionality of having a sparse matrix of Ts and a solved matrix of rationals in tableau. - Splits ArithVarSet into DenseMap and CDDenseSet and simplifies the code. - No performance loss!
2012-04-25portfolio driver: respect parseOnly optionKshitij Bansal
2012-04-25fix for de+lemmasKshitij Bansal
for the first time make regress passes even if JH is enabled
2012-04-24This commit merges in the branch branches/arithmetic/congruence into trunk. ↵Tim King
Here are a summary of the changes: - Adds CDMaybe and CDRaised in cdmaybe.h - Add test for congruence over arithmetic terms and constants - Renames DifferenceManager to CongruenceManager - Changes a number of internal details for CongruenceManager
2012-04-23Merge from decision branch -- partially working justification heuristicKshitij Bansal
Overview of changes * command line option --decision={internal,justification} * justification heuristic handles all operators except ITEs revelant stats: decision::jh::* * if decisionEngine has solved the problem PropEngine returns unknown and smtEngine queries DE to get the answer relevant stat: smt::resultSource * there are known bugs Full list of commits being merged r3330 use CD data structures in JH r3329 add command-line option --decision=MODE r3328 timer stat, other fixes r3326 more trace r3325 enable implies, iff, xor (no further regression losses) r3324 feed decision engine lemmas, changes to quitting mechanism r3322 In progress r3321 more fixes... r3318 bugfix1 (69 more to go) r3317 Handle other boolean operators in JH (except ITE) r3316 mechanism for DE to stopSearch r3315 merge from trunk + JH translation continuation r3275 change option to enable JH by default[A
2012-04-20Updates to array theory - much more lazy about introduction of readsClark Barrett
Also disabled eager lemmas - slows down QF_AX but gets new examples in QF_AUFBV
2012-04-19In the constructor of DecisionEngine, there were 2 pointers that were ↵Tim King
assumed to be initialized to NULL. This is not true on all platforms. This is now done explicitly. Macs builds should now work again.
2012-04-18add the missing BINARY variable in some test/regress makefilesKshitij Bansal
2012-04-18cout -> warning. Happening in portfolioKshitij Bansal
rest of the search go through, but still should be investigated
2012-04-18disabling the problematic pragma in node_manager.h on gcc < 4.6 until we ↵Dejan Jovanović
figure out what to do with it
2012-04-17Fix for thos annoying "array index" warnings in production buildsDejan Jovanović
2012-04-17A dummy decision engine. Expected performance impact: none.Kshitij Bansal
Adds DecisionEngine and an abstract class DecisionStrategy which other strategies will derive from eventually. Full revision summary of merged commits: r3241 merge from trunk r3240 fix r3239 WIP r3238 JH, CVC3 code: 5% done -- 5% translated r3237 JH groundwork r3236 make make regrss pass r3234 hueristic->heuristic r3229 JustificationHeuristic: EOD-WIP r3228 DecisionEngine: hookup assetions r3227 move ITE outside simplifyAssertions r3226 DecisionStrategy abstract class r3222 DecisionEngine: begin
2012-04-17Merges branches/arithmetic/atom-database r2979 through 3247 into trunk. ↵Tim King
Below is a highlight of the changes: - This introduces a new normal form to arithmetic. -- Equalities and disequalities are in solved form. Roughly speaking this means: (= x (+ y z)) is in normal form. (See the comments in normal_form.h for what this formally requires.) -- The normal form for inequality atoms always uses GEQ and GT instead of GEQ and LEQ. Integer atoms always use GEQ. - Constraint was added to TheoryArith. -- A constraint is a triple of (k x v) where: --- k is the type of the constraint (either LowerBound, UpperBound, Equality or Disequality), --- x is an ArithVar, and --- v is a DeltaRational value. -- Constraints are always attached to a ConstraintDatabase. -- A Constraint has its negation in the ConstraintDatabase [at least for now]. -- Every constraint belongs to a set of constraints for each ArithVar sorted by the delta rational values. -- This set can be iterated over and provides efficient access to other constraints for this variable. -- A literal may be attached to a constraint. -- Constraints with attached literals may be marked as being asserted to the theory (sat context dependent). -- Constraints can be propagated. -- Every constraint has a proof (sat context dependent). -- Proofs can be explained for either conflicts or propagations (if the node was propagated). (These proofs may be different.) -- Equalities and disequalities can be marked as being split (user context dependent) - This removes and replaces: -- src/theory/arith/arith_prop_manager.* -- src/theory/arith/atom_database.* -- src/theory/arith/ordered_set.h - Added isZero(), isOne() and isNegativeOne() to Rational and Integer. - Added operator+ to CDList::const_iterator. - Added const_iterator to CDQueue. - Changes to regression tests.
2012-04-14Fixed bug in sharing with arrays of different typesClark Barrett
2012-04-13Fix SExpr name qualification for swig, and #include integer and rational ↵Morgan Deters
headers.
2012-04-12svn ignore Makefile.in for aufbv regression directoryMorgan Deters
2012-04-12Adds an operator<< to SExpr::SexprTypes. This fixes bug 317. In debug ↵Tim King
builds, an Unhandled(SExpr::SexprTypes) could not compile on debian.
2012-04-11merge from arrays-clark branchMorgan Deters
2012-04-06* Smt2 printer for datatypesFrançois Bobot
* Fix DefineFunctionCommand when a constant is defined
2012-04-06* Fix ITEs and functions in CVC language printer.Morgan Deters
* Permit "BOOL = BOOL" in CVC language parser (auto-replaced with IFF internally, except in strict mode). * SExpr atoms now can be string-, integer-, or rational-valued. * SmtEngine::setInfo(":status", ...) now properly dumps a SetBenchmarkStatusCommand rather than a SetInfoCommand. * Some dumping fixes (resolves bug 313)
2012-04-06fix distributed builds (and therefore the Debian nightly build) by ignoring ↵Morgan Deters
Makefile.am files under src/prop/cryptominisat.
2012-04-06processing assertions in bit-vectors even when in fullcheck (needed for sharing)Dejan Jovanović
2012-04-05Support to test the "dumper" mechanism in regressions (feeding dump output ↵Morgan Deters
back in) by doing "make regress RUN_REGRESSION_ARGS=--dump"
2012-04-04some settings in bvminisatDejan Jovanović
2012-04-04changed BVMinisat options to use cc_min=0 in propagate only calls and ↵Liana Hadarean
cc_min=2 in solve
2012-04-04changed ccmin_mode in BvMinisatLiana Hadarean
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback