10 #include "limboole/limboole.h" 31 virtual bool solve()
override;
33 virtual std::unique_ptr<DFA<char>>
constructDFA()
override;
35 virtual void setStopTrigger(
const std::chrono::seconds &timeLimit, std::atomic_bool &stopTrigger,
const bool *stopPointer)
override;
62 virtual std::unique_ptr<DFA<char>>
toDFA(std::istream &stream)
const = 0;
64 SATNonCNFMethod(
const std::set<std::string> &SpSet,
const std::set<std::string> &SmSet,
const std::set<std::string> &SSet,
const std::set<std::string> &prefixesSet,
const std::set<char> &alphabetSet,
unsigned int n);
73 std::string getInputFile()
const;
77 std::string getOutputFile()
const;
The namespace of the library.
virtual void setStopTrigger(const std::chrono::seconds &timeLimit, std::atomic_bool &stopTrigger, const bool *stopPointer) override
Sets the stop trigger for this method.
virtual std::unique_ptr< DFA< char > > toDFA(std::istream &stream) const =0
Effectively creates the DFA.
virtual bool solve() override
Solves the SAT/SMT problem induced by the method.
virtual std::string getFileName() const =0
Gives the name of the file in which the boolean formula must be written.
The base class of all passive methods.
Base class for every method that relies on a non-CNF SAT solver.
virtual std::unique_ptr< DFA< char > > constructDFA() override
Constructs the DFA induced by the variables according to the method.
virtual ~SATNonCNFMethod()
virtual bool createFormula(std::ostream &stream)=0
Creates the boolean formula (must not be in CNF) and writes it in the stream.
bool isSatisfiable() const
Reads the output of the SAT solver and checks if the formula was satisfiable or not.