Rename getAntecedent to getPremises (#5754)
authormudathirmahgoub <mudathirmahgoub@gmail.com>
Fri, 8 Jan 2021 17:07:32 +0000 (11:07 -0600)
committerGitHub <noreply@github.com>
Fri, 8 Jan 2021 17:07:32 +0000 (11:07 -0600)
Changes:

renamed d_new_skolem to d_newSkolem
renamed d_ant to d_premises (antecedent is usually used with consequent, and premise is used with conclusion)

src/theory/strings/core_solver.cpp
src/theory/strings/infer_info.cpp
src/theory/strings/infer_info.h
src/theory/strings/infer_proof_cons.cpp
src/theory/strings/inference_manager.cpp
src/theory/strings/solver_state.cpp
src/theory/strings/theory_strings.cpp

index dc7b111444a0c40b3051c7f9841ea36c2f3a04c9..38396bc633e909f8978ad99621fc2ede8288db6c 100644 (file)
@@ -1484,7 +1484,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
       if (!isRev)
       {
         // add temporarily to the antecedant of iinfo.
-        NormalForm::getExplanationForPrefixEq(nfi, nfj, -1, -1, iinfo.d_ant);
+        NormalForm::getExplanationForPrefixEq(nfi, nfj, -1, -1, iinfo.d_premises);
         ProcessLoopResult plr =
             processLoop(lhsLoopIdx != -1 ? nfi : nfj,
                         lhsLoopIdx != -1 ? nfj : nfi,
@@ -1502,7 +1502,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
         }
         Assert(plr == ProcessLoopResult::SKIPPED);
         // not processing an inference here, undo changes to ant
-        iinfo.d_ant.clear();
+        iinfo.d_premises.clear();
       }
     }
 
@@ -1583,8 +1583,8 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
         if (p > 1)
         {
           NormalForm::getExplanationForPrefixEq(
-              nfc, nfnc, cIndex, ncIndex, iinfo.d_ant);
-          iinfo.d_ant.push_back(expNonEmpty);
+              nfc, nfnc, cIndex, ncIndex, iinfo.d_premises);
+          iinfo.d_premises.push_back(expNonEmpty);
           // make the conclusion
           SkolemCache* skc = d_termReg.getSkolemCache();
           Node xcv =
@@ -1593,7 +1593,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
           iinfo.d_conc = getConclusion(
               xcv, stra, PfRule::CONCAT_CPROP, isRev, skc, newSkolems);
           Assert(newSkolems.size() == 1);
-          iinfo.d_new_skolem[LENGTH_SPLIT].push_back(newSkolems[0]);
+          iinfo.d_newSkolem[LENGTH_SPLIT].push_back(newSkolems[0]);
           iinfo.d_id = Inference::SSPLIT_CST_PROP;
           iinfo.d_idRev = isRev;
           pinfer.push_back(info);
@@ -1610,10 +1610,10 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
       iinfo.d_conc = getConclusion(
           nc, nfcv[index], PfRule::CONCAT_CSPLIT, isRev, skc, newSkolems);
       NormalForm::getExplanationForPrefixEq(
-          nfi, nfj, index, index, iinfo.d_ant);
-      iinfo.d_ant.push_back(expNonEmpty);
+          nfi, nfj, index, index, iinfo.d_premises);
+      iinfo.d_premises.push_back(expNonEmpty);
       Assert(newSkolems.size() == 1);
-      iinfo.d_new_skolem[LENGTH_SPLIT].push_back(newSkolems[0]);
+      iinfo.d_newSkolem[LENGTH_SPLIT].push_back(newSkolems[0]);
       iinfo.d_id = Inference::SSPLIT_CST;
       iinfo.d_idRev = isRev;
       pinfer.push_back(info);
@@ -1681,7 +1681,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
       utils::flattenOp(AND, lenConstraint, lcVec);
     }
 
-    NormalForm::getExplanationForPrefixEq(nfi, nfj, index, index, iinfo.d_ant);
+    NormalForm::getExplanationForPrefixEq(nfi, nfj, index, index, iinfo.d_premises);
     // Add premises for x != "" ^ y != ""
     for (unsigned xory = 0; xory < 2; xory++)
     {
@@ -1709,7 +1709,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
       if (options::stringUnifiedVSpt() && !options::stringLenConc())
       {
         Assert(newSkolems.size() == 1);
-        iinfo.d_new_skolem[LENGTH_GEQ_ONE].push_back(newSkolems[0]);
+        iinfo.d_newSkolem[LENGTH_GEQ_ONE].push_back(newSkolems[0]);
       }
     }
     else if (lentTestSuccess == 0)
@@ -1727,7 +1727,7 @@ void CoreSolver::processSimpleNEq(NormalForm& nfi,
     }
     // add the length constraint(s) as the last antecedant
     Node lc = utils::mkAnd(lcVec);
-    iinfo.d_ant.push_back(lc);
+    iinfo.d_premises.push_back(lc);
     iinfo.d_idRev = isRev;
     pinfer.push_back(info);
     break;
@@ -1835,7 +1835,7 @@ CoreSolver::ProcessLoopResult CoreSolver::processLoop(NormalForm& nfi,
       Trace("strings-loop") << "Strings::Loop: tails are different."
                             << std::endl;
       d_im.sendInference(
-          iinfo.d_ant, conc, Inference::FLOOP_CONFLICT, false, true);
+          iinfo.d_premises, conc, Inference::FLOOP_CONFLICT, false, true);
       return ProcessLoopResult::CONFLICT;
     }
   }
@@ -1853,7 +1853,7 @@ CoreSolver::ProcessLoopResult CoreSolver::processLoop(NormalForm& nfi,
       if (expNonEmpty.isNull())
       {
         // no antecedants necessary
-        iinfo.d_ant.clear();
+        iinfo.d_premises.clear();
         // try to make t equal to empty to avoid loop
         iinfo.d_conc = nm->mkNode(kind::OR, split_eq, split_eq.negate());
         iinfo.d_id = Inference::LEN_SPLIT_EMP;
@@ -1861,7 +1861,7 @@ CoreSolver::ProcessLoopResult CoreSolver::processLoop(NormalForm& nfi,
       }
       else
       {
-        iinfo.d_ant.push_back(expNonEmpty);
+        iinfo.d_premises.push_back(expNonEmpty);
       }
     }
     else
index e1cdc5ec30f070660ca6541bd11fde08eb5f4e4a..15d8bbde76e4f58f7aa8e191e9a6ba6cceed4d74 100644 (file)
@@ -131,10 +131,10 @@ bool InferInfo::isFact() const
   return !atom.isConst() && atom.getKind() != kind::OR && d_noExplain.empty();
 }
 
-Node InferInfo::getAntecedent() const
+Node InferInfo::getPremises() const
 {
   // d_noExplain is a subset of d_ant
-  return utils::mkAnd(d_ant);
+  return utils::mkAnd(d_premises);
 }
 
 std::ostream& operator<<(std::ostream& out, const InferInfo& ii)
@@ -144,9 +144,9 @@ std::ostream& operator<<(std::ostream& out, const InferInfo& ii)
   {
     out << " :rev";
   }
-  if (!ii.d_ant.empty())
+  if (!ii.d_premises.empty())
   {
-    out << " :ant (" << ii.d_ant << ")";
+    out << " :ant (" << ii.d_premises << ")";
   }
   if (!ii.d_noExplain.empty())
   {
index 70048b2fae5b180d9aa446f3298ce2b918f28fab..b586609ada73a85c6b31d48cf64d1938bb00fdb7 100644 (file)
@@ -355,7 +355,7 @@ class InferenceManager;
  * send a fact, lemma, or conflict that is waiting to be asserted to the
  * equality engine or sent on the output channel.
  *
- * For the sake of proofs, the antecedents in InferInfo have a particular
+ * For the sake of proofs, the premises in InferInfo have a particular
  * ordering for many of the core strings rules, which is expected by
  * InferProofCons for constructing proofs of F_CONST, F_UNIFY, N_CONST, etc.
  * which apply to a pair of string terms t and s. At a high level, the ordering
@@ -365,7 +365,7 @@ class InferenceManager;
  * (3) (optionally) a length constraint.
  * For example, say we have:
  *   { x ++ y ++ v1 = z ++ w ++ v2, x = z ++ u, u = "", len(y) = len(w) }
- * We can conclude y = w by the N_UNIFY rule from the left side. The antecedent
+ * We can conclude y = w by the N_UNIFY rule from the left side. The premise
  * has the following form:
  * - (prefix up to y/w equal) x = z ++ u, u = "",
  * - (main equality) x ++ y ++ v1 = z ++ w ++ v2,
@@ -387,15 +387,15 @@ class InferInfo : public TheoryInference
   /** The conclusion */
   Node d_conc;
   /**
-   * The antecedent(s) of the inference, interpreted conjunctively. These are
+   * The premise(s) of the inference, interpreted conjunctively. These are
    * literals that currently hold in the equality engine.
    */
-  std::vector<Node> d_ant;
+  std::vector<Node> d_premises;
   /**
-   * The "new literal" antecedent(s) of the inference, interpreted
+   * The "new literal" premise(s) of the inference, interpreted
    * conjunctively. These are literals that were needed to show the conclusion
    * but do not currently hold in the equality engine. These should be a subset
-   * of d_ant. In other words, antecedents that are not explained are stored
+   * of d_ant. In other words, premises that are not explained are stored
    * in *both* d_ant and d_noExplain.
    */
   std::vector<Node> d_noExplain;
@@ -404,22 +404,22 @@ class InferInfo : public TheoryInference
    * are mapped to by a length status, indicating the length constraint that
    * can be assumed for them.
    */
-  std::map<LengthStatus, std::vector<Node> > d_new_skolem;
+  std::map<LengthStatus, std::vector<Node> > d_newSkolem;
   /**  Is this infer info trivial? True if d_conc is true. */
   bool isTrivial() const;
   /**
    * Does this infer info correspond to a conflict? True if d_conc is false
-   * and it has no new antecedents (d_noExplain).
+   * and it has no new premises (d_noExplain).
    */
   bool isConflict() const;
   /**
    * Does this infer info correspond to a "fact". A fact is an inference whose
    * conclusion should be added as an equality or predicate to the equality
-   * engine with no new external antecedents (d_noExplain).
+   * engine with no new external premises (d_noExplain).
    */
   bool isFact() const;
-  /** Get antecedent */
-  Node getAntecedent() const;
+  /** Get premises */
+  Node getPremises() const;
 };
 
 /**
index 902b906151fa358c110ccff6b3f2339a179658f9..4df7ca36a527e71d76db8c4fcc89d3b1aece0c94 100644 (file)
@@ -987,7 +987,7 @@ std::shared_ptr<ProofNode> InferProofCons::getProofFor(Node fact)
   TheoryProofStepBuffer psb(d_pnm->getChecker());
   std::shared_ptr<InferInfo> ii = (*it).second;
   // run the conversion
-  convert(ii->d_id, ii->d_idRev, ii->d_conc, ii->d_ant, ps, psb, useBuffer);
+  convert(ii->d_id, ii->d_idRev, ii->d_conc, ii->d_premises, ps, psb, useBuffer);
   // make the proof based on the step or the buffer
   if (useBuffer)
   {
index b982f24a113d82a48118a298ee72fdfb02add544..05937cf56bd75d443d8f4ef9030614d1f3360ab1 100644 (file)
@@ -143,7 +143,7 @@ bool InferenceManager::sendInference(const std::vector<Node>& exp,
   ii.d_id = infer;
   ii.d_idRev = isRev;
   ii.d_conc = eq;
-  ii.d_ant = exp;
+  ii.d_premises = exp;
   ii.d_noExplain = noExplain;
   sendInference(ii, asLemma);
   return true;
@@ -170,10 +170,9 @@ void InferenceManager::sendInference(InferInfo& ii, bool asLemma)
   if (ii.isConflict())
   {
     Trace("strings-infer-debug") << "...as conflict" << std::endl;
-    Trace("strings-lemma") << "Strings::Conflict: " << ii.d_ant << " by "
+    Trace("strings-lemma") << "Strings::Conflict: " << ii.d_premises << " by "
                            << ii.d_id << std::endl;
-    Trace("strings-conflict") << "CONFLICT: inference conflict " << ii.d_ant
-                              << " by " << ii.d_id << std::endl;
+    Trace("strings-conflict") << "CONFLICT: inference conflict " << ii.d_premises << " by " << ii.d_id << std::endl;
     ++(d_statistics.d_conflictsInfer);
     // process the conflict immediately
     processConflict(ii);
@@ -190,7 +189,7 @@ void InferenceManager::sendInference(InferInfo& ii, bool asLemma)
     std::vector<Node> vars;
     std::vector<Node> subs;
     std::vector<Node> unproc;
-    for (const Node& ac : ii.d_ant)
+    for (const Node& ac : ii.d_premises)
     {
       d_termReg.inferSubstitutionProxyVars(ac, vars, subs, unproc);
     }
@@ -306,7 +305,7 @@ void InferenceManager::processConflict(const InferInfo& ii)
     d_ipc->notifyFact(ii);
   }
   // make the trust node
-  TrustNode tconf = mkConflictExp(ii.d_ant, d_ipc.get());
+  TrustNode tconf = mkConflictExp(ii.d_premises, d_ipc.get());
   Assert(tconf.getKind() == TrustNodeKind::CONFLICT);
   Trace("strings-assert") << "(assert (not " << tconf.getNode()
                           << ")) ; conflict " << ii.d_id << std::endl;
@@ -329,13 +328,13 @@ bool InferenceManager::processFact(InferInfo& ii)
   {
     facts.push_back(ii.d_conc);
   }
-  Trace("strings-assert") << "(assert (=> " << ii.getAntecedent() << " "
+  Trace("strings-assert") << "(assert (=> " << ii.getPremises() << " "
                           << ii.d_conc << ")) ; fact " << ii.d_id << std::endl;
   Trace("strings-lemma") << "Strings::Fact: " << ii.d_conc << " from "
-                         << ii.getAntecedent() << " by " << ii.d_id
+                         << ii.getPremises() << " by " << ii.d_id
                          << std::endl;
   std::vector<Node> exp;
-  for (const Node& ec : ii.d_ant)
+  for (const Node& ec : ii.d_premises)
   {
     utils::flattenOp(AND, ec, exp);
   }
@@ -378,7 +377,7 @@ bool InferenceManager::processLemma(InferInfo& ii)
   Assert(!ii.isConflict());
   // set up the explanation and no-explanation
   std::vector<Node> exp;
-  for (const Node& ec : ii.d_ant)
+  for (const Node& ec : ii.d_premises)
   {
     utils::flattenOp(AND, ec, exp);
   }
@@ -413,7 +412,7 @@ bool InferenceManager::processLemma(InferInfo& ii)
   // (lazily), since this is the moment when we have decided to process the
   // inference.
   for (const std::pair<const LengthStatus, std::vector<Node> >& sks :
-       ii.d_new_skolem)
+       ii.d_newSkolem)
   {
     for (const Node& n : sks.second)
     {
index 89d77b033c678f17245f0dbb6ecd5dc4b8070066..d9fac671884229385bd399d6b55f0e4ccda0c3ce 100644 (file)
@@ -237,7 +237,7 @@ void SolverState::setPendingPrefixConflictWhen(Node conf)
   InferInfo iiPrefixConf;
   iiPrefixConf.d_id = Inference::PREFIX_CONFLICT;
   iiPrefixConf.d_conc = d_false;
-  utils::flattenOp(AND, conf, iiPrefixConf.d_ant);
+  utils::flattenOp(AND, conf, iiPrefixConf.d_premises);
   setPendingConflict(iiPrefixConf);
 }
 
index 6187233e0d35789aafd0d71b8e3cf0e885c44350..dbe03afee79782e9825d4b10a30ada68c2f9b209 100644 (file)
@@ -631,9 +631,9 @@ void TheoryStrings::notifyFact(TNode atom,
     InferInfo iiPendingConf;
     d_state.getPendingConflict(iiPendingConf);
     Trace("strings-pending")
-        << "Process pending conflict " << iiPendingConf.d_ant << std::endl;
+        << "Process pending conflict " << iiPendingConf.d_premises << std::endl;
     Trace("strings-conflict")
-        << "CONFLICT: Eager : " << iiPendingConf.d_ant << std::endl;
+        << "CONFLICT: Eager : " << iiPendingConf.d_premises << std::endl;
     ++(d_statistics.d_conflictsEager);
     // call the inference manager to send the conflict
     d_im.processConflict(iiPendingConf);