Simplify Theory::collectModelInfo interface to not take deprecated fullModel argument.
authorajreynol <andrew.j.reynolds@gmail.com>
Tue, 4 Apr 2017 16:21:30 +0000 (11:21 -0500)
committerajreynol <andrew.j.reynolds@gmail.com>
Tue, 4 Apr 2017 16:21:30 +0000 (11:21 -0500)
27 files changed:
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h
src/theory/arith/theory_arith_private.cpp
src/theory/arith/theory_arith_private.h
src/theory/arrays/theory_arrays.cpp
src/theory/arrays/theory_arrays.h
src/theory/bv/theory_bv.cpp
src/theory/bv/theory_bv.h
src/theory/datatypes/theory_datatypes.cpp
src/theory/datatypes/theory_datatypes.h
src/theory/quantifiers/theory_quantifiers.cpp
src/theory/quantifiers/theory_quantifiers.h
src/theory/sep/theory_sep.cpp
src/theory/sep/theory_sep.h
src/theory/sets/theory_sets.cpp
src/theory/sets/theory_sets.h
src/theory/sets/theory_sets_private.cpp
src/theory/sets/theory_sets_private.h
src/theory/strings/theory_strings.cpp
src/theory/strings/theory_strings.h
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/theory/theory_model.cpp
src/theory/theory_model.h
src/theory/uf/theory_uf.cpp
src/theory/uf/theory_uf.h

index 5af613a94379ceca7fe4247860522cfeb99dc6e7..45dcd5d51d786723ed5dad8075fe946da806e216 100644 (file)
@@ -102,8 +102,8 @@ void TheoryArith::propagate(Effort e) {
   d_internal->propagate(e);
 }
 
-void TheoryArith::collectModelInfo( TheoryModel* m, bool fullModel ){
-  d_internal->collectModelInfo(m, fullModel);
+void TheoryArith::collectModelInfo( TheoryModel* m ){
+  d_internal->collectModelInfo(m);
 }
 
 void TheoryArith::notifyRestart(){
index 267c10e4b9b97320acc5dfe71e33c5e6e3c47a19..5dcea4be0abe4222842b36cef7771c67be1b6966 100644 (file)
@@ -61,7 +61,7 @@ public:
   bool getCurrentSubstitution( int effort, std::vector< Node >& vars, std::vector< Node >& subs, std::map< Node, std::vector< Node > >& exp );
   bool isExtfReduced( int effort, Node n, Node on, std::vector< Node >& exp );
 
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
 
   void shutdown(){ }
 
index ba48f1704b9817f53a9eac1978dbcbc76124fddf..fc700fbdcd9b63cbd8111ee73a4d1290f17a944c 100644 (file)
@@ -4422,7 +4422,7 @@ Rational TheoryArithPrivate::deltaValueForTotalOrder() const{
   return belowMin;
 }
 
-void TheoryArithPrivate::collectModelInfo( TheoryModel* m, bool fullModel ){
+void TheoryArithPrivate::collectModelInfo( TheoryModel* m ){
   AlwaysAssert(d_qflraStatus ==  Result::SAT);
   //AlwaysAssert(!d_nlIncomplete, "Arithmetic solver cannot currently produce models for input with nonlinear arithmetic constraints");
 
index d4afaccc6517c9eb81009e6f983c3d6871219c61..79e7a77bc4a23bcffadcaa378dae5c277cb3121d 100644 (file)
@@ -443,7 +443,7 @@ public:
 
   Rational deltaValueForTotalOrder() const;
 
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
 
   void shutdown(){ }
 
index 05094d5a8a635c745325401a61350e9aaf703b03..8c619eeaef47dda9931b41bf09bd3d8d0b1d3d30 100644 (file)
@@ -1038,7 +1038,7 @@ void TheoryArrays::computeCareGraph()
 /////////////////////////////////////////////////////////////////////////////
 
 
-void TheoryArrays::collectModelInfo( TheoryModel* m, bool fullModel )
+void TheoryArrays::collectModelInfo( TheoryModel* m )
 {
   set<Node> termSet;
 
index a1d2753642ae49e27f96a613c42152df392c4c38..574702368795735b448f8872009bdc7e82cef1da 100644 (file)
@@ -246,7 +246,7 @@ class TheoryArrays : public Theory {
 
   public:
 
-  void collectModelInfo(TheoryModel* m, bool fullModel);
+  void collectModelInfo(TheoryModel* m);
 
   /////////////////////////////////////////////////////////////////////////////
   // NOTIFICATIONS
index 651d4484131a6180423b89fee31d6a8da0f0f046..9db909c2246b9cc673419054e2e4670f42ed48a5 100644 (file)
@@ -576,14 +576,14 @@ bool TheoryBV::needsCheckLastEffort() {
   return d_needsLastCallCheck;
 }
 
-void TheoryBV::collectModelInfo( TheoryModel* m, bool fullModel ){
+void TheoryBV::collectModelInfo( TheoryModel* m ){
   Assert(!inConflict());
   if (options::bitblastMode() == theory::bv::BITBLAST_MODE_EAGER) {
-    d_eagerSolver->collectModelInfo(m, fullModel);
+    d_eagerSolver->collectModelInfo(m, true);
   }
   for (unsigned i = 0; i < d_subtheories.size(); ++i) {
     if (d_subtheories[i]->isComplete()) {
-      d_subtheories[i]->collectModelInfo(m, fullModel);
+      d_subtheories[i]->collectModelInfo(m, true);
       return;
     }
   }
index 9973b0736c3adc495dc76b40bd6eca25236d1857..62eb6f6b5f20be51668e04e9f90f54708ee7cbf6 100644 (file)
@@ -77,7 +77,7 @@ public:
 
   Node explain(TNode n);
 
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
 
   std::string identify() const { return std::string("TheoryBV"); }
 
index 4a47618f1df1bec21be323f8900f074c669fce7f..4ca631184304faefad41506364896a02b1e8fd0e 100644 (file)
@@ -1407,7 +1407,7 @@ void TheoryDatatypes::computeCareGraph(){
   Trace("dt-cg-summary") << "...done, # pairs = " << n_pairs << std::endl;
 }
 
-void TheoryDatatypes::collectModelInfo( TheoryModel* m, bool fullModel ){
+void TheoryDatatypes::collectModelInfo( TheoryModel* m ){
   Trace("dt-cmi") << "Datatypes : Collect model info " << d_equalityEngine.consistent() << std::endl;
   Trace("dt-model") << std::endl;
   printModelDebug( "dt-model" );
index fffc4bdd7b2d02ba33b336d5ecd3efb4e5e90494..6a26352ad48a27080bd92bd77df444ec0475b7b9 100644 (file)
@@ -263,7 +263,7 @@ public:
   void presolve();
   void addSharedTerm(TNode t);
   EqualityStatus getEqualityStatus(TNode a, TNode b);
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
   void shutdown() { }
   std::string identify() const { return std::string("TheoryDatatypes"); }
   /** equality engine */
index 4d3e584b43eb129867215588b364b872ff0fbcba..7321f00c40d828dfef8c4ace787b3df1db0593de 100644 (file)
@@ -117,16 +117,14 @@ void TheoryQuantifiers::computeCareGraph() {
   //do nothing
 }
 
-void TheoryQuantifiers::collectModelInfo(TheoryModel* m, bool fullModel) {
-  if(fullModel) {
-    for(assertions_iterator i = facts_begin(); i != facts_end(); ++i) {
-      if((*i).assertion.getKind() == kind::NOT) {
-        Debug("quantifiers::collectModelInfo") << "got quant FALSE: " << (*i).assertion[0] << endl;
-        m->assertPredicate((*i).assertion[0], false);
-      } else {
-        Debug("quantifiers::collectModelInfo") << "got quant TRUE : " << *i << endl;
-        m->assertPredicate(*i, true);
-      }
+void TheoryQuantifiers::collectModelInfo(TheoryModel* m) {
+  for(assertions_iterator i = facts_begin(); i != facts_end(); ++i) {
+    if((*i).assertion.getKind() == kind::NOT) {
+      Debug("quantifiers::collectModelInfo") << "got quant FALSE: " << (*i).assertion[0] << endl;
+      m->assertPredicate((*i).assertion[0], false);
+    } else {
+      Debug("quantifiers::collectModelInfo") << "got quant TRUE : " << *i << endl;
+      m->assertPredicate(*i, true);
     }
   }
 }
index 462dcb339e38711d441f10c6f5a72de1a6798ea0..38552d3339743af7b324d6087f86916b005f9844 100644 (file)
@@ -62,7 +62,7 @@ public:
   void check(Effort e);
   Node getNextDecisionRequest( unsigned& priority );
   Node getValue(TNode n);
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
   void shutdown() { }
   std::string identify() const { return std::string("TheoryQuantifiers"); }
   void setUserAttribute(const std::string& attr, Node n, std::vector<Node> node_values, std::string str_value);
index 3f9f70c255d3a88fdf92eba3291b329b2efefa03..ce5c0217920a2cb3cf9c9b8099edf5780a240854 100644 (file)
@@ -200,7 +200,7 @@ void TheorySep::computeCareGraph() {
 /////////////////////////////////////////////////////////////////////////////
 
 
-void TheorySep::collectModelInfo( TheoryModel* m, bool fullModel ){
+void TheorySep::collectModelInfo( TheoryModel* m ){
   set<Node> termSet;
 
   // Compute terms appearing in assertions and shared terms
index bdbea7e6c0ad602a44b555ff555fcbe29ff53f36..8dd1ed356d22bd8ffe568c0c72ea36dd581aa00c 100644 (file)
@@ -110,7 +110,7 @@ class TheorySep : public Theory {
 
   public:
 
-  void collectModelInfo(TheoryModel* m, bool fullModel);
+  void collectModelInfo(TheoryModel* m);
   void postProcessModel(TheoryModel* m);
 
   /////////////////////////////////////////////////////////////////////////////
index 52afe05e27b2593354f56512e68a282755d06de5..3c749b262756a48a0d6f5e0388e598b23354c871 100644 (file)
@@ -46,8 +46,8 @@ void TheorySets::check(Effort e) {
   d_internal->check(e);
 }
 
-void TheorySets::collectModelInfo(TheoryModel* m, bool fullModel) {
-  d_internal->collectModelInfo(m, fullModel);
+void TheorySets::collectModelInfo(TheoryModel* m) {
+  d_internal->collectModelInfo(m);
 }
 
 void TheorySets::computeCareGraph() {
index 2ebb9947dc7c861f8a96aa78b7005955f2108ee5..59117d9053cb7a826fac3272141cce7c4673095c 100644 (file)
@@ -50,7 +50,7 @@ public:
 
   void check(Effort);
 
-  void collectModelInfo(TheoryModel*, bool fullModel);
+  void collectModelInfo(TheoryModel* m);
 
   void computeCareGraph();
 
index 7662f15449371630c09b8e340ca59ad42cc5e50f..5b9f4bf0350ca9ee1c10aea8e14f221e01a0fb9f 100644 (file)
@@ -1773,7 +1773,7 @@ EqualityStatus TheorySetsPrivate::getEqualityStatus(TNode a, TNode b) {
 /******************** Model generation ********************/
 
 
-void TheorySetsPrivate::collectModelInfo(TheoryModel* m, bool fullModel) {
+void TheorySetsPrivate::collectModelInfo(TheoryModel* m) {
   Trace("sets-model") << "Set collect model info" << std::endl;
   set<Node> termSet;
   // Compute terms appearing in assertions and shared terms
index affc09fb9d2339e41e7c97096a73867d8429565e..b7f911a700c7e9eebf982b8f089d0a536e6262d2 100644 (file)
@@ -167,7 +167,7 @@ public:
 
   void check(Theory::Effort);
 
-  void collectModelInfo(TheoryModel*, bool fullModel);
+  void collectModelInfo(TheoryModel* m);
 
   void computeCareGraph();
 
index 930520725a2556cf35186507124888e57a8fc99b..42e43b5432e3582756e1a1c3aefd6ab644aca6b3 100644 (file)
@@ -452,8 +452,8 @@ void TheoryStrings::presolve() {
 /////////////////////////////////////////////////////////////////////////////
 
 
-void TheoryStrings::collectModelInfo( TheoryModel* m, bool fullModel ) {
-  Trace("strings-model") << "TheoryStrings : Collect model info, fullModel = " << fullModel << std::endl;
+void TheoryStrings::collectModelInfo( TheoryModel* m ) {
+  Trace("strings-model") << "TheoryStrings : Collect model info" << std::endl;
   Trace("strings-model") << "TheoryStrings : assertEqualityEngine." << std::endl;
   
   //AJR : no use doing this since we cannot preregister terms with finite types that don't belong to strings.
index ab0256237501493e14aca8860512bb5fde15ff86..a905189af776b32019359cc07a652c55a40f4964 100644 (file)
@@ -217,7 +217,7 @@ private:
   // MODEL GENERATION
   /////////////////////////////////////////////////////////////////////////////
 public:
-  void collectModelInfo(TheoryModel* m, bool fullModel);
+  void collectModelInfo(TheoryModel* m);
 
   /////////////////////////////////////////////////////////////////////////////
   // NOTIFICATIONS
index 611e487f1898d008a74a94873fa3c1e14f530b6c..37d818eacdf99748c8bc714aff5dc4e0b8f9e88f 100644 (file)
@@ -515,11 +515,8 @@ public:
    * Get all relevant information in this theory regarding the current
    * model.  This should be called after a call to check( FULL_EFFORT )
    * for all theories with no conflicts and no lemmas added.
-   * If fullModel is true, then we must specify sufficient information for
-   * the model class to construct constant representatives for each equivalence
-   * class.
    */
-  virtual void collectModelInfo( TheoryModel* m, bool fullModel ){ }
+  virtual void collectModelInfo( TheoryModel* m ){ }
 
   /** if theories want to do something with model after building, do it here */
   virtual void postProcessModel( TheoryModel* m ){ }
index ba80b130edd68de36bbd8fa2c48ec1052b4fe396..4d2998c6868775f4591f028e769f05980539209f 100644 (file)
@@ -616,7 +616,7 @@ void TheoryEngine::check(Theory::Effort effort) {
         if(d_logicInfo.isQuantified()) {
           // quantifiers engine must pass effort last call check
           d_quantEngine->check(Theory::EFFORT_LAST_CALL);
-          // if returning incomplete or SAT, we have ensured that d_curr_model has been built with fullModel=true
+          // if returning incomplete or SAT, we have ensured that d_curr_model has been built
         } else if(options::produceModels() && !d_curr_model->isBuilt()) {
           // must build model at this point
           d_curr_model_builder->buildModel(d_curr_model);
@@ -843,16 +843,15 @@ bool TheoryEngine::properExplanation(TNode node, TNode expl) const {
   return true;
 }
 
-void TheoryEngine::collectModelInfo( theory::TheoryModel* m, bool fullModel ){
-  Assert( fullModel ); // AJR : FIXME : remove/simplify fullModel argument everywhere
+void TheoryEngine::collectModelInfo( theory::TheoryModel* m ){
   //have shared term engine collectModelInfo
-  //  d_sharedTerms.collectModelInfo( m, fullModel );
+  //  d_sharedTerms.collectModelInfo( m );
   // Consult each active theory to get all relevant information
   // concerning the model.
   for(TheoryId theoryId = theory::THEORY_FIRST; theoryId < theory::THEORY_LAST; ++theoryId) {
     if(d_logicInfo.isTheoryEnabled(theoryId)) {
       Trace("model-builder") << "  CollectModelInfo on theory: " << theoryId << endl;
-      d_theoryTable[theoryId]->collectModelInfo( m, fullModel );
+      d_theoryTable[theoryId]->collectModelInfo( m );
     }
   }
   // Get the Boolean variables
index dd2b4f14d9d445209b6aa8ce08200363063205af..e821b4017bda339d952ab30ac3d4bac0a02bfd2f 100644 (file)
@@ -714,7 +714,7 @@ public:
   /**
    * collect model info
    */
-  void collectModelInfo( theory::TheoryModel* m, bool fullModel );
+  void collectModelInfo( theory::TheoryModel* m );
   /** post process model */
   void postProcessModel( theory::TheoryModel* m );
 
index de48c956a9d486413a875fde50ce7c06b7d3bca6..4de0d6a5435b2c6d80320d5baeb697b6da19b9b3 100644 (file)
@@ -586,7 +586,7 @@ bool TheoryEngineModelBuilder::buildModel(Model* m)
   Trace("model-builder") << "TheoryEngineModelBuilder: buildModel" << std::endl;
   TheoryModel* tm = (TheoryModel*)m;
 
-  // buildModel with fullModel = true should only be called once in any context
+  // buildModel should only be called once per check
   Assert(!tm->isBuilt());
   tm->d_modelBuilt = true;
 
@@ -595,7 +595,7 @@ bool TheoryEngineModelBuilder::buildModel(Model* m)
 
   // Collect model info from the theories
   Trace("model-builder") << "TheoryEngineModelBuilder: Collect model info..." << std::endl;
-  d_te->collectModelInfo(tm, true);
+  d_te->collectModelInfo(tm);
 
   // model-builder specific initialization
   if( !preProcessBuildModel(tm) ){
index 82341c377213b26581a7e84701a561397d57c1ab..1d3906eee288f4fa5913a84e2f4ca0a4ff96ed91 100644 (file)
@@ -106,7 +106,7 @@ public:
     *  This function tells the model that n should be the representative of its equivalence class.
     *  It should be called during model generation, before final representatives are chosen.  In the
     *  case of TheoryEngineModelBuilder, it should be called during Theory's collectModelInfo( ... )
-    *  functions where fullModel = true.
+    *  functions.
     */
   void assertRepresentative(TNode n);
 public:
index 1b47b0245120751e0c3abcd28c35e22bc5430e26..8166e357459a2020eae5f146d24d58ae8eb7a17c 100644 (file)
@@ -245,7 +245,7 @@ Node TheoryUF::explain(TNode literal, eq::EqProof* pf) {
   return mkAnd(assumptions);
 }
 
-void TheoryUF::collectModelInfo( TheoryModel* m, bool fullModel ){
+void TheoryUF::collectModelInfo( TheoryModel* m ){
   set<Node> termSet;
 
   // Compute terms appearing in assertions and shared terms
index 41bafcb84d16d911203d2148931cdc4e8235d94e..28db0195dd6b696442401d923711182576735816 100644 (file)
@@ -185,7 +185,7 @@ public:
   void preRegisterTerm(TNode term);
   Node explain(TNode n);
 
-  void collectModelInfo( TheoryModel* m, bool fullModel );
+  void collectModelInfo( TheoryModel* m );
 
   void ppStaticLearn(TNode in, NodeBuilder<>& learned);
   void presolve();