Andrew Reynolds [Sun, 28 Jan 2018 22:37:54 +0000 (16:37 -0600)]
Sort children of all commutative operators for sygus. (#1544)
Tim King [Sat, 27 Jan 2018 20:50:54 +0000 (12:50 -0800)]
Removing an unused variable. Resolves CID
1172257. (#1542)
Tim King [Sat, 27 Jan 2018 00:29:16 +0000 (16:29 -0800)]
Removing structurally dead code. (#1540)
Tim King [Thu, 25 Jan 2018 03:55:59 +0000 (19:55 -0800)]
Commenting out throw specifiers on SmtEngine. These can later be refined into better documentation. (#1512)
Aina Niemetz [Thu, 25 Jan 2018 00:19:50 +0000 (16:19 -0800)]
Added unit tests for PLUS, NEG, NOT ICs for CBQI BV. (#1534)
Aina Niemetz [Tue, 23 Jan 2018 20:02:42 +0000 (12:02 -0800)]
Fix MULT handling for CBQI BV. (#1531)
Tim King [Tue, 23 Jan 2018 08:14:43 +0000 (00:14 -0800)]
Commenting out throw specifiers for DeltaRationExceptions. These functions can be cleaned up later. (#1529)
Aina Niemetz [Mon, 22 Jan 2018 18:06:26 +0000 (10:06 -0800)]
Add previous concat handling for CBQI BV as heuristic for EQ. (#1528)
Previously, we computed an inverse for s1 o x, x o s2, s1 o x o s2 while disregarding that invertibility
depends on si. This adds this handling as an optional heuristic for concats over (dis)equality since it improves performance on a considerable number of benchmarks.
Aina Niemetz [Mon, 22 Jan 2018 04:41:39 +0000 (20:41 -0800)]
Refactor and fix solveBvLit for CBQI BV. (#1526)
This refactors and simplifies solveBvLit() and fixes the following:
- generate side conditions for BITVECTOR_NEG, BITVECTOR_NOT, BITVECTOR_PLUS,
BITVECTOR_XOR over inequalities and disequality
- fix CONCAT handling (generate side conditions rather then computing an inverse which was incorrect)
- fix SIGN_EXTEND handling (same as with CONCATs)
Andrew Reynolds [Mon, 22 Jan 2018 02:06:58 +0000 (20:06 -0600)]
Only push/pop around check-sat if it is associated with an assertion (#1525)
Tim King [Wed, 17 Jan 2018 20:16:17 +0000 (12:16 -0800)]
Removes yet more throw specifiers. Updating the documentation as needed. (#1518)
Tim King [Tue, 16 Jan 2018 06:47:40 +0000 (22:47 -0800)]
Removing more miscellaneous throw specifiers. (#1509)
Removing more miscellaneous throw specifiers. Also fixing the spelling of amount in several places.
Tim King [Mon, 15 Jan 2018 07:56:56 +0000 (23:56 -0800)]
Removing throw specifiers from Type. (#1511)
Tim King [Sun, 14 Jan 2018 08:59:54 +0000 (00:59 -0800)]
Removing throw specifiers from OptionsHandler. (#1510)
Aina Niemetz [Sun, 14 Jan 2018 06:12:27 +0000 (22:12 -0800)]
Remove BITVECTOR_SUB from isInvertible(). (#1513)
Andrew Reynolds [Fri, 12 Jan 2018 22:05:52 +0000 (16:05 -0600)]
Improvements for CBQI BV (#1504)
Aina Niemetz [Wed, 10 Jan 2018 23:18:13 +0000 (15:18 -0800)]
Removed division by constant handling for CBQI BV (unsound). (#1508)
This removes division by constant handling in the BV inverter introduced in #1498.
Division by constant was simplified to:
x / s OP t ---> x = t / s^-1 if s odd and there exists a multiplicative modular inverse s^-1.
This however, is incorrect since
x / s * 1 / s^-1 != x / (s * s^-1)
Tim King [Wed, 10 Jan 2018 20:57:38 +0000 (12:57 -0800)]
Removing throw specifiers for TypeRules. (#1501)
Tim King [Wed, 10 Jan 2018 16:52:01 +0000 (08:52 -0800)]
Removing throw specifiers from type enumerators. (#1502)
Tim King [Wed, 10 Jan 2018 06:05:02 +0000 (22:05 -0800)]
Cleaning up throw specifiers on Exception and subclasses. (#1475)
Mathias Preiner [Wed, 10 Jan 2018 02:12:32 +0000 (18:12 -0800)]
Fix linearization for terms where the solve variable does not occur. (#1506)
Aina Niemetz [Tue, 9 Jan 2018 23:35:44 +0000 (15:35 -0800)]
Reorganized bitvector.h. (#1505)
Aina Niemetz [Tue, 9 Jan 2018 20:44:27 +0000 (12:44 -0800)]
Fix output of --trace=help. (#1500)
Tim King [Tue, 9 Jan 2018 14:20:52 +0000 (06:20 -0800)]
Removing throw specifiers from miscellaneous src/expr/ classes. (#1503)
Tim King [Tue, 9 Jan 2018 06:04:02 +0000 (22:04 -0800)]
Removing more miscellaneous throw specifiers. (#1488)
Removing more miscellaneous throw specifiers.
Aina Niemetz [Tue, 9 Jan 2018 04:16:33 +0000 (20:16 -0800)]
Add bv util mkConst(unsigned, Integer&). (#1499)
Tim King [Tue, 9 Jan 2018 02:38:20 +0000 (18:38 -0800)]
Remove throw specifiers from symbol table. (#1490)
Aina Niemetz [Tue, 9 Jan 2018 00:52:36 +0000 (16:52 -0800)]
Added division by constant handling for CBQI BV. (#1498)
Aina Niemetz [Mon, 8 Jan 2018 23:30:16 +0000 (15:30 -0800)]
Remove portfolio option from builds. (#1496)
Tim King [Mon, 8 Jan 2018 21:28:04 +0000 (13:28 -0800)]
Removes throw specifiers from command.{h,cpp}. (#1485)
Andrew Reynolds [Mon, 8 Jan 2018 19:21:29 +0000 (13:21 -0600)]
Improvements to quant+BV/Bool variable elimination (#1495)
Andres Noetzli [Mon, 8 Jan 2018 18:05:59 +0000 (19:05 +0100)]
Fix broken GMP URL in get-win-dependencies script (#1493)
Tim King [Mon, 8 Jan 2018 15:49:23 +0000 (07:49 -0800)]
Remove throw specifiers from datatype. (#1489)
Tim King [Mon, 8 Jan 2018 03:14:57 +0000 (19:14 -0800)]
Re-ordering field initialization in QuantInfo to remove compiler warning. (#1487)
Tim King [Mon, 8 Jan 2018 00:46:16 +0000 (16:46 -0800)]
Removes RationalFromDoubleException. Replaces this with an explicit M… (#1476)
* Removes RationalFromDoubleException. Replaces this with an explicit Maybe<Rational> datatype. Makes Maybe<T> CVC4_PUBLIC. Updates the users of Rational::fromDouble(). Miscellaneous cleanup of ApproxSimplex.
Tim King [Sat, 6 Jan 2018 23:27:11 +0000 (15:27 -0800)]
Removing throw specifiers from src/parser/. (#1486)
Mathias Preiner [Sat, 6 Jan 2018 06:50:21 +0000 (22:50 -0800)]
Add special {SGE,SGT,NE}_UDIV1 side conditions for BV of size 1. (#1483)
This commit further fixes some other issues with bit-vectors of size 1.
Mathias Preiner [Sat, 6 Jan 2018 02:05:41 +0000 (18:05 -0800)]
Use simpler EQUAL SCs for LSHR0, LSHR1, ASHR0, AHSR1, SHL0, SHL1. (#1482)
Mathias Preiner [Fri, 5 Jan 2018 22:24:49 +0000 (14:24 -0800)]
Add UGT/SGT side conditions for AND/OR + other fixes. (#1481)
Aina Niemetz [Fri, 5 Jan 2018 02:32:48 +0000 (18:32 -0800)]
Fix side condition handling for PLUS, XOR, SIGN_EXTEND for CBQI BV. (#1480)
Mathias Preiner [Fri, 5 Jan 2018 01:28:42 +0000 (17:28 -0800)]
Add side conditions for inequalities of SHL. (#1472)
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.
Tim King [Thu, 4 Jan 2018 21:09:39 +0000 (13:09 -0800)]
Removing miscellaneous throw specifiers. (#1474)
Tim King [Thu, 4 Jan 2018 06:01:42 +0000 (22:01 -0800)]
Removing throw specifiers from context/. (#1473)
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)
Mathias Preiner [Wed, 3 Jan 2018 20:44:56 +0000 (12:44 -0800)]
Add UGT/SGT side conditions for LSHR. (#1469)
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)
Andrew Reynolds [Wed, 3 Jan 2018 15:35:27 +0000 (09:35 -0600)]
Global negate (#1466)
Mathias Preiner [Wed, 3 Jan 2018 07:57:43 +0000 (23:57 -0800)]
Add side conditions for inequalities of ASHR. (#1461)
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.
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)
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.
Andrew Reynolds [Tue, 2 Jan 2018 22:12:45 +0000 (16:12 -0600)]
Rewrites for BitVector multiplication (#1465)
Mathias Preiner [Tue, 2 Jan 2018 19:21:12 +0000 (11:21 -0800)]
Add side conditions for inequalities of LSHR. (#1462)
Andrew Reynolds [Tue, 2 Jan 2018 17:43:00 +0000 (11:43 -0600)]
Improve rewriter for string equality (#1427)
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.
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.
Andrew Reynolds [Sat, 30 Dec 2017 00:24:43 +0000 (18:24 -0600)]
Cbqi repeat solve literal (#1458)
Mathias Preiner [Fri, 29 Dec 2017 22:33:16 +0000 (14:33 -0800)]
Add side conditions for inequalities of AND/OR. (#1457)
Aina Niemetz [Fri, 29 Dec 2017 04:27:58 +0000 (20:27 -0800)]
Fix unit tests for ineq for CBQI BV. (#1456)
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)
Andrew Reynolds [Thu, 28 Dec 2017 22:21:08 +0000 (16:21 -0600)]
Fixes for cbqi (#1453)
Arjun Viswanathan [Thu, 28 Dec 2017 03:43:35 +0000 (21:43 -0600)]
Rel smt parser (#1446)
Aina Niemetz [Thu, 28 Dec 2017 01:12:34 +0000 (17:12 -0800)]
Minor refactor for inequality handling for CBQI BV. (#1452)
Andrew Reynolds [Wed, 27 Dec 2017 22:25:22 +0000 (16:25 -0600)]
Disable sygus PBE when sygus stream is enabled (#1451)
Andrew Reynolds [Thu, 21 Dec 2017 04:26:17 +0000 (22:26 -0600)]
Fixes for cbqi-bv (#1449)
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.
Mathias Preiner [Thu, 21 Dec 2017 00:45:07 +0000 (16:45 -0800)]
Add rewriting rule for ranking benchmarks. (#1448)
Andrew Reynolds [Wed, 20 Dec 2017 18:36:10 +0000 (12:36 -0600)]
Transcendental functions check model (#1443)
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.
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.
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.
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.
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).
Andrew Reynolds [Sun, 10 Dec 2017 11:12:22 +0000 (05:12 -0600)]
Fix issue 1433. (#1435)
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.
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.
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).
Andrew Reynolds [Fri, 8 Dec 2017 19:54:00 +0000 (13:54 -0600)]
Document and clean datatypes rewriter (#1437)
Andrew Reynolds [Fri, 8 Dec 2017 16:14:31 +0000 (10:14 -0600)]
Make collect model info return a Bool (#1421)
Andrew Reynolds [Thu, 7 Dec 2017 10:07:17 +0000 (04:07 -0600)]
Fixes related to SyGuS + real arithmetic (#1432)
Andrew Reynolds [Thu, 7 Dec 2017 02:57:44 +0000 (20:57 -0600)]
Add command for define-fun-rec and add to API (#1412)
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.
Andres Noetzli [Wed, 6 Dec 2017 12:45:06 +0000 (04:45 -0800)]
Remove CDChunkList (#1414)
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.
Haniel Barbosa [Tue, 5 Dec 2017 02:06:47 +0000 (20:06 -0600)]
Adding SyGuS grammars for rationals. (#1426)
Andrew Reynolds [Mon, 4 Dec 2017 21:42:00 +0000 (15:42 -0600)]
Eliminate expand definitions from Sygus (#1425)
Andrew Reynolds [Mon, 4 Dec 2017 20:18:16 +0000 (14:18 -0600)]
Fix strings rewriter for strip constant endpoint reverse direction (#1424)
Mathias Preiner [Mon, 4 Dec 2017 18:43:40 +0000 (10:43 -0800)]
Fix side condition for BITVECTOR_MULT. (#1422)
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.
Andrew Reynolds [Sat, 2 Dec 2017 12:14:12 +0000 (06:14 -0600)]
Minor improvements to inst match generator (#1415)
Andrew Reynolds [Sat, 2 Dec 2017 02:03:03 +0000 (20:03 -0600)]
Improve rewriter for string replace (#1416)
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
Andrew Reynolds [Fri, 1 Dec 2017 17:43:02 +0000 (11:43 -0600)]
Minor additions for sygus (#1419)
Andrew Reynolds [Fri, 1 Dec 2017 15:07:42 +0000 (09:07 -0600)]
Refactor and generalize PBE strategies (#1410)
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.
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.
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.
Andrew Reynolds [Thu, 30 Nov 2017 15:57:06 +0000 (09:57 -0600)]
Fixes for issue 1404 (#1409)
Andrew Reynolds [Thu, 30 Nov 2017 12:33:23 +0000 (06:33 -0600)]
Remove remaining references to QuantArith (#1408)