libgsjj  1
Deterministic finite automata learning library
BiermannMethod.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace gsjj {
7  namespace passive {
8  namespace SMT {
14  class BiermannMethod : public SMTMethod, public RegisterInFactory<BiermannMethod> {
15  public:
16  BiermannMethod() = delete;
18 
19  static std::string getFactoryName();
20 
21  protected:
22  void createVariables() override;
23  CVC4::Expr createConstraints() override;
24  std::unique_ptr<DFA<char>> toDFA();
25 
26  BiermannMethod(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);
27 
28  private:
29  typedef std::map<std::string, CVC4::Expr> statesMap;
30 
31  private:
32  statesMap m_stateName;
33  };
34  }
35  }
36 }
The namespace of the library.
Definition: binary.h:11
The base class for every SMT-based method.
Definition: SMTMethod.h:20
Helps to register a method in the factory.
Definition: MethodFactory.h:84
void createVariables() override
Creates all needed variables for the method.
Implements the Biermann and Feldman method.
std::unique_ptr< DFA< char > > toDFA()
Effectively creates the DFA from the values of the variables in the SMT solver (see SMTMethod::m_SMTE...
CVC4::Expr createConstraints() override
Creates an unique expression describing the constraints of this method.