cvc5.git
12 years agoEnabled SolveEq bv rewrite
Clark Barrett [Tue, 29 May 2012 17:56:51 +0000 (17:56 +0000)]
Enabled SolveEq bv rewrite

12 years agoAdded some BV rewrites, fixed bugs in array theory, made ite simp work with BV
Clark Barrett [Mon, 28 May 2012 16:27:50 +0000 (16:27 +0000)]
Added some BV rewrites, fixed bugs in array theory, made ite simp work with BV

12 years agosome reordering to keep invariants
Dejan Jovanović [Sun, 27 May 2012 16:59:01 +0000 (16:59 +0000)]
some reordering to keep invariants

12 years agoCommitting the work on equality engine, I need to see how it does on the regressions...
Dejan Jovanović [Sun, 27 May 2012 05:44:13 +0000 (05:44 +0000)]
Committing the work on equality engine, I need to see how it does on the regressions. New additions:
* areDisequal(x, y) -> areDisequal(x, y, needProof): when asking for a disequality you must say needProof if you will ask for an explanation later.
* propagation of shared dis-equalities (not yet complete, once case missing)
* changes to the theories that use it, authors should check up on the changes

12 years agoAnother expensive function call in a Debug trace
Clark Barrett [Sun, 27 May 2012 00:39:27 +0000 (00:39 +0000)]
Another expensive function call in a Debug trace

12 years agoAnother expensive function call in a Debug line
Clark Barrett [Sun, 27 May 2012 00:38:30 +0000 (00:38 +0000)]
Another expensive function call in a Debug line

12 years agoinit bug fix
Kshitij Bansal [Fri, 25 May 2012 16:45:21 +0000 (16:45 +0000)]
init bug fix

12 years agoChecking in fix for bug 340 - somehow didn't get checked in earlier
Clark Barrett [Fri, 25 May 2012 00:21:53 +0000 (00:21 +0000)]
Checking in fix for bug 340 - somehow didn't get checked in earlier

12 years agoSeparating the subtheory implementations in the bitvector theory.
Dejan Jovanović [Thu, 24 May 2012 16:03:38 +0000 (16:03 +0000)]
Separating the subtheory implementations in the bitvector theory.

12 years agoSignificant changes to the internals of the equality engine. Equality is not handled...
Dejan Jovanović [Thu, 24 May 2012 05:54:39 +0000 (05:54 +0000)]
Significant changes to the internals of the equality engine. Equality is not handled natively and not as a generic predicate. The changes also change the order of propagation, and can produce different conflicts. Since the engine is now used everywhere this means that so some crazy results are to be expected.

12 years agoThis commit merges in the branch arithmetic/cprop.
Tim King [Tue, 22 May 2012 15:09:03 +0000 (15:09 +0000)]
This commit merges in the branch arithmetic/cprop.

12 years agoUpdating equality manager to handle tagged trigger terms. Notifications are pushed...
Dejan Jovanović [Mon, 21 May 2012 20:15:52 +0000 (20:15 +0000)]
Updating equality manager to handle tagged trigger terms. Notifications are pushed out for relationships between terms tagged with the same tag. No performance impact.

12 years agomain() no longer catches non-CVC4 exceptions. This means on memout and other C+...
Morgan Deters [Mon, 21 May 2012 16:33:53 +0000 (16:33 +0000)]
main() no longer catches non-CVC4 exceptions.  This means on memout and other C++-level exceptions, we'll exit the C++ way rather than our custom way (so we don't get statistics etc.)

12 years agoAdding regress test for bug 341.
Tim King [Sat, 19 May 2012 17:45:37 +0000 (17:45 +0000)]
Adding regress test for bug 341.

12 years ago- The array type rules were fixed to use isSubtypeOf.
Tim King [Sat, 19 May 2012 17:24:52 +0000 (17:24 +0000)]
- The array type rules were fixed to use isSubtypeOf.
- The type of (kind::DIVISION x y) is RealType.
- A reference to util/pseudoboolean.i was removed.
- rec5.cvc is disabled for now.  The type of 2 is Integer which is not a subtype of [0..11].

12 years agoThis commit adds TypeNode::leastCommonTypeNode(). The special case for arithmetic...
Tim King [Fri, 18 May 2012 23:48:38 +0000 (23:48 +0000)]
This commit adds TypeNode::leastCommonTypeNode().  The special case for arithmetic in TypeNode::operator==() has been removed.  A number of faulty type checking checks were switched to use isSubtypeOf. The resolves bug #339

12 years agoThis commit removes the dead psuedoboolean code.
Tim King [Fri, 18 May 2012 20:20:58 +0000 (20:20 +0000)]
This commit removes the dead psuedoboolean code.

12 years agoRemoving long unsigned operator+ from CDList's const_iterator.
Tim King [Fri, 18 May 2012 16:02:50 +0000 (16:02 +0000)]
Removing long unsigned operator+ from CDList's const_iterator.

12 years agoremoving failing regression
Dejan Jovanović [Fri, 18 May 2012 14:24:02 +0000 (14:24 +0000)]
removing failing regression

12 years agoThis fixes a fascinating segfault. This is the sequence of events:
Tim King [Thu, 17 May 2012 23:00:43 +0000 (23:00 +0000)]
This fixes a fascinating segfault.  This is the sequence of events:
1) A restart occurs
2) A shared term is registered to arithmetic.
3) Arithmetic sets this up.
4) No new linear relations are added to arithmetic.
5) Eventually a restart occurs.
6) Arithmetic resets the tableau as it has not had a row added since the last restart.
7) A new variable is added.
8) This exceeds the size of the column vector of the saved tableau by exactly one.
9) segfault

12 years agoFixing an issue with LogicInfo::isPure() that turned off simplification in QF_UF...
Morgan Deters [Thu, 17 May 2012 20:45:32 +0000 (20:45 +0000)]
Fixing an issue with LogicInfo::isPure() that turned off simplification in QF_UF and maybe others

12 years agoFixed bug 338:
Liana Hadarean [Thu, 17 May 2012 18:42:13 +0000 (18:42 +0000)]
Fixed bug 338:
   - fixed buggy rewrite rules assuming certain nodes only had 2 children
   - added support for bv-rewrite dump
   - fixed smt2_printer for bv constants

12 years agoAdding failing regression for ite type computation.
Tim King [Thu, 17 May 2012 15:33:13 +0000 (15:33 +0000)]
Adding failing regression for ite type computation.

12 years agoQueueing up asserted literals in the proxy instead of sending them off to the theory...
Dejan Jovanović [Thu, 17 May 2012 04:34:03 +0000 (04:34 +0000)]
Queueing up asserted literals in the proxy instead of sending them off to the theory engine immediately. The queue is discharged just before a check().

12 years agoadding simple-minded handling of (dis-)equalities where constants are involved
Dejan Jovanović [Wed, 16 May 2012 19:28:25 +0000 (19:28 +0000)]
adding simple-minded handling of (dis-)equalities where constants are involved

12 years agoFixing C compatibility library (it still had a reference to CONST_INTEGER).
Morgan Deters [Wed, 16 May 2012 18:20:09 +0000 (18:20 +0000)]
Fixing C compatibility library (it still had a reference to CONST_INTEGER).

This hopefully fixes the Debian build.

12 years agotestcase for bug 337
Dejan Jovanović [Wed, 16 May 2012 17:54:16 +0000 (17:54 +0000)]
testcase for bug 337

12 years agoChanges to SAT solver:
Dejan Jovanović [Wed, 16 May 2012 17:53:41 +0000 (17:53 +0000)]
Changes to SAT solver:
* allowing propagation of false literals (handles conflict)
* allowing lemmas during BCP (bug 337)
* UF does direct propagation, without checking for literal value anymore

12 years agoequality status for bitvectors can now look into the sat solver to check for IN_MODEL...
Dejan Jovanović [Wed, 16 May 2012 16:18:52 +0000 (16:18 +0000)]
equality status for bitvectors can now look into the sat solver to check for IN_MODEL status

12 years agoremoving duplicate literals in explanations of propagations
Dejan Jovanović [Wed, 16 May 2012 16:01:48 +0000 (16:01 +0000)]
removing duplicate literals in explanations of propagations

12 years agorefactored TheoryBV bitblaster and equality engine into subtheories (similar to Theor...
Liana Hadarean [Wed, 16 May 2012 15:21:18 +0000 (15:21 +0000)]
refactored TheoryBV bitblaster and equality engine into subtheories (similar to TheoryEngine

12 years agofixed QF_BV performance problem due to using CDList instead of CDQueue
Liana Hadarean [Tue, 15 May 2012 22:02:47 +0000 (22:02 +0000)]
fixed QF_BV performance problem due to using CDList instead of CDQueue

12 years ago(no commit message)
Dejan Jovanović [Tue, 15 May 2012 21:58:36 +0000 (21:58 +0000)]

12 years agotest cases
Dejan Jovanović [Tue, 15 May 2012 21:58:09 +0000 (21:58 +0000)]
test cases

12 years agoFix to shared terms visitor.
Tim King [Tue, 15 May 2012 21:20:56 +0000 (21:20 +0000)]
Fix to shared terms visitor.

12 years agoImplement TypeNode::isComparableTo() and add a unit test for it.
Morgan Deters [Tue, 15 May 2012 19:28:18 +0000 (19:28 +0000)]
Implement TypeNode::isComparableTo() and add a unit test for it.

12 years agoFixed several bugs in shared terms database
Clark Barrett [Tue, 15 May 2012 19:24:09 +0000 (19:24 +0000)]
Fixed several bugs in shared terms database

12 years agoThis commit removes the CONST_INTEGER kind from nodes. This code comes from the branc...
Tim King [Tue, 15 May 2012 19:01:19 +0000 (19:01 +0000)]
This commit removes the CONST_INTEGER kind from nodes. This code comes from the branch arithmetic/remove_const_int.

12 years agorenamed bv_sat.h, bv_sat.cpp to bitblaster.h, bitblaster.cpp respectively
Liana Hadarean [Tue, 15 May 2012 18:53:54 +0000 (18:53 +0000)]
renamed bv_sat.h, bv_sat.cpp to bitblaster.h, bitblaster.cpp respectively

12 years agoremoving all extended commands (as inspired by the Z3 extended command set) except...
Morgan Deters [Tue, 15 May 2012 18:47:20 +0000 (18:47 +0000)]
removing all extended commands (as inspired by the Z3 extended command set) except for declare-datatypes

12 years agoFix QF_AUFLIA (resolves bug #331).
Morgan Deters [Tue, 15 May 2012 18:22:14 +0000 (18:22 +0000)]
Fix QF_AUFLIA (resolves bug #331).

12 years agofixing warnings, grr
Dejan Jovanović [Tue, 15 May 2012 14:22:34 +0000 (14:22 +0000)]
fixing warnings, grr

12 years agoseveral bug fixes: in TheoryBV::NotifyClass missing NOT in predicate notify and now...
Liana Hadarean [Tue, 15 May 2012 00:11:07 +0000 (00:11 +0000)]
several bug fixes: in TheoryBV::NotifyClass missing NOT in predicate notify and now term notify handles boolean constants; fixed bug 328

12 years agofixes for shared term registration. previously the type was not considered when looki...
Dejan Jovanović [Mon, 14 May 2012 20:57:12 +0000 (20:57 +0000)]
fixes for shared term registration. previously the type was not considered when looking at theories of the term and for a term like

read(a, f(x))

the term f(x) would not be registered to arithmetic in AUFLIA. this fixies the issue of bug 330 and moves it to some other assertion fail.

12 years agoFixed assertion failures in array theory
Clark Barrett [Mon, 14 May 2012 19:33:15 +0000 (19:33 +0000)]
Fixed assertion failures in array theory
This fixes bugs 335 and 333.

12 years agoin debug builds, -d can be used for trace tags that aren't also debug tags
Morgan Deters [Mon, 14 May 2012 19:10:39 +0000 (19:10 +0000)]
in debug builds, -d can be used for trace tags that aren't also debug tags

12 years agofixing up preregistration again
Dejan Jovanović [Mon, 14 May 2012 15:13:05 +0000 (15:13 +0000)]
fixing up preregistration again

12 years agofixing build warnings
Dejan Jovanović [Sun, 13 May 2012 15:51:27 +0000 (15:51 +0000)]
fixing build warnings

12 years agofix regex in Debug_tags and Trace_tags generation for Mac OS
Morgan Deters [Fri, 11 May 2012 20:13:28 +0000 (20:13 +0000)]
fix regex in Debug_tags and Trace_tags generation for Mac OS

12 years agofix typo in sed line
Morgan Deters [Fri, 11 May 2012 19:59:04 +0000 (19:59 +0000)]
fix typo in sed line

12 years agooutput a warning message when a function type (or datatype, or array, etc.) is create...
Morgan Deters [Fri, 11 May 2012 19:11:56 +0000 (19:11 +0000)]
output a warning message when a function type (or datatype, or array, etc.) is created with a Boolean term inside it

12 years agoDisabled arith-rewrite-equalities by default unless in a pure arithmetic theory
Clark Barrett [Fri, 11 May 2012 15:20:05 +0000 (15:20 +0000)]
Disabled arith-rewrite-equalities by default unless in a pure arithmetic theory

12 years agoAdded some ITE rewrites,
Clark Barrett [Fri, 11 May 2012 14:00:27 +0000 (14:00 +0000)]
Added some ITE rewrites,
Added ITE simplifier - on by default only for QF_LIA benchmarks
Fixed one bug in arrays
Added negate() to node.h - it returns kind == NOT ? kind[0] : kind.notNode()

12 years agoPartially fixes something-like-a-problem with TheoryArith::getDeltaValue().
Tim King [Fri, 11 May 2012 01:29:11 +0000 (01:29 +0000)]
Partially fixes something-like-a-problem with TheoryArith::getDeltaValue().

12 years agoRemoving now unneeded (as of r3425) typenames from EqualityEngine. trunk now compiles...
Tim King [Thu, 10 May 2012 14:50:45 +0000 (14:50 +0000)]
Removing now unneeded (as of r3425) typenames from EqualityEngine. trunk now compiles on Debian.

12 years agofix an issue which breaks language bindings (so this commit fixes debian nightly...
Morgan Deters [Wed, 9 May 2012 22:40:48 +0000 (22:40 +0000)]
fix an issue which breaks language bindings (so this commit fixes debian nightly builds)

12 years ago--disable-tracing at configure time now disables Trace() and Debug() gestures both.
Morgan Deters [Wed, 9 May 2012 21:52:38 +0000 (21:52 +0000)]
--disable-tracing at configure time now disables Trace() and Debug() gestures both.

12 years ago* simplifying equality engine interface
Dejan Jovanović [Wed, 9 May 2012 21:25:17 +0000 (21:25 +0000)]
* simplifying equality engine interface
* notifications are now through the interface subclass instead of a template
* notifications include constants being merged
* changed contextNotifyObj::notify to contextNotifyObj::contextNotifyPop so it's more descriptive and doesn't clutter methods when subclassed
* sat solver now has explicit methods to make true and false constants
* 0-level literals are removed from explanations of propagations

12 years agorm something for a future merge that sneaked in
Kshitij Bansal [Wed, 9 May 2012 21:09:31 +0000 (21:09 +0000)]
rm something for a future merge that sneaked in

(gets rid of warning)

12 years agoMerge from decision branch (ITE support)
Kshitij Bansal [Wed, 9 May 2012 05:45:36 +0000 (05:45 +0000)]
Merge from decision branch (ITE support)

Major changes from last merge
* ITEs supported
* Don't share theory lemmas to DE, only assertions

Should probably be noted that 'make regress' doesn't quite
pass with --decision=justification. Throws off search in couple
of arith benchmarks.

No serious performance changes expected. Keep an eye.

12 years agoFixing the debug tags generation and related methods in configuration.cpp that disall...
Dejan Jovanović [Wed, 9 May 2012 03:31:50 +0000 (03:31 +0000)]
Fixing the debug tags generation and related methods in configuration.cpp that disallowed me to debug my bugs by reporting that the debug tag doesn't exists, where in fact it was in the code.

1) The grep and sed for tags wasn't picking up on .isOn("tag")
2) The isDebugTag a) didn't take a parameter b) was using binary search using strcmp which is non-portable and didn't work for tags including special characters

Morgan should vet this, since there is some crazy sed stuff going on

12 years agoMerging in bvprop branch, with proper bit-vector propagation.
Liana Hadarean [Tue, 8 May 2012 21:54:55 +0000 (21:54 +0000)]
Merging in bvprop branch, with proper bit-vector propagation.
This should also fix bug 325.

12 years agoFixing a bug with TheoryArith::ppAssert() and shared terms.
Tim King [Mon, 7 May 2012 22:17:35 +0000 (22:17 +0000)]
Fixing a bug with TheoryArith::ppAssert() and shared terms.

12 years agoFixes a sign bug in the DioSolver.
Tim King [Mon, 7 May 2012 22:06:07 +0000 (22:06 +0000)]
Fixes a sign bug in the DioSolver.

12 years agoGuard for expensive Debug trace
Clark Barrett [Fri, 4 May 2012 17:18:02 +0000 (17:18 +0000)]
Guard for expensive Debug trace

12 years agooptions: fail if the debug or trace tag specified doesn't exist (-d -t)
François Bobot [Fri, 4 May 2012 14:28:08 +0000 (14:28 +0000)]
options: fail if the debug or trace tag specified doesn't exist (-d -t)

12 years agofix: getNumTraceTags, getNumDebugTags
François Bobot [Fri, 4 May 2012 14:28:00 +0000 (14:28 +0000)]
fix: getNumTraceTags, getNumDebugTags

12 years ago- This fixes a problem where simplex produced the same conflict in the single check...
Tim King [Fri, 4 May 2012 03:03:34 +0000 (03:03 +0000)]
- This fixes a problem where simplex produced the same conflict in the single check call.
- This increases the number of substitutions that ppAssert can solve on integer equations.

12 years agoSome cleanup starting off from trying to understand the sharing code. Changes include
Dejan Jovanović [Thu, 3 May 2012 20:18:18 +0000 (20:18 +0000)]
Some cleanup starting off from trying to understand the sharing code. Changes include
* fixed term visitor from the bvprop branch
* removed all the warnings from builds -- warnings are there to be noted *NOT* to be used as scribbles
* moved the LogicInfo into the theory constructor

12 years agoChanging d_sharedTermsExist to logicInfo.isSharingEnabled()
Clark Barrett [Wed, 2 May 2012 00:44:40 +0000 (00:44 +0000)]
Changing d_sharedTermsExist to logicInfo.isSharingEnabled()

12 years agoAdded map from skolem variables to new ite formulas in ite removal.
Clark Barrett [Mon, 30 Apr 2012 14:42:28 +0000 (14:42 +0000)]
Added map from skolem variables to new ite formulas in ite removal.
d_sharedTermsExist is now set based on logicInfo instead of dynamically when
shared terms are found.

12 years agoNew LogicInfo functionality.
Morgan Deters [Sat, 28 Apr 2012 01:12:21 +0000 (01:12 +0000)]
New LogicInfo functionality.

src/theory/logic_info.{h,cpp} contains the CVC4::LogicInfo class, which keeps
track of which theories are active (which should remain constant throughout
the life of an SmtEngine) and other details (like integers, reals,
linear/nonlinear, etc.).

This class has a default constructor which is the most all-inclusive logic.
Alternatively, this class can be constructed from an SMT-LIB logic string
(the empty string gives the same as "QF_SAT").  Once constructed, theories
can be enabled or disabled, quantifiers flipped on and off, integers flipped
on and off, etc.  At any point an SMT-LIB-like logic string can be extracted.

The SmtEngine keeps a LogicInfo for itself and shares with the TheoryEngine
(and, in turn, the theories) only a const reference to it.  This ensures that
the logic info doesn't mutate over the course of the run.

As part of this commit, the TheoryEngine's old notion of "active theories"
has been completely removed.  As a result, SMT benchmarks that are incorrectly
tagged with a logic will assert-fail or worse.  (We should probably fail
more gracefully in this case.)  One such example was bug303.smt2,
which used UF reasoning but was tagged QF_LIA.  This has been fixed.

12 years agorequire boost library (but not the threading support---that's only necessary for...
Morgan Deters [Sat, 28 Apr 2012 00:49:10 +0000 (00:49 +0000)]
require boost library (but not the threading support---that's only necessary for portfolio)

12 years agoundo, again
Morgan Deters [Sat, 28 Apr 2012 00:17:03 +0000 (00:17 +0000)]
undo, again

12 years agoadding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration manually...
Morgan Deters [Sat, 28 Apr 2012 00:15:52 +0000 (00:15 +0000)]
adding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration manually; this will make the LogicInfo commit coming up much easier to integrate into trunk, and will anyway be cleaned up when quantifiers2 branch is merged into trunk.

12 years agoundo previous commit (as it will break a number of things without additional support...
Morgan Deters [Fri, 27 Apr 2012 23:04:32 +0000 (23:04 +0000)]
undo previous commit (as it will break a number of things without additional support I haven't yet committed)

12 years agoadding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration manually...
Morgan Deters [Fri, 27 Apr 2012 23:03:33 +0000 (23:03 +0000)]
adding THEORY_QUANTIFIERS and THEORY_REWRITERULES to the theory enumeration manually; this will make the LogicInfo commit coming up much easier to integrate into trunk, and will anyway be cleaned up when quantifiers2 branch is merged into trunk.

12 years agofix parser logic-handling oversights: QF_UFBV should now be supported
Morgan Deters [Fri, 27 Apr 2012 23:01:29 +0000 (23:01 +0000)]
fix parser logic-handling oversights: QF_UFBV should now be supported

12 years agobreak dependence on zlib-dev for now
Morgan Deters [Fri, 27 Apr 2012 22:07:44 +0000 (22:07 +0000)]
break dependence on zlib-dev for now

12 years agoFixed warning in decision_engine.h, minor tweak to caregraph function in
Clark Barrett [Fri, 27 Apr 2012 19:26:01 +0000 (19:26 +0000)]
Fixed warning in decision_engine.h, minor tweak to caregraph function in
arrays, fixed bug with equalities between constants in shared terms database

12 years agoThis merges in the branch cvc4/branches/arithmetic/matrix into trunk.
Tim King [Fri, 27 Apr 2012 14:47:10 +0000 (14:47 +0000)]
This merges in the branch cvc4/branches/arithmetic/matrix into trunk.
- Splits the functionality of having a sparse matrix of Ts and a solved matrix of rationals in tableau.
- Splits ArithVarSet into DenseMap and CDDenseSet and simplifies the code.
- No performance loss!

12 years agoportfolio driver: respect parseOnly option
Kshitij Bansal [Wed, 25 Apr 2012 22:33:00 +0000 (22:33 +0000)]
portfolio driver: respect parseOnly option

12 years agofix for de+lemmas
Kshitij Bansal [Wed, 25 Apr 2012 21:29:49 +0000 (21:29 +0000)]
fix for de+lemmas

for the first time make regress passes even if JH is enabled

12 years agoThis commit merges in the branch branches/arithmetic/congruence into trunk. Here...
Tim King [Tue, 24 Apr 2012 18:36:40 +0000 (18:36 +0000)]
This commit merges in the branch branches/arithmetic/congruence into trunk. Here are a summary of the changes:
- Adds CDMaybe and CDRaised in cdmaybe.h
- Add test for congruence over arithmetic terms and constants
- Renames DifferenceManager to CongruenceManager
- Changes a number of internal details for CongruenceManager

12 years agoMerge from decision branch -- partially working justification heuristic
Kshitij Bansal [Mon, 23 Apr 2012 17:56:19 +0000 (17:56 +0000)]
Merge from decision branch -- partially working justification heuristic

Overview of changes
* command line option --decision={internal,justification}
* justification heuristic handles all operators except ITEs
  revelant stats: decision::jh::*
* if decisionEngine has solved the problem PropEngine returns
  unknown and smtEngine queries DE to get the answer
  relevant stat: smt::resultSource
* there are known bugs

Full list of commits being merged
r3330 use CD data structures in JH
r3329 add command-line option --decision=MODE
r3328 timer stat, other fixes
r3326 more trace
r3325 enable implies, iff, xor (no further regression losses)
r3324 feed decision engine lemmas, changes to quitting mechanism
r3322 In progress
r3321 more fixes...
r3318 bugfix1 (69 more to go)
r3317 Handle other boolean operators in JH (except ITE)
r3316 mechanism for DE to stopSearch
r3315 merge from trunk + JH translation continuation
r3275 change option to enable JH by default[A

12 years agoUpdates to array theory - much more lazy about introduction of reads
Clark Barrett [Fri, 20 Apr 2012 23:30:08 +0000 (23:30 +0000)]
Updates to array theory - much more lazy about introduction of reads
Also disabled eager lemmas - slows down QF_AX but gets new examples in QF_AUFBV

12 years agoIn the constructor of DecisionEngine, there were 2 pointers that were assumed to...
Tim King [Thu, 19 Apr 2012 18:36:02 +0000 (18:36 +0000)]
In the constructor of DecisionEngine, there were 2 pointers that were assumed to be initialized to NULL. This is not true on all platforms. This is now done explicitly.  Macs builds should now work again.

12 years agoadd the missing BINARY variable in some test/regress makefiles
Kshitij Bansal [Wed, 18 Apr 2012 10:41:45 +0000 (10:41 +0000)]
add the missing BINARY variable in some test/regress makefiles

12 years agocout -> warning. Happening in portfolio
Kshitij Bansal [Wed, 18 Apr 2012 08:41:13 +0000 (08:41 +0000)]
cout -> warning. Happening in portfolio
rest of the search go through, but still should be investigated

12 years agodisabling the problematic pragma in node_manager.h on gcc < 4.6 until we figure out...
Dejan Jovanović [Wed, 18 Apr 2012 01:07:43 +0000 (01:07 +0000)]
disabling the problematic pragma in node_manager.h on gcc < 4.6 until we figure out what to do with it

12 years agoFix for thos annoying "array index" warnings in production builds
Dejan Jovanović [Tue, 17 Apr 2012 20:42:09 +0000 (20:42 +0000)]
Fix for thos annoying "array index" warnings in production builds

12 years agoA dummy decision engine. Expected performance impact: none.
Kshitij Bansal [Tue, 17 Apr 2012 17:20:37 +0000 (17:20 +0000)]
A dummy decision engine. Expected performance impact: none.

Adds DecisionEngine and an abstract class DecisionStrategy
which other strategies will derive from eventually.

Full revision summary of merged commits:
r3241 merge from trunk
r3240 fix
r3239 WIP
r3238 JH, CVC3 code: 5% done -- 5% translated
r3237 JH groundwork
r3236 make make regrss pass
r3234 hueristic->heuristic
r3229 JustificationHeuristic: EOD-WIP
r3228 DecisionEngine: hookup assetions
r3227 move ITE outside simplifyAssertions
r3226 DecisionStrategy abstract class
r3222 DecisionEngine: begin

12 years agoMerges branches/arithmetic/atom-database r2979 through 3247 into trunk. Below is...
Tim King [Tue, 17 Apr 2012 16:07:22 +0000 (16:07 +0000)]
Merges branches/arithmetic/atom-database r2979 through 3247 into trunk.  Below is a highlight of the changes:
- This introduces a new normal form to arithmetic.
-- Equalities and disequalities are in solved form.
   Roughly speaking this means: (= x (+ y z)) is in normal form.
   (See the comments in normal_form.h for what this formally requires.)
-- The normal form for inequality atoms always uses GEQ and GT instead of GEQ and LEQ.
   Integer atoms always use GEQ.
- Constraint was added to TheoryArith.
-- A constraint is a triple of (k x v) where:
--- k is the type of the constraint (either LowerBound, UpperBound, Equality or Disequality),
--- x is an ArithVar, and
--- v is a DeltaRational value.
-- Constraints are always attached to a ConstraintDatabase.
-- A Constraint has its negation in the ConstraintDatabase [at least for now].
-- Every constraint belongs to a set of constraints for each ArithVar sorted by the delta rational values.
-- This set can be iterated over and provides efficient access to other constraints for this variable.
-- A literal may be attached to a constraint.
-- Constraints with attached literals may be marked as being asserted to the theory (sat context dependent).
-- Constraints can be propagated.
-- Every constraint has a proof (sat context dependent).
-- Proofs can be explained for either conflicts or propagations (if the node was propagated). (These proofs may be different.)
-- Equalities and disequalities can be marked as being split (user context dependent)
- This removes and replaces:
-- src/theory/arith/arith_prop_manager.*
-- src/theory/arith/atom_database.*
-- src/theory/arith/ordered_set.h
- Added isZero(), isOne() and isNegativeOne() to Rational and Integer.
- Added operator+ to CDList::const_iterator.
- Added const_iterator to CDQueue.
- Changes to regression tests.

12 years agoFixed bug in sharing with arrays of different types
Clark Barrett [Sat, 14 Apr 2012 23:59:17 +0000 (23:59 +0000)]
Fixed bug in sharing with arrays of different types

12 years agoFix SExpr name qualification for swig, and #include integer and rational headers.
Morgan Deters [Fri, 13 Apr 2012 16:21:25 +0000 (16:21 +0000)]
Fix SExpr name qualification for swig, and #include integer and rational headers.

12 years agosvn ignore Makefile.in for aufbv regression directory
Morgan Deters [Thu, 12 Apr 2012 19:30:37 +0000 (19:30 +0000)]
svn ignore Makefile.in for aufbv regression directory

12 years agoAdds an operator<< to SExpr::SexprTypes. This fixes bug 317. In debug builds, an...
Tim King [Thu, 12 Apr 2012 13:26:30 +0000 (13:26 +0000)]
Adds an operator<< to SExpr::SexprTypes. This fixes bug 317. In debug builds, an Unhandled(SExpr::SexprTypes) could not compile on debian.

12 years agomerge from arrays-clark branch
Morgan Deters [Wed, 11 Apr 2012 16:31:03 +0000 (16:31 +0000)]
merge from arrays-clark branch

12 years ago* Smt2 printer for datatypes
François Bobot [Fri, 6 Apr 2012 22:51:27 +0000 (22:51 +0000)]
* Smt2 printer for datatypes
* Fix DefineFunctionCommand when a constant is defined

12 years ago* Fix ITEs and functions in CVC language printer.
Morgan Deters [Fri, 6 Apr 2012 22:06:52 +0000 (22:06 +0000)]
* Fix ITEs and functions in CVC language printer.
* Permit "BOOL = BOOL" in CVC language parser (auto-replaced with IFF
  internally, except in strict mode).
* SExpr atoms now can be string-, integer-, or rational-valued.
* SmtEngine::setInfo(":status", ...) now properly dumps a
  SetBenchmarkStatusCommand rather than a SetInfoCommand.
* Some dumping fixes (resolves bug 313)