Alur, RajeevChaudhuri, SwaratEtessami, KoushaMadhusudan, P.2023-05-222023-05-222005-04-082005-06-02https://repository.upenn.edu/handle/20.500.14332/6213Searching the state space of a system using enumerative and on-the-fly depth-first traversal is an established technique for model checking finite-state systems. In this paper, we propose algorithms for on-the-fly exploration of recursive state machines, or equivalently pushdown systems, which are suited for modeling the behavior of procedural programs. We present algorithms for reachability (is a bad state reachable?) as well as for fair cycle detection (is there a reachable cycle with progress?). We also report on an implementation of these algorithms to check safety and liveness properties of recursive boolean programs, and its performance on existing benchmarks.The original publication is available at www.springerlink.comCPS Formal MethodsCPS TheoryComputer EngineeringComputer SciencesOn-The-Fly Reachability and Cycle Detection for Recursive State MachinesPresentation