A DFA separates two disjoint languages L1 and L2 if it accepts every word in L1 and rejects every word in L2. Algorithms for active learning of small separating DFAs have many applications, e.g., for learning network invariants, learning contextual assumptions in compositional verification, learning state machines from large amounts of log data, and learning bug pattern descriptions. We propose a simple active learning algorithm, inspired by L#, that learns a minimal separating DFA for disjoint languages L1 and L2 if one exists. Experiments show that our algorithm significantly outperforms existing active learning algorithms on both randomly generated and industrial benchmarks.
@article{arxiv.2605.15294,
title = {An $L^{\#}$ Based Algorithm for Active Learning of Minimal Separating Automata},
author = {Jasper Laumen and Leonne Snel and Frits Vaandrager},
journal= {arXiv preprint arXiv:2605.15294},
year = {2026}
}
Comments
32 pages, this is an extended version of an article that will appear in the Proceedings of CAV'26