summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers
AgeCommit message (Collapse)Author
2016-04-11Minor fixes for inst match generators. Updates to qip.googleajreynol
2016-04-10More work on instantiation propagation. Enable external filtering of ↵ajreynol
instantiations. All quantifiers strategies terminate when a conflict can be established.
2016-04-09Minor refactoring of entailment tests and quantifiers util. Initial draft of ↵ajreynol
instantiation propagator.
2016-04-07Refactor trigger selection, revisions to --relational-trigger. Properly ↵ajreynol
process non-standard user-provided triggers. Avoid entailed instantiations based on equality earlier. Refactor core addInstantiation method, add notification mechanism. Add optional argument to entailment checks. Fix bug for duplicate triggers.
2016-04-04New options for trigger selection, add option --strict-triggers. Do not ↵ajreynol
infer alpha equivalence for quantifiers with annotations, limit rewrite operations when triggers are trusted.
2016-04-03Updating the copyright headers and scripts.Tim King
2016-04-01Improvements to equality inference module: add missing cases for solvable ↵ajreynol
variables, do not infer equalities that are derivable by transitivity of other inferred equalities, refactor solved vars/eqc into one, option to track explanations. Handle case when equality inference in quantifiers can derive purely arithmetic ground conflicts at full effort.
2016-03-31Improvements to trigger selection, min triggers by default. Optimizations ↵ajreynol
for E-matching. Minor work to equality infer.
2016-03-30Updates to E-matching to avoid entailed instantiations earlier. Minor ↵ajreynol
updates to datatypes lemmas, other minor changes.
2016-03-28Minor cleanup from last commit (quant util, equality infer). Do not set ↵ajreynol
fmfBoundIntLazy for stringsExp.
2016-03-28Implement equality inference module for arithmetic terms. Optimization for ↵ajreynol
entailment checks. Other minor infrastructure.
2016-03-24Freeing CegConjecture::d_ceg_si. Also making d_ceg_si a provate member of ↵Tim King
CegConjecture.
2016-03-24Fixing a memory leak in CDInstMatchTrie::d_data.Tim King
2016-03-24Fix for a memory leak in InstStrategyCegqi.Tim King
2016-03-24Fixing a memory leak in QuantInfo::d_var_mg.Tim King
2016-03-23Fixing memory leaks in Trigger and TriggerTrie.Tim King
2016-03-22Bug fix for define functions + incremental. Minor work on relational triggers.ajreynol
2016-03-18Limit duplicate propagating instances to avoid exponential behavior in ↵ajreynol
QuantConflictFind.
2016-03-16Change internal representative selection for finite domains that do not ↵ajreynol
involve uninterpreted sorts, including bounded integer quantification.
2016-03-10Faster conditional rewriting for and/or beneath quantifiers. Improvements to ↵ajreynol
sort inference, related to constants. Add several quantifiers options, minor refactoring.
2016-03-08Extend synthesis solver to handle single invocation with additional ↵ajreynol
universal quantification. Refactor query/check-sat to call one internal function in SmtEngine. Make check-synth its own command. Minor work on quant ee.
2016-03-07Minor change to F-Length inference in strings. No internal tracking of ↵ajreynol
cardinality assertions in uf. Change fullModel false array collectModelInfo to assign constants.
2016-03-02Work towards complete instantiation for datatypes.ajreynol
2016-03-01Shorter explanations for strings based on tracking which parts of normal ↵ajreynol
forms are dependent upon which equalities. Add anti-skolemization module to quantifiers. Disable rewriting of non-clashing equalities between same constructors.
2016-02-25Minor improvement to partial qe. Add options for representative selection in ↵ajreynol
FMF.
2016-02-24Add entailment checks between length terms to reduce splitting in strings ↵ajreynol
solver. Minor additions to datatypes and qcf.
2016-02-23Fix term database for non-equal, congruent terms in master equality engine. ↵ajreynol
Disable ITE terms in quant conflict find.
2016-02-19Fixes and improvements for datatypes properties and splitting.ajreynol
2016-02-18Implement dynamic splitting for quantified formulas. Minor refactoring of ↵ajreynol
reductions in quantifiers engine.
2016-02-18Correct subtyping for arrays, disable subtyping for predicate subtypes. Bug ↵ajreynol
fixes in quantifiers related to subtypes/parametric sorts. Make macros trace dependencies for get-unsat-core. Add regressions.
2016-02-17Refactor quantifiers attributes. Make quantifier elimination robust to ↵ajreynol
preprocessing, implement get-qe-disjunct.
2016-02-16Public interface for quantifier elimination. Minor changes to datatypes ↵ajreynol
rewriter.
2016-02-15More simplification to internal implementation of tuples and records.ajreynol
2016-02-11More aggressive conditional rewriting for quantified formulas. Bug fix set ↵ajreynol
incomplete for fmc.
2016-02-09Fix regression, minor change to output.ajreynol
2016-02-09Eager introduction of eqc, lemma cache for ground fmf. Apply preprocessing ↵ajreynol
to quantifier instantiations.
2016-02-08Updates related to finite model finding and (co)datatypes. Bug fix ↵ajreynol
enumerator and codatatype rewriter, further simplify fmc.
2016-02-02Moving dump.*, command.*, model.*, and ite_removal.* from smt_util/ to smt/. ↵Tim King
Breaking an edge between the sat solver and command.h.
2016-02-01Simplify fmc model construction, add regression. Improve FMF debug assertions.ajreynol
2016-01-28Adding listeners to Options.Tim King
- 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}.
2016-01-20Fix bug in fmc mbqi where modelscomputed for mbqi could involve non-constant ↵ajreynol
values. Add regression.
2016-01-18Bug fix rewriter for fun defs.ajreynol
2016-01-15Type enumerators take optional argument indicating fixed cardinalities of ↵ajreynol
uninterpreted sorts. Modify TheoryModelBuilder. Fix bug in fmf-empty-sorts.
2016-01-08Removing StatisticsRegistry's static functions current() and registerStat().Tim King
- 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.
2016-01-05Add SmtGlobals ClassTim King
- 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/.
2015-12-30Shuffling around public vs. private headersTim King
- 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.
2015-12-24Miscellaneous fixesTim King
- 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.
2015-12-22Always split on constructor types for datatypes involving uninterpreted ↵ajreynol
sorts when finite model finding is enabled, add regressions.
2015-12-22Bug fix for cbqi, do not use model values for terms involving non-enumerable ↵ajreynol
sorts.
2015-12-18Modifying emptyset.h and sexpr. Adding SetLanguage.Tim King
- Modifies expr/emptyset.h to use SetType only as an incomplete type within expr/emptyset.h. This breaks the include cycle between expr/emptyset.h, expr/expr.h and expr/type.h. - Refactors SExpr to avoid a potentially infinite cycle. This is likely overkill, but it works. - Moving Expr::setlanguage and related utilities out of the Expr class and into their own file. This allows files in util/ to know the output language set on an ostream.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback