Exploiting resolution proofs to speed up LTL vacuity detection for BMC
read more
Citations
Interpolation and SAT-based model checking
User-guided discovery of declarative process models
Towards a notion of unsatisfiable and unrealizable cores for LTL
Towards a notion of unsatisfiable cores for LTL
Robust Vacuity for Branching Temporal Logic
References
Auto-generating Test Sequences Using Model Checkers: A Case Study
Enhanced Vacuity Detection in Linear Temporal Logic
Debugging overconstrained declarative models using unsatisfiable cores
Vacuum Cleaning CTL Formulae
Improving the Encoding of LTL Model Checking into SAT
Related Papers (5)
Frequently Asked Questions (11)
Q2. What are the future works in "Exploiting resolution proofs to speed up ltl vacuity detection for bmc" ?
The authors plan to investigate this further in the future. The authors plan to enhance their methods by developing a heuristic based on the clause/variable ratio and proof size that indicates when naive detection should be applied instead. Thus, the authors believe that both local irrelevance and peripherality can be used to speed up naive detection.
Q3. How long did it take to generate the CNF theories?
Naive vacuity detection required eight model-checking runs, taking 115.68 seconds to generate the corresponding CNF theories and 2.36 seconds to test their satisfiability, requiring a total of 118.04 seconds.
Q4. Why do the authors think that naive detection is more effective than local irrelevance?
The authors conjecture that the poor performance is due to a low clause/variable ratio [22] which favours naive detection in cases where vacuity is not present.
Q5. What is the recursive procedure for encoding the error constraint CLe?
The error constraint CLe is encoded according to a recursive procedure which removes the temporal and logical operators from the property [4], e.g., the algorithm encodes ϕ =
Q6. What is the way to determine the vacuity of a model?
Since the authors are interested in replacing expensive model-checking runs by inexpensive partial vacuity detection methods, the authors limit ourselves to considering the output of the original model-checking run on BMCk(K, ϕ), i.e., CLK ∪ CLe.
Q7. What is the procedure for converting the path and error constraints?
After the boolean formulas for the path and error constraints are calculated, they are converted to Conjunctive Normal Form (CNF) before being passed to a SAT solver.
Q8. What is the labeling function used to represent a clause?
If Π is a resolution proof whose root clauses are divided into two disjoint sets,A∪B, then the labeling functionL is defined recursively as shown in Figure 4, where c is used to represent a clause.
Q9. How did Armoni et al. generalize the definition of vacuity?
Armoni et al. [1] generalized the above syntactic definition of vacuity by introducing universal quantification, i.e., ∀x · ϕ[ψ ← x].
Q10. How can the authors make the SAT solver more effective?
It might be possible to make them more effective by modifying the SAT solver to guide it to a particular kind of a proof (e.g., by changing the decision order heuristic), or to output multiple proofs (if possible).
Q11. What is the way to detect vacuity?
In this context, a naive method for detecting vacuity is to replace subformulas of the temporal logic property with unconstrained boolean variables and run BMC for each such substitution.