ajreynol [Thu, 31 Mar 2016 19:36:25 +0000 (14:36 -0500)]
Improvements to trigger selection, min triggers by default. Optimizations for E-matching. Minor work to equality infer.
ajreynol [Wed, 30 Mar 2016 19:06:27 +0000 (14:06 -0500)]
Updates to E-matching to avoid entailed instantiations earlier. Minor updates to datatypes lemmas, other minor changes.
Tim King [Wed, 30 Mar 2016 16:15:43 +0000 (09:15 -0700)]
Updating the mailmap for git.
ajreynol [Mon, 28 Mar 2016 21:26:57 +0000 (16:26 -0500)]
Minor cleanup from last commit (quant util, equality infer). Do not set fmfBoundIntLazy for stringsExp.
ajreynol [Mon, 28 Mar 2016 17:32:58 +0000 (12:32 -0500)]
Implement equality inference module for arithmetic terms. Optimization for entailment checks. Other minor infrastructure.
Guy [Thu, 24 Mar 2016 23:56:31 +0000 (16:56 -0700)]
Merge branch 'master' of https://github.com/CVC4/CVC4
Guy [Thu, 24 Mar 2016 23:56:13 +0000 (16:56 -0700)]
Refactored the equality engine in order to remove theory-specific logic from equality path reconstruction
Tim King [Thu, 24 Mar 2016 22:06:24 +0000 (15:06 -0700)]
Fixing a garbage collection issue in simplifyWithCare(). Bug 729.
Tim King [Thu, 24 Mar 2016 21:58:13 +0000 (14:58 -0700)]
Deleting allocated NodeVecs in ITESimplifier.
Tim King [Thu, 24 Mar 2016 20:12:49 +0000 (13:12 -0700)]
Freeing CegConjecture::d_ceg_si. Also making d_ceg_si a provate member of CegConjecture.
Tim King [Thu, 24 Mar 2016 18:21:31 +0000 (11:21 -0700)]
Fixing a memory leak in CDInstMatchTrie::d_data.
Tim King [Thu, 24 Mar 2016 17:54:00 +0000 (10:54 -0700)]
Fix for a memory leak in InstStrategyCegqi.
Tim King [Thu, 24 Mar 2016 17:44:05 +0000 (10:44 -0700)]
Fixing a memory leak in QuantInfo::d_var_mg.
guykatzz [Wed, 23 Mar 2016 19:12:10 +0000 (12:12 -0700)]
Merge pull request #82 from CVC4/master_for_merge
Squash-merge from the proof branch
Guy [Wed, 23 Mar 2016 19:07:59 +0000 (12:07 -0700)]
squash-merge from proof branch
Tim King [Wed, 23 Mar 2016 18:12:04 +0000 (11:12 -0700)]
Fixing memory leaks in Trigger and TriggerTrie.
Clark Barrett [Wed, 23 Mar 2016 17:15:36 +0000 (10:15 -0700)]
Fixed help for tear-down-incremental option
Tim King [Wed, 23 Mar 2016 07:56:12 +0000 (00:56 -0700)]
Fixing two garbage collection issues in Region and SortModel.
Tim King [Wed, 23 Mar 2016 04:22:15 +0000 (21:22 -0700)]
Deleting the CDInstMatchTries in QuantifiersEngine::d_c_inst_match_trie.
Tim King [Wed, 23 Mar 2016 04:09:55 +0000 (21:09 -0700)]
Garbage collecting the EqcInfo s in TheoryDatatypes::d_eqc_info.
Tim King [Wed, 23 Mar 2016 03:45:14 +0000 (20:45 -0700)]
Garbage collecting the MinisatEmptyNotify for the EagerBitblaster.
ajreynol [Tue, 22 Mar 2016 19:07:21 +0000 (14:07 -0500)]
Bug fix for define functions + incremental. Minor work on relational triggers.
Tim King [Tue, 22 Mar 2016 05:16:45 +0000 (22:16 -0700)]
Deleting the contents of d_modelGlobalsCommands before it is cleared.
Tim King [Tue, 22 Mar 2016 03:51:07 +0000 (20:51 -0700)]
New version of the recursive options parsing strategy.
ajreynol [Fri, 18 Mar 2016 15:05:32 +0000 (10:05 -0500)]
Limit duplicate propagating instances to avoid exponential behavior in QuantConflictFind.
ajreynol [Wed, 16 Mar 2016 18:57:53 +0000 (13:57 -0500)]
Change internal representative selection for finite domains that do not involve uninterpreted sorts, including bounded integer quantification.
ajreynol [Sat, 12 Mar 2016 16:38:36 +0000 (10:38 -0600)]
Add options related to interleaving quantifiers and theory combination, changes default behavior.
ajreynol [Thu, 10 Mar 2016 23:49:13 +0000 (17:49 -0600)]
Faster conditional rewriting for and/or beneath quantifiers. Improvements to sort inference, related to constants. Add several quantifiers options, minor refactoring.
ajreynol [Tue, 8 Mar 2016 18:10:41 +0000 (12:10 -0600)]
Extend synthesis solver to handle single invocation with additional universal quantification. Refactor query/check-sat to call one internal function in SmtEngine. Make check-synth its own command. Minor work on quant ee.
ajreynol [Mon, 7 Mar 2016 18:39:50 +0000 (12:39 -0600)]
Minor change to F-Length inference in strings. No internal tracking of cardinality assertions in uf. Change fullModel false array collectModelInfo to assign constants.
ajreynol [Thu, 3 Mar 2016 16:02:34 +0000 (10:02 -0600)]
Add missing code to track dependencies recursively for string explanations as well.
ajreynol [Wed, 2 Mar 2016 19:54:07 +0000 (13:54 -0600)]
Work towards complete instantiation for datatypes.
ajreynol [Tue, 1 Mar 2016 22:29:14 +0000 (16:29 -0600)]
Shorter explanations for strings based on tracking which parts of normal forms are dependent upon which equalities. Add anti-skolemization module to quantifiers. Disable rewriting of non-clashing equalities between same constructors.
ajreynol [Mon, 29 Feb 2016 16:04:20 +0000 (10:04 -0600)]
Minor options to datatypes.
ajreynol [Fri, 26 Feb 2016 19:39:06 +0000 (13:39 -0600)]
Refactoring of inferences in strings. Add several options.
ajreynol [Thu, 25 Feb 2016 16:10:47 +0000 (10:10 -0600)]
Minor improvement to partial qe. Add options for representative selection in FMF.
ajreynol [Wed, 24 Feb 2016 18:19:09 +0000 (12:19 -0600)]
Add entailment checks between length terms to reduce splitting in strings solver. Minor additions to datatypes and qcf.
Tim King [Wed, 24 Feb 2016 18:39:39 +0000 (10:39 -0800)]
Adding the missing clause_id.h file.
Tim King [Wed, 24 Feb 2016 08:19:12 +0000 (00:19 -0800)]
Unifying the definitions of ClauseId to a single source of truth.
ajreynol [Tue, 23 Feb 2016 17:33:09 +0000 (11:33 -0600)]
Fix term database for non-equal, congruent terms in master equality engine. Disable ITE terms in quant conflict find.
ajreynol [Fri, 19 Feb 2016 17:00:48 +0000 (11:00 -0600)]
Fixes and improvements for datatypes properties and splitting.
ajreynol [Fri, 19 Feb 2016 04:50:05 +0000 (22:50 -0600)]
Implement dynamic splitting for quantified formulas. Minor refactoring of reductions in quantifiers engine.
ajreynol [Thu, 18 Feb 2016 21:21:34 +0000 (15:21 -0600)]
Correct subtyping for arrays, disable subtyping for predicate subtypes. Bug fixes in quantifiers related to subtypes/parametric sorts. Make macros trace dependencies for get-unsat-core. Add regressions.
Kshitij Bansal [Thu, 18 Feb 2016 03:58:01 +0000 (22:58 -0500)]
fix for windows builds
ajreynol [Wed, 17 Feb 2016 23:35:56 +0000 (17:35 -0600)]
Refactor quantifiers attributes. Make quantifier elimination robust to preprocessing, implement get-qe-disjunct.
ajreynol [Tue, 16 Feb 2016 20:55:28 +0000 (14:55 -0600)]
Public interface for quantifier elimination. Minor changes to datatypes rewriter.
ajreynol [Tue, 16 Feb 2016 00:10:42 +0000 (18:10 -0600)]
More simplification to internal implementation of tuples and records.
ajreynol [Mon, 15 Feb 2016 19:38:51 +0000 (13:38 -0600)]
Minor change to last commit
ajreynol [Mon, 15 Feb 2016 19:02:02 +0000 (13:02 -0600)]
Eliminate most of the internal representation infrastructure for tuples and records, replace with datatypes throughout, update cvc printer for tuples/records. Minor changes to API for records and tuples.
ajreynol [Thu, 11 Feb 2016 21:07:37 +0000 (15:07 -0600)]
More aggressive conditional rewriting for quantified formulas. Bug fix set incomplete for fmc.
ajreynol [Wed, 10 Feb 2016 16:17:18 +0000 (10:17 -0600)]
Fix model postprocessor for tuples, add regression.
ajreynol [Tue, 9 Feb 2016 22:57:50 +0000 (16:57 -0600)]
Fix regression, minor change to output.
ajreynol [Tue, 9 Feb 2016 19:23:18 +0000 (13:23 -0600)]
Eager introduction of eqc, lemma cache for ground fmf. Apply preprocessing to quantifier instantiations.
ajreynol [Mon, 8 Feb 2016 21:49:14 +0000 (15:49 -0600)]
Updates related to finite model finding and (co)datatypes. Bug fix enumerator and codatatype rewriter, further simplify fmc.
guykatzz [Sat, 6 Feb 2016 00:10:36 +0000 (16:10 -0800)]
Changing the way the equality engine explains disequalities.
The explanation for a != b is now:
1. a == find(a)
2. ( find(a) == find(b) ) == false
3. find(b) == b
This simplifies the creation of transitivity proofs for disequalities.
ajreynol [Fri, 5 Feb 2016 16:24:49 +0000 (10:24 -0600)]
Add two optimizations for datatypes, currently disabled. Bug fix rewriter for selectors applied to codatatype values.
Clark Barrett [Thu, 4 Feb 2016 21:57:26 +0000 (13:57 -0800)]
Fixed two more memory leaks in array_info.cpp
Clark Barrett [Wed, 3 Feb 2016 22:04:27 +0000 (14:04 -0800)]
Added --omit-dont-cares option which doesn't print model values for
variables known to be don't-cares.
Tim King [Tue, 2 Feb 2016 17:47:34 +0000 (09:47 -0800)]
Moving dump.*, command.*, model.*, and ite_removal.* from smt_util/ to smt/. Breaking an edge between the sat solver and command.h.
Tim King [Mon, 1 Feb 2016 19:45:14 +0000 (11:45 -0800)]
Removing the CVC4_PUBLIC attribute from the forward declaration of Record in type.h.
Tim King [Mon, 1 Feb 2016 19:43:31 +0000 (11:43 -0800)]
Removing the CVC4_NEEDS_REPLACEMENT_FUNCTIONS guard to have a simpler build process.
Tim King [Mon, 1 Feb 2016 19:29:49 +0000 (11:29 -0800)]
Generalizing lib/strtok_r.c so that it can always be compiled.
Tim King [Mon, 1 Feb 2016 19:28:33 +0000 (11:28 -0800)]
Generalizing the implementation of lib/clock_gettime.c so that it can always be compiled.
Tim King [Mon, 1 Feb 2016 19:25:29 +0000 (11:25 -0800)]
Fixing a potentially malformed template expansion when Dump() is disabled.
Tim King [Mon, 1 Feb 2016 19:22:12 +0000 (11:22 -0800)]
Fixing a memory leak in bv_subtheory_algebraic.cpp. Also formatting the file.
Tim King [Mon, 1 Feb 2016 19:12:10 +0000 (11:12 -0800)]
Adding an virtual destructor to OstreamUpdate.
Tim King [Mon, 1 Feb 2016 19:10:51 +0000 (11:10 -0800)]
Making the ManagedOstream::defaultSource() a const function.
Tim King [Mon, 1 Feb 2016 19:09:09 +0000 (11:09 -0800)]
Adding a destructor to ProofOutputChannel.
Tim King [Mon, 1 Feb 2016 19:07:41 +0000 (11:07 -0800)]
Fixing white spaces in sat_proof.h.
Tim King [Mon, 1 Feb 2016 18:59:49 +0000 (10:59 -0800)]
Making the references to std more explicit in didyoumean.cpp.
Tim King [Mon, 1 Feb 2016 18:56:55 +0000 (10:56 -0800)]
Fixing a memory leak in array info.
Tim King [Mon, 1 Feb 2016 18:54:45 +0000 (10:54 -0800)]
Deleting the dead code in proof/sat_proof.cpp.
ajreynol [Mon, 1 Feb 2016 17:18:00 +0000 (11:18 -0600)]
Simplify fmc model construction, add regression. Improve FMF debug assertions.
Tim King [Thu, 28 Jan 2016 20:35:45 +0000 (12:35 -0800)]
Adding listeners to Options.
- Options
-- Added the new option attribute :notify. One can get a notify() call on the Listener after a the option's value is updated. This is the new preferred way to achieve dynamic dispatch for options.
-- Removed SmtOptionsHandler and pushed its functionality into OptionsHandler and Listeners.
-- Added functions to Options for registering listeners of the notify calls.
-- Changed a number of options to use the new listener infrastructure.
-- Fixed a number of warnings in options.
-- Added the ArgumentExtender class to better capture how arguments are inserted while parsing options and ease memory management. Previously this was the "preemptGetopt" procedure.
-- Moved options/options_handler_interface.{cpp,h} to options/options_handler.{cpp,h}.
- Theories
-- Reimplemented alternative theories to use a datastructure stored on TheoryEngine instead of on Options.
- Ostream Handling:
-- Added new functionality that generalized how ostreams are opened, options/open_stream.h.
-- Simplified the memory management for different ostreams, smt/managed_ostreams.h.
-- Had the SmtEnginePrivate manage the memory for the ostreams set by options.
-- Simplified how the setting of ostreams are updated, smt/update_ostream.h.
- Configuration and Tags:
-- Configuration can now be used during predicates and handlers for options.
-- Moved configuration.{cpp,h,i} and configuration_private.h from util/ into base/.
-- Moved {Debug,Trace}_tags.* from being generated in options/ into base/.
- cvc4_private.h
-- Upgraded #warning's in cvc4_private.h and cvc4_private_library.h to #error's.
-- Added public first-order (non-templatized) member functions for options get and set the value of options outside of libcvc4. Fixed all of the use locations.
-- Made lib/lib/clock_gettime.h a cvc4_private_library.h header.
- Antlr
-- Fixed antlr and cvc4 macro definition conflicts that caused warnings.
- SmtGlobals
-- Refactored replayStream and replayLog out of SmtGlobals.
-- Renamed SmtGlobals to LemmaChannels and moved the implementation into smt_util/lemma_channels.{h,cpp}.
Liana Hadarean [Wed, 27 Jan 2016 00:04:26 +0000 (16:04 -0800)]
Merged bit-vector and uf proof branch.
ajreynol [Wed, 20 Jan 2016 22:55:02 +0000 (16:55 -0600)]
Fix bug in fmc mbqi where modelscomputed for mbqi could involve non-constant values. Add regression.
ajreynol [Tue, 19 Jan 2016 18:21:50 +0000 (12:21 -0600)]
Bug fixes for model construction with codatatypes, add regressions.
ajreynol [Mon, 18 Jan 2016 21:33:22 +0000 (22:33 +0100)]
Bug fix rewriter for fun defs.
ajreynol [Fri, 15 Jan 2016 22:57:56 +0000 (23:57 +0100)]
Type enumerators take optional argument indicating fixed cardinalities of uninterpreted sorts. Modify TheoryModelBuilder. Fix bug in fmf-empty-sorts.
ajreynol [Thu, 14 Jan 2016 23:18:49 +0000 (00:18 +0100)]
Ensure model construction for parametric sorts involving uninterpreted sorts respect cardinality bounds on when finite model finding is enabled.
ajreynol [Wed, 13 Jan 2016 22:08:40 +0000 (23:08 +0100)]
Lemma cache datatypes. Do not send true lemma in quantifiers. Minor fix for datatypes model generation for UFinite datatypes when FMF.
Tim King [Sat, 9 Jan 2016 02:19:30 +0000 (18:19 -0800)]
Adding a new Listener utility class. Changing the ResourceManager to use Listeners for reporting hard and soft resource out() events.
Tim King [Sat, 9 Jan 2016 00:44:57 +0000 (16:44 -0800)]
Removing StatisticsRegistry's static functions current() and registerStat().
- The functionality the get the StatisticsRegistry attached to the SmtEngine was previously through StatisticsRegistry::current(). This is the dominant StatisticsRegistry in the code. (There is another StatisticsRegistry attached to the NodeManager.) Having this be a static function on StatisticsRegistry requires the use of an SmtEngine in the wrong compilation unit.
- Usages of StatisticsRegistry::current() that were visible in prop/{bvminisat,minisat} has been removed. A pointer to the relevant StatisticsRegistry should be passed instead into the constructor.
- The function StatisticsRegistry::current() has been replaced by SmtScope::currentStatisticsRegistry(). SmtScope is in the libcvc4 package, where SmtEngine is available in the compilation unit.
- The function smtStatisticsRegistry() is a synonym for SmtScope::currentStatisticsRegistry() in smt/smt_statistics_registry.h. This header has fewer include dependencies than the one for SmtScope.
- Correspondingly, the static functions StatisticsRegistry::{registerStat, unregisterStat} have been removed. One should instead use smtStatisticsRegistry()->{registerStat,unregisterStat} instead.
- The KEEP_STATISTIC macro has been moved into smt/smt_statistics_registry.h.
- Documents the reason StatisticsRegistry is CVC4_PUBLIC. This lets me remove the warning I added.
- Removing most operators for timespec from statistics_registry.h file. These a bit error prone in clang.
- Most of the really confusing ifdef's in util/statistics_registry.h are gone.
Tim King [Fri, 8 Jan 2016 06:39:41 +0000 (01:39 -0500)]
Disabling the RESTART command.
Kshitij Bansal [Wed, 6 Jan 2016 21:02:50 +0000 (16:02 -0500)]
fix windows builds
Tim King [Wed, 6 Jan 2016 20:43:41 +0000 (12:43 -0800)]
Fixing a SWIG ordering issue between bitvector and integer.
Tim King [Wed, 6 Jan 2016 08:10:36 +0000 (00:10 -0800)]
Improving the documentation of the CVC command CONTINUE.
Tim King [Wed, 6 Jan 2016 01:35:12 +0000 (17:35 -0800)]
Removing dead code. StackingMap only appeared in unit tests.
Tim King [Wed, 6 Jan 2016 01:28:38 +0000 (17:28 -0800)]
Moving sexpr.{cpp,h,i} from expr/ back into util/.
Tim King [Wed, 6 Jan 2016 00:29:44 +0000 (16:29 -0800)]
Add SmtGlobals Class
- The options replayStream, lemmaInputChannel, lemmaOutputChannel have been removed due to their datatypes. These datatypes were previously pointers to types that were not usable from the options/ library.
- The option replayLog has been removed due to inconsistent memory management.
- SmtGlobals is a class that wraps a pointer to each of these removed options. These can each be set independently.
- There is a single SmtGlobals per SmtEngine with the lifetime of the SmtEngine.
- A pointer to this is freely given to the user of an SmtEngine to parameterize the solver after construction.
- Selected classes have been given a copy of this pointer in their constructors.
- Removed the dependence on Node from Result. Moving Result back into util/.
Tim King [Tue, 5 Jan 2016 19:36:30 +0000 (11:36 -0800)]
Adding a new class LastExceptionBuffer for the purpose of owning the memory for the last exception C string. This replaces s_debugLastException.
Clark Barrett [Fri, 1 Jan 2016 20:30:04 +0000 (12:30 -0800)]
Added propagation rule for array ext lemmas to aid proofs
Clark Barrett [Thu, 31 Dec 2015 06:38:13 +0000 (22:38 -0800)]
Modified tear-down-incremental option to take an integer - the integer is the
number of times a check must be executed before the system is reset.
Tim King [Wed, 30 Dec 2015 19:45:37 +0000 (11:45 -0800)]
Shuffling around public vs. private headers
- Adding a script contrib/test_install_headers.h that tests whether one can include all cvc4_public headers. CVC4 can pass this test after this commit.
- Making lib/{clock_gettime.h,ffs.h,strtok_r.h} cvc4_private.
- Making prop/sat_solver_factory.h cvc4_private.
- Moving the expr iostream manipulators into their own files: expr_iomanip.{h,cpp}.
- Setting the generated *_options.h files back to being cvc4_private.
-- Removing the usage of options/expr_options.h from expr.h.
-- Removing the include of base_options.h from options.h.
- Cleaning up CPP macros in cvc4_public headers.
-- Changing the ROLL macro in floatingpoint.h into an inline function.
-- Removing the now unused flag -D__BUILDING_STATISTICS_FOR_EXPORT.
Tim King [Tue, 29 Dec 2015 09:19:30 +0000 (04:19 -0500)]
Adding a missing header include for cvc4_assert.h in smt_engine_check_proof.cpp for when proofs are disabled.
Clark Barrett [Sun, 27 Dec 2015 03:20:27 +0000 (19:20 -0800)]
Merged my changes from experimental branch (new array decision procedure,
translation to bit-vectors for QF_NIA).
Tim King [Thu, 24 Dec 2015 20:01:52 +0000 (15:01 -0500)]
Changing the attribute on the forward declaration of SetType in emptyset.h. This seems to give many fewer warnings.
Tim King [Thu, 24 Dec 2015 20:00:35 +0000 (15:00 -0500)]
Adding a missing return on the new ArrayStoreAll::operator= .
Tim King [Thu, 24 Dec 2015 10:38:43 +0000 (05:38 -0500)]
Miscellaneous fixes
- Splitting the two instances of CheckArgument. The template version is now always defined in base/exception.h and is available in a cvc4_public header. This version has lost its variadic version (due to swig not supporting va_list's). The CPP macro version has been renamed PrettyCheckArgument. (Taking suggestions for a better name.) This is now only defined in base/cvc4_assert.h. Only use this in cvc4_private headers and in .cpp files that can use cvc4_private headers. To use a variadic version of CheckArguments, outside of this scope, you need to duplicate this macro locally. See cvc3_compat.cpp for an example.
- Making fitsSignedInt() and fitsUnsignedInt() work more robustly for CLN on 32 bit systems.
- Refactoring ArrayStoreAll to avoid potential problems with circular header inclusions.
- Changing some headers to use iosfwd when possible.
Clark Barrett [Wed, 23 Dec 2015 17:42:03 +0000 (09:42 -0800)]
Enabled array propagation during lemma propagation - this should catch some
conflicts that now require extra splitting.