Compositional learning of mutually recursive procedural systems

This paper presents a compositional approach to active automata learning of Systems of Procedural Automata (SPAs), an extension of Deterministic Finite Automata (DFAs) to systems of DFAs that can mutually call each other. SPAs are of high practical relevance, as they allow one to efficiently learn intuitive recursive models of recursive programs after an easy instrumentation that makes calls and returns observable. Key to our approach is the simultaneous inference of individual DFAs for each of the involved procedures via expansion and projection: membership queries for the individual DFAs are expanded to membership queries of the entire SPA, and global counterexample traces are transformed into counterexamples for the DFAs of concerned procedures. This reduces the inference of SPAs to a simultaneous inference of the DFAs for the involved procedures for which we can utilize various existing regular learning algorithms. The inferred models are easy to understand and allow for an intuitive display of the procedural system under learning that reveals its recursive structure. We implemented the algorithm within the LearnLib framework in order to provide a ready-to-use tool for practical application which is publicly available on GitHub for experimentation.

[1]  Mahesh Viswanathan,et al.  Congruences for Visibly Pushdown Languages , 2005, ICALP.

[2]  Rajeev Alur,et al.  Analysis of Recursive State Machines , 2001, CAV.

[3]  A. Nerode,et al.  Linear automaton transformations , 1958 .

[4]  Benedikt Bollig,et al.  libalf: The Automata Learning Framework , 2010, CAV.

[5]  Mahesh Viswanathan,et al.  Minimization, Learning, and Conformance Testing of Boolean Programs , 2006, CONCUR.

[6]  Bernhard Steffen,et al.  Risk-based testing via active continuous quality control , 2014, International Journal on Software Tools for Technology Transfer.

[7]  John C. Mitchell Concepts in Programming Languages: Functions and Foundations , 2002 .

[8]  Dana Angluin,et al.  Learning Regular Sets from Queries and Counterexamples , 1987, Inf. Comput..

[9]  Loris D'Antoni,et al.  Learning Symbolic Automata , 2017, TACAS.

[10]  Barton P. Miller,et al.  An empirical study of the reliability of UNIX utilities , 1990, Commun. ACM.

[11]  Bengt Jonsson,et al.  Inferring Canonical Register Automata , 2012, VMCAI.

[12]  Frits W. Vaandrager,et al.  Learning Register Automata with Fresh Value Generation , 2015, ICTAC.

[13]  Bernhard Steffen,et al.  The Open-Source LearnLib - A Framework for Active Automata Learning , 2015, CAV.

[14]  Bernhard Steffen,et al.  The TTT Algorithm: A Redundancy-Free Approach to Active Automata Learning , 2014, RV.

[15]  Hardi Hungar,et al.  Domain-Specific Optimization in Automata Learning , 2003, CAV.

[16]  Bernhard Steffen,et al.  Introduction to Active Automata Learning from a Practical Perspective , 2011, SFM.

[17]  Umesh V. Vazirani,et al.  An Introduction to Computational Learning Theory , 1994 .

[18]  Rajeev Alur,et al.  Visibly pushdown languages , 2004, STOC '04.

[19]  Robert McNaughton,et al.  Parenthesis Grammars , 1967, JACM.

[20]  Benedikt Bollig,et al.  A Fresh Approach to Learning Register Automata , 2013, Developments in Language Theory.

[21]  Manfred Broy,et al.  Model-Based Testing of Reactive Systems, Advanced Lectures [The volume is the outcome of a research seminar that was held in Schloss Dagstuhl in January 2004] , 2005, Model-Based Testing of Reactive Systems.

[22]  Bernhard Steffen,et al.  Automata Learning with Automated Alphabet Abstraction Refinement , 2011, VMCAI.

[23]  Bernhard Steffen,et al.  Model Checking for Context-Free Processes , 1992, CONCUR.

[24]  Oded Maler,et al.  Learning Regular Languages over Large Alphabets , 2014, TACAS.

[25]  Adam Kiezun,et al.  Grammar-based whitebox fuzzing , 2008, PLDI '08.

[26]  Bernhard Steffen,et al.  Active continuous quality control , 2013, CBSE '13.

[27]  Arend Rensink The GROOVE Simulator: A Tool for State Space Generation , 2003, AGTIVE.

[28]  Ronald L. Rivest,et al.  Inference of finite automata using homing sequences , 1989, STOC '89.

[29]  Bernhard Steffen,et al.  Learning register automata: from languages to program structures , 2014, Machine Learning.

[30]  Bernhard Steffen,et al.  Inferring Automata with State-Local Alphabet Abstractions , 2013, NASA Formal Methods.

[31]  Mahesh Viswanathan,et al.  LEVER: A Tool for Learning Based Verification , 2006, International Conference on Computer Aided Verification.