cvc5.git
7 years agoFix issue #1105 involving string to int (#1112)
Andrew Reynolds [Tue, 19 Sep 2017 06:03:56 +0000 (01:03 -0500)]
Fix issue #1105 involving string to int (#1112)

This was introduced by changing the implementation of "isNumber" in this commit:
a94318b

This fixes issue #1105.

7 years agoFloating point symfpu support (#1103)
Martin [Tue, 19 Sep 2017 00:14:05 +0000 (01:14 +0100)]
Floating point symfpu support (#1103)

- Update the parser to the new constant construction
- Fix the problem with parsing +/-zero and remove some dead code
- Extend the interface for literal floating-point values.
- Add a constructor so that a parameteric operator structure can be created from a type
- Add constructors so parametric operator constants can be easily converted
- Update SMT2 printing so that it uses the informative output

7 years agoMoving the CVC4_PUBLIC attribute to the beginning of operator++. (#1107)
Tim King [Mon, 18 Sep 2017 06:40:17 +0000 (23:40 -0700)]
Moving the CVC4_PUBLIC attribute to the beginning of operator++. (#1107)

Removes the following warning when compiling with gcc version 4.8.4 :

../../../../../src/expr/kind_template.h:95:55: warning: '__visibility__' attribute ignored on non-class types [-Wattributes]

Tested with clang-3.5.

7 years agoMake floating-point comparison operators chainable (#1101)
Martin [Fri, 15 Sep 2017 03:04:20 +0000 (04:04 +0100)]
Make floating-point comparison operators chainable (#1101)

Floating-point comparison operators are chainable according to the standard.

7 years agoAdd missing CVC4_PUBLIC in kind_template (#1078)
makaimann [Fri, 15 Sep 2017 00:50:16 +0000 (17:50 -0700)]
Add missing CVC4_PUBLIC in kind_template (#1078)

7 years agoEnable ccache compression, increase cache size (#1099)
Andres Noetzli [Thu, 14 Sep 2017 22:14:09 +0000 (15:14 -0700)]
Enable ccache compression, increase cache size (#1099)

This commit enables compression for ccache, increases the cache size to 1GB and
resets the ccache statistics before each run.

7 years agoRemove unhandled subtypes (#1098)
Andrew Reynolds [Thu, 14 Sep 2017 19:12:22 +0000 (14:12 -0500)]
Remove unhandled subtypes (#1098)

* Remove unhandled subtypes, which consequently makes typing rules uniformly stricter based on weakening the subtype relation. Ensure coercions in the smt2 and cvc parser for Real decimal constants whose type is Integer. Ensure type annotations are computed during preRewrite to ensure rewriting (which does not preserve types) does not impact term construction for parametric datatypes. This fixes issue #1048 (we now give an type exception).

* Update unit test for parametric datatypes to reflect new subtyping relation.

* Remove deprecated test.

* Make array construction for lambdas work with new subtype relations to handle lambdas like (lambda ((x Int) (y Int)) (ite (= x 0) 0.5 0.0)).

7 years agoSimplifying the throw specifier of SmtEngine::checkSat and related calls to CVC4...
Tim King [Thu, 14 Sep 2017 17:09:40 +0000 (10:09 -0700)]
Simplifying the throw specifier of SmtEngine::checkSat and related calls to CVC4::Exception. (#1085)

7 years agoFloating point symfpu support (#1093)
Martin [Thu, 14 Sep 2017 03:51:50 +0000 (04:51 +0100)]
Floating point symfpu support (#1093)

Changes needed for the bit-blasting floating-point solver which are outside of it's area and / or applicable independently.

7 years agoAdd new kinds required for higher-order. (#1083)
Andrew Reynolds [Thu, 14 Sep 2017 02:08:28 +0000 (21:08 -0500)]
Add new kinds required for higher-order. (#1083)

This consists of a binary apply symbol HO_APPLY that returns the result of applying its first argument to its second argument. Update the UF rewriter to ensure that non-standard APPLY_UF applications are rewritten into curried applications of HO_APPLY.

7 years agoAdd isConst check for lambda expressions. (#1084)
Andrew Reynolds [Thu, 14 Sep 2017 00:26:35 +0000 (19:26 -0500)]
Add isConst check for lambda expressions. (#1084)

Add isConst check for lambda expressions by conversions to and from an Array representation where isConst is implemented. This enables check-model to succeed on higher-order benchmarks. Change the builtin rewriter for lambda to attempt to put lambdas into constant form. Update regression.

7 years agoMake ccache work with Clang on Travis (#1097)
Andres Noetzli [Wed, 13 Sep 2017 21:13:35 +0000 (14:13 -0700)]
Make ccache work with Clang on Travis (#1097)

This commit uses a workaround [0] to get ccache to work
with Clang on Travis.

[0] https://github.com/travis-ci/travis-ci/issues/5383#issuecomment-224630584

7 years agoModify equality engine to allow operators to be marked as external terms (#1082)
Andrew Reynolds [Wed, 13 Sep 2017 21:08:01 +0000 (16:08 -0500)]
Modify equality engine to allow operators to be marked as external terms (#1082)

This is required for reasoning higher-order, since we may have equalities between functions, which are operators of APPLY_UF terms.

This commit gets around the previous 1% slowdown by modifying the changes to the equality engine to be minimal impact. Previously the "isInternal" flag could be reset to false after a term is marked as internal=true. This provides an interface for whether operators of a kind should be marked as internal=false from the start. When using higher-order, APPLY_UF operators will be marked as being external when the higher-order option ufHo is set to true.

This has <.001% impact on performance on QF smtlib : https://www.starexec.org/starexec/secure/details/job.jsp?id=24445

7 years agoRemove unused RecordSelect and TupleSelect (#1087)
Andres Noetzli [Wed, 13 Sep 2017 08:31:30 +0000 (01:31 -0700)]
Remove unused RecordSelect and TupleSelect (#1087)

Commit 62b673a6b8444c14c169a984dd6e3fc8f685851e remove most of the
record/tuple infrastructure but did not remove the classes RecordSelect and
TupleSelect which lead to issues with Java bindings (the references to the
corresponding mkConst implementations could not be resolved). This commit
removes the remaining traces of those classes.

7 years agoEnable ccache on Travis, disable debug symbols (#1094)
Andres Noetzli [Wed, 13 Sep 2017 03:52:10 +0000 (20:52 -0700)]
Enable ccache on Travis, disable debug symbols (#1094)

Enable ccache on Travis for faster compile times. Also
disable debug symbols for the debug builds on Travis to
use the available cache more efficiently. Note: this
change only works on GCC, support for Clang will require
additional changes but the time savings should already be
pretty significant.

7 years agoInitial infrastructure for BV instantiation via word-level inversions. (#1056)
Andrew Reynolds [Tue, 12 Sep 2017 23:48:27 +0000 (18:48 -0500)]
Initial infrastructure for BV instantiation via word-level inversions. (#1056)

* Initial infrastructure for BV instantiation via word-level inversions.

* Minor clean up.

* Change visited to unordered set.

7 years agoAdding reasonable breaks in switch statement in TheoryStrings::normalizeRegexp. Minor...
Tim King [Tue, 12 Sep 2017 00:07:16 +0000 (17:07 -0700)]
Adding reasonable breaks in switch statement in TheoryStrings::normalizeRegexp. Minor code reorganization and applying clang-tidy to the function. (#1079)

7 years agoAddressing a coverity scan complaint in theory_strings.cpp. I believe the root cause...
Tim King [Mon, 11 Sep 2017 15:55:56 +0000 (08:55 -0700)]
Addressing a coverity scan complaint in theory_strings.cpp. I believe the root cause is that d_normal_forms_exp[r[0]] could have referred to different vectors (as operator[] is inserting for maps). (#1080)

7 years agoEnsure that expand definitions is called on all non-variable expressi… (#1070)
Andrew Reynolds [Sun, 10 Sep 2017 06:12:34 +0000 (08:12 +0200)]
Ensure that expand definitions is called on all non-variable expressi… (#1070)

* Ensure that expand definitions is called on all non-variable expressions. In particular, it is necessary that the sets theory is notified when a set universe term occurs in the input to ensure options are set correctly. The commit moves this check from within check() to expandDefinitions(), and also adds the check for join image which relies on universe set. This fixes a bug reported by Arjun. Add and update regressions.

* Add comments concerning expandDefinitions

* Expand comment, move to .h

7 years agoProperly handle user cardinality constraints for uf-ss=none. (#1068)
Andrew Reynolds [Thu, 7 Sep 2017 09:50:59 +0000 (11:50 +0200)]
Properly handle user cardinality constraints for uf-ss=none. (#1068)

7 years agoFix link in configure.ac.
Mathias Preiner [Tue, 5 Sep 2017 22:58:59 +0000 (15:58 -0700)]
Fix link in configure.ac.

7 years agoRemove support for conversions between uint32/uint16 and string. (#1069)
Andrew Reynolds [Tue, 5 Sep 2017 05:57:40 +0000 (07:57 +0200)]
Remove support for conversions between uint32/uint16 and string. (#1069)

* Remove support for conversions between uint32/uint16 and string.

* Temporarily disable regression.

7 years agoAdd travis debug build with cln. (#1066)
Aina Niemetz [Fri, 1 Sep 2017 16:57:28 +0000 (09:57 -0700)]
Add travis debug build with cln. (#1066)

Until now, all travis builds where built with gmp. This commit adds an additional debug build built with cln.

7 years agoAdd GCC7 jobs to Travis (#1054)
Andres Noetzli [Fri, 1 Sep 2017 05:25:27 +0000 (22:25 -0700)]
Add GCC7 jobs to Travis (#1054)

This commit adds two jobs (debug, with portfolio, test groups 0 and 1) to Travis.
Both jobs are added using matrix.include, based on the example in the documentation:
https://docs.travis-ci.com/user/languages/cpp/#GCC-on-Linux . This
unfortunately requires some code duplication but there does not seem to be a
way to do it in a much better fashion.

7 years agoReplace CVC4_THREADLOCAL in interactive_shell (#1065)
Andres Noetzli [Fri, 1 Sep 2017 00:39:16 +0000 (17:39 -0700)]
Replace CVC4_THREADLOCAL in interactive_shell (#1065)

Commit 546d795470ca7c30fc62fe9b6c7b8e5838e1eed4
caused our nightly builds to fail because it did
not replace CVC4_THREADLOCAL with
CVC4_THREAD_LOCAL in interactive_shell. This
commit fixes the issue and adds readline to
Travis, s.t. readline related code gets compiled
as part of our CI tests.

7 years agoAnswer unknown when uf-ss=no-minimal is combined with cardinality constraints from...
Andrew Reynolds [Thu, 31 Aug 2017 12:26:26 +0000 (14:26 +0200)]
Answer unknown when uf-ss=no-minimal is combined with cardinality constraints from user input, add regressions. (#1060)

7 years agoUse thread_local instead of compiler extensions (#210)
Andres Noetzli [Thu, 31 Aug 2017 03:55:27 +0000 (20:55 -0700)]
Use thread_local instead of compiler extensions (#210)

C++11 introduced the thread_local keyword, so we don't need to use
non-standard extensions or our custom pthread extension anymore.
The behavior was previously introduced as a workaround in commit
753a072c542c1c254d7c6adbf10e091ba585ede5. This commit
introduces the macro CVC4_THREAD_LOCAL that can be used to
declare variables as thread local. For Swig, this macro is defined to
be empty.

7 years agoFix model construction for parametric types (#1059)
Andrew Reynolds [Wed, 30 Aug 2017 22:59:24 +0000 (00:59 +0200)]
Fix model construction for parametric types (#1059)

Fix model construction for parametric types so that we enumerate types in order of dependencies, and avoid subterms of previously enumerated values.

There was a bug in model construction for parametric types which was related to enumerating values that are subterms of other previously enumerated values created during model construction (which were not recorded).

This commit adds all subterms of values we enumerate to the "already used value" sets of their respective types, as reflected in the changes to TypeSet.

There is an extra wrinkle in making the above change, which was caught by the regression test/regress/regress0/fmf/dt-proper-model.smt2. The issue is specific to finite model finding and can be corrected by ensuring that base types (e.g. uninterpreted sorts) are enumerated first.

The change to TheoryModel::buildModel that replaces "allTypes" with "type_list" fixes this wrinkle. This constructs a partially ordered list of types where T1 comes before T2 if values of T2 can contain terms of type T1 but not vice versa. Ordering our enumeration in this way is probably a good idea in general. This ensures we enumerate values for equivalence classes of e.g. Int before (Array Int Int) and means we exclude fewer intermediate values during model construction.

7 years agoRemove Coverity SSL certificate workaround from Travis configuration. (#1058)
Mathias Preiner [Wed, 30 Aug 2017 16:04:36 +0000 (09:04 -0700)]
Remove Coverity SSL certificate workaround from Travis configuration. (#1058)

Coverity works without the SSL certificate workaround and is not needed anymore. Note that we don't require sudo anymore and we could switch to container-based Travis builds (instead of VM-based).  However, container-based environments only provide 4G of memory (instead of 7.5G for VMs) , which is not enough for the current CVC4 build environment.

7 years agoFix indentation for disabled Java tests.
Mathias Preiner [Tue, 29 Aug 2017 23:10:30 +0000 (16:10 -0700)]
Fix indentation for disabled Java tests.

7 years agoDisable Java tests for now until they get fixed.
Mathias Preiner [Tue, 29 Aug 2017 23:03:31 +0000 (16:03 -0700)]
Disable Java tests for now until they get fixed.

7 years agoRun Ant on Travis
Pat Hawks [Mon, 28 Aug 2017 21:13:22 +0000 (16:13 -0500)]
Run Ant on Travis

7 years agoTravis: Package instead of download for cxxtest (#1055)
Andres Noetzli [Mon, 28 Aug 2017 17:22:31 +0000 (10:22 -0700)]
Travis: Package instead of download for cxxtest (#1055)

Before this commit, we were downloading cxxtest from Sourceforge. This commit
instead installs the Ubuntu package, which is easier and more reliable. Instead
of adding the package to the list of packages for Coverity and the common list
of packages, this commit changes the Coverity package list to just refer to the
common list of packages.

7 years agoMove LFSC checker out of the CVC repository. (#222)
Aina Niemetz [Fri, 25 Aug 2017 22:39:16 +0000 (15:39 -0700)]
Move LFSC checker out of the CVC repository. (#222)

LFSC now lives outside of the CVC4 repository and is not part of the CVC4 distribution
anymore. As a consequence, we

+ Add --with-lfsc and --with-lfsc-directory as configure options.
   In the case where CVC4 has not been built with integrated LFSC, all code that interacts with
   LFSC is disabled.

+ Disable proof checking if CVC4_USE_LFSC is not defined.
   Configuring the build with --check-proofs but without --with-lfsc results in an error.

+ Do not call LFSC's cleanup function (but we should in the future).
   LFSC checker segfaults during cleanup on regression testcase regress0/bv/core/bitvec7.smt.
   Disabled call to lfscc_cleanup until the problem in lfscc is fixed.

+ Disable building with LFSC for the distcheck travis build since it is not part of the distribution
   anymore. Further, make distcheck with LFSC would require to call contrib/get-lfsc-checker
   before calling make check on the temp build (the build of the unpacked distribution tar ball).

7 years agoAdded missing includes (algorithm).
Aina Niemetz [Fri, 25 Aug 2017 20:29:04 +0000 (13:29 -0700)]
Added missing includes (algorithm).

Algorithm was previously removed from src/util/regexp.h which broke
compilation on some platforms.

7 years agoTest Java API on CI
Pat Hawks [Thu, 24 Aug 2017 22:31:09 +0000 (17:31 -0500)]
Test Java API on CI

7 years agoAdd include to fix build
Andres Noetzli [Thu, 24 Aug 2017 17:08:39 +0000 (10:08 -0700)]
Add include to fix build

7 years agoMerge pull request #191 from timothy-king/cleanup-regexp
Andrew Reynolds [Thu, 24 Aug 2017 12:09:43 +0000 (14:09 +0200)]
Merge pull request #191 from timothy-king/cleanup-regexp

Cleaning up the CVC4::String class.

7 years agoFix typos
Andres Noetzli [Wed, 23 Aug 2017 18:13:07 +0000 (11:13 -0700)]
Fix typos

7 years agoRemoving TODO for 'Optimize via the iterator'. Not a priority. (#1051)
Tim King [Wed, 23 Aug 2017 22:49:32 +0000 (15:49 -0700)]
Removing TODO for 'Optimize via the iterator'. Not a priority. (#1051)

7 years agoCleanup: use Assert rather than C assert. (#1052)
Aina Niemetz [Tue, 22 Aug 2017 01:33:29 +0000 (18:33 -0700)]
Cleanup: use Assert rather than C assert. (#1052)

7 years agoUpdated NYU -> Stanford
Clark Barrett [Tue, 22 Aug 2017 00:30:45 +0000 (17:30 -0700)]
Updated NYU -> Stanford

7 years agoChange Bugzilla urls to Github issues.
Mathias Preiner [Mon, 21 Aug 2017 17:06:02 +0000 (10:06 -0700)]
Change Bugzilla urls to Github issues.

7 years agoRemove unused SubrangeBound(s) classes (#221)
Andres Noetzli [Thu, 17 Aug 2017 15:51:51 +0000 (08:51 -0700)]
Remove unused SubrangeBound(s) classes (#221)

As discussed in pull request #220, commit
360d6ee8d3cdd5ddb47c328043eaed3a107b8db1 mostly got rid of SubrangeBound(s).
There were still a few mentions of it left in the code, most of them commented
out. The occurrences in expr.i and expr_manager.i, however, created issues with
the Python wrapper. This commit removes the SubrangeBound(s) implementation and
other leftovers.

7 years agoAdd mbqi interleave option, change option fs-inst to fs-interleave.
ajreynol [Thu, 17 Aug 2017 09:53:11 +0000 (11:53 +0200)]
Add mbqi interleave option, change option fs-inst to fs-interleave.

7 years agoMinimize includes in expr.h: remove dups, iostream (#219)
Andres Noetzli [Tue, 15 Aug 2017 05:46:48 +0000 (22:46 -0700)]
Minimize includes in expr.h: remove dups, iostream (#219)

7 years agoMove function definitions from metakind.h to cpp (#218)
Andres Noetzli [Tue, 15 Aug 2017 03:10:55 +0000 (20:10 -0700)]
Move function definitions from metakind.h to cpp (#218)

7 years agoMove function definitions from kind.h to kind.cpp (#217)
Andres Noetzli [Tue, 15 Aug 2017 01:34:18 +0000 (18:34 -0700)]
Move function definitions from kind.h to kind.cpp (#217)

7 years agoMove function defns from smt_engine_scope.h to cpp (#216)
Andres Noetzli [Mon, 14 Aug 2017 22:32:23 +0000 (15:32 -0700)]
Move function defns from smt_engine_scope.h to cpp (#216)

Additionally, this commit removes unnecessary includes, adds includes to
smt_engine.h in files that require it and removes s_smtEngine_current from
smt_engine_scope.h.

7 years agoUse antlr-3.4 directory if already present in CVC4 root directory (#213)
Mathias Preiner [Mon, 14 Aug 2017 18:27:53 +0000 (11:27 -0700)]
Use antlr-3.4 directory if already present in CVC4 root directory (#213)

* Find antlr-3.4 directory if installed via contrib/get-antlr-3.4.

7 years agoMerge pull request #214 from CVC4/fix_warn_nonlinear
Aina Niemetz [Mon, 14 Aug 2017 16:56:00 +0000 (09:56 -0700)]
Merge pull request #214 from CVC4/fix_warn_nonlinear

Fix compiler warnings in theory/arith/nonlinear_extension.cpp

7 years agoBuild and test suite fixes for Windows (#186)
Mark Laws [Mon, 14 Aug 2017 16:44:54 +0000 (01:44 +0900)]
Build and test suite fixes for Windows (#186)

- Build fixes for Windows
- Make proof checking tempfile handling portable
- Test suite fixes for Windows

7 years agoFix compiler warnings in theory/arith/nonlinear_extension.cpp
Aina Niemetz [Sat, 12 Aug 2017 06:00:08 +0000 (23:00 -0700)]
Fix compiler warnings in theory/arith/nonlinear_extension.cpp

7 years agoMaintain frontier for tangent planes.
ajreynol [Thu, 10 Aug 2017 11:08:46 +0000 (06:08 -0500)]
Maintain frontier for tangent planes.

7 years agoFix line numbers in options_template
Andres Noetzli [Thu, 10 Aug 2017 23:55:55 +0000 (16:55 -0700)]
Fix line numbers in options_template

7 years agoFix compiler warning in src/context/context.h.
Mathias Preiner [Wed, 9 Aug 2017 23:44:05 +0000 (16:44 -0700)]
Fix compiler warning in src/context/context.h.

7 years agoFix help message for disable-unit-testing in configure.ac (don't -> do not)
Aina Niemetz [Wed, 9 Aug 2017 23:33:23 +0000 (16:33 -0700)]
Fix help message for disable-unit-testing in configure.ac (don't -> do not)

Previous help message broke syntax highlighting in vim.

7 years agoRemove AigBitblaster implementation if ABC is not compiled (#212)
Mathias Preiner [Wed, 9 Aug 2017 22:47:27 +0000 (15:47 -0700)]
Remove AigBitblaster implementation if ABC is not compiled (#212)

* Guard use of AigBitblaster with CVC4_USE_ABC.

This removes the Unreachable() implementation of AigBitblaster in case CVC4 is
not compiled with ABC support.

7 years agoFix Assertion (compiler warning) in theory/bv/theory_bv.cpp
Aina Niemetz [Wed, 9 Aug 2017 22:27:33 +0000 (15:27 -0700)]
Fix Assertion (compiler warning) in theory/bv/theory_bv.cpp

7 years agoFix compiler warning in sat_proof_implementation
Andres Noetzli [Tue, 8 Aug 2017 01:16:02 +0000 (18:16 -0700)]
Fix compiler warning in sat_proof_implementation

7 years agoUse cache for datatypes cycle check, add regression.
ajreynol [Tue, 8 Aug 2017 07:40:00 +0000 (02:40 -0500)]
Use cache for datatypes cycle check, add regression.

7 years agoMerge pull request #211 from CVC4/fix_warn_sygus
Andrew Reynolds [Tue, 8 Aug 2017 07:05:11 +0000 (09:05 +0200)]
Merge pull request #211 from CVC4/fix_warn_sygus

Fix compiler warning in theory/quantifiers/term_database_sygus.cpp

7 years agoOptionally split regression tests into test groups (#207)
Andres Noetzli [Tue, 8 Aug 2017 01:35:30 +0000 (18:35 -0700)]
Optionally split regression tests into test groups (#207)

To prevent timing out on Travis, this commit adds the option to split
the regression tests into groups and run each group in a separate job.
The group of a test is determined by computing a checksum of its name.

7 years agoFix compiler warning in theory/quantifiers/term_database_sygus.cpp
Aina Niemetz [Tue, 8 Aug 2017 00:05:47 +0000 (17:05 -0700)]
Fix compiler warning in theory/quantifiers/term_database_sygus.cpp

7 years agoChange sygus output for failed reconstruction case.
ajreynol [Mon, 7 Aug 2017 10:00:43 +0000 (05:00 -0500)]
Change sygus output for failed reconstruction case.

7 years agoMake quantifier elimination more robust to preprocessing.
ajreynol [Mon, 7 Aug 2017 08:14:07 +0000 (03:14 -0500)]
Make quantifier elimination more robust to preprocessing.

7 years agoReorganized bitvector.h
Aina Niemetz [Sat, 5 Aug 2017 00:40:47 +0000 (17:40 -0700)]
Reorganized bitvector.h

7 years agoFix comments
Aina Niemetz [Fri, 4 Aug 2017 17:28:29 +0000 (10:28 -0700)]
Fix comments

7 years agoFix typos in comments
Aina Niemetz [Fri, 4 Aug 2017 17:28:16 +0000 (10:28 -0700)]
Fix typos in comments

7 years agoSet default language to smt lib 2.6 (including as a base language for sygus), update...
ajreynol [Fri, 4 Aug 2017 14:51:35 +0000 (16:51 +0200)]
Set default language to smt lib 2.6 (including as a base language for sygus), update regressions.

7 years agoDisable debug symbols for production builds.
Mathias Preiner [Wed, 2 Aug 2017 23:18:53 +0000 (16:18 -0700)]
Disable debug symbols for production builds.

7 years agoMinor improvement for enumerative instantiation.
ajreynol [Mon, 31 Jul 2017 08:20:17 +0000 (03:20 -0500)]
Minor improvement for enumerative instantiation.

7 years agoFix memory leak in symbol table (#209)
Andres Noetzli [Sun, 30 Jul 2017 17:38:06 +0000 (10:38 -0700)]
Fix memory leak in symbol table (#209)

Commit 4cab39bd4f166716cd3d357a175c346afb838137 moved d_exprMap, d_typeMap,
and d_functions into SymbolTable::Implementation but did not move the deletion
of those objects from SymbolTable to the SymbolTable::Implementation
desconstructor, resulting in a memory leak. This commit fixes the issue.

7 years agoChange remaining hash_set -> unordered_set (#208)
Andres Noetzli [Sun, 30 Jul 2017 01:06:30 +0000 (18:06 -0700)]
Change remaining hash_set -> unordered_set (#208)

The nightly competition build has been failing due to a remaining use of
hash_set in approx_simplex.cpp. This commit changes the remaining uses
of hash_set to unordered_set.
The remaining uses of hash_set were in LFSC. Switching to C++11 for LFSC
required changing the configure.ac for LFSC to require C++11 support to
make sure that it can be compiled independently from the rest of CVC4 (some
of our Travis tests do that as well). To have the macros for these additional
checks available, the commit adds a symlink to the files in config that contain
the macros). I did not find a way to add macros from a parent's folder that
did not break `make distcheck

7 years agoAdd support for charat in native language, minor cleanup.
ajreynol [Sat, 29 Jul 2017 09:33:27 +0000 (04:33 -0500)]
Add support for charat in native language, minor cleanup.

7 years agoFix cache issues for cyclic string equations.
ajreynol [Fri, 28 Jul 2017 12:57:42 +0000 (07:57 -0500)]
Fix cache issues for cyclic string equations.

7 years ago-Og for non-opt build, parallel pcvc4 check (#206)
Andres Noetzli [Thu, 27 Jul 2017 00:05:12 +0000 (17:05 -0700)]
-Og for non-opt build, parallel pcvc4 check (#206)

-Og enables optimizations that do not interfere with debugging. This is the new
default for debug builds if the compiler supports the flag. This commit also
enables parallel checking for the portfolio build on Travis.

7 years agoUse TEST_CPPFLAGS/TEST_CXXFLAGS to add path to CxxTest headers in configure.ac. ...
Mathias Preiner [Wed, 26 Jul 2017 15:24:02 +0000 (08:24 -0700)]
Use TEST_CPPFLAGS/TEST_CXXFLAGS to add path to CxxTest headers in configure.ac. (#200)

CxxTest headers were included in test/unit/Makefile.am as -I@CXXTEST@. However, in configure.ac if CXXTEST was not set by the user, it was initially set to `dirname "$CXXTESTGEN"` while determining the path to the header files. If CXXTESTGEN pointed to /usr/bin and if the headers were found in /usr/include, CXXTEST was not reset, which led to CXXTEST being replaced by /usr/bin in test/unit/Makefile.am. As a consequence, the locale binary in /usr/bin got included instead of the locale header file.

7 years agoDisabling compiling unit tests with coverity scan for now.
Tim King [Sun, 23 Jul 2017 08:01:25 +0000 (01:01 -0700)]
Disabling compiling unit tests with coverity scan for now.

7 years agoDeprecating the unused convenience_node_builders.h (#203)
Tim King [Sun, 23 Jul 2017 03:02:44 +0000 (20:02 -0700)]
Deprecating the unused convenience_node_builders.h (#203)

7 years agoConsolidating the opaque pointers in SymbolTable. (#204)
Tim King [Sun, 23 Jul 2017 02:56:49 +0000 (19:56 -0700)]
Consolidating the opaque pointers in SymbolTable. (#204)

* Consolidating the opaque pointers in SymbolTable. This removes details about the implementation from a public header.

* Removing the guard for SymbolTable for the move constructor.

7 years agoMerge branch 'master' into cleanup-regexp
Tim King [Fri, 21 Jul 2017 01:00:11 +0000 (18:00 -0700)]
Merge branch 'master' into cleanup-regexp

7 years agoMoving from the gnu extensions for hash maps to the c++11 hash maps
Tim King [Fri, 21 Jul 2017 00:04:30 +0000 (17:04 -0700)]
Moving from the gnu extensions for hash maps to the c++11 hash maps

* Replacing __gnu_cxx::hash_map with std::unordered_map.
* Replacing __gnu_cxx::hash_set with std::unordered_set.
* Replacing __gnu_cxx::hash with std::hash.
* Adding missing includes.

7 years agoFix a few bugs related to sygus.
ajreynol [Thu, 20 Jul 2017 08:35:38 +0000 (10:35 +0200)]
Fix a few bugs related to sygus.

7 years agoRemoving the unused CDAttribute. This makes CDHashMap::obliterate unused. Removing...
Tim King [Fri, 14 Jul 2017 23:56:11 +0000 (16:56 -0700)]
Removing the unused CDAttribute. This makes CDHashMap::obliterate unused. Removing it as well.

7 years agoFix simple_vc_compat_cxx example (#202)
Andres Noetzli [Wed, 19 Jul 2017 19:59:36 +0000 (15:59 -0400)]
Fix simple_vc_compat_cxx example (#202)

The CVC3 compatibility layer was broken because it was setting
simplification mode to SIMPLIFICATION_MODE_INCREMENTAL, which
is not supported anymore since commit
2dbe1f150d30f0fb0c8522f891104270ce09db4c . This commit changes
the compatibility layer to not set the option anymore.

This addresses bug 833, which had been reported on the cvc-bugs mailing list.

7 years agoAdding a garbage list that get collected during the ~Scope. Removing the CDHashMap...
Tim King [Fri, 14 Jul 2017 22:18:23 +0000 (15:18 -0700)]
Adding a garbage list that get collected during the ~Scope. Removing the CDHashMap garbage.

7 years agoFixing the order of the comparison operation.
Tim King [Mon, 17 Jul 2017 18:04:24 +0000 (11:04 -0700)]
Fixing the order of the comparison operation.

7 years agoMerge branch 'master' into cleanup-regexp
Tim King [Mon, 17 Jul 2017 17:51:09 +0000 (10:51 -0700)]
Merge branch 'master' into cleanup-regexp

7 years agoUse is_sorted, merge, copy from std (#199)
Andres Noetzli [Mon, 17 Jul 2017 12:07:59 +0000 (08:07 -0400)]
Use is_sorted, merge, copy from std (#199)

Previously, we were checking whether we should use is_sorted
from std or __gnu_cxx. With C++11, std::is_sorted is
guaranteed to exist. This commit changes
arith/normal_form.{h,cpp} to always use std::is_sorted and
also removes the custom implementations for merge and copy by
using the std implementations instead.

7 years agoRemove PtrCloser (#198)
Andres Noetzli [Mon, 17 Jul 2017 05:18:10 +0000 (01:18 -0400)]
Remove PtrCloser (#198)

With C++11, we don't need PtrCloser anymore because we can
just use std::unique_ptr.

7 years agoMoving to static_assert now that c++11 is available.
Tim King [Mon, 17 Jul 2017 05:13:10 +0000 (22:13 -0700)]
Moving to static_assert now that c++11 is available.

7 years agoUse CXXFLAGS when compiling parsers (#197)
Andres Noetzli [Sun, 16 Jul 2017 16:22:32 +0000 (12:22 -0400)]
Use CXXFLAGS when compiling parsers (#197)

ANTLR generates C files that we compile with the C++ compiler.
To do so, we set CC=CXX in the `Makefile.am`s of the parsers.
Previously, we did not copy the CXXFLAGS to the CFLAGS, which
could result in problems, e.g. when using -std=gnu++11 in the
CXXFLAGS, compiling the parsers would fail if they used C++11
features (configure.ac usually modifies CXX to include the
-std=gnu++11 flag but if it is included in CXXFLAGS, the CXX
is not changed).

7 years agoFix warning about unknown escape sequence (#196)
Andres Noetzli [Sat, 15 Jul 2017 20:20:01 +0000 (16:20 -0400)]
Fix warning about unknown escape sequence (#196)

7 years agoDisable separate gnu++11 tests on Travis (#193)
Andres Noetzli [Sat, 15 Jul 2017 02:37:27 +0000 (22:37 -0400)]
Disable separate gnu++11 tests on Travis (#193)

Given that we are now always compiling with gnu++11, we don't need
separate tests anymore.

7 years agoRemoving BOOST_FOREACH usage.
Tim King [Fri, 14 Jul 2017 01:16:59 +0000 (18:16 -0700)]
Removing BOOST_FOREACH usage.

7 years agoCleaning up the CVC4::String class.
Tim King [Fri, 14 Jul 2017 00:35:00 +0000 (17:35 -0700)]
Cleaning up the CVC4::String class.

7 years agoMerge pull request #188 from aniemetz/cx11
Aina Niemetz [Thu, 13 Jul 2017 21:41:35 +0000 (14:41 -0700)]
Merge pull request #188 from aniemetz/cx11

autoconf: make -std=gnu++11 mandatory

7 years agoautoconf: make -std=gnu++11 mandatory
Aina Niemetz [Thu, 13 Jul 2017 19:36:38 +0000 (12:36 -0700)]
autoconf: make -std=gnu++11 mandatory

7 years agoFix unit tests for subranges. Fix destructors for context objs in unit tests.
ajreynol [Wed, 12 Jul 2017 16:44:11 +0000 (11:44 -0500)]
Fix unit tests for subranges. Fix destructors for context objs in unit tests.