<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1461790692.1059214216" name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1311293674" name="cdt.managedbuild.toolchain.gnu.base" superClass="cdt.managedbuild.toolchain.gnu.base">
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.1799734525" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
- <builder buildPath="${workspace_loc/cvc4/}" id="cdt.managedbuild.target.gnu.builder.base.549477204" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="3" superClass="cdt.managedbuild.target.gnu.builder.base">
+ <builder buildPath="${workspace_loc/cvc4/}" id="cdt.managedbuild.target.gnu.builder.base.549477204" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base">
<outputEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name=""/>
</outputEntries>
d_constraintDatabase(cd),
d_setupLiteral(setup),
d_avariables(avars),
- d_ee(d_notify, c, "theory::arith::ArithCongruenceManager")
+ d_ee(d_notify, c, "theory::arith::ArithCongruenceManager", false)
{}
ArithCongruenceManager::Statistics::Statistics():
d_numGetModelValConflicts("theory::arrays::number of getModelVal conflicts", 0),
d_numSetModelValSplits("theory::arrays::number of setModelVal splits", 0),
d_numSetModelValConflicts("theory::arrays::number of setModelVal conflicts", 0),
- d_ppEqualityEngine(u, "theory::arrays::TheoryArraysPP"),
+ d_ppEqualityEngine(u, "theory::arrays::TheoryArraysPP" , false),
d_ppFacts(u),
// d_ppCache(u),
d_literalsToPropagate(c),
d_literalsToPropagateIndex(c, 0),
d_isPreRegistered(c),
- d_mayEqualEqualityEngine(c, "theory::arrays::TheoryArraysMayEqual"),
+ d_mayEqualEqualityEngine(c, "theory::arrays::TheoryArraysMayEqual", false),
d_notify(*this),
- d_equalityEngine(d_notify, c, "theory::arrays::TheoryArrays"),
+ d_equalityEngine(d_notify, c, "theory::arrays::TheoryArrays", false),
d_conflict(c, false),
d_backtracker(c),
d_infoMap(c, &d_backtracker),
CoreSolver::CoreSolver(context::Context* c, TheoryBV* bv)
: SubtheorySolver(c, bv),
d_notify(*this),
- d_equalityEngine(d_notify, c, "theory::bv::TheoryBV"),
+ d_equalityEngine(d_notify, c, "theory::bv::TheoryBV", false),
d_slicer(new Slicer()),
d_isComplete(c, true),
d_useSlicer(false),
d_infer(c),
d_infer_exp(c),
d_notify( *this ),
- d_equalityEngine(d_notify, c, "theory::datatypes::TheoryDatatypes"),
+ d_equalityEngine(d_notify, c, "theory::datatypes::TheoryDatatypes", false),
d_labels( c ),
d_selector_apps( c ),
//d_consEqc( c ),
\r
ConjectureGenerator::ConjectureGenerator( QuantifiersEngine * qe, context::Context* c ) : QuantifiersModule( qe ),\r
d_notify( *this ),\r
-d_uequalityEngine(d_notify, c, "ConjectureGenerator::ee"),\r
+d_uequalityEngine(d_notify, c, "ConjectureGenerator::ee", false),\r
d_ee_conjectures( c ){\r
d_fullEffortCount = 0;\r
d_uequalityEngine.addFunctionKind( kind::APPLY_UF );\r
context::UserContext* u):
d_external(external),
d_notify(*this),
- d_equalityEngine(d_notify, c, "theory::sets::TheorySetsPrivate"),
+ d_equalityEngine(d_notify, c, "theory::sets::TheorySetsPrivate", false),
d_trueNode(NodeManager::currentNM()->mkConst<bool>(true)),
d_falseNode(NodeManager::currentNM()->mkConst<bool>(false)),
d_conflict(c),
, d_alreadyNotifiedMap(context)
, d_registeredEqualities(context)
, d_EENotify(*this)
-, d_equalityEngine(d_EENotify, context, "SharedTermsDatabase")
+, d_equalityEngine(d_EENotify, context, "SharedTermsDatabase", true)
, d_theoryEngine(theoryEngine)
, d_inConflict(context, false)
{
: Theory(THEORY_STRINGS, c, u, out, valuation, logicInfo),
RMAXINT(LONG_MAX),
d_notify( *this ),
- d_equalityEngine(d_notify, c, "theory::strings::TheoryStrings"),
+ d_equalityEngine(d_notify, c, "theory::strings::TheoryStrings", false),
d_conflict(c, false),
d_infer(c),
d_infer_exp(c),
if (d_logicInfo.isQuantified()) {
d_quantEngine->finishInit();
Assert(d_masterEqualityEngine == 0);
- d_masterEqualityEngine = new eq::EqualityEngine(d_masterEENotify,getSatContext(), "theory::master");
+ d_masterEqualityEngine = new eq::EqualityEngine(d_masterEENotify,getSatContext(), "theory::master", false);
for(TheoryId theoryId = theory::THEORY_FIRST; theoryId != theory::THEORY_LAST; ++ theoryId) {
if (d_theoryTable[theoryId]) {
}
Node TheoryEngine::getModelValue(TNode var) {
- if(var.isConst()) return var; // FIXME: HACK!!!
+ if (var.isConst()) return var; // FIXME: HACK!!!
Assert(d_sharedTerms.isShared(var));
return theoryOf(Theory::theoryOf(var.getType()))->getModelValue(var);
}
d_false = NodeManager::currentNM()->mkConst( false );
d_eeContext = new context::Context();
- d_equalityEngine = new eq::EqualityEngine(d_eeContext, name);
+ d_equalityEngine = new eq::EqualityEngine(d_eeContext, name, false);
// The kinds we are treating as function application in congruence
d_equalityEngine->addFunctionKind(kind::APPLY_UF);
}
-EqualityEngine::EqualityEngine(context::Context* context, std::string name)
+EqualityEngine::EqualityEngine(context::Context* context, std::string name, bool constantsAreTriggers)
: ContextNotifyObj(context)
, d_masterEqualityEngine(0)
, d_context(context)
, d_subtermEvaluatesSize(context, 0)
, d_stats(name)
, d_inPropagate(false)
+, d_constantsAreTriggers(constantsAreTriggers)
, d_triggerDatabaseSize(context, 0)
, d_triggerTermSetUpdatesSize(context, 0)
, d_deducedDisequalitiesSize(context, 0)
init();
}
-EqualityEngine::EqualityEngine(EqualityEngineNotify& notify, context::Context* context, std::string name)
+EqualityEngine::EqualityEngine(EqualityEngineNotify& notify, context::Context* context, std::string name, bool constantsAreTriggers)
: ContextNotifyObj(context)
, d_masterEqualityEngine(0)
, d_context(context)
, d_subtermEvaluatesSize(context, 0)
, d_stats(name)
, d_inPropagate(false)
+, d_constantsAreTriggers(constantsAreTriggers)
, d_triggerDatabaseSize(context, 0)
, d_triggerTermSetUpdatesSize(context, 0)
, d_deducedDisequalitiesSize(context, 0)
// We set this here as this only applies to actual terms, not the
// intermediate application terms
d_isBoolean[result] = true;
- } else if (d_isConstant[result]) {
+ } else if (d_constantsAreTriggers && d_isConstant[result]) {
// Non-Boolean constants are trigger terms for all tags
EqualityNodeId tId = getNodeId(t);
// Setup the new set
/**
* Initialize the equality engine, given the notification class.
*/
- EqualityEngine(EqualityEngineNotify& notify, context::Context* context, std::string name);
+ EqualityEngine(EqualityEngineNotify& notify, context::Context* context, std::string name, bool constantsAreTriggers);
/**
* Initialize the equality engine with no notification class.
*/
- EqualityEngine(context::Context* context, std::string name);
+ EqualityEngine(context::Context* context, std::string name, bool constantsAreTriggers);
/**
* Just a destructor.
}
};/* struct EqualityEngine::TriggerTermSet */
+ /** Are the constants triggers */
+ bool d_constantsAreTriggers;
+
/** The information about trigger terms is stored in this easily maintained memory. */
char* d_triggerDatabase;
/* The strong theory solver can be notified by EqualityEngine::init(),
* so make sure it's initialized first. */
d_thss(NULL),
- d_equalityEngine(d_notify, c, "theory::uf::TheoryUF"),
+ d_equalityEngine(d_notify, c, "theory::uf::TheoryUF", false),
d_conflict(c, false),
d_literalsToPropagate(c),
d_literalsToPropagateIndex(c, 0),