Simplify interface to instantiate (#5926)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 19 Feb 2021 18:16:42 +0000 (12:16 -0600)
committerGitHub <noreply@github.com>
Fri, 19 Feb 2021 18:16:42 +0000 (12:16 -0600)
Does not support InstMatch interfaces anymore, which are spurious.

src/theory/quantifiers/ematching/ho_trigger.cpp
src/theory/quantifiers/ematching/inst_match_generator.h
src/theory/quantifiers/ematching/inst_match_generator_multi.cpp
src/theory/quantifiers/ematching/inst_match_generator_multi.h
src/theory/quantifiers/ematching/inst_match_generator_simple.cpp
src/theory/quantifiers/ematching/trigger.cpp
src/theory/quantifiers/fmf/model_engine.cpp
src/theory/quantifiers/inst_match_trie.cpp
src/theory/quantifiers/inst_match_trie.h
src/theory/quantifiers/instantiate.cpp
src/theory/quantifiers/instantiate.h

index 4c606a273e951eb8dcdd72892c4f3a87914b433e..875c74aa4e035c70a8aeab930657d9a9f3d23de3 100644 (file)
@@ -368,7 +368,7 @@ bool HigherOrderTrigger::sendInstantiation(InstMatch& m)
   else
   {
     // do not run higher-order matching
-    return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m);
+    return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m.d_vals);
   }
 }
 
@@ -381,7 +381,7 @@ bool HigherOrderTrigger::sendInstantiation(InstMatch& m, unsigned var_index)
   if (var_index == d_ho_var_list.size())
   {
     // we now have an instantiation to try
-    return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m);
+    return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m.d_vals);
   }
   else
   {
index f03d1cf202013621700836dabf169536a40aad34..b5c81b76680114c415ad917eb04f4280506133a6 100644 (file)
@@ -19,7 +19,7 @@
 
 #include <map>
 #include "expr/node_trie.h"
-#include "theory/quantifiers/inst_match_trie.h"
+#include "theory/quantifiers/inst_match.h"
 
 namespace CVC4 {
 namespace theory {
index 4f393bc4fc836e457f47c33bc876c17c601ae2b4..e4fb3fc41cbbbb96aec6506c1f8c037786edd8b6 100644 (file)
@@ -191,7 +191,8 @@ void InstMatchGeneratorMulti::processNewMatch(QuantifiersEngine* qe,
                                               uint64_t& addedLemmas)
 {
   // see if these produce new matches
-  d_children_trie[fromChildIndex].addInstMatch(qe->getState(), d_quant, m);
+  d_children_trie[fromChildIndex].addInstMatch(
+      qe->getState(), d_quant, m.d_vals);
   // possibly only do the following if we know that new matches will be
   // produced? the issue is that instantiations are filtered in quantifiers
   // engine, and so there is no guarentee that
index b68d362cc39d744867c15be6a6c90092f84467f9..2007e652ddc0de18b9783cbf7e2a5fc071b9b587 100644 (file)
@@ -21,6 +21,7 @@
 #include <vector>
 #include "expr/node_trie.h"
 #include "theory/quantifiers/ematching/inst_match_generator.h"
+#include "theory/quantifiers/inst_match_trie.h"
 
 namespace CVC4 {
 namespace theory {
index b5ef7792dde40094220cc881a80088ff667018b5..a46eb12ce7669e858e59b9f76ad3493a90189622 100644 (file)
@@ -140,7 +140,7 @@ void InstMatchGeneratorSimple::addInstantiations(InstMatch& m,
     }
     // we do not need the trigger parent for simple triggers (no post-processing
     // required)
-    if (qe->getInstantiate()->addInstantiation(d_quant, m))
+    if (qe->getInstantiate()->addInstantiation(d_quant, m.d_vals))
     {
       addedLemmas++;
       Debug("simple-trigger") << "-> Produced instantiation " << m << std::endl;
index ac43d3bc94b198dd3b3e02cb94aaad68d225cbab..8d9cfd3a3a5195a58e2651e635beb8f4082631d8 100644 (file)
@@ -143,7 +143,7 @@ uint64_t Trigger::addInstantiations()
 
 bool Trigger::sendInstantiation(InstMatch& m)
 {
-  return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m);
+  return d_quantEngine->getInstantiate()->addInstantiation(d_quant, m.d_vals);
 }
 
 bool Trigger::mkTriggerTerms(Node q,
index 1c0a74013330e00dc5d3a80e208507dc5dc9e0bc..4ca8207097b45fc6bf54e4dc88bcfaad6e49e664 100644 (file)
@@ -291,7 +291,7 @@ void ModelEngine::exhaustiveInstantiate( Node f, int effort ){
           Debug("fmf-model-eval") << "* Add instantiation " << m << std::endl;
           triedLemmas++;
           //add as instantiation
-          if (inst->addInstantiation(f, m, true))
+          if (inst->addInstantiation(f, m.d_vals, true))
           {
             addedLemmas++;
             if (d_qstate.isInConflict())
index a4282384550b4823f65a82e0e9069818466c30a7..993fad90a72063833a5189ea5de051734f554f38 100644 (file)
@@ -9,7 +9,7 @@
  ** All rights reserved.  See the file COPYING in the top-level source
  ** directory for licensing information.\endverbatim
  **
- ** \brief Implementation of inst match class
+ ** \brief Implementation of inst match trie class
  **/
 
 #include "theory/quantifiers/inst_match_trie.h"
@@ -26,9 +26,19 @@ namespace CVC4 {
 namespace theory {
 namespace inst {
 
+bool InstMatchTrie::existsInstMatch(quantifiers::QuantifiersState& qs,
+                                    Node q,
+                                    const std::vector<Node>& m,
+                                    bool modEq,
+                                    ImtIndexOrder* imtio,
+                                    unsigned index)
+{
+  return !addInstMatch(qs, q, m, modEq, imtio, true, index);
+}
+
 bool InstMatchTrie::addInstMatch(quantifiers::QuantifiersState& qs,
                                  Node f,
-                                 std::vector<Node>& m,
+                                 const std::vector<Node>& m,
                                  bool modEq,
                                  ImtIndexOrder* imtio,
                                  bool onlyExist,
@@ -84,7 +94,7 @@ bool InstMatchTrie::addInstMatch(quantifiers::QuantifiersState& qs,
 }
 
 bool InstMatchTrie::removeInstMatch(Node q,
-                                    std::vector<Node>& m,
+                                    const std::vector<Node>& m,
                                     ImtIndexOrder* imtio,
                                     unsigned index)
 {
@@ -108,49 +118,27 @@ bool InstMatchTrie::removeInstMatch(Node q,
 
 void InstMatchTrie::print(std::ostream& out,
                           Node q,
-                          std::vector<TNode>& terms,
-                          bool useActive,
-                          std::vector<Node>& active) const
+                          std::vector<TNode>& terms) const
 {
   if (terms.size() == q[0].getNumChildren())
   {
-    bool print;
-    if (useActive)
+    out << "  ( ";
+    for (unsigned i = 0, size = terms.size(); i < size; i++)
     {
-      if (hasInstLemma())
-      {
-        Node lem = getInstLemma();
-        print = std::find(active.begin(), active.end(), lem) != active.end();
-      }
-      else
+      if (i > 0)
       {
-        print = false;
+        out << ", ";
       }
+      out << terms[i];
     }
-    else
-    {
-      print = true;
-    }
-    if (print)
-    {
-      out << "  ( ";
-      for (unsigned i = 0, size = terms.size(); i < size; i++)
-      {
-        if (i > 0)
-        {
-          out << ", ";
-        }
-        out << terms[i];
-      }
-      out << " )" << std::endl;
-    }
+    out << " )" << std::endl;
   }
   else
   {
     for (const std::pair<const Node, InstMatchTrie>& d : d_data)
     {
       terms.push_back(d.first);
-      d.second.print(out, q, terms, useActive, active);
+      d.second.print(out, q, terms);
       terms.pop_back();
     }
   }
@@ -182,6 +170,14 @@ void InstMatchTrie::getInstantiations(Node q,
   }
 }
 
+void InstMatchTrie::clear() { d_data.clear(); }
+
+void InstMatchTrie::print(std::ostream& out, Node q) const
+{
+  std::vector<TNode> terms;
+  print(out, q, terms);
+}
+
 CDInstMatchTrie::~CDInstMatchTrie()
 {
   for (std::pair<const Node, CDInstMatchTrie*>& d : d_data)
@@ -192,9 +188,18 @@ CDInstMatchTrie::~CDInstMatchTrie()
   d_data.clear();
 }
 
+bool CDInstMatchTrie::existsInstMatch(quantifiers::QuantifiersState& qs,
+                                      Node q,
+                                      const std::vector<Node>& m,
+                                      bool modEq,
+                                      unsigned index)
+{
+  return !addInstMatch(qs, q, m, modEq, index, true);
+}
+
 bool CDInstMatchTrie::addInstMatch(quantifiers::QuantifiersState& qs,
                                    Node f,
-                                   std::vector<Node>& m,
+                                   const std::vector<Node>& m,
                                    bool modEq,
                                    unsigned index,
                                    bool onlyExist)
@@ -262,7 +267,7 @@ bool CDInstMatchTrie::addInstMatch(quantifiers::QuantifiersState& qs,
 }
 
 bool CDInstMatchTrie::removeInstMatch(Node q,
-                                      std::vector<Node>& m,
+                                      const std::vector<Node>& m,
                                       unsigned index)
 {
   if (index == q[0].getNumChildren())
@@ -284,48 +289,26 @@ bool CDInstMatchTrie::removeInstMatch(Node q,
 
 void CDInstMatchTrie::print(std::ostream& out,
                             Node q,
-                            std::vector<TNode>& terms,
-                            bool useActive,
-                            std::vector<Node>& active) const
+                            std::vector<TNode>& terms) const
 {
   if (d_valid.get())
   {
     if (terms.size() == q[0].getNumChildren())
     {
-      bool print;
-      if (useActive)
-      {
-        if (hasInstLemma())
-        {
-          Node lem = getInstLemma();
-          print = std::find(active.begin(), active.end(), lem) != active.end();
-        }
-        else
-        {
-          print = false;
-        }
-      }
-      else
-      {
-        print = true;
-      }
-      if (print)
+      out << "  ( ";
+      for (unsigned i = 0; i < terms.size(); i++)
       {
-        out << "  ( ";
-        for (unsigned i = 0; i < terms.size(); i++)
-        {
-          if (i > 0) out << " ";
-          out << terms[i];
-        }
-        out << " )" << std::endl;
+        if (i > 0) out << " ";
+        out << terms[i];
       }
+      out << " )" << std::endl;
     }
     else
     {
       for (const std::pair<const Node, CDInstMatchTrie*>& d : d_data)
       {
         terms.push_back(d.first);
-        d.second->print(out, q, terms, useActive, active);
+        d.second->print(out, q, terms);
         terms.pop_back();
       }
     }
@@ -362,6 +345,28 @@ void CDInstMatchTrie::getInstantiations(Node q,
   }
 }
 
+void CDInstMatchTrie::print(std::ostream& out, Node q) const
+{
+  std::vector<TNode> terms;
+  print(out, q, terms);
+}
+
+bool InstMatchTrieOrdered::addInstMatch(quantifiers::QuantifiersState& qs,
+                                        Node q,
+                                        const std::vector<Node>& m,
+                                        bool modEq)
+{
+  return d_imt.addInstMatch(qs, q, m, modEq, d_imtio);
+}
+
+bool InstMatchTrieOrdered::existsInstMatch(quantifiers::QuantifiersState& qs,
+                                           Node q,
+                                           const std::vector<Node>& m,
+                                           bool modEq)
+{
+  return d_imt.existsInstMatch(qs, q, m, modEq, d_imtio);
+}
+
 } /* CVC4::theory::inst namespace */
 } /* CVC4::theory namespace */
 } /* CVC4 namespace */
index c8d0214b635c868984e91c4ed178978e819ecc8c..c45badc38694999d1df5d30ec3ec7bc02e0f60ac 100644 (file)
@@ -9,7 +9,7 @@
  ** All rights reserved.  See the file COPYING in the top-level source
  ** directory for licensing information.\endverbatim
  **
- ** \brief inst match class
+ ** \brief inst match trie class
  **/
 
 #include "cvc4_private.h"
 #include "context/cdlist.h"
 #include "context/cdo.h"
 #include "expr/node.h"
-#include "theory/quantifiers/inst_match.h"
 
 namespace CVC4 {
 namespace theory {
 
 class QuantifiersEngine;
 
-namespace {
+namespace quantifiers {
 class QuantifiersState;
 }
 
@@ -65,23 +64,10 @@ class InstMatchTrie
    */
   bool existsInstMatch(quantifiers::QuantifiersState& qs,
                        Node q,
-                       InstMatch& m,
+                       const std::vector<Node>& m,
                        bool modEq = false,
-                       ImtIndexOrder* imtio = NULL,
-                       unsigned index = 0)
-  {
-    return !addInstMatch(qs, q, m, modEq, imtio, true, index);
-  }
-  /** exists inst match, vector version */
-  bool existsInstMatch(quantifiers::QuantifiersState& qs,
-                       Node q,
-                       std::vector<Node>& m,
-                       bool modEq = false,
-                       ImtIndexOrder* imtio = NULL,
-                       unsigned index = 0)
-  {
-    return !addInstMatch(qs, q, m, modEq, imtio, true, index);
-  }
+                       ImtIndexOrder* imtio = nullptr,
+                       unsigned index = 0);
   /** add inst match
    *
    * This method adds (the suffix of) m starting at the given index to this
@@ -90,22 +76,11 @@ class InstMatchTrie
    * If modEq is true, we check for duplication modulo equality the current
    * equalities in the equality engine of qs.
    */
-  bool addInstMatch(quantifiers::QuantifiersState& qs,
-                    Node q,
-                    InstMatch& m,
-                    bool modEq = false,
-                    ImtIndexOrder* imtio = NULL,
-                    bool onlyExist = false,
-                    unsigned index = 0)
-  {
-    return addInstMatch(qs, q, m.d_vals, modEq, imtio, onlyExist, index);
-  }
-  /** add inst match, vector version */
   bool addInstMatch(quantifiers::QuantifiersState& qs,
                     Node f,
-                    std::vector<Node>& m,
+                    const std::vector<Node>& m,
                     bool modEq = false,
-                    ImtIndexOrder* imtio = NULL,
+                    ImtIndexOrder* imtio = nullptr,
                     bool onlyExist = false,
                     unsigned index = 0);
   /** remove inst match
@@ -115,8 +90,8 @@ class InstMatchTrie
    * The domain of m is the bound variables of quantified formula q.
    */
   bool removeInstMatch(Node f,
-                       std::vector<Node>& m,
-                       ImtIndexOrder* imtio = NULL,
+                       const std::vector<Node>& m,
+                       ImtIndexOrder* imtio = nullptr,
                        unsigned index = 0);
   /**
    * Adds the instantiations for q into insts.
@@ -124,16 +99,9 @@ class InstMatchTrie
   void getInstantiations(Node q, std::vector<std::vector<Node>>& insts) const;
 
   /** clear the data of this class */
-  void clear() { d_data.clear(); }
+  void clear();
   /** print this class */
-  void print(std::ostream& out,
-             Node q,
-             bool useActive,
-             std::vector<Node>& active) const
-  {
-    std::vector<TNode> terms;
-    print(out, q, terms, useActive, active);
-  }
+  void print(std::ostream& out, Node q) const;
   /** the data */
   std::map<Node, InstMatchTrie> d_data;
 
@@ -145,21 +113,7 @@ class InstMatchTrie
   /** helper for print
    * terms accumulates the path we are on in the trie.
    */
-  void print(std::ostream& out,
-             Node q,
-             std::vector<TNode>& terms,
-             bool useActive,
-             std::vector<Node>& active) const;
-  /** set instantiation lemma at this node in the trie */
-  void setInstLemma(Node n)
-  {
-    d_data.clear();
-    d_data[n].clear();
-  }
-  /** does this node of the trie store an instantiation lemma? */
-  bool hasInstLemma() const { return !d_data.empty(); }
-  /** get the instantiation lemma stored in this node of the trie */
-  Node getInstLemma() const { return d_data.begin()->first; }
+  void print(std::ostream& out, Node q, std::vector<TNode>& terms) const;
 };
 
 /** trie for InstMatch objects
@@ -183,21 +137,9 @@ class CDInstMatchTrie
    */
   bool existsInstMatch(quantifiers::QuantifiersState& qs,
                        Node q,
-                       InstMatch& m,
+                       const std::vector<Node>& m,
                        bool modEq = false,
-                       unsigned index = 0)
-  {
-    return !addInstMatch(qs, q, m, modEq, index, true);
-  }
-  /** exists inst match, vector version */
-  bool existsInstMatch(quantifiers::QuantifiersState& qs,
-                       Node q,
-                       std::vector<Node>& m,
-                       bool modEq = false,
-                       unsigned index = 0)
-  {
-    return !addInstMatch(qs, q, m, modEq, index, true);
-  }
+                       unsigned index = 0);
   /** add inst match
    *
    * This method adds (the suffix of) m starting at the given index to this
@@ -209,17 +151,7 @@ class CDInstMatchTrie
    */
   bool addInstMatch(quantifiers::QuantifiersState& qs,
                     Node q,
-                    InstMatch& m,
-                    bool modEq = false,
-                    unsigned index = 0,
-                    bool onlyExist = false)
-  {
-    return addInstMatch(qs, q, m.d_vals, modEq, index, onlyExist);
-  }
-  /** add inst match, vector version */
-  bool addInstMatch(quantifiers::QuantifiersState& qs,
-                    Node q,
-                    std::vector<Node>& m,
+                    const std::vector<Node>& m,
                     bool modEq = false,
                     unsigned index = 0,
                     bool onlyExist = false);
@@ -229,67 +161,28 @@ class CDInstMatchTrie
    * It returns true if and only if this entry existed in this trie.
    * The domain of m is the bound variables of quantified formula q.
    */
-  bool removeInstMatch(Node q, std::vector<Node>& m, unsigned index = 0);
+  bool removeInstMatch(Node q, const std::vector<Node>& m, unsigned index = 0);
   /**
    * Adds the instantiations for q into insts.
    */
   void getInstantiations(Node q, std::vector<std::vector<Node>>& insts) const;
 
   /** print this class */
-  void print(std::ostream& out,
-             Node q,
-             bool useActive,
-             std::vector<Node>& active) const
-  {
-    std::vector<TNode> terms;
-    print(out, q, terms, useActive, active);
-  }
+  void print(std::ostream& out, Node q) const;
 
  private:
   /** Helper for getInstantiations.*/
   void getInstantiations(Node q,
                          std::vector<std::vector<Node>>& insts,
                          std::vector<Node>& terms) const;
+  /** helper for print
+   * terms accumulates the path we are on in the trie.
+   */
+  void print(std::ostream& out, Node q, std::vector<TNode>& terms) const;
   /** the data */
   std::map<Node, CDInstMatchTrie*> d_data;
   /** is valid */
   context::CDO<bool> d_valid;
-  /** helper for print
-   * terms accumulates the path we are on in the trie.
-   */
-  void print(std::ostream& out,
-             Node q,
-             std::vector<TNode>& terms,
-             bool useActive,
-             std::vector<Node>& active) const;
-  /** helper for get instantiations
-   * terms accumulates the path we are on in the trie.
-   */
-  void getInstantiations(std::vector<Node>& insts,
-                         Node q,
-                         std::vector<Node>& terms,
-                         QuantifiersEngine* qe,
-                         bool useActive,
-                         std::vector<Node>& active) const;
-  /** helper for get explanation for inst lemma
-   * terms accumulates the path we are on in the trie.
-   */
-  void getExplanationForInstLemmas(
-      Node q,
-      std::vector<Node>& terms,
-      const std::vector<Node>& lems,
-      std::map<Node, Node>& quant,
-      std::map<Node, std::vector<Node> >& tvec) const;
-  /** set instantiation lemma at this node in the trie */
-  void setInstLemma(Node n)
-  {
-    d_data.clear();
-    d_data[n] = NULL;
-  }
-  /** does this node of the trie store an instantiation lemma? */
-  bool hasInstLemma() const { return !d_data.empty(); }
-  /** get the instantiation lemma stored in this node of the trie */
-  Node getInstLemma() const { return d_data.begin()->first; }
 };
 
 /** inst match trie ordered
@@ -314,11 +207,8 @@ class InstMatchTrieOrdered
    */
   bool addInstMatch(quantifiers::QuantifiersState& qs,
                     Node q,
-                    InstMatch& m,
-                    bool modEq = false)
-  {
-    return d_imt.addInstMatch(qs, q, m, modEq, d_imtio);
-  }
+                    const std::vector<Node>& m,
+                    bool modEq = false);
   /** returns true if this trie contains m
    *
    * This method returns true if the match m exists in this
@@ -327,11 +217,8 @@ class InstMatchTrieOrdered
    */
   bool existsInstMatch(quantifiers::QuantifiersState& qs,
                        Node q,
-                       InstMatch& m,
-                       bool modEq = false)
-  {
-    return d_imt.existsInstMatch(qs, q, m, modEq, d_imtio);
-  }
+                       const std::vector<Node>& m,
+                       bool modEq = false);
 
  private:
   /** the ordering */
index 729dd61005dea4dc988cd3ec618081f5c576bc05..232499fbf1295fd54e2b0904e1d184553b9c826d 100644 (file)
@@ -96,13 +96,6 @@ void Instantiate::addRewriter(InstantiationRewriter* ir)
   d_instRewrite.push_back(ir);
 }
 
-bool Instantiate::addInstantiation(
-    Node q, InstMatch& m, bool mkRep, bool modEq, bool doVts)
-{
-  Assert(q[0].getNumChildren() == m.d_vals.size());
-  return addInstantiation(q, m.d_vals, mkRep, modEq, doVts);
-}
-
 bool Instantiate::addInstantiation(
     Node q, std::vector<Node>& terms, bool mkRep, bool modEq, bool doVts)
 {
@@ -142,7 +135,7 @@ bool Instantiate::addInstantiation(
     }
 #ifdef CVC4_ASSERTIONS
     bool bad_inst = false;
-    if (quantifiers::TermUtil::containsUninterpretedConstant(terms[i]))
+    if (TermUtil::containsUninterpretedConstant(terms[i]))
     {
       Trace("inst") << "***& inst contains uninterpreted constant : "
                     << terms[i] << std::endl;
@@ -157,7 +150,7 @@ bool Instantiate::addInstantiation(
     }
     else if (options::cegqi())
     {
-      Node icf = quantifiers::TermUtil::getInstConstAttr(terms[i]);
+      Node icf = TermUtil::getInstConstAttr(terms[i]);
       if (!icf.isNull())
       {
         if (icf == q)
@@ -254,7 +247,7 @@ bool Instantiate::addInstantiation(
   Node body = getInstantiation(q, d_qreg.d_vars[q], terms, doVts, pfTmp.get());
   Node orig_body = body;
   // now preprocess, storing the trust node for the rewrite
-  TrustNode tpBody = quantifiers::QuantifiersRewriter::preprocess(body, true);
+  TrustNode tpBody = QuantifiersRewriter::preprocess(body, true);
   if (!tpBody.isNull())
   {
     Assert(tpBody.getKind() == TrustNodeKind::REWRITE);
@@ -462,13 +455,6 @@ Node Instantiate::getInstantiation(Node q,
   return body;
 }
 
-Node Instantiate::getInstantiation(Node q, InstMatch& m, bool doVts)
-{
-  Assert(d_qreg.d_vars.find(q) != d_qreg.d_vars.end());
-  Assert(m.d_vals.size() == q[0].getNumChildren());
-  return getInstantiation(q, d_qreg.d_vars[q], m.d_vals, doVts);
-}
-
 Node Instantiate::getInstantiation(Node q, std::vector<Node>& terms, bool doVts)
 {
   Assert(d_qreg.d_vars.find(q) != d_qreg.d_vars.end());
index 4188311ec32dd50699ef99de0ec0737017db57ee..c9911785fb722e0d186bbe8de535c246c5a75b92 100644 (file)
@@ -120,7 +120,7 @@ class Instantiate : public QuantifiersUtil
   /** do instantiation specified by m
    *
    * This function returns true if the instantiation lemma for quantified
-   * formula q for the substitution specified by m is successfully enqueued
+   * formula q for the substitution specified by terms is successfully enqueued
    * via a call to QuantifiersInferenceManager::addPendingLemma.
    *   mkRep : whether to take the representatives of the terms in the range of
    *           the substitution m,
@@ -141,26 +141,11 @@ class Instantiate : public QuantifiersUtil
    * (5) The instantiation lemma is a duplicate of previously added lemma.
    *
    */
-  bool addInstantiation(Node q,
-                        InstMatch& m,
-                        bool mkRep = false,
-                        bool modEq = false,
-                        bool doVts = false);
-  /** add instantiation
-   *
-   * Same as above, but the substitution we are considering maps the variables
-   * of q to the vector terms, in order.
-   */
   bool addInstantiation(Node q,
                         std::vector<Node>& terms,
                         bool mkRep = false,
                         bool modEq = false,
                         bool doVts = false);
-  /** remove pending instantiation
-   *
-   * Removes the instantiation lemma lem from the instantiation trie.
-   */
-  bool removeInstantiation(Node q, Node lem, std::vector<Node>& terms);
   /** record instantiation
    *
    * Explicitly record that q has been instantiated with terms. This is the
@@ -194,11 +179,6 @@ class Instantiate : public QuantifiersUtil
                         std::vector<Node>& terms,
                         bool doVts = false,
                         LazyCDProof* pf = nullptr);
-  /** get instantiation
-   *
-   * Same as above, but with vars/terms specified by InstMatch m.
-   */
-  Node getInstantiation(Node q, InstMatch& m, bool doVts = false);
   /** get instantiation
    *
    * Same as above but with vars equal to the bound variables of q.