“…Given an application, these techniques exhaustively explore its state space to detect potential errors (e.g., dead state or abnormal behavior). Recent studies have also reported promising results in applying these techniques to verifying properties of self-adaptive applications, e.g., safety [13,40], reliability [7,17], liveness and reachability [21,28,29,40], consistency [21] and stability [4,28,29]. However, when it comes to verifying self-adaptive applications under real-world environments, these pieces of existing work have two major limitations:…”