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)
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.
Tim King [Tue, 14 Nov 2017 07:25:59 +0000 (23:25 -0800)]
Initializes RegExpOpr::d_char_start and d_char_end. (#1359)
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.
Tim King [Tue, 14 Nov 2017 02:55:49 +0000 (18:55 -0800)]
Initializes NodeTheoryPair::timestamp in the default constructor. (#1356)
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
Tim King [Mon, 13 Nov 2017 23:39:56 +0000 (15:39 -0800)]
Initializing SharedTermsDatabase::d_conflictPolarity. Resolves
1172045. (#1355)
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
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
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
Tim King [Mon, 13 Nov 2017 15:57:41 +0000 (07:57 -0800)]
Initializes CegConjectureSingleInvSol::d_root_id. (#1361)
Tim King [Mon, 13 Nov 2017 14:15:03 +0000 (06:15 -0800)]
Initializing SortInference::initialSortCount. Resolves
1172053. (#1357)
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
Andrew Reynolds [Fri, 10 Nov 2017 13:53:32 +0000 (07:53 -0600)]
Printing for higher-order (#1347)
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
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
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.
Tim King [Wed, 8 Nov 2017 04:18:30 +0000 (20:18 -0800)]
Initializing QModelBuilder members. (#1334)
Tim King [Wed, 8 Nov 2017 02:25:22 +0000 (18:25 -0800)]
Combining d_conflictHasBeenRaised and d_conflictIndex into a CDMaybe. (#1332)
Tim King [Wed, 8 Nov 2017 01:16:04 +0000 (17:16 -0800)]
Initializing TrailHashMap::d_uniqueKeys. (#1331)
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.
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)
Andrew Reynolds [Tue, 7 Nov 2017 19:54:06 +0000 (13:54 -0600)]
Guard relevant domain computation properly, minor. (#1325)
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.
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)
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
Tim King [Tue, 7 Nov 2017 13:26:35 +0000 (05:26 -0800)]
Initializing EquivSygusInvarianceTest::d_conj in the constructor. (#1327)
Tim King [Tue, 7 Nov 2017 07:18:29 +0000 (23:18 -0800)]
Initializing NegContainsSygusInvarianceTest::d_cpbe in constructor. (#1328)
Tim King [Tue, 7 Nov 2017 04:36:45 +0000 (20:36 -0800)]
Using unique_ptr's for members of CegConjecture. (#1324)
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
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
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.
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
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
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.
Andrew Reynolds [Sat, 4 Nov 2017 00:16:06 +0000 (19:16 -0500)]
Fix bv help message. (#1315)
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.
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
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.
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
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.
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.
Tim King [Tue, 31 Oct 2017 21:39:45 +0000 (14:39 -0700)]
CID
1459592: Always checking whether rd is null or not. (#1299)
Andrew Reynolds [Tue, 31 Oct 2017 01:45:37 +0000 (20:45 -0500)]
Remove include (#1298)
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
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.
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.
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
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.
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.
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
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
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.
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
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)
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.
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.
Tim King [Thu, 26 Oct 2017 00:07:01 +0000 (17:07 -0700)]
Removing throw specifiers from OutputChannel and subclasses. (#1209)
Tim King [Wed, 25 Oct 2017 21:28:07 +0000 (14:28 -0700)]
Switching EqProof to use shared_ptr everywhere. (#1217)
This clarifies the memory ownership of EqProofs.
Aina Niemetz [Wed, 25 Oct 2017 20:04:05 +0000 (13:04 -0700)]
CBQI BV: Add handling for missing operators. (#1274)
This adds inverse handling for BITVECTOR_XOR, BITVECTOR_SIGN_EXTENDS, BITVECTOR_COMP, BITVECTOR_ASHR. Function isInvertible() now corresponds to exactly the operators (plus index) for which we can determine an inverse, which avoids traversing along non-invertible paths.
This further enables a test case that I missed to enable in PR #1268.
Andrew Reynolds [Wed, 25 Oct 2017 00:38:16 +0000 (19:38 -0500)]
Cbqi bv ineq mode (#1273)
* Add mode for cbqi bv inequality handling.
* Implement the mode.
* Clang format
* Apply new clang format.
* Revert "Apply new clang format."
This reverts commit
1fec0ed999e45daacc4c756f11b5ecb4690f6561.
* Revert "Clang format"
This reverts commit
17042edb82d64c159aeddfe0264cd663998d0471.
* Clang format, second try.
* Revert "Clang format, second try."
This reverts commit
f862c47c34bc313f5bc49a26b7586a4824e5aae0.
* Apply clang format, try 3.
Andrew Reynolds [Tue, 24 Oct 2017 22:58:58 +0000 (17:58 -0500)]
Removing deprecated file. (#1270)
Mathias Preiner [Tue, 24 Oct 2017 20:46:05 +0000 (13:46 -0700)]
Remove clang-format options introduced in version 5.0.
Mathias Preiner [Tue, 24 Oct 2017 17:51:59 +0000 (10:51 -0700)]
New clang-format style based on the Google style. (#1264)
Aina Niemetz [Tue, 24 Oct 2017 05:46:50 +0000 (22:46 -0700)]
CBQI BV: Add ULT/SLT inverse handling. (#1268)
This adds inverse handling for ULT(BV), SLT(BV) and disequalities. Rewriting of inequalities and disequalities to equalities with slack can now be disabled with an option (--cbqi-bv-inv-in-dis-eq). Function solve_bv_constraint is now merged into solve_bv_lit.
Andrew Reynolds [Mon, 23 Oct 2017 19:43:20 +0000 (14:43 -0500)]
Document sygus programming-by-examples utility (#1260)
* Initial documentation and clean up of SyGuS PBE class, fix issue with concat strategy.
* More documentation, cleanup.
* Do not use concat strategy for 3+ arguments to concat, add regression.
* Minor
Mathias Preiner [Sat, 21 Oct 2017 04:03:04 +0000 (21:03 -0700)]
Add rewriting rules for Eq/Ult with sign_extend and constants. (#1258)
Mathias Preiner [Sat, 21 Oct 2017 02:01:51 +0000 (19:01 -0700)]
Simplify atoms introduced while bitblasting. (#1267)
If a newly introduced atom is not rewritten it can happen that the
literals of both the original atom and the rewritten atom end up in the CNF.
However, only the original atom has a BB definition and the literal of the
rewritten atom is unconstrained (no BB definition).
Andrew Reynolds [Fri, 20 Oct 2017 23:18:35 +0000 (18:18 -0500)]
SyGuS term size limit (#1262)
* Add option sygus-abort-size, which tells the enumerative SyGuS solver to abort when it reaches a given term size.
* Apply clang format.
Andrew Reynolds [Fri, 20 Oct 2017 19:52:31 +0000 (14:52 -0500)]
Make Sygus conjectures higher-order (#1244)
* Represent sygus synthesis conjectures using higher-order quantification, remove associated hacks.
* Minor fix
* Fix bug in Node::hasBoundVar for non-ground operators.
* Add regression.
* Address review.
* Apply clang format.
Aina Niemetz [Thu, 19 Oct 2017 19:31:42 +0000 (12:31 -0700)]
CBQI BV: Refactor solve_bv_constraint. (#1265)
This refactors function solve_bv_constraint to use a switch-case over kinds rather than an if-else chain.
Andrew Reynolds [Wed, 18 Oct 2017 20:19:10 +0000 (15:19 -0500)]
Tptp unsat cores (#1228)
* Support unsat cores for TPTP.
* Fix assertion
Andrew Reynolds [Wed, 18 Oct 2017 17:11:50 +0000 (12:11 -0500)]
Strings API escape sequences (#1245)
* Argument for strings class to specify whether to process escape sequences.
* Change default value on string constructor.
* Make CVC4::String::toString symmetric to the constructor for CVC4::String, document.
* Clang format.
Tim King [Tue, 17 Oct 2017 23:01:21 +0000 (16:01 -0700)]
Making the values argument const in the SetUserAttributeCommand const… (#1249)
* Making the values argument const in the SetUserAttributeCommand constructor. Misc. cleanup of SetUserAttributeCommand.
* Removing override keyword that was making SWIG unhappy.
Tim King [Tue, 17 Oct 2017 20:17:20 +0000 (13:17 -0700)]
Fixing 2 instances of an unused variable. (#1253)
Clark Barrett [Tue, 17 Oct 2017 04:26:30 +0000 (21:26 -0700)]
Fix for issue 1247 (#1257)
* Fix for bug 1247: in incremental mode, there was a corner case where
a skolem variable introduced during ITE removal became a solved-for
variable (part of the substitution map). But then if the same skolem
was introduced again as part of a subsequent ITE removal pass, the
substitution was not properly applied and an incorrect result was obtained.
The handling of substitutions in incremental mode is quite kludgey - I
opened an issue to revisit this.
* fixing regression
Andrew Reynolds [Tue, 17 Oct 2017 00:21:25 +0000 (19:21 -0500)]
Sygus enumerators to conjecture (#1237)
* Initial revision of mapping sygus enumeration terms to CegConjectures. This will allow us to generalize conjecture-specific symmetry breaking.
* Change function names, simplify.
* Fix assertion, minor optimization
* Cleanup, documentation, simplification.
* Address review.
* Apply clang format.
Tim King [Mon, 16 Oct 2017 18:22:21 +0000 (11:22 -0700)]
Adds unit test that show Node and TNode work with for each loops. (#1230)
Extends test/unit/expr/node_black.h with tests that show Node and TNode can work with C++11 for each loops.
Aina Niemetz [Fri, 13 Oct 2017 21:28:47 +0000 (14:28 -0700)]
CBQI BV: Added EXTRACT handling. (#1240)
This adds inverse handling for BITVECTOR_EXTRACT. Fixes previously disabled regressions. These regressions are now enabled.
Andrew Reynolds [Fri, 13 Oct 2017 05:12:02 +0000 (00:12 -0500)]
CBQI BV quick heuristics (#1239)
Adds two heuristics for cbqi-bv, both disabled by default.
The first optimistically solves for boundary points of inequalities.
The second randomly interleaves inversion and value instantiations.
Adds some newly solved regressions from SMT LIB.
Andrew Reynolds [Thu, 12 Oct 2017 19:07:05 +0000 (14:07 -0500)]
Initial support for solving bit-vector inequalities (#1229)
* Initial support for solving bit-vector inequalities in cegqi-bv using conversion to positive equality + model value slack.
* Clang format, remove heuristic.
* Update regressions.
* Simplify interface for CegInstantiator
Andrew Reynolds [Thu, 12 Oct 2017 18:00:12 +0000 (13:00 -0500)]
Sygus logics (#1226)
* Allow any smt2 logic to be a sygus logic. Add non-linear SyGuS regressions.
* Minor
* Add case for reals, comment.
* Fix regress1.
Aina Niemetz [Thu, 12 Oct 2017 05:20:17 +0000 (22:20 -0700)]
Enable regressions for CBQI BV and fix inverse for LSHR. (#1234)
This fixes and enables previously added regression tests for CBQI BV. It further removes one of the tests that was obsolete (since it goes through even without --cbqi-bv).
This further fixes the inverse computation for BITVECTOR_LSHR, which was broken due to a mismatching bit-width when creating a shift node.
Mathias Preiner [Thu, 12 Oct 2017 01:17:31 +0000 (18:17 -0700)]
Reduce number of travis builds.
This also removes the Java API test code, which will be tested in the nightly
builds. Same goes for the removed portfolio builds.
Mathias Preiner [Thu, 12 Oct 2017 00:58:33 +0000 (17:58 -0700)]
Add side conditions for UDIV_TOTAL, SHL, CONCAT. (#1224)
Tim King [Wed, 11 Oct 2017 23:01:32 +0000 (16:01 -0700)]
Cleaning up ProofArray class. (#1208)
Andrew Reynolds [Wed, 11 Oct 2017 16:42:23 +0000 (11:42 -0500)]
Ho Lambda Lifting (#1116)
* Do lambda lifting in term formula removal pass. Set option in SMT engine related to higher-order.
* Better documentation
Andrew Reynolds [Wed, 11 Oct 2017 13:51:05 +0000 (08:51 -0500)]
Adds infrastructure for a rewriting pass in BvInstantiator::processAssertion to remove non-invertible operators. Add regression. (#1222)
Andrew Reynolds [Wed, 11 Oct 2017 11:11:46 +0000 (06:11 -0500)]
Move unsat core names to smt engine (#1192)
* Move unsat core names to SmtEnginePrivate. Adds a SetExpressionNameCommand to do this. Removes the names field from GetUnsatCoreCommand.
* Comment
* Pass expression names by reference.
* Update throw specifiers.
* Minor
* Switch expression names to CDMap, simplify interface for printing unsat core names.
* Revert throw specifier change.
* Minor simplifcations
Andrew Reynolds [Wed, 11 Oct 2017 02:07:14 +0000 (21:07 -0500)]
Ho node manager types (#1203)
* Remove restrictions about function types
* Introduce notion of first-class type, improve assertions, add comment on equality type rule.
* Update comment
Aina Niemetz [Tue, 10 Oct 2017 22:36:09 +0000 (15:36 -0700)]
Add copyright information. (#1201)
This adds option --copyright which displays copyright information for CVC4. It further extends --show-config with copyright information and adds a banner with copyright information in interactive mode.
Andres Noetzli [Tue, 10 Oct 2017 21:45:36 +0000 (14:45 -0700)]
Fix memory leak in quantifiers engine (#1219)
Commit
96a0bc3b022b67b5ab79bf2ab087573c65a8d248 introduced a memory leak
where d_quant_attr was not deleted when the QuantifiersEngine was
destroyed. This commit fixes the issue by turning d_quant_attr into an
std::unique_ptr.
Martin [Tue, 10 Oct 2017 06:21:26 +0000 (07:21 +0100)]
Add skeleton of the FP theory solver (#1130)
This commit adds the skeleton of the theory solver using a dummy version of the converter (fp_converter.{h,cpp}). The converter is a class that is used to produce bit-vector expressions equivalent to floating-point ones. The commit sets up the equality engine and the infrastructure for interacting with the main theory components. The majority of this code is still agnostic to how the conversion is actually implemented / what kind of theory solver this is. This is pretty much the template code you need to write any kind of theory solver. This includes equality reasoning and so should be able to solve some basic problems.
Andrew Reynolds [Tue, 10 Oct 2017 02:56:40 +0000 (21:56 -0500)]
Split term database (#1206)
* Move equality query to own file, move equality inference to quantifiers engine.
* Move quantifiers attributes out of TermDb and into QuantAttribute.
* Move term database sygus to quantifiers engine, move some attributes to quantifiers attributes header.
* Split term database into term util.
* Partial fix for #1205 that eliminates need for dependency in node.cpp.
* Add more references to github issues.
Aina Niemetz [Tue, 10 Oct 2017 00:06:30 +0000 (17:06 -0700)]
CBQI BV: Add inverse for more operators. (#1213)
This implements side conditions and the instantiation via word-level inversion for operators BITVECTOR_AND, BITVECTOR_OR, BITVECTOR_UREM (Index=1), BITVECTOR_LSHR (index=0).
Clark Barrett [Thu, 5 Oct 2017 21:47:37 +0000 (14:47 -0700)]
Fix typo in comment.
Mathias Preiner [Thu, 5 Oct 2017 21:42:18 +0000 (14:42 -0700)]
Split COPYING file, add missing licenses. (#1195)
The COPYING file now only contains the modified BSD license of CVC4 and specifies the software that is either incorporated into CVC4 or can be linked against CVC4. The copyright and license information for each software can now be found in the licenses/<software>-LICENSE.
The COPYING file has now 3 sections:
(1) modified BSD license of CVC4
(2) non-GPLv3 software that is incorporated in CVC4 or that can be linked against CVC4
(3) GPLv3 software that can be optionally linked against CVC4
Andrew Reynolds [Thu, 5 Oct 2017 14:11:03 +0000 (09:11 -0500)]
Minor change to how SyGus commands are translated to SmtEngine commands. This ensures a single success is printed for synth-fun and synth-inv. (#1193)
Andrew Reynolds [Thu, 5 Oct 2017 12:12:47 +0000 (07:12 -0500)]
Ho model (#1120)
* Update model construction for higher order. If HO_APPLY terms are present for a function, we use a curried (tree) model construction to avoid exponential size model representations for function definitions.
* Update comments.
* Change terminology in comment.
* Improve comments.
Martin [Thu, 5 Oct 2017 09:08:53 +0000 (10:08 +0100)]
Allow CDHashMaps for objects without default constructors (#1092)
This is a patch, originally from mdeters/cdhashmap-default-constructibility that allows CDHashMaps to be declared for objects that don't have default constructors.