Key research themes
1. How can automated techniques leverage loop acceleration and SMT-solving to prove program non-termination and infer lower bounds on runtime?
This research area focuses on algorithmic and tool-based methods that transform loops in integer programs into nondeterministic straight-line code, enabling symbolic under-approximations useful for proving non-termination and establishing worst-case lower bounds on runtime. The use of SMT (Satisfiability Modulo Theories) solving and unsatisfiable core analysis uniquely improves efficiency and scalability. Understanding how loop acceleration can uncover infinite executions and provide precise computational complexity lower bounds is pivotal for both bug detection and formal program analysis.
2. What distributed termination detection protocols exist for asynchronous, dynamic, or fault-prone networks, including cognitive radio networks, message-passing architectures, and systems with crashes and recoveries?
Termination detection in distributed systems is non-trivial due to lack of global state, asynchronous communication, node mobility, failures, and unreliable channels. This theme encompasses protocols and algorithms designed for various architectures, including cognitive radio networks where channel occupancy changes, fine-grained message-passing systems requiring synchronization barriers, and crash-recovery models where processes may restart. Investigations analyze logical structures, communication patterns, fault models, and hardware/software co-design to enable safe, efficient detection of global termination or quiescence.
3. How can termination proofs be certified and formally verified using proof assistants integrated with automated termination tools?
This area covers the interplay between highly automated termination analyzers and formal proof assistants (such as Coq) to produce mechanically checked, reliable termination proofs. The challenge lies in constructing proof traces or certificates from automated tools that can be formally verified, thereby combining the advantages of automation with the rigour of proof assistants. Techniques involve embedding rewriting systems, dependency pairs, and polynomial interpretations as formal objects and using a combination of shallow and deep embeddings to optimize certificate size and verification complexity.