libgsjj  1
Deterministic finite automata learning library
HeuleVerwerCNFMethod.h
Go to the documentation of this file.
1 
7 #pragma once
8 
11 
12 namespace gsjj {
13  namespace passive {
14  namespace CNF {
18  class HeuleVerwerCNFMethod : public SATCNFMethod, public RegisterInFactory<HeuleVerwerCNFMethod> {
19  public:
20  HeuleVerwerCNFMethod() = delete;
22 
23  static std::string getFactoryName();
24 
25  protected:
26  std::map<std::pair<std::string, unsigned int>, Minisat::Var> m_xVars;
27  std::map<std::tuple<unsigned int, char, unsigned int>, Minisat::Var> m_dVars;
28  std::map<unsigned int, Minisat::Var> m_fVars;
29 
30  protected:
31  void createVariables() override;
32  void createClauses() override;
33  std::unique_ptr<DFA<char>> toDFA(const Minisat::vec<Minisat::lbool> &model) const override;
34 
35  HeuleVerwerCNFMethod(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);
36  };
37  }
38  }
39 }
std::map< unsigned int, Minisat::Var > m_fVars
The namespace of the library.
Definition: binary.h:11
void createVariables() override
Creates all needed variables for the method.
std::map< std::tuple< unsigned int, char, unsigned int >, Minisat::Var > m_dVars
std::unique_ptr< DFA< char > > toDFA(const Minisat::vec< Minisat::lbool > &model) const override
Effectively creates the DFA from the values of the variables in the given model.
std::map< std::pair< std::string, unsigned int >, Minisat::Var > m_xVars
Helps to register a method in the factory.
Definition: MethodFactory.h:84
Base class for every method that relies on a SAT solver.
Definition: SATCNFMethod.h:22
void createClauses() override
Creates all needed clauses for the method.