Split register automata into structual and semantic components #70
mtf90
started this conversation in
AutomataLib Discussions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Currently, the
RegisterAutomaton
class implementsDeterministicAutomaton<RALocation, ParameterizedSymbol, Transition>
although its implementation doesn't satisfy the contract of a deterministic automaton. As far as I can tell, this is related to the type of input symbols that are considered.Regarding
ParameterizedSymbol
, it is a non-deterministic, finite automaton. RegardingPSymbolInstance
, it is a deterministic, infinite transition system (sinceAutomaton
s in AutomataLib require a finite state space in order to implementCollection<S> getStates()
).One could go with an approach similar to SEVPAs which are infinite state but define additional methods for accessing its finite representation. Another approach would be to split register automata into two different views (e.g., a structural one regarding
ParameterizedSymbol
s and a semantic one regardingPSymbolInstance
s where you could directly construct the semantic one from the structural one). The second approach could be interesting for planning ahead the LearnLib migration. For example, the AAARLearners also interact with concrete systems (PSymbolInstance
s) but return an abstract hypothesis model (ParameterizedSymbol
s) similar to the current RA learners. A more distinct type hierarchy could also make it easier to include different flavors of register automata (see #69).Any thoughts?
Beta Was this translation helpful? Give feedback.
All reactions