docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
conjunctive_normal_form.h
Go to the documentation of this file.
1
34
35#pragma once
36
37#include <vector>
38
41
42namespace sdfg {
43namespace symbolic {
44
52class CNFException : public std::exception {
53public:
54 CNFException(const std::string& message) : message_(message) {
55 }
56 const char* what() const noexcept override {
57 return message_.c_str();
58 }
59
60private:
61 std::string message_;
62};
63
73typedef std::vector<std::vector<Condition>> CNF;
74
93
100bool is_tautology(const std::vector<symbolic::Condition>& clause);
101
102} // namespace symbolic
103} // namespace sdfg
Symbol assumptions for reasoning about bounds, constness, and evolution.
CNFException(const std::string &message)
Definition conjunctive_normal_form.h:54
const char * what() const noexcept override
Definition conjunctive_normal_form.h:56
SymEngine::RCP< const SymEngine::Boolean > Condition
Reference-counted pointer to a boolean condition expression.
Definition symbolic.h:86
Definition assumptions.h:55
std::vector< std::vector< Condition > > CNF
Conjunctive Normal Form representation.
Definition conjunctive_normal_form.h:73
bool is_tautology(const std::vector< symbolic::Condition > &clause)
Check if a disjunctive clause is a tautology.
CNF conjunctive_normal_form(const Condition cond)
Convert a condition to conjunctive normal form.
Definition analysis.h:7
Symbolic system for integer-based symbol analysis.