summaryrefslogtreecommitdiff
path: root/src/theory/booleans/theory_bool_rewriter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/booleans/theory_bool_rewriter.h')
-rw-r--r--src/theory/booleans/theory_bool_rewriter.h69
1 files changed, 67 insertions, 2 deletions
diff --git a/src/theory/booleans/theory_bool_rewriter.h b/src/theory/booleans/theory_bool_rewriter.h
index 8fc65932e..7ca77eea6 100644
--- a/src/theory/booleans/theory_bool_rewriter.h
+++ b/src/theory/booleans/theory_bool_rewriter.h
@@ -20,6 +20,7 @@
#ifndef CVC4__THEORY__BOOLEANS__THEORY_BOOL_REWRITER_H
#define CVC4__THEORY__BOOLEANS__THEORY_BOOL_REWRITER_H
+#include "theory/rewriter.h"
#include "theory/theory_rewriter.h"
namespace CVC4 {
@@ -29,9 +30,73 @@ namespace booleans {
class TheoryBoolRewriter : public TheoryRewriter
{
public:
- RewriteResponse preRewrite(TNode node) override;
- RewriteResponse postRewrite(TNode node) override;
+ void registerRewrites(Rewriter* rewriter) override;
+ RewriteResponse preRewrite(TNode n) override;
+ RewriteResponse postRewrite(TNode n) override;
+ private:
+ /**
+ * Rewrites nodes of kind `NOT`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteNot(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `OR`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteOr(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `AND`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteAnd(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `IMPLIES`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteImplies(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `EQUAL`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteEqual(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `XOR`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteXor(RewriteEnvironment* re, TNode n);
+
+ /**
+ * Rewrites nodes of kind `ITE`.
+ *
+ * @param re The rewrite environment
+ * @param n The node to rewrite
+ * @return The result of rewriting `n`
+ */
+ static RewriteResponse rewriteIte(RewriteEnvironment* re, TNode n);
}; /* class TheoryBoolRewriter */
}/* CVC4::theory::booleans namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback