summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-08-03fix for proofs-enabled buildsMorgan Deters
2012-08-03better parser makefile fixMorgan Deters
2012-08-02fixes to paths in parser makefiles; if you've noticed strange SMT2 parser ↵Morgan Deters
behavior the last couple days, this should fix it
2012-08-02array-store-all classMorgan Deters
2012-08-01add isFinished() to type enumerators (so we don't rely on exception-throwing ↵Morgan Deters
after exhaustively enumerating finite types), also fix a standards-related FIXME in SmtEngine by clarifying the text of an error message
2012-08-01a couple fixes to SmtEngine::setOption(). thanks Andy for the report!Morgan Deters
2012-08-01fixes to some *clean targetsMorgan Deters
2012-08-01fix for the SmtEngine::beforeSearch() option predicateMorgan Deters
2012-08-01some fixes for Mac OSMorgan Deters
2012-07-31fixes for portfolioMorgan Deters
2012-07-31Moving some instantiation-related stuff from src/theory to ↵Morgan Deters
src/theory/quantifiers and src/theory/rewriterules. This unclutters the src/theory directory somewhat. The namespaces weren't changed, only the file locations.
2012-07-31fix some file documentationMorgan Deters
2012-07-31Options merge. This commit:Morgan Deters
1. changes the way options are declared (see http://church.cims.nyu.edu/wiki/Options) 2. moves module-specific options enumerations (SimplificationMode, DecisionMode, ArithUnateLemmaMode, etc.) to their own header files, also they are no longer inside the Options:: class namespace. 3. includes many SMT-LIBv2 compliance fixes, especially to (set-option..) and (get-option..) The biggest syntactical changes (outside of adding new options) you'll notice are in accessing and setting options: * to access an option, write (e.g.) options::unconstrainedSimp() instead of Options::current()->unconstrainedSimp. * to determine if an option value was set by the user, check (e.g.) options::unconstrainedSimp.wasSetByUser(). * ensure that you have the option available (you have to #include the right module's options.h file, e.g. #include "theory/uf/options.h" for UF options) *** this point is important. If you access an option and it tells you the option doesn't exist, you aren't #including the appropriate options.h header file *** Note that if you want an option to be directly set (i.e., other than via command-line parsing or SmtEngine::setOption()), you need to mark the option :read-write in its options file (otherwise it's read-only), and you then write (e.g.) options::unconstrainedSimp.set(true). Adding new options is incredibly simple for primitive types (int, unsigned, bool, string, double). For option settings that you need to turn into a member of an enumerated type, you write a custom "handler" for the option---this is no additional work than it was before, and there are many examples to copy from (a good one is stringToSimplificationMode() in src/smt/options_handlers.h). Benefits of the new options system include: 1. changes to options declarations don't require a full-source rebuild (you only have to rebuild those sources that depend on the set of options that changed). 2. lots of sanity checks (that the same option isn't declared twice, that option values are in range for their type, that all options are documented properly, etc.) 3. consistency: Boolean-valued option --foo gets a --no-foo automatically, documentation is generated consistently, the option-parsing matches the documented option name, etc. 4. setting options programmatically via SmtEngine::setOption() is enabled, and behaves the same as command-line equivalents (including checking the value is in range, etc.) 5. the notion of options being "set by the user" is now primitive; you can use (e.g.) options::unconstrainedSimp.wasSetByUser() instead of having to use (and maintain) a separate Boolean option for the purpose I've taken lots of care not to break anything. Hopefully, I've succeeded in that.
2012-07-27Minor cleanup after today's commits:Morgan Deters
* change some uses of "std::cout" to "Message()" * change some files to use Unix newlines instead of DOS newlines * fix compiler warning
2012-07-27removing unecessary filesAndrew Reynolds
2012-07-27merging fmf-devel branch, includes refactored datatype theory, updates to ↵Andrew Reynolds
model.h/cpp to prepare for release, and major refactoring of quantifiers/finite model finding. Note that new datatype theory does not insist upon any interpretation for selectors applied to incorrect constructors and consequently some answers may differ with previous version
2012-07-27Merge quantifiers2-trunk:François Bobot
- new syntax for rewrite rules - better rewrite rules theory - remove the rewriting with rewrite rules during ppRewrite temporarily - theory can define their own candidate generator - define a general candidate generator (inefficient ask to every theory) - split inst_match between the pattern matching used for quantifiers (inst_match.*) and the one used for rewrite rules (rr_inst_match.*): - the pattern matching is less exhaustive for quantifiers, - the one for rewrite rules can use efficient-e-matching.
2012-07-26Datatype enumerator work. This version is not a "fair" enumerator, but I ↵Morgan Deters
got it in quickly for Andy. A "fair" version forthcoming.
2012-07-18more compliance fixes for SMT-LIBv2Morgan Deters
2012-07-18a few fixes for java system testMorgan Deters
2012-07-18small change to model-generation function, after discussion w/ AndyMorgan Deters
2012-07-18removing an obsolete assertion in model-generation framework, per Andy's requestMorgan Deters
2012-07-18removing output operator for SExprTypes, which is never used (and SExprTypes ↵Morgan Deters
is not public-facing)---this fixes the language bindings, which fixes the broken debian build overnight
2012-07-17SMT-LIBv2 compliance updates:Morgan Deters
* more correct support for get-info responses * printer infrastructure extended to SExprs * parser updates to correctly handle symbols and strings (there were some minor differences from the spec)
2012-07-17minor fix to prevent getValue from returning nullAndrew Reynolds
2012-07-17fix for --produce-models with CVC4 presentation languageMorgan Deters
2012-07-17fix an obvious oversight: "distinct" wasn't part of the SMT2 core ↵Morgan Deters
theory---but this only gave trouble in strict parsing mode
2012-07-16now passes "make distcheck", which does important checks for the release ↵Morgan Deters
(e.g., "make dist" produces a distribution that passes "make dist" and "make check", "make uninstall" actually uninstalls, "make distclean" actually cleans, ...)
2012-07-16fix compiler warning in unit testMorgan Deters
2012-07-16stronger two_smt_engines testMorgan Deters
2012-07-16fix inadvertent change to system testMorgan Deters
2012-07-16Support for having two SmtEngines with the same ExprManager.Morgan Deters
Basically, this involves creating a separate StatisticsRegistry for the ExprManager and for the SmtEngine. Otherwise, theories register the same statistic twice. This is a larger problem, though, for creating multiple instances of theories, and that is unaddressed. Still, separating out the expr statistics into a separate registry is probably a good idea, since the expr package is somewhat separate anyway (and in the short term it allows two SmtEngines to co-exist).
2012-07-16found a bug in the initialization order of UF, EqualityEngine, and the UF ↵Morgan Deters
strong solver; fixed
2012-07-16reverse the order of link arguments to -lcln -lgmp, fixes linking errors for ↵Morgan Deters
static-binary CLN-enabled builds on greed
2012-07-14Type enumerator infrastructure and uninterpreted constant support. No ↵Morgan Deters
support yet for enumerating arrays, or for enumerating non-trivial datatypes.
2012-07-14Applying Dejan's patch for bug #369, which resolves it by adding a new ↵Morgan Deters
(let..) form for each introduced binding.
2012-07-14fixing make distMorgan Deters
2012-07-14fix a warning in unit test compilationMorgan Deters
2012-07-14svn ignoreMorgan Deters
2012-07-14an example that uses bitvectors to simulate sha1 computation and dumps an ↵Dejan Jovanović
smt problem corresponding to the hash-inversion problem
2012-07-12removing readme from fmf-develAndrew Reynolds
2012-07-12merged fmf-devel branch, includes support for SMT2 command get-value and ↵Andrew Reynolds
(extended) SMT command get-model. added collectModelInfo and removed getValue from theory interface. merge also includes major updates to finite model finding module (from CASC), added fmf options, some updates to strong solver and quantifiers engine interface. The test recursion_breaker_black currently fails for me on production builds, Morgan is planning to look into this.
2012-07-10svn ingoreMorgan Deters
2012-07-10* fixing the simple_vc_cxx.cpp compile issue (no more Integer constants)Dejan Jovanović
* adding as examples the programs i used to translate nonlinear smt2 problems to other formats
2012-07-10going back to 1. being a non decimalDejan Jovanović
2012-07-10small changes:Dejan Jovanović
* smtlib2 decimal constant can be "1.", i.e. doesn't need digits after the point * adding CVC4_PUBLIC to rational output operator, otherwise it's unusable for users
2012-07-09minor fix-upsMorgan Deters
2012-07-09fix portfolio buildMorgan Deters
2012-07-09fix eXecutable bit on a scriptMorgan Deters
2012-07-08minor SMT-LIBv2 compliance issuesMorgan Deters
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback