Summary
This paper addresses the problem of hardware model checking with respect to LTL specifications. Although this a well-studied problem, hardware model checking can still suffer from scalability issues. A general automata-theoretic approach to model checking is to check if intersection of the formal languages corresponding to the system and to the complement of the specification is empty. One strategy for conducting this emptiness check is to construct a ranking function that can serve as an emptiness certificate. The main idea of the paper is to use neural networks to represent and learn these ranking functions. The functions are learned using traces of the system composed with the complement of the specification. It is then checked (using an SMT solver) if the learned function satisfies the required constraints of a ranking function. If not, the counterexamples are used to further train the function but if yes, then we have a proof that the system satisfies its spec. The proposed approach is evaluated on 9 hardware designs and with respect to 123 verification tasks. The presented approach outperforms state-of-the-art baselines on these verification tasks.
Strengths
The paper is largely well-written and, for the chosen benchmarks, the results are quite impressive. The use of neural networks to represent ranking functions has been proposed before (citation [44] in the paper), but the setting in the prior work in slightly different (termination analysis of programs in [44] vs model checking of hardware ciruits with respect to LTL specifications here). It is interesting to see that neural ranking functions can be effective in the setting of hardware model checking as well. It is particularly striking that the learned ranking function is frequently correct in the first attempt and does not need any further training.
Weaknesses
I have a number of concerns with the paper.
1. Given the prior work on neural termination analysis, I find the technical contribution to be quite incremental. The core of the technical approach is almost the same as in [44].
2. While the empirical results are quite impressive, I wonder how the benchmarks were chosen. Why not choose the benchmarks from HWMCC'20? Also, why not compare against the best performing tool from HWMCC'20, i.e., AVR? Why set the time limit to 5 hours in particular? All these points make me a little concerned about the results. When is this approach not applicable? Can it be applied to all hardware model checking problems? Can it be applied to software model checking problems?
4. The paper may not be easily accessible to readers not familiar with formal methods. In particular, there are a number of approaches for model checking with respect to LTL functions and using ranking functions for the purpose is not that common. I could only find two citations [A,B]. The paper should at least include these citations if not more for the ranking function based LTL model checking approach.
[A] Cook, B., Gotsman, A., Podelski, A., Rybalchenko, A., & Vardi, M. Y. (2007). Proving that programs eventually do something good. ACM SIGPLAN Notices, 42(1), 265-276.
[B] Dietsch, D., Heizmann, M., Langenfeld, V., & Podelski, A. (2015). Fairness modulo theory: A new approach to LTL software model checking. In Computer Aided Verification: 27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I 27 (pp. 49-66). Springer International Publishing.
5. I find the title to overclaim a bit. The paper focuses on hardware model checking but the title suggests that any model checking problem is within scope. Moreover, there might be other ways in which neural networks could be used to aid model checking. Is it a claim of the paper that the only way in which neural networks can aid model checking is as ranking functions? I also think that a formal methods conference might be a better fit for the paper.
Questions
In addition to the questions above, I have the following questions and comments:
1. What if system does not meet its specification? In that case, no ranking function would exist. Is the proposed approach able to handle such scenarios and generate counterexamples when the system violates it spec?
2. The paper frequently refers to word-level but it is never clarified what this means.
3. Fig 1 needs more description. It is a little mysterious at present.
4. Line 101: Is the language L_M defined over sequences of observed states of M or over sequences of atomic propositions about observed states of M. If it is the former, then the language inclusion does not make sense.
5. Line 106: "inputs and observables being equal to obs X" --> this is a little hard to follow
6. Line 161: "normalizes these inputs through element-wise multiplication ..." --> please expand a bit on this
7. Equation 4: The indicator function seems to be incorrectly used. Should the term "- 1_F(q)" instead be "- \epsilon. \neg 1_F(q)"
8. Line 226: Since there are only 9 designs and 123 verification tasks, are there multiple specs per design?
9. Line 238: "network is quantized and translated into SystemVerilog" --> please provide some more details about this
10. Figure 4: I am confused by the figure. How is the state space size and logic gate count different across the same design?
11. Line 288: "Of the 11 tasks that were not trained to zero loss, ..." --> Are these tasks considered as timed out? Are they plotted in Fig 5b?
12. Fig 5b: What are the tasks where x is almost 0 but y has large values?
13. Line 306: Why is different hardware used for experiments with the industrial tools? This makes the head-to-head comparison unfair.