Minor fixes and improvement for sygus to builtin. (#2306)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 16 Aug 2018 21:57:50 +0000 (16:57 -0500)
committerGitHub <noreply@github.com>
Thu, 16 Aug 2018 21:57:50 +0000 (16:57 -0500)
src/theory/datatypes/datatypes_rewriter.cpp
src/theory/datatypes/datatypes_rewriter.h

index 8366fe4e1f74a2be0a5d99b407a06e8e90e08ca0..a8e5d74b6f96dbbd515f55387104b93a140e4cd5 100644 (file)
@@ -186,7 +186,7 @@ RewriteResponse DatatypesRewriter::postRewrite(TNode in)
   return RewriteResponse(REWRITE_DONE, in);
 }
 
-Kind getOperatorKindForSygusBuiltin(Node op)
+Kind DatatypesRewriter::getOperatorKindForSygusBuiltin(Node op)
 {
   Assert(op.getKind() != BUILTIN);
   if (op.getKind() == LAMBDA)
@@ -212,7 +212,7 @@ Kind getOperatorKindForSygusBuiltin(Node op)
   {
     return APPLY_UF;
   }
-  return NodeManager::operatorToKind(op);
+  return UNDEFINED_KIND;
 }
 
 Node DatatypesRewriter::mkSygusTerm(const Datatype& dt,
index 7d91544e12c6965ba73d1273436de11249e4cd2f..a6c95b89316d1f3ffbdc9fe365e588d7171e9885 100644 (file)
@@ -121,6 +121,13 @@ public:
   *   C( x, y ) and z
   */
  static bool checkClash(Node n1, Node n2, std::vector<Node>& rew);
+ /** get operator kind for sygus builtin
+  *
+  * This returns the Kind corresponding to applications of the operator op
+  * when building the builtin version of sygus terms. This is used by the
+  * function mkSygusTerm.
+  */
+ static Kind getOperatorKindForSygusBuiltin(Node op);
  /** make sygus term
   *
   * This function returns a builtin term f( children[0], ..., children[n] )