DOI: 10.17026/dans-zkb-4ppm
title: Source code and data relevant for the paper 'Learning Register Automata with Fresh Value Generation'

description: The dataset contains source code and data relevant for the journal extension of the conference paper "Learning Register Automata with Fresh Value Generation". The journal was due submission at the moment the dataset was made.The journal extension: http://www.sws.cs.ru.nl/publications/papers/fvaan/TomteFresh/main.pdfConference version: https://link.springer.com/chapter/10.1007/978-3-319-25150-9_11The dataset also contains some data relevant to an earlier conference paper "'Algorithms for Inferring Register Automata" available at: https://link.springer.com/chapter/10.1007/978-3-662-45234-9_15In this work, we propose a learning algorithm for register automata and Tomte, a tool implementing this algorithm. Our approach is based on the concept of learning with abstraction, where concrete parameters are abstracted away by a mapper component. Our learning algorithm automatically derives the mapper as well as the abstract Mealy machine model. From these two we can obtain a concrete register automata model. Peculiar to our approach is that we allow register automata to generate fresh values (arbitrary values). This improves applicability as many real-world system exhibit fresh values.We compare over a series of benchmarks Tomte with RALib, another state-of-the-art tool for register automata.The dataset comprises the Tomte's project files and the SUT Tool's source code. Tomte's project files include experimental data as well as Tomte's source code. The SUT Tool is a tool which Tomte depends on to simulate register automata models or to perform transformations from one type of model to another.In more concrete terms, the dataset contains:- Tomte's implementation- SUT Tool's implementation- experimental data for all works mentioned- various register automata models which can be simulated by the SUT Tool/learned by TomteWhat can be re-used:- Tomte (to learn register automata, to perform batch experiements)- SUT Tool (to simulate models or perform transformations)- RALib .jar library (to learn register automata)- the register automata models- stand-alone libraries (like those performing conversion)- parts of the source code easily decoupled from the main flow (graph/tree implementation classes...)Also, the dataset is suitable for one who wants to try out/ extend learning for register automata.Paper Abstract: We present a new algorithm for active learning of register automata. Our algorithm uses counterexample-guided abstraction refinement to automatically construct a component which maps (in a history dependent manner) the large set of actions of an implementation into a small set of actions that can be handled by a Mealy machine learner. The class of register automata that is handled by our algorithm extends previous definitions since it allows for the generation of fresh output values. This feature is crucial in many real-world systems (e.g. servers that generate identifiers, passwords or sequence numbers). We have implemented our new algorithm in a tool called Tomte.Links:Tomte- usage: http://tomte.cs.ru.nl/Tomte-0-41/Description- source code: https://gitlab.science.ru.nl/harcok/tomte/tree/release-0.41SUT Tool- usage: http://tomte.cs.ru.nl/Sut-0-4/DescriptionRALib- source code: https://bitbucket.org/learnlib/ralib/