From 0a51a6cb748fd8df4fa821d34fed3053fdde5769 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 12 Jan 2015 13:09:17 +0100
Subject: [PATCH] rename InputSymbols to InputAlphabet and similairly

---
 .../convert/ToRegExpStateElimination.cpp      |  2 +-
 .../determinize/DeterminizeIDPDAPart.cxx      | 12 ++--
 .../determinize/DeterminizeNFAPart.cxx        | 20 +++---
 .../determinize/DeterminizeRHDPDAPart.cxx     |  8 +--
 .../determinize/DeterminizeVPAPart.cxx        | 16 ++---
 .../simplify/EpsilonRemoverIncoming.cpp       |  7 +-
 .../simplify/EpsilonRemoverOutgoing.cpp       | 12 +---
 alib2algo/src/automaton/simplify/Minimize.cpp | 31 ++++----
 .../src/automaton/simplify/Normalize.cpp      |  5 +-
 alib2algo/src/automaton/simplify/Rename.cpp   |  4 +-
 .../automaton/simplify/SingleInitialState.cpp |  4 +-
 .../src/automaton/transform/PDAToRHPDA.cpp    | 11 +--
 .../src/automaton/transform/RHPDAToPDA.cpp    | 10 ++-
 .../src/automaton/transform/ReverseFSM.cpp    | 18 ++---
 alib2algo/src/grammar/convert/ToAutomaton.cpp |  4 +-
 .../regexp/convert/ToAutomatonDerivation.cpp  |  2 +-
 .../regexp/convert/ToAutomatonGlushkov.cpp    |  3 +-
 .../regexp/convert/ToAutomatonThompson.cpp    |  2 +-
 .../exact/ExactMatchingAutomaton.cpp          |  2 +-
 .../simplify/FSMSingleInitialStateTest.cpp    |  4 +-
 .../automaton/simplify/FSMTotalTest.cpp       |  2 +-
 .../transform/AutomataConcatenationTest.cpp   |  6 +-
 .../automaton/transform/AutomataUnionTest.cpp |  6 +-
 .../transform/AutomatonIterationTest.cpp      |  4 +-
 .../src/automaton/AutomatonFromXMLParser.cpp  | 72 +++++++++----------
 alib2data/src/automaton/FSM/CompactNFA.cpp    |  4 +-
 .../FSM/FiniteAutomatonFromStringParser.cpp   |  4 +-
 .../common/BlankSymbolInputTapeAlphabet.cpp   |  4 +-
 .../common/BlankSymbolInputTapeAlphabet.h     |  4 +-
 .../common/CallReturnLocalInputAlphabet.cpp   |  6 +-
 .../common/CallReturnLocalInputAlphabet.h     |  6 +-
 .../src/automaton/common/InputAlphabet.cpp    |  2 +-
 .../src/automaton/common/InputAlphabet.h      |  2 +-
 .../common/PushdownStoreAlphabet.cpp          |  2 +-
 .../automaton/common/PushdownStoreAlphabet.h  |  2 +-
 .../test-src/automaton/AutomatonTest.cpp      | 10 +--
 36 files changed, 147 insertions(+), 166 deletions(-)

diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
index 45d5410011..fad2bcc868 100644
--- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
+++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
@@ -59,7 +59,7 @@ automaton::ExtendedNFA ToRegExpStateElimination::eliminateState(const automaton:
 	automaton::ExtendedNFA newAutomaton(extendedAutomaton.getInitialState()); // sure that q is neither initial nor final (follows from step 2 - extending ExtendedNFA)
 	newAutomaton.setStates(extendedAutomaton.getStates());
 	newAutomaton.removeState(q); // preserve all states but q (the one to eliminate)
-	newAutomaton.setInputSymbols(extendedAutomaton.getInputAlphabet());
+	newAutomaton.setInputAlphabet(extendedAutomaton.getInputAlphabet());
 	newAutomaton.setFinalStates(extendedAutomaton.getFinalStates());
 
 	for(const auto& p: newAutomaton.getStates())
diff --git a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
index 93624fd4cb..798254e0eb 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx
@@ -19,13 +19,13 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa)
 	// 1, 4
 	automaton::State initialState(createDFAState({nfa.getInitialState()}));
 	automaton::DPDA res(initialState, nfa.getInitialSymbol());
-	res.setInputSymbols(nfa.getInputAlphabet());
-	res.setStackSymbols(nfa.getStackAlphabet());
-	
+	res.setInputAlphabet(nfa.getInputAlphabet());
+	res.setStackAlphabet(nfa.getStackAlphabet());
+
 	// 2
 	std::deque<automaton::State> todo;
 	todo.push_back(initialState);
-	
+
 	do {
 		// 3a, c
 		automaton::State state = todo.front();
@@ -52,7 +52,7 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa)
 			if(!existed) todo.push_back(dfaState);
 		}
 	} while(!todo.empty());
-	
+
 	// 5
 	for (const auto& dfaState : res.getStates()) {
 		std::set<automaton::State> nfaStates = recreateNFAStates(dfaState);
@@ -60,7 +60,7 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa)
 			res.addFinalState(dfaState);
 		}
 	}
-	
+
 	return res;
 }
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx
index e156c3c8f1..09ed59fabd 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx
@@ -20,12 +20,12 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n
 	// 1, 4
 	automaton::State initialState(createDFAState(nfa.getInitialStates()));
 	automaton::DFA res(initialState);
-	res.setInputSymbols(nfa.getInputAlphabet());
-	
+	res.setInputAlphabet(nfa.getInputAlphabet());
+
 	// 2
 	std::deque<automaton::State> todo;
 	todo.push_back(initialState);
-	
+
 	do {
 		// 3a, c
 		automaton::State state = todo.front();
@@ -51,7 +51,7 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n
 			if(!existed) todo.push_back(dfaState);
 		}
 	} while(!todo.empty());
-	
+
 	// 5
 	for (const auto& dfaState : res.getStates()) {
 		std::set<automaton::State> nfaStates = recreateNFAStates(dfaState);
@@ -59,7 +59,7 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n
 			res.addFinalState(dfaState);
 		}
 	}
-	
+
 	return res;
 }
 
@@ -67,12 +67,12 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) {
 	// 1, 4
 	automaton::State initialState(createDFAState({nfa.getInitialState()}));
 	automaton::DFA res(initialState);
-	res.setInputSymbols(nfa.getInputAlphabet());
-	
+	res.setInputAlphabet(nfa.getInputAlphabet());
+
 	// 2
 	std::deque<automaton::State> todo;
 	todo.push_back(initialState);
-	
+
 	do {
 		// 3a, c
 		automaton::State state = todo.front();
@@ -98,7 +98,7 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) {
 			if(!existed) todo.push_back(dfaState);
 		}
 	} while(!todo.empty());
-	
+
 	// 5
 	for (const auto& dfaState : res.getStates()) {
 		std::set<automaton::State> nfaStates = recreateNFAStates(dfaState);
@@ -106,7 +106,7 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) {
 			res.addFinalState(dfaState);
 		}
 	}
-	
+
 	return res;
 }
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
index fd928679f3..54ba103d19 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
@@ -24,7 +24,7 @@ void addRetTransition(const automaton::State& from, const std::variant<string::E
 	deterministic.addState(from);
 	deterministic.addState(to);
 	deterministic.addStackSymbol(dvpdaSymbol);
-	
+
 	deterministic.addReturnTransition(from, input, dvpdaSymbol, to);
 }
 
@@ -156,7 +156,7 @@ void local(const automaton::State& state, const std::variant<string::Epsilon, al
 			}
 		}
 	}
-	
+
 	addLocalTransition(state, input, automaton::State(packToStateLabel(std::move(S1))), deterministic);
 }
 
@@ -198,7 +198,7 @@ automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automa
 	label::Label initialLabel = packToStateLabel(createIdentity(retrieveLabels(n.getInitialStates())));
 
 	automaton::RealTimeHeightDeterministicDPDA d(automaton::State(initialLabel), n.getBottomOfTheStackSymbol());
-	d.setInputSymbols(n.getInputAlphabet());
+	d.setInputAlphabet(n.getInputAlphabet());
 
 	for(;;) {
 		std::set<std::pair<automaton::State, alphabet::Symbol>> stateSymbols = existsDirtyStateSymbol(d, n);
@@ -243,7 +243,7 @@ automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automa
 			d.addFinalState(state);
 		}
 	}
-	
+
 	return d;
 }
 
diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
index 8c323c4271..0398cc35ff 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
@@ -23,7 +23,7 @@ void addRetTransition(const automaton::State& from, const alphabet::Symbol& inpu
 	deterministic.addState(from);
 	deterministic.addState(to);
 	deterministic.addStackSymbol(dvpdaSymbol);
-	
+
 	deterministic.addReturnTransition(from, input, dvpdaSymbol, to);
 }
 
@@ -155,18 +155,18 @@ void local(const automaton::State& state, const alphabet::Symbol& input, const a
 			}
 		}
 	}
-	
+
 	addLocalTransition(state, input, automaton::State(packToStateLabel(std::move(S1))), deterministic);
 }
 
 automaton::VisiblyPushdownDPDA Determinize::determinize(const automaton::VisiblyPushdownNPDA& n) {
 	label::Label initialLabel = packToStateLabel(createIdentity(retrieveLabels(n.getInitialStates())));
-	
+
 	automaton::VisiblyPushdownDPDA d(automaton::State(initialLabel), n.getBottomOfTheStackSymbol());
-	d.setCallInputSymbols(n.getCallInputAlphabet());
-	d.setLocalInputSymbols(n.getLocalInputAlphabet());
-	d.setReturnInputSymbols(n.getReturnInputAlphabet());
-	
+	d.setCallInputAlphabet(n.getCallInputAlphabet());
+	d.setLocalInputAlphabet(n.getLocalInputAlphabet());
+	d.setReturnInputAlphabet(n.getReturnInputAlphabet());
+
 	for(;;) {
 		std::set<std::pair<automaton::State, alphabet::Symbol>> stateSymbols = existsDirtyStateSymbol(d, n);
 		std::set<automaton::State> states = existsDirtyState(d, n);
@@ -201,7 +201,7 @@ automaton::VisiblyPushdownDPDA Determinize::determinize(const automaton::Visibly
 			d.addFinalState(state);
 		}
 	}
-	
+
 	return d;
 }
 
diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp
index d84b316000..fc35d24f16 100644
--- a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp
+++ b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp
@@ -31,11 +31,8 @@ automaton::NFA EpsilonRemoverIncoming::remove(const automaton::NFA& origFSM)
 automaton::NFA EpsilonRemoverIncoming::remove( const automaton::EpsilonNFA & origFSM ) {
 	automaton::NFA fsm(origFSM.getInitialState());
 
-	for( const auto & state : origFSM.getStates() )
-		fsm.addState( state );
-
-	for( const auto & symbol : origFSM.getInputAlphabet() )
-		fsm.addInputSymbol( symbol );
+	fsm.setStates( origFSM.getStates() );
+	fsm.setInputAlphabet( origFSM.getInputAlphabet() );
 
 	/**
 	 * Step 1 from Melichar 2.41
diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp
index 888552a0fd..d91a376a0f 100644
--- a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp
+++ b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp
@@ -30,15 +30,9 @@ automaton::NFA EpsilonRemoverOutgoing::remove(const automaton::NFA& origFSM)
 
 automaton::MultiInitialStateNFA EpsilonRemoverOutgoing::remove( const automaton::EpsilonNFA & origFSM ) {
 	automaton::MultiInitialStateNFA fsm;
-
-	for( const auto & state : origFSM.getStates() )
-		fsm.addState( state );
-
-	for( const auto & state : origFSM.getFinalStates() )
-		fsm.addFinalState( state );
-
-	for( const auto & symbol : origFSM.getInputAlphabet() )
-		fsm.addInputSymbol( symbol );
+	fsm.setStates( origFSM.getStates() );
+	fsm.setFinalStates( origFSM.getFinalStates() );
+	fsm.setInputAlphabet( origFSM.getInputAlphabet() );
 
 	/**
 	 * Step 1 from Melichar 2.41
diff --git a/alib2algo/src/automaton/simplify/Minimize.cpp b/alib2algo/src/automaton/simplify/Minimize.cpp
index 6c01ed6541..9029c723b2 100644
--- a/alib2algo/src/automaton/simplify/Minimize.cpp
+++ b/alib2algo/src/automaton/simplify/Minimize.cpp
@@ -33,7 +33,7 @@ automaton::Automaton Minimize::minimize(const automaton::Automaton& automaton) {
 automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 	if(dfa.getFinalStates().size() == 0) {
 		automaton::DFA result(automaton::State(0));
-		result.setInputSymbols(dfa.getInputAlphabet());
+		result.setInputAlphabet(dfa.getInputAlphabet());
 		return result;
 	}
 
@@ -42,7 +42,7 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 	for(std::set<automaton::State>::const_iterator iter = dfa.getStates().begin(); iter != dfa.getStates().end(); iter++) {
 		refactor.insert(std::pair<automaton::State, std::map<alphabet::Symbol, automaton::State> >(*iter, std::map<alphabet::Symbol, automaton::State>()));
 	}
-	
+
 	for(std::map<std::pair<automaton::State, alphabet::Symbol>, automaton::State>::const_iterator iter = dfa.getTransitions().begin(); iter != dfa.getTransitions().end(); iter++) {
 		refactor[iter->first.first].insert(std::pair<alphabet::Symbol, automaton::State>(iter->first.second, iter->second));
 	}
@@ -52,7 +52,7 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 
 	std::map<automaton::State, automaton::State> toEquvivalentStates2;
 	std::map<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> > minimizedTransitionFunction2;
-	
+
 	for(auto iter = dfa.getStates().begin(); iter != dfa.getStates().end(); iter++) {
 		if(dfa.getFinalStates().count(*iter) == 0) { // not a final state
 			toEquvivalentStates2.insert(std::pair<automaton::State, automaton::State>(*iter, automaton::State(0)));
@@ -68,22 +68,22 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 		for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) {
 			transitionFunction.insert(std::pair<alphabet::Symbol, automaton::State>(iter2->first, toEquvivalentStates2.find(iter2->second)->second));
 		}
-		
+
 		std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > > key(from, transitionFunction);
-		
+
 		if(minimizedTransitionFunction2.find(key) == minimizedTransitionFunction2.end()) {
 			minimizedTransitionFunction2.insert(std::pair<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> >(key, std::set<automaton::State>()));
 		}
 		minimizedTransitionFunction2[key].insert(iter->first);
 	}
-	
+
 	do {
 		toEquvivalentStates1 = toEquvivalentStates2;
 		minimizedTransitionFunction1 = minimizedTransitionFunction2;
 
 		toEquvivalentStates2.clear();
 		minimizedTransitionFunction2.clear();
-		
+
 		int number = 0;
 		for(auto iter = minimizedTransitionFunction1.begin(); iter != minimizedTransitionFunction1.end(); iter++) {
 			for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) {
@@ -95,19 +95,18 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 		for(auto iter = refactor.begin(); iter != refactor.end(); iter++) {
 			automaton::State from = toEquvivalentStates2.find(iter->first)->second;
 			std::set<std::pair<alphabet::Symbol, automaton::State> > transitionFunction;
-			
+
 			for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) {
 				transitionFunction.insert(std::pair<alphabet::Symbol, automaton::State>(iter2->first, toEquvivalentStates2.find(iter2->second)->second));
 			}
-			
+
 			std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > > key(from, transitionFunction);
-			
+
 			if(minimizedTransitionFunction2.find(key) == minimizedTransitionFunction2.end()) {
 				minimizedTransitionFunction2.insert(std::pair<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> >(key, std::set<automaton::State>()));
 			}
 
 			minimizedTransitionFunction2[key].insert(iter->first);
-			
 		}
 
 	} while(minimizedTransitionFunction1.size() != minimizedTransitionFunction2.size());
@@ -122,23 +121,21 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) {
 
 	automaton::DFA result(*initialState);
 
-	for(auto iter = dfa.getInputAlphabet().begin(); iter != dfa.getInputAlphabet().end(); iter++) {
-		result.addInputSymbol(*iter);
-	}
-	
+	result.setInputAlphabet(dfa.getInputAlphabet());
+
 	for(auto iter = minimizedTransitionFunction2.begin(); iter != minimizedTransitionFunction2.end(); iter++) {
 		result.addState(iter->first.first);
 		if(dfa.getFinalStates().find(*(iter->second.begin())) != dfa.getFinalStates().end()) {
 			result.addFinalState(iter->first.first);
 		}
 	}
-	
+
 	for(auto iter = minimizedTransitionFunction2.begin(); iter != minimizedTransitionFunction2.end(); iter++) {
 		for(auto iter2 = iter->first.second.begin(); iter2 != iter->first.second.end(); iter2++) {
 			result.addTransition(iter->first.first, iter2->first, iter2->second);
 		}
 	}
-	
+
 	return result;
 }
 
diff --git a/alib2algo/src/automaton/simplify/Normalize.cpp b/alib2algo/src/automaton/simplify/Normalize.cpp
index 37bc52557b..c49bc62afe 100644
--- a/alib2algo/src/automaton/simplify/Normalize.cpp
+++ b/alib2algo/src/automaton/simplify/Normalize.cpp
@@ -61,7 +61,7 @@ automaton::DFA Normalize::normalize(const automaton::DFA& fsm) {
 
 	automaton::DFA result(automaton::State(normalizationData.find(fsm.getInitialState())->second));
 
-	result.setInputSymbols(fsm.getInputAlphabet());
+	result.setInputAlphabet(fsm.getInputAlphabet());
 
 	for(auto iter = fsm.getStates().begin(); iter != fsm.getStates().end(); iter++) {
 		result.addState(automaton::State(normalizationData.find(*iter)->second));
@@ -130,8 +130,7 @@ automaton::DPDA Normalize::normalize(const automaton::DPDA& pda) {
 	}
 
 	automaton::DPDA result(automaton::State(normalizationDataState.find(pda.getInitialState())->second), alphabet::symbolFrom(normalizationDataSymbol.find(pda.getInitialSymbol())->second));
-
-	result.setInputSymbols(pda.getInputAlphabet());
+	result.setInputAlphabet(pda.getInputAlphabet());
 
 	for(auto iter = pda.getStackAlphabet().begin(); iter != pda.getStackAlphabet().end(); iter++) {
 		result.addStackSymbol(alphabet::symbolFrom(normalizationDataSymbol.find(*iter)->second));
diff --git a/alib2algo/src/automaton/simplify/Rename.cpp b/alib2algo/src/automaton/simplify/Rename.cpp
index 5885a9f5b9..c466d2e29d 100644
--- a/alib2algo/src/automaton/simplify/Rename.cpp
+++ b/alib2algo/src/automaton/simplify/Rename.cpp
@@ -42,7 +42,7 @@ automaton::DFA Rename::rename(const automaton::DFA& fsm) {
 
 	automaton::DFA result(automaton::State(renamingData.find(fsm.getInitialState())->second));
 
-	result.setInputSymbols(fsm.getInputAlphabet());
+	result.setInputAlphabet(fsm.getInputAlphabet());
 
 	for(auto iter = fsm.getStates().begin(); iter != fsm.getStates().end(); iter++) {
 		result.addState(automaton::State(renamingData.find(*iter)->second));
@@ -76,7 +76,7 @@ automaton::DPDA Rename::rename(const automaton::DPDA& pda) {
 
 	automaton::DPDA result(automaton::State(renamingDataState.find(pda.getInitialState())->second), alphabet::symbolFrom(renamingDataSymbol.find(pda.getInitialSymbol())->second));
 
-	result.setInputSymbols(pda.getInputAlphabet());
+	result.setInputAlphabet(pda.getInputAlphabet());
 
 	for(auto iter = pda.getStackAlphabet().begin(); iter != pda.getStackAlphabet().end(); iter++) {
 		result.addStackSymbol(alphabet::symbolFrom(renamingDataSymbol.find(*iter)->second));
diff --git a/alib2algo/src/automaton/simplify/SingleInitialState.cpp b/alib2algo/src/automaton/simplify/SingleInitialState.cpp
index 17db0fc17f..7b21af79a2 100644
--- a/alib2algo/src/automaton/simplify/SingleInitialState.cpp
+++ b/alib2algo/src/automaton/simplify/SingleInitialState.cpp
@@ -41,11 +41,11 @@ automaton::NFA SingleInitialState::convert(const automaton::MultiInitialStateNFA
 	automaton::State q0(label::Label(label::LabelSetLabel(std::move(labelSet))));
 
 	automaton::NFA res(q0);
-	res.setInputSymbols(automaton.getInputAlphabet());
+	res.setInputAlphabet(automaton.getInputAlphabet());
 	for(const auto& q : automaton.getStates())
 		res.addState(q);
 
-	// step 2 
+	// step 2
 	for(const auto& q : automaton.getInitialStates()) {
 		for(const auto& kv: automaton.getTransitionsFromState(q)) {
 			for(const auto& to : kv.second) {
diff --git a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp
index 8c91f906ff..6f5452bcc4 100644
--- a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp
+++ b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp
@@ -34,12 +34,13 @@ automaton::RealTimeHeightDeterministicDPDA PDAToRHPDA::convert( const automaton:
 
 	RealTimeHeightDeterministicDPDA res(q0, alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } );
 
-	res.setInputSymbols(pda.getInputAlphabet());
-	res.setStates(pda.getStates());
+	res.setInputAlphabet(pda.getInputAlphabet());
+	for(const auto& state : pda.getStates())
+		res.addState(state);
 	res.setFinalStates(pda.getFinalStates());
 	std::set<alphabet::Symbol> stackSymbols = pda.getStackAlphabet();
 	stackSymbols.insert( alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } );
-	res.setStackSymbols(stackSymbols);
+	res.setStackAlphabet(stackSymbols);
 
 	res.addCallTransition(q0, pda.getInitialState(), pda.getInitialSymbol());
 
@@ -95,12 +96,12 @@ automaton::RealTimeHeightDeterministicDPDA PDAToRHPDA::convert( const automaton:
 automaton::RealTimeHeightDeterministicNPDA PDAToRHPDA::convert( const automaton::NPDA & pda ) {
 	RealTimeHeightDeterministicNPDA res(alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } );
 
-	res.setInputSymbols(pda.getInputAlphabet());
+	res.setInputAlphabet(pda.getInputAlphabet());
 	res.setStates(pda.getStates());
 	res.setFinalStates(pda.getFinalStates());
 	std::set<alphabet::Symbol> stackSymbols = pda.getStackAlphabet();
 	stackSymbols.insert( alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } );
-	res.setStackSymbols(stackSymbols);
+	res.setStackAlphabet(stackSymbols);
 
 	automaton::State q0 = automaton::createUniqueState(automaton::State("q0"), res.getStates());
 	res.addState(q0);
diff --git a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp
index 4b94969de0..d2a1d17901 100644
--- a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp
+++ b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp
@@ -96,9 +96,8 @@ automaton::DPDA RHPDAToPDA::convert( const automaton::RealTimeHeightDeterministi
 
 	automaton::DPDA res(toState, pushes[0]);
 
-	res.setInputSymbols(pda.getInputAlphabet());
-	
-	res.setStackSymbols(pda.getStackAlphabet());
+	res.setInputAlphabet(pda.getInputAlphabet());
+	res.setStackAlphabet(pda.getStackAlphabet());
 	res.removeStackSymbol(alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK });
 
 	for(const auto& st : readingTransitions) {
@@ -217,9 +216,8 @@ automaton::NPDA RHPDAToPDA::convert( const automaton::RealTimeHeightDeterministi
 
 	automaton::NPDA res(toState, pushes[0]);
 
-	res.setInputSymbols(pda.getInputAlphabet());
-
-	res.setStackSymbols(pda.getStackAlphabet());
+	res.setInputAlphabet(pda.getInputAlphabet());
+	res.setStackAlphabet(pda.getStackAlphabet());
 
 	for(const auto& st : readingTransitions) {
 		for(const auto& to : st.second) {
diff --git a/alib2algo/src/automaton/transform/ReverseFSM.cpp b/alib2algo/src/automaton/transform/ReverseFSM.cpp
index 6775b53b0c..4de5a04c23 100644
--- a/alib2algo/src/automaton/transform/ReverseFSM.cpp
+++ b/alib2algo/src/automaton/transform/ReverseFSM.cpp
@@ -31,9 +31,8 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::DFA& automa
 
 	res.setStates(automaton.getStates());
 	res.addFinalState(automaton.getInitialState());
-	for(const auto& q : automaton.getFinalStates())
-		res.addInitialState(q);
-	res.setInputSymbols(automaton.getInputAlphabet());
+	res.setInitialStates( automaton.getFinalStates() );
+	res.setInputAlphabet(automaton.getInputAlphabet());
 
 	for(const auto& t : automaton.getTransitions())
 		res.addTransition(t.second, t.first.second, t.first.first);
@@ -47,9 +46,8 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::NFA& automa
 
 	res.setStates(automaton.getStates());
 	res.addFinalState(automaton.getInitialState());
-	for(const auto& q : automaton.getFinalStates())
-		res.addInitialState(q);
-	res.setInputSymbols(automaton.getInputAlphabet());
+	res.setInitialStates( automaton.getFinalStates() );
+	res.setInputAlphabet(automaton.getInputAlphabet());
 
 	for(const auto& t : automaton.getTransitions())
 		for(const auto& q : t.second)
@@ -63,11 +61,9 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::MultiInitia
 	automaton::MultiInitialStateNFA res;
 
 	res.setStates(automaton.getStates());
-	for(const auto& q : automaton.getInitialStates())
-		res.addFinalState(q);
-	for(const auto& q : automaton.getFinalStates())
-		res.addInitialState(q);
-	res.setInputSymbols(automaton.getInputAlphabet());
+	res.setFinalStates(automaton.getInitialStates());
+	res.setInitialStates( automaton.getFinalStates() );
+	res.setInputAlphabet(automaton.getInputAlphabet());
 
 	for(const auto& t : automaton.getTransitions())
 		for(const auto& q : t.second)
diff --git a/alib2algo/src/grammar/convert/ToAutomaton.cpp b/alib2algo/src/grammar/convert/ToAutomaton.cpp
index 68a1e5ca47..d61d29cb47 100644
--- a/alib2algo/src/grammar/convert/ToAutomaton.cpp
+++ b/alib2algo/src/grammar/convert/ToAutomaton.cpp
@@ -39,7 +39,7 @@ automaton::NFA ToAutomaton::convert(const grammar::LeftRG& grammar)
 	const automaton::State q0 = automaton::createUniqueState(automaton::State("q0"), states);
 	states.insert(q0);
 	automaton::NFA automaton(q0);
-	automaton.setInputSymbols(grammar.getTerminalAlphabet());
+	automaton.setInputAlphabet(grammar.getTerminalAlphabet());
 	automaton.setStates(states);
 
 	// step 3
@@ -88,7 +88,7 @@ automaton::NFA ToAutomaton::convert(const grammar::RightRG& grammar)
 	automaton::NFA automaton(stateMap.find(grammar.getInitialSymbol())->second);
 	automaton.setStates(states);
 
-	automaton.setInputSymbols(grammar.getTerminalAlphabet());
+	automaton.setInputAlphabet(grammar.getTerminalAlphabet());
 
 	// step 3
 	for(const auto& rule : grammar.getRules())
diff --git a/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp b/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp
index b6fe2135bd..54810cbcc9 100644
--- a/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp
+++ b/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp
@@ -90,7 +90,7 @@ automaton::NFA ToAutomatonDerivation::convert(const T& regexp)
 		automaton.addState(r.second);
 	}
 
-	automaton.setInputSymbols(regexp.getAlphabet());
+	automaton.setInputAlphabet(regexp.getAlphabet());
 
 	for(const auto& r : Q)
 	{
diff --git a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp
index fb75db1789..7c47c7a4c1 100644
--- a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp
+++ b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp
@@ -34,8 +34,7 @@ automaton::NFA ToAutomatonGlushkov::convert(const regexp::UnboundedRegExp& regex
 	automaton::NFA automaton( q0 );
 
 	// step 1
-	for( auto const& symbol : regexp.getAlphabet( ) )
-		automaton.addInputSymbol( symbol );
+	automaton.setInputAlphabet(regexp.getAlphabet());
 
 	// steps 2, 3, 4
 	std::set<regexp::GlushkovPair> pairs;
diff --git a/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp b/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp
index a2b2611735..276a24db95 100644
--- a/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp
+++ b/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp
@@ -26,7 +26,7 @@ automaton::EpsilonNFA ToAutomatonThompson::convert(const T& regexp)
 	std::tuple<automaton::EpsilonNFA, int, const automaton::State*, const automaton::State*> out(automaton::EpsilonNFA(automaton::State(0)), 1, nullptr, nullptr);
 
 	automaton::EpsilonNFA& automaton = std::get<0>(out);
-	automaton.setInputSymbols(regexp.getAlphabet());
+	automaton.setInputAlphabet(regexp.getAlphabet());
 
 	regexp.getRegExp().Accept((void*) &out, ToAutomatonThompson::TO_AUTOMATON_THOMPSON);
 
diff --git a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
index ac373dc96d..d78995f66f 100644
--- a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
+++ b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp
@@ -26,7 +26,7 @@ automaton::Automaton ExactMatchingAutomaton::construct(const string::String& pat
 
 automaton::NFA ExactMatchingAutomaton::construct(const string::LinearString& pattern) {
 	automaton::NFA res(automaton::State(0));
-	res.setInputSymbols(pattern.getAlphabet());
+	res.setInputAlphabet(pattern.getAlphabet());
 	for(const alphabet::Symbol& symbol : pattern.getAlphabet()) {
 		res.addTransition(automaton::State(0), symbol, automaton::State(0));
 	}
diff --git a/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp b/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp
index 368af7c13e..6420d040ed 100644
--- a/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp
+++ b/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp
@@ -31,7 +31,7 @@ void FSMSingleInitialStateTest::testSingleInitialState() {
 	automaton1.setStates({q0, q1, q2, q3});
 	automaton1.setInitialStates({q0, q1, q2});
 	automaton1.setFinalStates({q3});
-	automaton1.setInputSymbols({a, b});
+	automaton1.setInputAlphabet({a, b});
 	automaton1.addTransition(q0, a, q1);
 	automaton1.addTransition(q1, b, q2);
 	automaton1.addTransition(q2, a, q3);
@@ -41,7 +41,7 @@ void FSMSingleInitialStateTest::testSingleInitialState() {
 	automaton::NFA automaton3(q);
 	automaton3.setStates({q, q1, q2, q3});
 	automaton3.setFinalStates({q3});
-	automaton3.setInputSymbols({a, b});
+	automaton3.setInputAlphabet({a, b});
 	automaton3.addTransition(q, a, q3);
 	automaton3.addTransition(q, b, q2);
 	automaton3.addTransition(q, a, q1);
diff --git a/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp b/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp
index 7e6ba6ab2c..88c1555245 100644
--- a/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp
+++ b/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp
@@ -26,7 +26,7 @@ void TotalTest::testTotal() {
 	automaton::DFA automaton(q0);
 	automaton.setStates({q0, q1, q2});
 	automaton.setFinalStates({q0, q1, q2});
-	automaton.setInputSymbols({a, b, c});
+	automaton.setInputAlphabet({a, b, c});
 
 	automaton.addTransition(q0, a, q0);
 	automaton.addTransition(q0, b, q1);
diff --git a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
index 6f1414d682..611a46b95c 100644
--- a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
@@ -32,7 +32,7 @@ void AutomataConcatenationTest::testAutomataConcatenation() {
 	automaton::DFA m2(q1b);
 	automaton::NFA m3(q1a);
 
-	m1.setInputSymbols({a, b});
+	m1.setInputAlphabet({a, b});
 	m1.setStates({q1a, q2a, q0a});
 	m1.addTransition(q1a, a, q2a);
 	m1.addTransition(q1a, b, q0a);
@@ -42,13 +42,13 @@ void AutomataConcatenationTest::testAutomataConcatenation() {
 	m1.addTransition(q0a, b, q0a);
 	m1.addFinalState(q2a);
 
-	m2.setInputSymbols({a, b});
+	m2.setInputAlphabet({a, b});
 	m2.setStates({q1b, q2b});
 	m2.addTransition(q1b, b, q2b);
 	m2.addTransition(q2b, b, q2b);
 	m2.addFinalState(q2b);
 
-	m3.setInputSymbols({a, b});
+	m3.setInputAlphabet({a, b});
 	m3.setStates({q1a, q1b, q2a, q2b, q0a, q0b, q0102});
 	m3.addTransition(q1a, a, q2a);
 	m3.addTransition(q1a, a, q1b);
diff --git a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
index e91953c036..05be636ddf 100644
--- a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
@@ -31,7 +31,7 @@ void AutomataUnionTest::testAutomataUnion() {
 	automaton::DFA m2(q1b);
 	automaton::DFA m3(q11);
 
-	m1.setInputSymbols({a, b});
+	m1.setInputAlphabet({a, b});
 	m1.setStates({q1a, q2a, q0a});
 	m1.addTransition(q1a, a, q2a);
 	m1.addTransition(q1a, b, q0a);
@@ -41,13 +41,13 @@ void AutomataUnionTest::testAutomataUnion() {
 	m1.addTransition(q0a, b, q0a);
 	m1.addFinalState(q2a);
 
-	m2.setInputSymbols({a, b});
+	m2.setInputAlphabet({a, b});
 	m2.setStates({q1b, q2b});
 	m2.addTransition(q1b, b, q2b);
 	m2.addTransition(q2b, b, q2b);
 	m2.addFinalState(q2b);
 
-	m3.setInputSymbols({a, b});
+	m3.setInputAlphabet({a, b});
 	m3.setStates({q11, q20, q00, q02});
 	m3.addTransition(q11, a, q20);
 	m3.addTransition(q11, b, q02);
diff --git a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
index 8fdf13d6e8..6c8e3cb66b 100644
--- a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
@@ -30,14 +30,14 @@ void AutomatonIterationTest::testAutomatonIteration() {
 	automaton::DFA m1(q1);
 	m1.setStates({q1, q2, q3});
 	m1.addFinalState(q3);
-	m1.setInputSymbols({a, b});
+	m1.setInputAlphabet({a, b});
 	m1.addTransition(q1, a, q2);
 	m1.addTransition(q2, b, q2);
 	m1.addTransition(q2, a, q3);
 
 	automaton::NFA res(q1);
 	res.setStates({q1, q2, q3});
-	res.setInputSymbols({a, b});
+	res.setInputAlphabet({a, b});
 	res.setFinalStates({q1, q3});
 	res.addTransition(q1, a, q2);
 	res.addTransition(q2, b, q2);
diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
index 43ab7cf31e..7b0395f61d 100644
--- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp
+++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp
@@ -99,7 +99,7 @@ DFA AutomatonFromXMLParser::parseDFA(std::list<sax::Token>& input) const {
 
 	DFA automaton(initialState);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<DFA>(input, automaton);
@@ -118,7 +118,7 @@ NFA AutomatonFromXMLParser::parseNFA(std::list<sax::Token>& input) const {
 
 	NFA automaton(initialState);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<NFA>(input, automaton);
@@ -137,7 +137,7 @@ MultiInitialStateNFA AutomatonFromXMLParser::parseMultiInitialStateNFA(std::list
 
 	MultiInitialStateNFA automaton;
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setInitialStates(initialStates);
 	automaton.setFinalStates(finalStates);
 
@@ -157,7 +157,7 @@ EpsilonNFA AutomatonFromXMLParser::parseEpsilonNFA(std::list<sax::Token>& input)
 
 	EpsilonNFA automaton(initialState);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<EpsilonNFA>(input, automaton);
@@ -176,7 +176,7 @@ CompactNFA AutomatonFromXMLParser::parseCompactNFA(std::list<sax::Token>& input)
 
 	CompactNFA automaton(initialState);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<CompactNFA>(input, automaton);
@@ -195,7 +195,7 @@ ExtendedNFA AutomatonFromXMLParser::parseExtendedNFA(std::list<sax::Token>& inpu
 
 	ExtendedNFA automaton(initialState);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
+	automaton.setInputAlphabet(inputSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<ExtendedNFA>(input, automaton);
@@ -216,8 +216,8 @@ DPDA AutomatonFromXMLParser::parseDPDA(std::list<sax::Token>& input) const {
 
 	DPDA automaton(initialState, initialStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<DPDA>(input, automaton);
@@ -239,8 +239,8 @@ SinglePopDPDA AutomatonFromXMLParser::parseSinglePopDPDA(std::list<sax::Token>&
 
 	SinglePopDPDA automaton(initialState, initialStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<SinglePopDPDA>(input, automaton);
@@ -262,8 +262,8 @@ InputDrivenNPDA AutomatonFromXMLParser::parseInputDrivenNPDA(std::list<sax::Toke
 
 	InputDrivenNPDA automaton(initialState, initialStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseInputToPushdownStoreOperation(input, automaton);
@@ -278,9 +278,9 @@ VisiblyPushdownDPDA AutomatonFromXMLParser::parseVisiblyPushdownDPDA(std::list<s
 	popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::AUTOMATON_VISIBLY_PUSHDOWN_DPDA);
 
 	std::set<State> states = parseStates(input);
-	std::set<alphabet::Symbol> callInputSymbols = parseCallInputAlphabet(input);
-	std::set<alphabet::Symbol> returnInputSymbols = parseReturnInputAlphabet(input);
-	std::set<alphabet::Symbol> localInputSymbols = parseLocalInputAlphabet(input);
+	std::set<alphabet::Symbol> callInputAlphabet = parseCallInputAlphabet(input);
+	std::set<alphabet::Symbol> returnInputAlphabet = parseReturnInputAlphabet(input);
+	std::set<alphabet::Symbol> localInputAlphabet = parseLocalInputAlphabet(input);
 	std::set<alphabet::Symbol> stackSymbols = parseStackAlphabet(input);
 	State initialState = parseInitialState(input);
 	alphabet::Symbol bottomOfTheStackSymbol = parseBottomOfTheStackSymbol(input);
@@ -288,10 +288,10 @@ VisiblyPushdownDPDA AutomatonFromXMLParser::parseVisiblyPushdownDPDA(std::list<s
 
 	VisiblyPushdownDPDA automaton(initialState, bottomOfTheStackSymbol);
 	automaton.setStates(states);
-	automaton.setCallInputSymbols(callInputSymbols);
-	automaton.setReturnInputSymbols(returnInputSymbols);
-	automaton.setLocalInputSymbols(localInputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setCallInputAlphabet(callInputAlphabet);
+	automaton.setReturnInputAlphabet(returnInputAlphabet);
+	automaton.setLocalInputAlphabet(localInputAlphabet);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<VisiblyPushdownDPDA>(input, automaton);
@@ -305,9 +305,9 @@ VisiblyPushdownNPDA AutomatonFromXMLParser::parseVisiblyPushdownNPDA(std::list<s
 	popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::AUTOMATON_VISIBLY_PUSHDOWN_NPDA);
 
 	std::set<State> states = parseStates(input);
-	std::set<alphabet::Symbol> callInputSymbols = parseCallInputAlphabet(input);
-	std::set<alphabet::Symbol> returnInputSymbols = parseReturnInputAlphabet(input);
-	std::set<alphabet::Symbol> localInputSymbols = parseLocalInputAlphabet(input);
+	std::set<alphabet::Symbol> callInputAlphabet = parseCallInputAlphabet(input);
+	std::set<alphabet::Symbol> returnInputAlphabet = parseReturnInputAlphabet(input);
+	std::set<alphabet::Symbol> localInputAlphabet = parseLocalInputAlphabet(input);
 	std::set<alphabet::Symbol> stackSymbols = parseStackAlphabet(input);
 	std::set<State> initialStates = parseInitialStates(input);
 	alphabet::Symbol bottomOfTheStackSymbol = parseBottomOfTheStackSymbol(input);
@@ -315,10 +315,10 @@ VisiblyPushdownNPDA AutomatonFromXMLParser::parseVisiblyPushdownNPDA(std::list<s
 
 	VisiblyPushdownNPDA automaton(bottomOfTheStackSymbol);
 	automaton.setStates(states);
-	automaton.setCallInputSymbols(callInputSymbols);
-	automaton.setReturnInputSymbols(returnInputSymbols);
-	automaton.setLocalInputSymbols(localInputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setCallInputAlphabet(callInputAlphabet);
+	automaton.setReturnInputAlphabet(returnInputAlphabet);
+	automaton.setLocalInputAlphabet(localInputAlphabet);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setInitialStates(initialStates);
 	automaton.setFinalStates(finalStates);
 
@@ -341,8 +341,8 @@ RealTimeHeightDeterministicDPDA AutomatonFromXMLParser::parseRealTimeHeightDeter
 
 	RealTimeHeightDeterministicDPDA automaton(initialState, bottomOfTheStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<RealTimeHeightDeterministicDPDA>(input, automaton);
@@ -364,8 +364,8 @@ RealTimeHeightDeterministicNPDA AutomatonFromXMLParser::parseRealTimeHeightDeter
 
 	RealTimeHeightDeterministicNPDA automaton(bottomOfTheStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setInitialStates(initialStates);
 	automaton.setFinalStates(finalStates);
 
@@ -388,8 +388,8 @@ NPDA AutomatonFromXMLParser::parseNPDA(std::list<sax::Token>& input) const {
 
 	NPDA automaton(initialState, initialStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<NPDA>(input, automaton);
@@ -411,8 +411,8 @@ SinglePopNPDA AutomatonFromXMLParser::parseSinglePopNPDA(std::list<sax::Token>&
 
 	SinglePopNPDA automaton(initialState, initialStackSymbol);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setStackSymbols(stackSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setStackAlphabet(stackSymbols);
 	automaton.setFinalStates(finalStates);
 
 	parseTransitions<SinglePopNPDA>(input, automaton);
@@ -434,8 +434,8 @@ OneTapeDTM AutomatonFromXMLParser::parseOneTapeDTM(std::list<sax::Token>& input)
 
 	OneTapeDTM automaton(initialState, blank);
 	automaton.setStates(states);
-	automaton.setInputSymbols(inputSymbols);
-	automaton.setTapeSymbols(tapeSymbols);
+	automaton.setInputAlphabet(inputSymbols);
+	automaton.setTapeAlphabet(tapeSymbols);
 	automaton.setInitialState(initialState);
 	automaton.setFinalStates(finalStates);
 
diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp
index f721b3b5df..b2d8c4266d 100644
--- a/alib2data/src/automaton/FSM/CompactNFA.cpp
+++ b/alib2data/src/automaton/FSM/CompactNFA.cpp
@@ -120,13 +120,13 @@ bool CompactNFA::addTransition(const State& from, const string::LinearString& in
 		throw AutomatonException("State \"" + (std::string) to.getName() + "\" doesn't exist.");
 
 	std::pair<State, string::LinearString> key = std::make_pair(from, input);
-	
+
 	return transitions[key].insert(to).second;
 }
 
 bool CompactNFA::removeTransition(const State& from, const string::LinearString& input, const State& to) {
 	std::pair<State, string::LinearString> key = std::make_pair(from, input);
-	
+
 	return transitions[key].erase(to);
 }
 
diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
index b665c74fc2..f24fe5957e 100644
--- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
+++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp
@@ -180,7 +180,7 @@ NFA FiniteAutomatonFromStringParser::parseNFA(std::istream& input) const {
 	NFA res(*initialState);
 	delete initialState;
 
-	res.setInputSymbols(std::set<alphabet::Symbol>(symbols.begin(), symbols.end()));
+	res.setInputAlphabet(std::set<alphabet::Symbol>(symbols.begin(), symbols.end()));
 	res.setStates(states);
 	res.setFinalStates(finalStates);
 	for(const std::tuple<State, alphabet::Symbol, State> transition : transitionFunction) {
@@ -230,7 +230,7 @@ DFA FiniteAutomatonFromStringParser::parseDFA(std::istream& input) const {
 	DFA res(*initialState);
 	delete initialState;
 
-	res.setInputSymbols(std::set<alphabet::Symbol>(symbols.begin(), symbols.end()));
+	res.setInputAlphabet(std::set<alphabet::Symbol>(symbols.begin(), symbols.end()));
 	res.setStates(states);
 	res.setFinalStates(finalStates);
 	for(const std::tuple<State, alphabet::Symbol, State> transition : transitionFunction) {
diff --git a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp
index 1a0028f2cb..b47b87b247 100644
--- a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp
+++ b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp
@@ -32,7 +32,7 @@ bool BlankSymbolInputTapeAlphabet::addInputSymbol(const alphabet::Symbol& symbol
 	return inputAlphabet.insert(symbol).second;
 }
 
-void BlankSymbolInputTapeAlphabet::setInputSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void BlankSymbolInputTapeAlphabet::setInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(inputAlphabet.begin(), inputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
@@ -52,7 +52,7 @@ bool BlankSymbolInputTapeAlphabet::addTapeSymbol(const alphabet::Symbol& symbol)
 	return tapeAlphabet.insert(symbol).second;
 }
 
-void BlankSymbolInputTapeAlphabet::setTapeSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void BlankSymbolInputTapeAlphabet::setTapeAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(tapeAlphabet.begin(), tapeAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
diff --git a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h
index ae61370128..968457aea4 100644
--- a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h
+++ b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h
@@ -33,7 +33,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol already exists
 	 */
-	void setInputSymbols(const std::set<alphabet::Symbol>& symbol);
+	void setInputAlphabet(const std::set<alphabet::Symbol>& symbol);
 
 	/**
 	 * Removes input symbol from the input alphabet.
@@ -60,7 +60,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throw AutomatonException when Symbol is already present in tape alphabet
 	 */
-	void setTapeSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setTapeAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Removes symbol from the tape alphabet.
diff --git a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp
index 9a031f3773..45c35195c4 100644
--- a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp
+++ b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp
@@ -24,7 +24,7 @@ bool CallReturnLocalInputAlphabet::addCallInputSymbol(const alphabet::Symbol& sy
 	return callInputAlphabet.insert(symbol).second;
 }
 
-void CallReturnLocalInputAlphabet::setCallInputSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void CallReturnLocalInputAlphabet::setCallInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(callInputAlphabet.begin(), callInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
@@ -52,7 +52,7 @@ bool CallReturnLocalInputAlphabet::addReturnInputSymbol(const alphabet::Symbol&
 	return returnInputAlphabet.insert(symbol).second;
 }
 
-void CallReturnLocalInputAlphabet::setReturnInputSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void CallReturnLocalInputAlphabet::setReturnInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(returnInputAlphabet.begin(), returnInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
@@ -80,7 +80,7 @@ bool CallReturnLocalInputAlphabet::addLocalInputSymbol(const alphabet::Symbol& s
 	return localInputAlphabet.insert(symbol).second;
 }
 
-void CallReturnLocalInputAlphabet::setLocalInputSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void CallReturnLocalInputAlphabet::setLocalInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(localInputAlphabet.begin(), localInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
diff --git a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h
index 35c988b36d..87339acbe6 100644
--- a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h
+++ b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h
@@ -35,7 +35,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol already exists
 	 */
-	void setCallInputSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setCallInputAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Adds input symbol to input alphabet.
@@ -49,7 +49,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol already exists
 	 */
-	void setReturnInputSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setReturnInputAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Adds input symbol to input alphabet.
@@ -63,7 +63,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol already exists
 	 */
-	void setLocalInputSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setLocalInputAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Removes input symbol from the input alphabet.
diff --git a/alib2data/src/automaton/common/InputAlphabet.cpp b/alib2data/src/automaton/common/InputAlphabet.cpp
index 41f4f8fb0e..1f44f2426c 100644
--- a/alib2data/src/automaton/common/InputAlphabet.cpp
+++ b/alib2data/src/automaton/common/InputAlphabet.cpp
@@ -20,7 +20,7 @@ bool InputAlphabet::addInputSymbol(const alphabet::Symbol& symbol) {
 	return inputAlphabet.insert(symbol).second;
 }
 
-void InputAlphabet::setInputSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void InputAlphabet::setInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(inputAlphabet.begin(), inputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
diff --git a/alib2data/src/automaton/common/InputAlphabet.h b/alib2data/src/automaton/common/InputAlphabet.h
index 10c930742d..c14d84c1e5 100644
--- a/alib2data/src/automaton/common/InputAlphabet.h
+++ b/alib2data/src/automaton/common/InputAlphabet.h
@@ -33,7 +33,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol already exists
 	 */
-	void setInputSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setInputAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Removes input symbol from the input alphabet.
diff --git a/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp b/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp
index ed37343b1b..fcaf225f3b 100644
--- a/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp
+++ b/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp
@@ -15,7 +15,7 @@ bool PushdownStoreAlphabet::addStackSymbol(const alphabet::Symbol& symbol) {
 	return stackAlphabet.insert(symbol).second;
 }
 
-void PushdownStoreAlphabet::setStackSymbols(const std::set<alphabet::Symbol>& newSymbols) {
+void PushdownStoreAlphabet::setStackAlphabet(const std::set<alphabet::Symbol>& newSymbols) {
 	std::set<alphabet::Symbol> removed;
 	std::set_difference(stackAlphabet.begin(), stackAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end()));
 
diff --git a/alib2data/src/automaton/common/PushdownStoreAlphabet.h b/alib2data/src/automaton/common/PushdownStoreAlphabet.h
index 8193119926..3207df3d45 100644
--- a/alib2data/src/automaton/common/PushdownStoreAlphabet.h
+++ b/alib2data/src/automaton/common/PushdownStoreAlphabet.h
@@ -32,7 +32,7 @@ public:
 	 * @param symbols Symbols to set
 	 * @throws AutomatonException when symbol is already present in stack alphabet
 	 */
-	void setStackSymbols(const std::set<alphabet::Symbol>& symbols);
+	void setStackAlphabet(const std::set<alphabet::Symbol>& symbols);
 
 	/**
 	 * Removes symbol from the stack alphabet.
diff --git a/alib2data/test-src/automaton/AutomatonTest.cpp b/alib2data/test-src/automaton/AutomatonTest.cpp
index 448ce9968c..7d54d3b6e6 100644
--- a/alib2data/test-src/automaton/AutomatonTest.cpp
+++ b/alib2data/test-src/automaton/AutomatonTest.cpp
@@ -232,7 +232,7 @@ void AutomatonTest::testExtendedNFAAlphabet() {
 	automaton.addState(s0);
 	automaton.addState(s1);
 
-	automaton.setInputSymbols({alphabet::symbolFrom('a'), alphabet::symbolFrom('b') });
+	automaton.setInputAlphabet({alphabet::symbolFrom('a'), alphabet::symbolFrom('b') });
 
 	regexp::UnboundedRegExpConcatenation goodConcat1, goodConcat2;
 	regexp::UnboundedRegExpConcatenation badConcat;
@@ -256,8 +256,8 @@ void AutomatonTest::testNPDATransitions() {
 	automaton::NPDA automaton(automaton::State(0), alphabet::symbolFrom("T"));
 
 	automaton.setStates({automaton::State(0), automaton::State(1), automaton::State(2), automaton::State(3), automaton::State(4)});
-	automaton.setInputSymbols({alphabet::symbolFrom("a2"), alphabet::symbolFrom("a1"), alphabet::symbolFrom("a0")});
-	automaton.setStackSymbols({alphabet::symbolFrom("T"), alphabet::symbolFrom("R")});
+	automaton.setInputAlphabet({alphabet::symbolFrom("a2"), alphabet::symbolFrom("a1"), alphabet::symbolFrom("a0")});
+	automaton.setStackAlphabet({alphabet::symbolFrom("T"), alphabet::symbolFrom("R")});
 
 	automaton.addTransition(automaton::State(0), alphabet::symbolFrom("a2"), {alphabet::symbolFrom("T")}, automaton::State(0), {alphabet::symbolFrom("T"), alphabet::symbolFrom("T")});
 	automaton.addTransition(automaton::State(0), alphabet::symbolFrom("a1"), {alphabet::symbolFrom("T")}, automaton::State(0), {alphabet::symbolFrom("T")});
@@ -293,8 +293,8 @@ void AutomatonTest::testRHPDATransitions() {
 	automaton.setStates({automaton::State(1), automaton::State(2), automaton::State(3)});
 	automaton.setInitialStates({automaton::State(1)});
 
-	automaton.setInputSymbols({alphabet::symbolFrom("a"), alphabet::symbolFrom("b")});
-	automaton.setStackSymbols({alphabet::Symbol(alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK), alphabet::symbolFrom("X"), alphabet::symbolFrom("Y")});
+	automaton.setInputAlphabet({alphabet::symbolFrom("a"), alphabet::symbolFrom("b")});
+	automaton.setStackAlphabet({alphabet::Symbol(alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK), alphabet::symbolFrom("X"), alphabet::symbolFrom("Y")});
 
 	automaton.addCallTransition(automaton::State(1), alphabet::symbolFrom("a"), automaton::State(2), alphabet::symbolFrom("X"));
 	automaton.addCallTransition(automaton::State(2), automaton::State(3), alphabet::symbolFrom("X"));
-- 
GitLab