Finite automaton is a well-known topic which finds applications in software engineering (e.g. pattern matching or regular expressions in general).

ω-automaton are another kind of automaton, defined similarly to finite automaton except that they are designed to be run on infinite words (which can be thought of as streams) and have an acceptance condition instead of accepting states.

I am looking for usage of ω-automaton in engineering. In particular, do you know some software that rely on some kind of ω-automata?


1 Answer 1


Sure. They are used in model checking. Specifically, if we want to check liveness properties of systems, then typically we use $\omega$-automata (e.g., Büchi automata) to formalize the property we are trying to verify, and to model the composition of property + system under verification. For example, a standard way to do model checking of LTL formulas is to convert LTL to a Büchi automaton, then work with these automata. A classic paper is An Automata-Theoretic Approach to Automatic Program Verification by Vardi and Wolper.

I believe one good example of a software tool is SPIN, a very widely used model checker that takes this approach.

If you want to look for more examples, you could check Google Scholar to look for tool papers that cite the Vardi-Wolper paper. Also, I think TLA+ might use $\omega$-automata for checking liveness but I'm not sure.

  • $\begingroup$ Would you have an example of a software implementing ω-automaton for such usage? (even better, if the code is open source) $\endgroup$
    – Weier
    Jan 2 at 19:41
  • 1
    $\begingroup$ @Weier, see revised answer. $\endgroup$
    – D.W.
    Jan 2 at 20:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.