cvc5.git
6 years agoImprovements for CBQI (#1478)
Andrew Reynolds [Thu, 4 Jan 2018 23:30:25 +0000 (17:30 -0600)]
Improvements for CBQI (#1478)

Includes:

- Basic rewriting for choice functions in the builtin rewriter,
- Do not consider more than one equal term in ceg instantiator (helps cases where we have a
  repeated pattern of duplicate instantiations),
- Do not introduce dummy extract equalities in the cbqi-bv-rm-extract pass (dummy concat
  equalities suffice).
- Do not consider extracts in nested quantified formulas in the cbqi-bv-rm-extract pass.

6 years agoRemoving miscellaneous throw specifiers. (#1474)
Tim King [Thu, 4 Jan 2018 21:09:39 +0000 (13:09 -0800)]
Removing miscellaneous throw specifiers. (#1474)

6 years agoRemoving throw specifiers from context/. (#1473)
Tim King [Thu, 4 Jan 2018 06:01:42 +0000 (22:01 -0800)]
Removing throw specifiers from context/. (#1473)

6 years agoAdd side conditions for UGT/SGT over BITVECTOR_UREM for CBQI BV. (#1470)
Aina Niemetz [Wed, 3 Jan 2018 22:18:48 +0000 (14:18 -0800)]
Add side conditions for UGT/SGT over BITVECTOR_UREM for CBQI BV. (#1470)

6 years agoAdd UGT/SGT side conditions for LSHR. (#1469)
Mathias Preiner [Wed, 3 Jan 2018 20:44:56 +0000 (12:44 -0800)]
Add UGT/SGT side conditions for LSHR. (#1469)

6 years ago Add side conditions for inequalities over BITVECTOR_MULT for CBQI BV. (#1468)
Aina Niemetz [Wed, 3 Jan 2018 19:26:40 +0000 (11:26 -0800)]
 Add side conditions for inequalities over BITVECTOR_MULT for CBQI BV. (#1468)

6 years agoGlobal negate (#1466)
Andrew Reynolds [Wed, 3 Jan 2018 15:35:27 +0000 (09:35 -0600)]
Global negate (#1466)

6 years ago Add side conditions for inequalities of ASHR. (#1461)
Mathias Preiner [Wed, 3 Jan 2018 07:57:43 +0000 (23:57 -0800)]
 Add side conditions for inequalities of ASHR. (#1461)

6 years agoAdd side conditions for inequalities over BITVECTOR_UDIV for CBQI BV. (#1464)
Aina Niemetz [Wed, 3 Jan 2018 04:30:04 +0000 (20:30 -0800)]
Add side conditions for inequalities over BITVECTOR_UDIV for CBQI BV. (#1464)

We now can handle all cases of (in|dis)equality over BITVECTOR_UREM. This also simplifies some
of the side conditions for equality.

6 years agoSimplify side condition for SGE over UREM (index = 1) for CBQI BV. (#1463)
Aina Niemetz [Wed, 3 Jan 2018 02:17:06 +0000 (18:17 -0800)]
Simplify side condition for SGE over UREM (index = 1) for CBQI BV. (#1463)

6 years agoFix handling for UGT/SGT. (#1467)
Mathias Preiner [Wed, 3 Jan 2018 00:54:32 +0000 (16:54 -0800)]
Fix handling for UGT/SGT. (#1467)

Previously, we only handled the case x s < t. With this fix, we now get BITVECTOR_[SU]GT for litk
if we encounter a literal t < x s.

6 years agoRewrites for BitVector multiplication (#1465)
Andrew Reynolds [Tue, 2 Jan 2018 22:12:45 +0000 (16:12 -0600)]
Rewrites for BitVector multiplication (#1465)

6 years agoAdd side conditions for inequalities of LSHR. (#1462)
Mathias Preiner [Tue, 2 Jan 2018 19:21:12 +0000 (11:21 -0800)]
Add side conditions for inequalities of LSHR. (#1462)

6 years agoImprove rewriter for string equality (#1427)
Andrew Reynolds [Tue, 2 Jan 2018 17:43:00 +0000 (11:43 -0600)]
Improve rewriter for string equality (#1427)

6 years agoAdd side conditions for inequalities over BITVECTOR_UREM for CBQI BV. (#1460)
Aina Niemetz [Sat, 30 Dec 2017 04:02:38 +0000 (20:02 -0800)]
Add side conditions for inequalities over BITVECTOR_UREM for CBQI BV. (#1460)

We now can handle all cases of (in|dis)equality over UREM. Previously, we could not handle equality
for index=0 and had to rewrite x % s = t to x - x / s * s. Since we can now handle this case, we do not
apply this rewriting anymore.

6 years agoFix RNG for seed = 0. (#1459)
Aina Niemetz [Sat, 30 Dec 2017 02:08:41 +0000 (18:08 -0800)]
Fix RNG for seed = 0. (#1459)

The default value for the seed for CVC4's RNG is 0. However, xorshift* requires a non-zero seed, else it generates only zero values. This fixes and prevents this behavior by resetting a given zero seed to ~0.

6 years agoCbqi repeat solve literal (#1458)
Andrew Reynolds [Sat, 30 Dec 2017 00:24:43 +0000 (18:24 -0600)]
Cbqi repeat solve literal (#1458)

6 years agoAdd side conditions for inequalities of AND/OR. (#1457)
Mathias Preiner [Fri, 29 Dec 2017 22:33:16 +0000 (14:33 -0800)]
Add side conditions for inequalities of AND/OR. (#1457)

6 years agoFix unit tests for ineq for CBQI BV. (#1456)
Aina Niemetz [Fri, 29 Dec 2017 04:27:58 +0000 (20:27 -0800)]
Fix unit tests for ineq for CBQI BV. (#1456)

6 years agoAdd unit tests for side conditions for inequality for CBQI BV. (#1455)
Aina Niemetz [Fri, 29 Dec 2017 03:24:35 +0000 (19:24 -0800)]
Add unit tests for side conditions for inequality for CBQI BV. (#1455)

6 years agoFixes for cbqi (#1453)
Andrew Reynolds [Thu, 28 Dec 2017 22:21:08 +0000 (16:21 -0600)]
Fixes for cbqi (#1453)

6 years agoRel smt parser (#1446)
Arjun Viswanathan [Thu, 28 Dec 2017 03:43:35 +0000 (21:43 -0600)]
Rel smt parser (#1446)

6 years agoMinor refactor for inequality handling for CBQI BV. (#1452)
Aina Niemetz [Thu, 28 Dec 2017 01:12:34 +0000 (17:12 -0800)]
Minor refactor for inequality handling for CBQI BV. (#1452)

6 years agoDisable sygus PBE when sygus stream is enabled (#1451)
Andrew Reynolds [Wed, 27 Dec 2017 22:25:22 +0000 (16:25 -0600)]
Disable sygus PBE when sygus stream is enabled (#1451)

6 years agoFixes for cbqi-bv (#1449)
Andrew Reynolds [Thu, 21 Dec 2017 04:26:17 +0000 (22:26 -0600)]
Fixes for cbqi-bv (#1449)

6 years agoAdd explicit disequality handling when generating side condition for CBQI BV. (#1447)
Aina Niemetz [Thu, 21 Dec 2017 02:27:39 +0000 (18:27 -0800)]
Add explicit disequality handling when generating side condition for CBQI BV. (#1447)

This refactors solveBvLit to support explicit handling of disequalities (and, in the next step, inequalities) when generating side conditions.

6 years agoAdd rewriting rule for ranking benchmarks. (#1448)
Mathias Preiner [Thu, 21 Dec 2017 00:45:07 +0000 (16:45 -0800)]
Add rewriting rule for ranking benchmarks. (#1448)

6 years agoTranscendental functions check model (#1443)
Andrew Reynolds [Wed, 20 Dec 2017 18:36:10 +0000 (12:36 -0600)]
Transcendental functions check model (#1443)

6 years agoFix travis write errors. (#1445)
Aina Niemetz [Tue, 19 Dec 2017 01:20:02 +0000 (17:20 -0800)]
Fix travis write errors. (#1445)

For reasons unknown, after the latest update of the Trusty environment on Travis,
we encountered write errors for the three Clang builds. As suggested here
https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-321777557,
adding filter_secrets: false to the .travis.yml fixes the problem.

Note: switching back to the deprecated builds did not fix the problem.

6 years agoEnable side condition handling for shifts introduced in #1441. (#1444)
Aina Niemetz [Sat, 16 Dec 2017 01:29:03 +0000 (17:29 -0800)]
Enable side condition handling for shifts introduced in #1441. (#1444)

PR #1441 forgot to enable the missing side condition handling for shifts. This PR enables it.

6 years agoAdd missing side conditions for SHL, LSHR, ASHR for CBQI BV. (#1441)
Aina Niemetz [Thu, 14 Dec 2017 03:10:16 +0000 (19:10 -0800)]
Add missing side conditions for SHL, LSHR, ASHR for CBQI BV. (#1441)

This adds side conditions for operators BITVECTOR_SHL, BITVECTOR_LSHR and
BITVECTOR_ASHR for index = 1, i.e., s << x = t and s >> x = t. Previously, we treated
 these cases as non-invertible.

6 years agoAdd SIGTERM handler. (#1440)
Mathias Preiner [Tue, 12 Dec 2017 19:34:46 +0000 (11:34 -0800)]
Add SIGTERM handler. (#1440)

Print statistics if CVC4 gets a SIGTERM signal.

6 years agoAdd new infrastructure for preprocessing passes (#1053)
justinxu421 [Mon, 11 Dec 2017 00:39:02 +0000 (16:39 -0800)]
Add new infrastructure for preprocessing passes (#1053)

This commit adds new infrastructure for preprocessing passes. It is preparation only, it does not change how the current preprocessing passes work (this will be done in future commits).

6 years agoFix issue 1433. (#1435)
Andrew Reynolds [Sun, 10 Dec 2017 11:12:22 +0000 (05:12 -0600)]
Fix issue 1433. (#1435)

6 years agoFix issue with mkConst/getConst of TypeConstant (#1439)
Andres Noetzli [Sun, 10 Dec 2017 08:48:05 +0000 (00:48 -0800)]
Fix issue with mkConst/getConst of TypeConstant (#1439)

When compiling the Java bindings on macOS, the linker complained about
CVC4::ExprManager::mkConst<CVC4::TypeConstant>() and
CVC4::Expr::getConst<CVC4::TypeConstant>() being undefined. After some
research, I found that the issue has been introduced by commit
36bf9f8bcb2a1a3aea1f90eb4d13aed3bbf6da8f. It looks like adding the
-no-undefined flags resulted in the symbols in question being omitted
due to TypeConstant not being exported. This commit makes TypeConstant
CVC4_PUBLIC, which fixes the issue.

6 years agoAdd CEGQI BV linearization of additions and equalities over additions. (#1417)
Mathias Preiner [Sat, 9 Dec 2017 01:36:15 +0000 (17:36 -0800)]
Add CEGQI BV linearization of additions and equalities over additions. (#1417)

Adds support for linearizing additions w.r.t. to a variable.

For example,

a * x + b + c * d * -x = e + x

is rewritten to

x * (a - c * d - 1) = e - b.

This also adds an additional rewriting rule x * x = x --> x < 2.

6 years agoFixed side conditions for CBQI BV, added unit tests. (#1434)
Aina Niemetz [Fri, 8 Dec 2017 22:32:16 +0000 (14:32 -0800)]
Fixed side conditions for CBQI BV, added unit tests. (#1434)

This fixes the side conditions for BITVECTOR_UREM_TOTAL, BITVECTOR_UDIV_TOTAL,
BITVECTOR_LSHR, BITVECTOR_ASHR, BITVECTOR_SHL.

It refactors side condition generation for better readability and unit testing.
It further adds unit tests for all side conditions we generate in order to check if they too weak
or to restrictive (which may result in unsound behavior).

This is achieved by checking the following two implications:
not (exists x. s * x = t => SC) ... if sat, SC is too restrictive
not (SC => exists x. s * x = t) ... if sat SC is too weak

This simplifies to checking not (SC <=> exists x. s * x = t).

6 years agoDocument and clean datatypes rewriter (#1437)
Andrew Reynolds [Fri, 8 Dec 2017 19:54:00 +0000 (13:54 -0600)]
Document and clean datatypes rewriter (#1437)

6 years agoMake collect model info return a Bool (#1421)
Andrew Reynolds [Fri, 8 Dec 2017 16:14:31 +0000 (10:14 -0600)]
Make collect model info return a Bool (#1421)

6 years agoFixes related to SyGuS + real arithmetic (#1432)
Andrew Reynolds [Thu, 7 Dec 2017 10:07:17 +0000 (04:07 -0600)]
Fixes related to SyGuS + real arithmetic (#1432)

6 years agoAdd command for define-fun-rec and add to API (#1412)
Andrew Reynolds [Thu, 7 Dec 2017 02:57:44 +0000 (20:57 -0600)]
Add command for define-fun-rec and add to API (#1412)

6 years agoFixed time stats for MiniSat solve time. (#1431)
Aina Niemetz [Wed, 6 Dec 2017 20:35:18 +0000 (12:35 -0800)]
Fixed time stats for MiniSat solve time. (#1431)

Also, moved implementation of BVMinisatSatSolver::MinisatNotify::notify to .cpp file.

6 years agoRemove CDChunkList (#1414)
Andres Noetzli [Wed, 6 Dec 2017 12:45:06 +0000 (04:45 -0800)]
Remove CDChunkList (#1414)

6 years agoFix output of --show-trace-tags. (#1430)
Mathias Preiner [Tue, 5 Dec 2017 20:18:37 +0000 (12:18 -0800)]
Fix output of --show-trace-tags. (#1430)

Now prints each tag in a separate line.

6 years agoAdding SyGuS grammars for rationals. (#1426)
Haniel Barbosa [Tue, 5 Dec 2017 02:06:47 +0000 (20:06 -0600)]
Adding SyGuS grammars for rationals. (#1426)

6 years agoEliminate expand definitions from Sygus (#1425)
Andrew Reynolds [Mon, 4 Dec 2017 21:42:00 +0000 (15:42 -0600)]
Eliminate expand definitions from Sygus (#1425)

6 years agoFix strings rewriter for strip constant endpoint reverse direction (#1424)
Andrew Reynolds [Mon, 4 Dec 2017 20:18:16 +0000 (14:18 -0600)]
Fix strings rewriter for strip constant endpoint reverse direction (#1424)

6 years agoFix side condition for BITVECTOR_MULT. (#1422)
Mathias Preiner [Mon, 4 Dec 2017 18:43:40 +0000 (10:43 -0800)]
Fix side condition for BITVECTOR_MULT. (#1422)

6 years agoNormalize grammars - 2 (#1420)
Haniel Barbosa [Sun, 3 Dec 2017 19:18:42 +0000 (13:18 -0600)]
Normalize grammars - 2 (#1420)

This is another step towards addressing #1304 and #1344. This pull request:

- Refactors SygusGrammarNorm
- Makes SyGusGrammarNorm a default component in the construction of grammar. The linearization of grammars however only occurs if the option --sygus-grammar-norm is used.
- Performs a "chain transformation" in the application of the PLUS operator in integer grammars
- Removes redundant expansions of definitions from TermDbSygus
- Adds a default empty print callback to SygusEmptyPrintCallback

This lays the basis for more general linearizations.

6 years agoMinor improvements to inst match generator (#1415)
Andrew Reynolds [Sat, 2 Dec 2017 12:14:12 +0000 (06:14 -0600)]
Minor improvements to inst match generator (#1415)

6 years agoImprove rewriter for string replace (#1416)
Andrew Reynolds [Sat, 2 Dec 2017 02:03:03 +0000 (20:03 -0600)]
Improve rewriter for string replace (#1416)

6 years agoFix reset-assertions (#1413)
Andres Noetzli [Fri, 1 Dec 2017 23:10:12 +0000 (15:10 -0800)]
Fix reset-assertions (#1413)

This commit fixes two issues with reset-assertions:

- pending pops were not done in SmtEngine, resulting in the following
  assertion failure:

  d_userLevels.size() == 0 && d_userContext->getLevel() == 1

- all definitions were erased on reset-assertion in an SMT2 file,
  leading to errors about undefined types

6 years agoMinor additions for sygus (#1419)
Andrew Reynolds [Fri, 1 Dec 2017 17:43:02 +0000 (11:43 -0600)]
Minor additions for sygus (#1419)

6 years agoRefactor and generalize PBE strategies (#1410)
Andrew Reynolds [Fri, 1 Dec 2017 15:07:42 +0000 (09:07 -0600)]
Refactor and generalize PBE strategies (#1410)

6 years agoFix build when Valgrind instrumentation enabled
Andres Noetzli [Fri, 1 Dec 2017 09:55:16 +0000 (01:55 -0800)]
Fix build when Valgrind instrumentation enabled

My last commit for the Valgrind instrumentation contained a typo that
made the nightlies fail. This commit fixes the issue.

6 years agoAdd debugging tools for ContextMemoryManager (#1407)
Andres Noetzli [Fri, 1 Dec 2017 03:00:23 +0000 (19:00 -0800)]
Add debugging tools for ContextMemoryManager (#1407)

This commit adds two configuration options that help debugging memory
issues with allocations in the ContextMemoryManager:

--enable/disable-valgrind: This flag enables/disables Valgrind
instrumentation of the ContextMemoryManager. Enabled by default for
debug builds if the Valgrind headers are available.

--enable/disable-context-memory-manager: This flag enables/disables the
use of the ContextMemoryManager. If the flag is disableda dummy
ContextMemoryManager is used that does single allocations instead of
chunks. The flag is enabled by default.

6 years agoAdd Gaussian Elimination as a preprocessing pass for BV. (#1342)
Aina Niemetz [Thu, 30 Nov 2017 23:50:00 +0000 (15:50 -0800)]
Add Gaussian Elimination as a preprocessing pass for BV. (#1342)

This adds Gaussian Elimination as a preprocessing pass for BV. Gaussian Elimination is only applied if the given bit-width guarantees that no overflows can occur.

6 years agoFixes for issue 1404 (#1409)
Andrew Reynolds [Thu, 30 Nov 2017 15:57:06 +0000 (09:57 -0600)]
Fixes for issue 1404 (#1409)

6 years agoRemove remaining references to QuantArith (#1408)
Andrew Reynolds [Thu, 30 Nov 2017 12:33:23 +0000 (06:33 -0600)]
Remove remaining references to QuantArith (#1408)

6 years agoMinor improvements and changes to defaults for cbqi bv (#1406)
Andrew Reynolds [Thu, 30 Nov 2017 00:17:16 +0000 (18:17 -0600)]
Minor improvements and changes to defaults for cbqi bv (#1406)

This

makes it so that --cbqi-bv tries at most 2 instantiations per quantified formula (one based on inversions when applicable, one based on model values). This makes it so that we do not have exponential run time in the worst case. This helps significantly for psyco benchmarks which have many quantified variables.

Enables --cbqi-bv by default and changes the default inequality mode to eq-boundary (which is the best performer overall), also enables extract removal by default

Allows cbqiNestedQE to be used in the BV logic.

Adds an option --cbqi-full which indicates whether we should try model value instantiations for bit-vectors (by default, this is done only for the pure BV logic).

6 years agoImprove caching in term formula removal (#1398)
Andrew Reynolds [Wed, 29 Nov 2017 22:11:09 +0000 (16:11 -0600)]
Improve caching in term formula removal (#1398)

6 years agoAdding missing break statements. CID 1362756. (#1394)
Tim King [Wed, 29 Nov 2017 18:55:50 +0000 (10:55 -0800)]
Adding missing break statements. CID 1362756. (#1394)

6 years agoSimplifying the conditions in checkLetBinding to avoid using iterator… (#1372)
Tim King [Wed, 29 Nov 2017 16:43:38 +0000 (08:43 -0800)]
Simplifying the conditions in checkLetBinding to avoid using iterator… (#1372)

6 years agoAdd Cryptominisat script and patches to source file distribution.
Mathias Preiner [Wed, 29 Nov 2017 04:11:36 +0000 (20:11 -0800)]
Add Cryptominisat script and patches to source file distribution.

This enables building CVC4 from a source release with Cryptominisat support.

6 years agoImprove the rewriter for SINE. (#1221)
Andrew Reynolds [Wed, 29 Nov 2017 01:48:53 +0000 (19:48 -0600)]
Improve the rewriter for SINE. (#1221)

6 years agoImprove rewrite for string substr (#1337)
Andrew Reynolds [Tue, 28 Nov 2017 21:53:22 +0000 (15:53 -0600)]
Improve rewrite for string substr (#1337)

6 years agoImprove trigger filter instances (#1402)
Andrew Reynolds [Tue, 28 Nov 2017 19:35:28 +0000 (13:35 -0600)]
Improve trigger filter instances (#1402)

6 years agoRemoving throw specifiers from internal Printer hierarchy. (#1393)
Tim King [Tue, 28 Nov 2017 17:07:14 +0000 (09:07 -0800)]
Removing throw specifiers from internal Printer hierarchy. (#1393)

6 years agoFix models for --solve-real-as-int. (#1371)
Andrew Reynolds [Tue, 28 Nov 2017 01:23:49 +0000 (19:23 -0600)]
Fix models for --solve-real-as-int. (#1371)

6 years agoFixes for higher-order (#1405)
Andrew Reynolds [Sat, 25 Nov 2017 20:12:00 +0000 (14:12 -0600)]
Fixes for higher-order (#1405)

6 years ago(Refactor) Instantiate utility (#1387)
Andrew Reynolds [Sat, 25 Nov 2017 01:08:41 +0000 (19:08 -0600)]
(Refactor) Instantiate utility (#1387)

6 years agoImplement tangent and secant planes for transcendental functions (#1401)
Andrew Reynolds [Fri, 24 Nov 2017 12:44:46 +0000 (06:44 -0600)]
Implement tangent and secant planes for transcendental functions (#1401)

6 years agoHo parsing and regressions (#1350)
Andrew Reynolds [Fri, 24 Nov 2017 02:07:19 +0000 (20:07 -0600)]
Ho parsing and regressions (#1350)

6 years agoConverting defined functions and let expressions from Sygus grammars to lambdas ...
Haniel Barbosa [Thu, 23 Nov 2017 03:56:35 +0000 (21:56 -0600)]
Converting defined functions and let expressions from Sygus grammars to lambdas (#1403)

This partially solves issue #1344. Definitions are expanded when the grammar normalizer is called. When this becomes default then the code that expands definitions elsewhere will be removed.

The PR also contains minor changes to the PrintCallback and SygusGrammarNormalize module.

6 years agoSygus Lambda Grammars (#1390)
Andrew Reynolds [Wed, 22 Nov 2017 20:25:59 +0000 (14:25 -0600)]
Sygus Lambda Grammars (#1390)

6 years agoTranscendental tangent planes utilities (#1288)
Andrew Reynolds [Wed, 22 Nov 2017 18:56:13 +0000 (12:56 -0600)]
Transcendental tangent planes utilities (#1288)

6 years agoAdding infrastructure for normalizing SyGuS grammars (#1397)
Haniel Barbosa [Tue, 21 Nov 2017 23:33:35 +0000 (17:33 -0600)]
Adding infrastructure for normalizing SyGuS grammars (#1397)

* minor

Using string previously computed

* adding option

* starting module for simplifying grammars

* more

* more

* fix

* fix

* fix

* fix

* fix

* removing unused command

* removing unused command

* removing unnecessary quantifier engine

* adding lambda support

* transient

* reverting changes

* starting normalization of integers

* removing unnecessary objects

* using for_each

* rebuilding given datatypes

* recrating types as given

* bug fixing

* minor

* reverting space changes

* addressing review

* addressing review

6 years agoCegqi bv remove extract terms preprocess pass (#1376)
Andrew Reynolds [Tue, 21 Nov 2017 20:02:24 +0000 (14:02 -0600)]
Cegqi bv remove extract terms preprocess pass (#1376)

* Preprocess extract -> concat pass for cegqi bv.

* Add sygus bench

* Fixes, infrastructure.

* Minor fixes.

* Try

* Minor

* Minor

* Document

* Format

* Improving debug messages.

* Address

* Format

* Overlapping extracts.

* Format

* Minor

* Address review.

* Format

* Comment

* Format

6 years agoInitializes members of QuantInfo. Resolves CID 1362929. (#1391)
Tim King [Mon, 20 Nov 2017 13:19:30 +0000 (05:19 -0800)]
Initializes members of QuantInfo. Resolves CID 1362929. (#1391)

6 years agoRemoving an unused variable from SygusInput. Resolves CID 1362932. (#1392)
Tim King [Mon, 20 Nov 2017 06:24:53 +0000 (22:24 -0800)]
Removing an unused variable from SygusInput. Resolves CID 1362932. (#1392)

6 years agoHo instantiation (#1204)
Andrew Reynolds [Sun, 19 Nov 2017 02:00:37 +0000 (20:00 -0600)]
Ho instantiation (#1204)

* Higher-order instantiation.

* Add missing files.

* Document inst match generators, make collectHoVarApplyTerms iterative.

* More documentation.

* More documentation.

* More documentation.

* More documentation

* Refactoring, documentation.

* More documentation.

* Fix comment, reference issue.

* More documentation. Fix ho trigger for the changes from master.

* Minor

* More documentation.

* More documentation.

* More

* More documentation, make indexing and lookup in TriggerTrie iterative instead of recursive.

* More

* Minor improvements to comments.

* Remove an unimplemented optimization from an old version of cached multi-trigger matching. Update and improve documentation in inst match generator.

* Improve documentation for ho_trigger.

* Update ho trigger to not access now private member of TermDb.

* Address comments.

* Address

* Clang format

6 years agoNames the Effort enum of QuantConflictFind class. (#1354)
Tim King [Sun, 19 Nov 2017 00:27:46 +0000 (16:27 -0800)]
Names the Effort enum of QuantConflictFind class. (#1354)

* Changes the Effort level of QuantConflictFind to an enum class. Adding a third value to the enum to indicate not being set. Minor refactoring related to this change. Resolves CID 1172043.

* Fixing a missed assertion. Fixing a few compiler warnings.

* Switching back to an enum from an enum class.

6 years ago(Refactor) Document and clean single invocation partition. (#1364)
Andrew Reynolds [Fri, 17 Nov 2017 21:19:25 +0000 (15:19 -0600)]
(Refactor) Document and clean single invocation partition. (#1364)

* Documenting single invocation partiion.

* More

* More encapsulation.

* More, documentation complete.

* Split to own file.

* Format

* Fully encapsulate.

* Format

* Improvements to doc.

* Format

* Address

* Format

* Missed comment

* Newline

* Address

* Format

6 years agoAdd random number generator. (#1370)
Aina Niemetz [Fri, 17 Nov 2017 17:44:13 +0000 (09:44 -0800)]
Add random number generator. (#1370)

This adds a deterministic (seeded) random number generator (RNG). It implements the xorshift* generator (see S. Vigna, An experimental exploration of Marsaglia's xorshift generators, scrambled. ACM Trans. Math. Softw. 42(4): 30:1-30:23, 2016).

6 years ago(Refactor) Arithmetic monomial sum (#1381)
Andrew Reynolds [Thu, 16 Nov 2017 20:09:30 +0000 (14:09 -0600)]
(Refactor) Arithmetic monomial sum (#1381)

* Add arithmetic monomial sum utility.

* Clang format

* Fix

* Address review.

* Fix missed comment.

* Format

* Fix

6 years agoInitializes BitVectorProof::d_isAssumptionConflict. Resolves CID 1362898. (#1374)
Tim King [Thu, 16 Nov 2017 02:17:56 +0000 (18:17 -0800)]
Initializes BitVectorProof::d_isAssumptionConflict. Resolves CID 1362898. (#1374)

6 years agoSygus print callbacks (#1348)
Andrew Reynolds [Wed, 15 Nov 2017 22:48:26 +0000 (16:48 -0600)]
Sygus print callbacks (#1348)

* Initial infrastructure for sygus printing.

* Minor

* Minor improvements

* Format

* Minor

* Empty constructor printer.

* Format

* Minor

* Format

* Address.

6 years agoReenable some regressions, minor. (#1369)
Andrew Reynolds [Wed, 15 Nov 2017 19:38:45 +0000 (13:38 -0600)]
Reenable some regressions, minor. (#1369)

6 years agoRemoves an unused variable from Theory. (#1375)
Tim King [Wed, 15 Nov 2017 17:40:20 +0000 (09:40 -0800)]
Removes an unused variable from Theory. (#1375)

6 years agoInitializing members of Datatype. Addresses CIDs 1362897, 1362912, 1362923 and 136293...
Tim King [Wed, 15 Nov 2017 15:22:08 +0000 (07:22 -0800)]
Initializing members of Datatype. Addresses CIDs 136289713629121362923 and 1362931. (#1373)

6 years agoAdding garbage collection for Proof objects. (#1294)
Tim King [Wed, 15 Nov 2017 10:58:30 +0000 (02:58 -0800)]
Adding garbage collection for Proof objects. (#1294)

6 years agoMake QEffort an enum (#1366)
Andrew Reynolds [Wed, 15 Nov 2017 01:06:49 +0000 (19:06 -0600)]
Make QEffort an enum (#1366)

* Make QEffort an enum.

* Format

* Minor

* Fix

6 years ago(Refactor) Split sygus term db (#1335)
Andrew Reynolds [Tue, 14 Nov 2017 23:04:14 +0000 (17:04 -0600)]
(Refactor) Split sygus term db (#1335)

* Split explain utility, invariance tests.

* Split extended rewriter.

* Remove unused function.

* Minor

* Move generic term utilities to term_util.

* Documentation, minor.

* Make arguments private in eval invariance.

* Document

* More documentation.

* Clang format.

* Fix, improve.

* Format

* Address review.

* Address missed comment.

* Add line breaks

* Format

6 years agoClean Ceg Instantiators (#1365)
Andrew Reynolds [Tue, 14 Nov 2017 19:42:48 +0000 (13:42 -0600)]
Clean Ceg Instantiators (#1365)

* Initial setup for preprocessing counterexample lemmas.

* Improve documentation.

* Improving documentation, infrastructure.

* Extraction -> concatentation as a preprocess step.

* Clang format

* Minor

* Make option, refactor effort levels.

* Format

* Clean

* Format

* Rename

* Format

* More

* Format

* Splitting changes.

* Format

* Revert option.

* Minor

* Format

6 years agoCleaning up exporting vectors within commands. Resolves CID 1172285 and 1172284....
Tim King [Tue, 14 Nov 2017 15:30:36 +0000 (07:30 -0800)]
Cleaning up exporting vectors within commands. Resolves CID 1172285 and 1172284. (#1362)

6 years agoInitializes InstPropagator::d_has_relevant_inst. Resolves 1362891. (#1360)
Tim King [Tue, 14 Nov 2017 13:08:53 +0000 (05:08 -0800)]
Initializes InstPropagator::d_has_relevant_inst. Resolves 1362891. (#1360)

* Initializes InstPropagator::d_has_relevant_inst. Resolves 1362891.

* Initializing to false explicitly.

6 years agoInitializes RegExpOpr::d_char_start and d_char_end. (#1359)
Tim King [Tue, 14 Nov 2017 07:25:59 +0000 (23:25 -0800)]
Initializes RegExpOpr::d_char_start and d_char_end. (#1359)

6 years agoInitializes TriggerInfo::polarity. Resolves CID 1172054. (#1358)
Tim King [Tue, 14 Nov 2017 05:00:15 +0000 (21:00 -0800)]
Initializes TriggerInfo::polarity. Resolves CID 1172054. (#1358)

* Initializes TriggerInfo::polarity. Resolves CID 1172054.

* Initializing to false explicitly.

6 years agoInitializes NodeTheoryPair::timestamp in the default constructor. (#1356)
Tim King [Tue, 14 Nov 2017 02:55:49 +0000 (18:55 -0800)]
Initializes NodeTheoryPair::timestamp in the default constructor. (#1356)

6 years ago(Refactor) Decouple rep set iterator and quantifiers (#1339)
Andrew Reynolds [Tue, 14 Nov 2017 00:43:40 +0000 (18:43 -0600)]
(Refactor) Decouple rep set iterator and quantifiers (#1339)

* Refactoring rep set iterator, does not modify rep set externally.

* Decouple quantifiers engine and rep set iterator.

* Documentation

* Clang format

* Minor

* Minor

* More

* Format

* Address review.

* Format

* Minor