Age | Commit message (Collapse) | Author |
|
|
|
!isEliminated(var(ps[i]))
assert fails
|
|
d_disequalityReasonsMap.find(pair) != d_disequalityReasonsMap.end()
assertion fail
|
|
|
|
triggered it.
|
|
|
|
* clauses shouldn't be erased when they could be a reason for outside propagation
* propagation of p and !p is ignored as this must lead to a conflict in the subtheory internally
|
|
working dirs but for distributed tarballs.
|
|
Adds TheoryQuantifiers and TheoryRewriteRules, QuantifiersEngine, and other infrastructure.
Adds theory instantiators to many theories.
Adds the UF strong solver.
|
|
|
|
|
|
bv rewriter apparently deosn't have a proper normal form for equalities
|
|
it was an issue with constants being merged, which influenced explanations of disequalities. when constants are attempted to be merged, equality engine now enters conflict mode immediately
|
|
|
|
By default, common subexpressions are dagified if they appear > 1 time and are not constants or variables.
This can be changed with --default-expr-dag=N --- N is a threshold such that if the subexpression occurs > N
times, it is dagified; a setting of 0 turns off dagification entirely.
If you notice strange dumping behavior (taking too long to print anything, e.g.), revert to the old behavior
with --default-expr-dag=0 and let me know of the problem.
|
|
|
|
(no performace or search behavior changes expected)
|
|
|
|
propagating disequalities between shared terms.
|
|
SmtEngine resolved.
ALL_SUPPORTED and QF_ALL_SUPPORTED logics now supported by SMT-LIB parsers. In SMT-LIBv2, if a (set-logic..) command is missing, ALL_SUPPORTED is assumed, and a warning is issued, as discussed on the cvc4-devel mailing list.
|
|
|
|
|
|
still doesnt fix the wrong answers thought :(
|
|
|
|
|
|
--unconstrained-simp option
|
|
* test/regress/regress0/unconstrained wasn't being distributed. This caused the debian build failure last night. (It still doesn't run on "make check", but had to be distributed properly.)
* Fixing an issue where a test name was longer than 99 characters and couldn't be distributed in the "old" tar format. (Told automake to use a newer tar format.)
|
|
are still the AUFBV wrong results, but it seems better.
http://church.cims.nyu.edu/regress-results/compare_jobs.php?job_id=4382&reference_id=4359&p=5
|
|
the unconstrained examples in QF_AUFBV/brummayerbiere3 - should also help
generally on at least BV and maybe others.
Off by default for now - results are mixed and it's hard to evaluate with so
many existing assertion failures and segfaults - will re-evaluate once those
are fixed
|
|
|
|
|
|
- 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].
|
|
arithmetic in TypeNode::operator==() has been removed. A number of faulty type checking checks were switched to use isSubtypeOf. The resolves bug #339
|
|
|
|
QF_UF and maybe others
|
|
- fixed buggy rewrite rules assuming certain nodes only had 2 children
- added support for bv-rewrite dump
- fixed smt2_printer for bv constants
|
|
|
|
|
|
|
|
|
|
the branch arithmetic/remove_const_int.
|
|
|
|
This fixes bugs 335 and 333.
|
|
* 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
|
|
This should also fix bug 325.
|
|
|
|
|
|
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
|
|
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.
|
|
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
|