summaryrefslogtreecommitdiff
path: root/src/theory
AgeCommit message (Collapse)Author
2010-07-02roll back a small change that made arith fail some assertsMorgan Deters
2010-07-02* Added white-box TheoryEngine test that tests the rewriterMorgan Deters
* Added regression documentation to test/regress/README * Added ability to print types of vars in expr printouts with iomanipulator Node::printtypes(true)... for example, Warning() << Node::printtypes(true) << n << std::endl; * Types-printing can be specified on the command line with --print-expr-types * Improved type handling facilities and theoryOf(). For now, SORT_TYPE moved from builtin theory to UF theory to match old behavior. * Additional gdb debug functionality. Now we have: debugPrintNode(Node) debugPrintRawNode(Node) debugPrintTNode(TNode) debugPrintRawTNode(TNode) debugPrintTypeNode(TypeNode) debugPrintRawTypeNode(TypeNode) debugPrintNodeValue(NodeValue*) debugPrintRawNodeValue(NodeValue*) they all print a {Node,TNode,NodeValue*} from the debugger. The "Raw" versions print a very low-level AST-like form. The regular versions do the same as operator<<, but force full printing on (no depth-limiting). * Other trivial fixes
2010-06-30* theory "tree" rewriting implemented and worksMorgan Deters
* added TheoryArith::preRewrite() to test and demonstrate the use of pre-rewriting. * array types and type checking now supported * array type checking now supported * theoryOf() dispatching properly to arrays now * theories now required to implement a (simple) identify() function that returns a string identifying them for debugging/user output purposes * added "builtin" theory to hold all built-in kinds and their type rules and rewriting (currently only exploding distinct) * fixed production build failure (regarding NodeSetDepth) * removed an errant "using namespace std" in util/bitvector.h (and made associated trivial fixes elsewhere) * fixes to make unexpected exceptions more verbose in debug builds * fixes to make multiple, cascading assertion fails simpler * minor other fixes to comments etc.
2010-06-29This commit merges the decaying-rows branch into the main trunk.Tim King
2010-06-29Merging the unate-propagator branch into the trunk. This is a big update so ↵Tim King
expect a little turbulence. This commit will not compile. There will be a second commit that fixes this in a moment. I am delaying a change to avoid svn whining about a conflict.
2010-06-24Added post_mortem.py a statistics collector for user with the smt_curnch ↵Tim King
cluster. Also a spelling correction for the statistic theory::conflict.
2010-06-22Made ~Stat() virtual. Added some additional statistics. And added some ↵Tim King
documentation.
2010-06-18Merging the statistics branch into the main trunk. I'll go over how to use ↵Tim King
this Tuesday during the meeting. You'll need to run autogen and receonfigure after updating.
2010-06-16Added the experimental. +bool TheoryArith::AssertEquality(TNode n, TNode ↵Tim King
original){
2010-06-16More assorted changes to arithmetic in preparation for the code review.Tim King
2010-06-16This commit just contains miscellaneous arithmetic cleanup.Tim King
2010-06-15fix last commit gcc options (-wunknown-pragmas ==> -Wno-unknown-pragmas)Morgan Deters
2010-06-15remove warnings about unknown #pragma GCC diagnostic on older compilersMorgan Deters
2010-06-15I made a documentation change to get() to make explicit the contract ↵Tim King
requirements for 'slurping the queue'. Closes bug 154
2010-06-14Adding array select/store to SMT v1 and v2 parsersChristopher L. Conway
2010-06-14Fix to arith to make sure it only attempts to report 1 conflict per check() ↵Tim King
call.
2010-06-14Started work on array theoryClark Barrett
2010-06-06Some assorted fixes and local optimizations for theory arith.Tim King
2010-06-04Changed how assignments are saved during check. These are now backed by an ↵Tim King
attribute. There is now a priority queue for selecting the smallest inconsistent basic variable. normal.h has been removed. A large chunk of the registerTerm() stuff has been moved into preregister. The lazy splitting code is now been commented out so that it stops showing up in profiling.
2010-06-04Changed several arguments to const references.Tim King
2010-06-04** Don't fear the files-changed list, almost all changes are in the **Morgan Deters
** file-level documentation at the top of the sources. ** This is the "make bugzilla stop bugging me" bugfix commit. * Remove BackedNodeBuilder<> and collapse NodeBuilder<> hierarchy. Updated documentation in the file. Resolves bug #99. * Convenience NodeBuilders (PlusNodeBuilder, OrNodeBuilder, etc.) moved into a separate file. Partially resolves bug #100. * Moved isAssociative(Kind) into kind.h (and into the CVC4::kind namespace) instead of metakind.h (where it was in CVC4::metakind). This clears up a warning (private #inclusion) from the SMT and SMT2 parsers, and maybe makes more sense anyways, since this is based on the kind (and not the metakind) of an operator. * Documentation improvement; doxygen top-level \file gestures, \brief gestures for files, etc. Changed contrib/update-copyright.pl for this change, and post-processed to add \brief. Resolves bug #98. * Removed ExprManager::mkExpr(Kind) and NodeManager::mkNode(Kind). They no longer made sense. Resolves bug #91.
2010-06-03Fixes 2 issues with assignments. The first is constructing an initial ↵Tim King
assignment for slack variables once solving has begun. (They cannot just be 0.) The second has to do with how assignments are backttacked. Assignments are now tracked all of the time, and are frozen once they are known to be consistent, i.e. after a successful updateInconsistentVars(). Also added a fuzz test that shows both of these problems to the regressions.
2010-06-03Adds toString to DeltaRationalTim King
2010-06-03Fixes a bug where registration occurs before preregistration.Tim King
2010-06-01This commit adds a debugTagIsOn() guard around some extremely verbose ↵Tim King
debugging statements. There is some evidence that these debugging statements were 20% of the running time for QF_LRA/miplib/fixnet-1000.smt in debug mode.
2010-06-01This commit is a fix for a bug in removeITEs(). The check that the then ↵Tim King
branch is a boolean should now be working. This fixes bug 138.
2010-06-01Fixed a bug in partial_model.cpp where the data was immediately deallocated ↵Tim King
before being used. Fixed a bug in node_builder.h's crop where a pointer is dereferenced after a realloc call.
2010-05-29Couple of fixes to theory arith. pivotAndUpdate now multiplies by a_kj. And ↵Tim King
the tableau now simulates older pivots while adding a new row.
2010-05-29After blasting the disjuncts, TheoryEngine rewrite needs to reinvoke itself. ↵Tim King
QF_LRA is now no longer complaining about seeing nodes that can be rewritten to CONST_BOOLEAN.
2010-05-28This update enables TheoryArith to accept assertions that rewrite to true or ↵Tim King
false. This is temporary and will be removed once TheoryEngine rewriting is more fully debugged.
2010-05-28Bug fixes for combining coefficients of rewritten nodes.Tim King
2010-05-28Added printModel() to src/theory/arith/partial_model.cpp. This is a ↵Tim King
debugging utility that prints out the lower bound, upper bound, assignment, and the constraints that were asserted that caused the lower bound and upperbound to be asserted.
2010-05-28A few changes to the organization of TheoryEngine rewriting. A few bug fixes ↵Tim King
for it as well. make check should now work again.
2010-05-28Moving the ITE removal from CnfStream to TheoryEngine, which is a bit closer ↵Tim King
to its final destination. Added a basic rewriter to TheoryUF. (x=x rewrites to true.) Added DIVISION to src/expr/node_manager.cpp's getType. Fixed the theory returned for variables in theoryOf() for bool and arith. Fixed TheoryEngine rewrite children to properly handle APPLY_UFs. Removed the special case for equality in TheoryEngine rewrite. A few tests are currently broken due to deallocation errors. Morgan and I will try to commit a fix to this in a little bit.
2010-05-27Remove isAtomic() as per 4/27/2010 meeting. Add comments about its ↵Morgan Deters
potential design for later. Resolves bug 113, invalidates bugs 93 and 94.
2010-05-27Preregistration has been turned on. Highly experimental eager splitting ↵Tim King
support has been added. Also a few bug fixes to Tableau.
2010-05-26 . '+Outstanding case split in theory arith'Tim King
2010-05-26Fix for bug 131. Added some additional debugging assertions for the arith ↵Tim King
rewriter.
2010-05-25Added Rational constructors that only take a numerator. The const char* ↵Tim King
Rational and Integer constructors are now explicit. This means that 'Integer = 3;' and so on are no longer permitted. This closes bug 121.
2010-05-25Some initial changes to allow for lemmas on demand. Dejan Jovanović
To be done: * Add erasable map Clause* to bool to minisat (backtracks with the solver) * Add map from Clause* to Node (clauses that came from a node) * Add reference counting Literal -> Node to CNFManager * If Literal -> Node refcount goes to zero, the clauses of Node can be erased (if eresable) * If clause is erased for each L in clause L -> Node refcount goes down
2010-05-21Small fixes to TheoryArith. Added a hack to make Integers a subtype of ↵Tim King
Real. See Bug 127 for a discussion of the hack. I am also adding a regression test that does not work (bug 128). It is not enabled so make check should still be fine.
2010-05-20Added the division symbol to the parser, and minimal support for it in ↵Tim King
TheoryArith. Also directly hacked in support for theoryOf() to work for equalities where the left hand is a variable of type real.
2010-05-19Significant revision to theory/arith. The new draft has a lot of small bug ↵Tim King
fixes and organizational changes. The theory is now enabled to perform checking in the TheoryEngine. This draft can now solve 2 new regression tests test/regress/regress0/ineq_slack.smt and test/regress/regress0/ineq_basic.smt. There is also a small bug fix inside src/expr/attribute.h.
2010-05-05bug fixes for types, old unit tests for types work nowDejan Jovanović
2010-05-04Type-checking classes and hooks (not tested yet).Dejan Jovanović
2010-05-03theory detection fixes; fixes build breakage when you delete build directoriesMorgan Deters
2010-05-02smt parser for bit-vectorsDejan Jovanović
2010-04-29Added the capability to construct expressions by passing the operator ↵Dejan Jovanović
instead of the kind, i.e. Expr op = ..."f"... em.mkExpr(op, children); Operator kinds are automatically associated with the enclosing expression kind in the DSL and generated.
2010-04-28Merging the arithmetic theory draft (lra-init) back into the main trunk. ↵Tim King
This should not affect other parts of the system. This code is untested, and is volatile. It is going to be improved in the future so don't pick on it too much. I am merging this code in its current state back into the main trunk because it was getting unruly to keep merging the updated trunk back into the branch.
2010-04-28Added theory/arith/kind and enabled the smt parser to read in these symbols. ↵Tim King
Also a bug fix to a couple of unit tests.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback