summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-04-25Weekend work. The main points:Morgan Deters
* Type::getCardinality() returns the cardinality for for all types. Theories give a cardinality in the their kinds file. For cardinalities that depend on a type argument, a "cardinality computer" function is named in the kinds file, which takes a TypeNode and returns its cardinality. * There's a bitmap for the set of "active theories" in the TheoryEngine. Theories become "active" when a term that is owned by them, or whose type is owned by them, is pre-registered (run CVC4 with --verbose to see theory activation). Non-active theories don't get any calls for check() or propagate() or anything, and if we're running in single-theory mode, the shared term manager doesn't have to get involved. This is really important for get() performance (which can only skimp on walking the entire sub-DAG only if the theory doesn't require it AND the shared term manager doesn't require it). * TheoryEngine now does not call presolve(), registerTerm(), notifyRestart(), etc., on a Theory if that theory doesn't declare that property in its kinds file. To avoid coding errors, mktheorytraits greps the theory header and gives warnings if: + the theory appears to declare one of the functions (check, propagate, etc.) that isn't listed among its kinds file properties (but probably should be) + the theory appears NOT to declare one of the functions listed in its kinds file properties * some bounded token stream work
2011-04-23fix for parser/tests for ANTLR 3.2 (it was working fine on 3.3)Morgan Deters
2011-04-23* reviewed BooleanSimplification, added documentation & unit testMorgan Deters
* work around a lexer ambiguity in CVC grammar * add support for tracing antlr parser/lexer * add parsing support for more language features * initial parameterized types parsing work to support Andy's work
2011-04-23make run_regression script robust to DOS newlines :(Morgan Deters
2011-04-22added fixes for datatype theory solver to account for rewriting before ↵Andrew Reynolds
finite/well-founded check.
2011-04-22fix to last commitMorgan Deters
2011-04-22Fixing SmtEngine::getValue() by adding a NodeManagerScope (thanks Tim for ↵Morgan Deters
finding this)
2011-04-20numerous bugfixesMorgan Deters
2011-04-20incorrect usage of C++ std::string caused a test to failMorgan Deters
2011-04-20Minor mixed-bag commit. Expected performance impact negligible.Morgan Deters
* Fixed hole in arrays typechecking. * Fixed "make dist". * Better ouroborous test, and some printer fixes. * Continued cleanup in CVC parser, removed some warnings. * Better output.
2011-04-20Tuesday end-of-day commit.Morgan Deters
Expected performance impact outside of datatypes/CVC parser is negligible. * CVC language LAMBDA, functional LET, type LET, precedence fixes, bitvectors, and arrays, with partial parsing support also for quantifiers, tuples, subranges, subtypes, and records * support for complex recursive DATATYPE selectors, e.g. tree = node(children:ARRAY INT OF tree) | leaf(data:INT) these are complicated because they have to be left unresolved at parse time and dealt with in a second pass. * bugfix for Exprs/Types that occurred when setting them to null (not Nodes/TypeNodes, just Exprs/Types). * Cleanup/code review items
2011-04-18Removing dead code that came in on commit r1740.Tim King
2011-04-18more work on CVC languageMorgan Deters
2011-04-18mostly CVC presentation language parsing and printingMorgan Deters
2011-04-18This commit merges the branch arithmetic/propagation-again into trunk.Tim King
- This adds code for bounds refinement, and conflict weakening. - This adds util/boolean_simplification.h. - This adds a propagation manager to theory of arithmetic. - Propagation is disabled by default. - Propagation can be enabled by the command line flag "--enable-arithmetic-propagation" - Propagation interacts *heavily* with rewriting equalities, and will work best if the command line flag "--rewrite-arithmetic-equalities" is enabled.
2011-04-18Partial merge from datatypes-merge branch:Morgan Deters
1. Defines a new type "DatatypeType", a type-constant that holds a Datatype, describing an inductive data type. 2. CVC language parser supports datatypes. 3. CVC language printer now functional. 4. Minor other cleanups. No performance impact is expected outside of datatypes. I'm verifying that that is the case with a cluster job this morning.
2011-04-18Fixing output for EOF token in parser errorsChristopher L. Conway
2011-04-16also a fix for a system test related to ParserBuilderMorgan Deters
2011-04-16unit test fixes for new NodeManager constructor (related to previous two ↵Morgan Deters
trunk commits)
2011-04-15parser/driver fixes for last commitMorgan Deters
2011-04-15partial merge from portfolio branch, adding conversions ↵Morgan Deters
(library-internal-only of course) between Exprs and Nodes, Types and TypeNodes, ExprManagers and NodeManagers.
2011-04-14reverting back the minisat code and adding a simpler one that shouldn't ↵Dejan Jovanović
change the search
2011-04-14Three things:Morgan Deters
1. Infrastructure for unit T-conflicts added to SAT proxy (and also the theory output channel documentation); previously theories could not communicate unit T-conflicts with the SAT layer because that layer had an implicit assumption (not asserted) that the conflict nodes were an AND. 2. UF now pre-rewrites trivial equalities to "true". These could conceivably occur in artificial benchmarks in this form: (let (?x BIG-HUGE-TERM) ... (= ?x ?x) ... ) 3. The SMT-LIBv2 printer now properly prints Bool constants.
2011-04-14fixing an uninitialized literal variableDejan Jovanović
2011-04-13adding support for unit conflicts in minisat...Dejan Jovanović
2011-04-13fix compiler warning in non-replay buildsMorgan Deters
2011-04-13cache the LET rewriting (and defined-function expansion too)---it wasn't ↵Morgan Deters
before, leading to terrible slowdown on heavily-nested LETs (and defined functions)
2011-04-13add disequality token ("/=") and rules to CVC parserMorgan Deters
2011-04-12another small fix to "make dist" that can lead to a misconfigured tarballMorgan Deters
2011-04-11Transitive closure module is workingClark Barrett
2011-04-11fix "make dist" issues in makefilesMorgan Deters
2011-04-10merge from replay branchMorgan Deters
2011-04-10Add -lprofiler when --with-google-perftools is offered; also fix some ↵Morgan Deters
newswire-raised documentation issues.
2011-04-09changing the sat solver to assert propagated literals back to the theoriesDejan Jovanović
2011-04-08Added util classClark Barrett
2011-04-07Made Valuation::getValue() and Valuation::getSatValue() const.Tim King
2011-04-05Memory fix for congruence closure; affects many UF benchmarks, probably AX too.Morgan Deters
2011-04-05Added options for setting the random decision frequency and random seed for ↵Tim King
the sat solver. Also added command line options for setting both.
2011-04-05Minor adjustments to the Registrar commit in 1644, documentation.Morgan Deters
2011-04-04Merging the satliteral-before-prereg branch into trunk. Theory ↵Tim King
preregistration is now called during the conversion to cnf. This fixes bug 257.
2011-04-04Reverts previous commit r1636.Tim King
2011-04-04Add documentation to Node and TNode (closes bug #201).Morgan Deters
Also, only build doxygen documentation on stuff in src/, not test/ or contrib/ or anywhere else. Hopefully this turns our 3000+ page user manual into something a little more useful!
2011-04-02Delayed the addition of unate propagation lemmas until propagation is ↵Tim King
called. The OutputChannel is now untouched by TheoryArith during preregistration.
2011-04-02with --with-google-perftools, don't just take it on blind faith, require a ↵Morgan Deters
successful link at configure time
2011-04-02minor fixesMorgan Deters
2011-04-01minor bugfixes (fixes broken dynamic-library build from last night)Morgan Deters
2011-04-01documentation fixMorgan Deters
2011-04-01This commit is a merge from the "betterstats" branch, which:Morgan Deters
* Makes Options an "omnipresent thread-local global" (like the notion of the "current NodeManager" was already). Options::current() accesses this structure. * Removes Options from constructors and data structures everywhere (this cleans up a lot of things). * No longer uses StatisticsRegistry statically. An instance of the registry is created and linked to a NodeManager. * StatisticsRegistry::current() is similar to Options::current(), but the pointer is stowed in the NodeManager (rather than stored) * The static functions of StatisticsRegistry have been left, for backward compatibility; they now use the "current" statistics registry. * SmtEngine::getStatisticsRegistry() is a public accessor for the registry; this is needed by main() to reach in and get the registry, for flushing statistics at the end.
2011-03-31Fixes to Valuation.Tim King
2011-03-30improve recent low-coverage complaintsMorgan Deters
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback