libgsjj  1
Deterministic finite automata learning library
NeiderJansenMethod.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace gsjj {
7  namespace passive {
8  namespace SMT {
12  class NeiderJansenMethod : public SMTMethod, public RegisterInFactory<NeiderJansenMethod> {
13  public:
14  NeiderJansenMethod() = delete;
16 
17  static std::string getFactoryName();
18 
19  protected:
20  void createVariables() override;
21  CVC4::Expr createConstraints() override;
22  std::unique_ptr<DFA<char>> toDFA();
23 
24  NeiderJansenMethod(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);
25 
26  private:
27  typedef std::map<std::string, CVC4::Expr> prefToIntMap;
28 
29  private:
30  std::vector<CVC4::Expr> m_variables;
31  prefToIntMap m_prefixToInt;
32 
33  CVC4::Expr f, x, d;
34  CVC4::Expr zero, n;
35  CVC4::Expr intTimesIntConstructor;
36  };
37  }
38  }
39 }
The namespace of the library.
Definition: binary.h:11
The Neider and Jansen 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.
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.