cvc5.git
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)

7 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)

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

7 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.

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

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

7 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

7 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

7 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)

7 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)

7 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

7 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.

7 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

7 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).

7 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

7 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)

7 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.

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

7 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)

7 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)

7 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)

7 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

7 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

7 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

7 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)

7 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.

7 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)

7 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.

7 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)

7 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

7 years agoInitializing SharedTermsDatabase::d_conflictPolarity. Resolves 1172045. (#1355)
Tim King [Mon, 13 Nov 2017 23:39:56 +0000 (15:39 -0800)]
Initializing SharedTermsDatabase::d_conflictPolarity. Resolves 1172045. (#1355)

7 years agoDisable sygus qe preprocessing by default (#1353)
Andrew Reynolds [Mon, 13 Nov 2017 21:25:45 +0000 (15:25 -0600)]
Disable sygus qe preprocessing by default (#1353)

* Disable qe preprocessing for sygus by default, add option.

* Fix bug

* Unnest one

* Format

7 years agoImplement enumerator for functions. (#1243)
Andrew Reynolds [Mon, 13 Nov 2017 19:39:35 +0000 (13:39 -0600)]
Implement enumerator for functions. (#1243)

* Implement enumerator for functions.

* Address review.

* Minor

* Format

* Improve comment.

* Format

7 years agoArgument Relevance for Synthesis Conjectures (#1311)
Andrew Reynolds [Mon, 13 Nov 2017 17:53:33 +0000 (11:53 -0600)]
Argument Relevance for Synthesis Conjectures (#1311)

* Initial work on conjecture-specific symmetry breaking.

* More infrastructure, working on process term.

* Flattening.

* Process defs

* More setup

* Fixes.

* Sketching

* Generalize to inference of argument definitions.

* More, separate conjunct processing per synth function.

* Single occurrence variables.

* Assign relevance.

* Document, connecting.

* Connecting to grammar construction.

* Enabled, add regressions.

* Fix regressions.

* Clang format.

* Add regress1, minor.

* Fix

* Two passes.

* Fix

* Note

* Improve check match, make single var occurrence more conservative.

* Add regression.

* Clang format

* Minor comments

* Update regression to new option.

* Undo grammar cons changes.

* Enable irrelevant args.

* Improvements.

* Format

* Minor

7 years agoInitializes CegConjectureSingleInvSol::d_root_id. (#1361)
Tim King [Mon, 13 Nov 2017 15:57:41 +0000 (07:57 -0800)]
Initializes CegConjectureSingleInvSol::d_root_id. (#1361)

7 years agoInitializing SortInference::initialSortCount. Resolves 1172053. (#1357)
Tim King [Mon, 13 Nov 2017 14:15:03 +0000 (06:15 -0800)]
Initializing SortInference::initialSortCount. Resolves 1172053. (#1357)

7 years ago(Documentation-only) datatype.h (#1346)
Andrew Reynolds [Fri, 10 Nov 2017 15:29:21 +0000 (09:29 -0600)]
(Documentation-only) datatype.h (#1346)

* Clean and document datatype.h.

* More, make TODOs.

* More documentation

* More

* Reference issue.

* Format

* Fixes and improvements.

* Minor

* Minor

* Minor

* Fix

* Minor

* Format

7 years agoPrinting for higher-order (#1347)
Andrew Reynolds [Fri, 10 Nov 2017 13:53:32 +0000 (07:53 -0600)]
Printing for higher-order (#1347)

7 years agoHigher-order prep (#1338)
Andrew Reynolds [Thu, 9 Nov 2017 17:36:37 +0000 (11:36 -0600)]
Higher-order prep (#1338)

* Minor preparation for final higher-order merge.

* Format

7 years ago Decouple sygus term database and term database. (#1317)
Andrew Reynolds [Thu, 9 Nov 2017 15:51:52 +0000 (09:51 -0600)]
 Decouple sygus term database and term database. (#1317)

* Decouple sygus term database and term database.

* Clang format

* Fix include

7 years agoAdd modular arithmetic operators. (#1321)
Aina Niemetz [Thu, 9 Nov 2017 12:47:02 +0000 (04:47 -0800)]
Add modular arithmetic operators. (#1321)

This adds functions on Integers to compute modular addition, multiplication and inverse.

This is required for the Gaussian Elimination preprocessing pass for BV.

7 years agoInitializing QModelBuilder members. (#1334)
Tim King [Wed, 8 Nov 2017 04:18:30 +0000 (20:18 -0800)]
Initializing QModelBuilder members. (#1334)

7 years agoCombining d_conflictHasBeenRaised and d_conflictIndex into a CDMaybe. (#1332)
Tim King [Wed, 8 Nov 2017 02:25:22 +0000 (18:25 -0800)]
Combining d_conflictHasBeenRaised and d_conflictIndex into a CDMaybe. (#1332)

7 years agoInitializing TrailHashMap::d_uniqueKeys. (#1331)
Tim King [Wed, 8 Nov 2017 01:16:04 +0000 (17:16 -0800)]
Initializing TrailHashMap::d_uniqueKeys. (#1331)

7 years ago Initialize TimerStat::d_start. (#1330)
Tim King [Tue, 7 Nov 2017 23:37:31 +0000 (15:37 -0800)]
 Initialize TimerStat::d_start. (#1330)

* Initialize TimerStat::d_start.

* 0 initializing d_data.

7 years agoInitializing Smt1::d_logic in all cases. This was resolved by extending the Logic...
Tim King [Tue, 7 Nov 2017 21:56:28 +0000 (13:56 -0800)]
Initializing Smt1::d_logic in all cases. This was resolved by extending the Logic enum with an UNSET value. (#1329)

7 years agoGuard relevant domain computation properly, minor. (#1325)
Andrew Reynolds [Tue, 7 Nov 2017 19:54:06 +0000 (13:54 -0600)]
Guard relevant domain computation properly, minor. (#1325)

7 years ago Removing an unused member from Tptp. Initializing members of Tptp. (#1326)
Tim King [Tue, 7 Nov 2017 18:35:42 +0000 (10:35 -0800)]
 Removing an unused member from Tptp. Initializing members of Tptp. (#1326)

* Removing an unused member from Tptp. Initializing members of Tptp.

* Removing delcaration for myPopCharStream.

7 years agoMoving the enum ArithType to partial_model. Adding a new type Unset in the enum....
Tim King [Tue, 7 Nov 2017 17:10:09 +0000 (09:10 -0800)]
Moving the enum ArithType to partial_model. Adding a new type Unset in the enum. Always initializing VarInfo::d_type. (#1333)

7 years agoAllow FORALL in quantifier elimination command (#1322)
Andrew Reynolds [Tue, 7 Nov 2017 15:21:00 +0000 (09:21 -0600)]
Allow FORALL in quantifier elimination command (#1322)

* Allow FORALL passed as an argument to get-qe.

* Document

* Format

* Minor

7 years agoInitializing EquivSygusInvarianceTest::d_conj in the constructor. (#1327)
Tim King [Tue, 7 Nov 2017 13:26:35 +0000 (05:26 -0800)]
Initializing EquivSygusInvarianceTest::d_conj in the constructor. (#1327)

7 years agoInitializing NegContainsSygusInvarianceTest::d_cpbe in constructor. (#1328)
Tim King [Tue, 7 Nov 2017 07:18:29 +0000 (23:18 -0800)]
Initializing NegContainsSygusInvarianceTest::d_cpbe in constructor. (#1328)

7 years agoUsing unique_ptr's for members of CegConjecture. (#1324)
Tim King [Tue, 7 Nov 2017 04:36:45 +0000 (20:36 -0800)]
Using unique_ptr's for members of CegConjecture. (#1324)

7 years agoUpdates to interface for Sygus grammar construction. (#1323)
Andrew Reynolds [Tue, 7 Nov 2017 01:18:09 +0000 (19:18 -0600)]
Updates to interface for Sygus grammar construction. (#1323)

* Updates to interface for grammar construction.

* Minor

* Format

7 years agoUnrecurisify rewrite solve assertion for cbqi bv (#1312)
Andrew Reynolds [Mon, 6 Nov 2017 15:00:48 +0000 (09:00 -0600)]
Unrecurisify rewrite solve assertion for cbqi bv (#1312)

* Unrecursify rewrite assertion for cbqi bv.

* Format

7 years agoAdd getValue() for Rational and Integer (GMP and CLN). (#1309)
Aina Niemetz [Mon, 6 Nov 2017 11:22:44 +0000 (03:22 -0800)]
Add getValue() for Rational and Integer (GMP and CLN). (#1309)

Returns a copy of d_value to enable public access of GMP and CLN data.

7 years agoImprove rewriting for string contains part 2 (#1300)
Andrew Reynolds [Mon, 6 Nov 2017 05:14:16 +0000 (23:14 -0600)]
Improve rewriting for string contains part 2 (#1300)

* Generalize component contains, some infrastructure.

* Length entailment, substr for component contains, int.to.str for constant can contain concat.

* Disable rewrite.

* Fix, reenable length entailment for contains.

* Clang format, minor.

* Comment

* Minor fixes and improvements for comments.

* Improvements

* Clang format

* Fixes

* Clang format

* Fix, improve.

* Format

* Fix assertion

7 years agoMake higher-order a flag in logic info. (#1318)
Andrew Reynolds [Sun, 5 Nov 2017 17:44:21 +0000 (11:44 -0600)]
Make higher-order a flag in logic info. (#1318)

* Make higher-order a flag in logic info.

* Format

* Minor

* Format

7 years agoSuppport SAT logic (#1310)
Andrew Reynolds [Sat, 4 Nov 2017 02:18:01 +0000 (21:18 -0500)]
Suppport SAT logic (#1310)

* Support SAT logic.

* Add lustre example.

* Add to smt1 as well.

* Fix.

* Fix.

* Fix for new option.

7 years agoFix bv help message. (#1315)
Andrew Reynolds [Sat, 4 Nov 2017 00:16:06 +0000 (19:16 -0500)]
Fix bv help message. (#1315)

7 years agoSygus clean main (#1297)
Andrew Reynolds [Fri, 3 Nov 2017 20:36:38 +0000 (15:36 -0500)]
Sygus clean main (#1297)

* Remove front end hack for sygus.

* Remove other hack, add sygus solution output mode.

* Clang format

* Minor

* Fix

* Minor

* Remove unused field.

7 years ago(Move-only) Split quant util (#1306)
Andrew Reynolds [Thu, 2 Nov 2017 04:20:09 +0000 (23:20 -0500)]
(Move-only) Split quant util (#1306)

* Initial draft of splitting quant util.

* Minor

* Document recursive term builder.

* Rename file, minor.

* Clang format

7 years ago(Refactor) Split term util (#1303)
Andrew Reynolds [Wed, 1 Nov 2017 20:20:37 +0000 (15:20 -0500)]
(Refactor) Split term util (#1303)

* Fix some documentation.

* Move model basis out of term db.

* Moving

* Finished moving.

* Document Skolemize and term enumeration.

* Minor

* Model basis to first order model.

* Change function name.

* Minor

* Clang format.

* Minor

* Format

* Minor

* Format

* Address review.

7 years agoCBQI BV choice expressions (#1296)
Andrew Reynolds [Wed, 1 Nov 2017 18:35:07 +0000 (13:35 -0500)]
CBQI BV choice expressions (#1296)

* Use Hilbert choice expressions for cbqi bv. Failing in debug due to TNode issues currently.

* Minor

* Make unique bound variables for choice functions in BvInstantor, clean up.

* Incorporate missing optimizations

* Clang format

* Unused field.

* Minor

* Fix, add regression.

* Fix regression.

* Fix bug that led to incorrect cleanup of instantiations.

* Add missing regression

* Improve handling of choice rewriting.

* Fix

* Clang format

* Use canonical variables for choice functions in cbqi bv.

* Add regression

* Clang format.

* Address review.

* Clang format

7 years ago Add option to build shared Windows dependencies (#1282)
Andres Noetzli [Wed, 1 Nov 2017 16:42:15 +0000 (09:42 -0700)]
 Add option to build shared Windows dependencies (#1282)

This commit adds an option to the contrib/get-win-dependencies script
(-s) to build shared library versions of ANTLR and GMP, which enables
building the shared versions of the CVC4 libraries needed for language
bindings.

7 years ago(Move-only) Refactor and document theory model part 2 (#1305)
Andrew Reynolds [Wed, 1 Nov 2017 15:08:19 +0000 (10:08 -0500)]
(Move-only) Refactor and document theory model part 2 (#1305)

* Move type set to its own file and document.

* Move theory engine model builder to its own class.

* Working on documentation.

* Document Theory Model.

* Minor

* Document theory model builder.

* Clang format

* Address review.

7 years agoCID 1459592: Always checking whether rd is null or not. (#1299)
Tim King [Tue, 31 Oct 2017 21:39:45 +0000 (14:39 -0700)]
CID 1459592: Always checking whether rd is null or not. (#1299)

7 years agoRemove include (#1298)
Andrew Reynolds [Tue, 31 Oct 2017 01:45:37 +0000 (20:45 -0500)]
Remove include (#1298)

7 years agoChange bvudiv semantics based on input language (#1292)
Andres Noetzli [Sat, 28 Oct 2017 23:45:16 +0000 (16:45 -0700)]
Change bvudiv semantics based on input language (#1292)

* Change bvudiv semantics based on input language

The semantics of division by zero have changed from SMT 2.5 to SMT 2.6.
This commit sets the default options for the division semantics based on
the language version used. The input language was already kept track of
in the options, so this commit just updates the input language option
when there is a set-info command. This mirrors how the code already
deals with the output language.

Note: With this commit, set-info overwrites the option set by the user.
This is done to be consistent with the parser.

This partially fixes #1241.

* clang format

7 years ago(Move only) Move enumerative instantiation strategy to its own file and document...
Andrew Reynolds [Sat, 28 Oct 2017 21:53:55 +0000 (16:53 -0500)]
(Move only) Move enumerative instantiation strategy to its own file and document (#1290)

* Move, document, and rename enumerative instantiation.

* Clang format.

7 years agoSygus process conjecture (#1286)
Andrew Reynolds [Sat, 28 Oct 2017 18:01:49 +0000 (13:01 -0500)]
Sygus process conjecture (#1286)

* Initial infrastructure for static preprocessing for sygus conjectures.

* Initial infrastructure.

* Minor change in terminology, move enumerator to synth-fun mapping to sygus term database, minor fix and add documentation to NegContainsInvarianceTest.

* Clang format

* Fixing comments, more initial infrastructure.

* More

* Minor

* New clang format.

* Address review.

7 years agoDocument term db (#1220)
Andrew Reynolds [Sat, 28 Oct 2017 14:13:13 +0000 (09:13 -0500)]
Document term db (#1220)

* Document TermDb and related classes. Minor changes to quantifiers utils and their interface.  Address some comments left over from PR 1206.

* Minor

* Minor

* Change namespace style.

* Address review

* Fix incorrectly merged portion that led to regression failures.

* New clang format, fully document relevant domain.

* Clang format again.

* Minor

7 years agoImprove strings rewriter for contains (#1207)
Andrew Reynolds [Sat, 28 Oct 2017 04:16:38 +0000 (23:16 -0500)]
Improve strings rewriter for contains (#1207)

* Work on rewriter for string contains.

* Add rewrites that mix str.to.int and str.contains. Documentation, add regression.

* Minor

* Minor

* Address review, add a few TODOs. Improve some non-digit -> not is number.

* Fix

* Simplify.

* Clang format, minor fixing of comments.

7 years agoDocument quant arith (#1271)
Andrew Reynolds [Sat, 28 Oct 2017 00:21:18 +0000 (19:21 -0500)]
Document quant arith (#1271)

* Initial documentation, incomplete.

* Document arith utilities in quantifiers.

* Minor

* Clang format

* Minor

* Clang format.

* Minor

* Apply new clang format.

* Document ordering.

7 years agoModify LDFLAGS to support shared libraries for Win (#1280)
Andres Noetzli [Fri, 27 Oct 2017 21:01:35 +0000 (14:01 -0700)]
Modify LDFLAGS to support shared libraries for Win  (#1280)

* Use uintptr_t for pointer casts in Swig files

CVC4's Swig interface files were casting pointers to longs in multiple
instances. The problem with that is that on certain platforms *cough*
Windows/MinGW *cough* long is only 32-bit even when compiling a 64-bit
executable (they use the LLP64 data model). This made the compilation of
language bindings fail with MinGW. This commit changes the types to
uintptr_t defined in Swig's stdint.i.

* Modify LDFLAGS to support shared libraries for Win

This commit adds "-no-undefined" to the LDFLAGS of CVC4's library, which
is required for building DLLs (shared libraries on Windows). It also
adds "--export-all-symbols" to the linker flags of the parser to ensure
that there are no unresolved symbols when linking against it (see
comment in the Makefile.am for details).

* Fix for non-Windows builds

* add no-undefined to libcvc4compatjni

7 years agoCbqi multiple instantiation (#1289)
Andrew Reynolds [Fri, 27 Oct 2017 18:58:12 +0000 (13:58 -0500)]
Cbqi multiple instantiation (#1289)

* Multi-instantiation heuristic for cbqi bv.

* New clang format.

* Minor

* Minor.

* Minor

7 years agoRefactor theory model (#1236)
Andrew Reynolds [Fri, 27 Oct 2017 16:20:50 +0000 (11:20 -0500)]
Refactor theory model (#1236)

* Refactor theory model, working on making RepSet references const.

* Encapsulation of members of rep set.

* More documentation on rep set.

* Swap names

* Reference issues.

* Minor

* Minor

* New clang format.

7 years agoImplement Hilbert choice operator (#1291)
Andrew Reynolds [Fri, 27 Oct 2017 14:03:07 +0000 (09:03 -0500)]
Implement Hilbert choice operator (#1291)

* Initial support for Hilbert choice operator.

* Clang format.

* Fix

* Minor

7 years agoAdds a macro to SWIG to ignore the override and final C++11 keywords in older version...
Tim King [Fri, 27 Oct 2017 03:13:25 +0000 (20:13 -0700)]
Adds a macro to SWIG to ignore the override and final C++11 keywords in older versions of SWIG. (#1281)

7 years agoOp overload no fun variant (#1285)
Andrew Reynolds [Thu, 26 Oct 2017 21:49:55 +0000 (16:49 -0500)]
Op overload no fun variant (#1285)

* Do not allow function variants with operator overloading.

* Minor.

* New clang format.

* Minor improvements.

7 years agoUse uintptr_t for pointer casts in Swig files (#1278)
Andres Noetzli [Thu, 26 Oct 2017 02:50:08 +0000 (19:50 -0700)]
Use uintptr_t for pointer casts in Swig files (#1278)

CVC4's Swig interface files were casting pointers to longs in multiple
instances. The problem with that is that on certain platforms *cough*
Windows/MinGW *cough* long is only 32-bit even when compiling a 64-bit
executable (they use the LLP64 data model). This made the compilation of
language bindings fail with MinGW. This commit changes the types to
uintptr_t defined in Swig's stdint.i.