Abstract
Safety-critical infrastructures must operate in a safe and reliable way. Fault tree analysis is a widespread method used for risk assessment of these systems: fault trees (FTs) are required by, e.g., the Federal Aviation Administration and the Nuclear Regulatory Commission. In spite of their popularity, little work has been done on formulating structural queries about \(\textsc {ft} \textrm{s}\) and analyzing these, e.g., when evaluating potential scenarios, and to give practitioners instruments to formulate queries on \(\textsc {ft} \textrm{s}\) in an understandable yet powerful way. In this paper, we aim to fill this gap by extending \( BFL \) [37], a logic that reasons about Boolean \(\textsc {ft} \textrm{s}\). To do so, we introduce a Probabilistic Fault tree Logic (\(\textsf{PFL}\)). \(\textsf{PFL}\) is a simple, yet expressive logic that supports easier formulation of complex scenarios and specification of FT properties that comprise probabilities. Alongside \(\textsf{PFL}\), we present \(\textsf{LangPFL}\), a domain specific language to further ease property specification. We showcase \(\textsf{PFL}\) and \(\textsf{LangPFL}\) by applying them to a COVID-19 related FT and to a FT for an oil/gas pipeline. Finally, we present theory and model checking algorithms based on binary decision diagrams (BDDs).
This work was partially funded by the NWO grant NWA.1160.18.238 (PrimaVera), and the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 101008233, and the ERC Consolidator Grant 864075 (CAESAR).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
When considering conditional probabilities in layer-two and layer-three formulae, we disregard the case in which \(\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}}, \phi ') = 0\).
References
Alur, R., Courcoubetis, C., Dill, D.: Model-checking in dense real-time. Inf. Comput. 104(1), 2–34 (1993)
Andersen, H.R.: An introduction to binary decision diagrams. Lecture notes, available online, IT University of Copenhagen, p. 5 (1997)
Bakeli, T., Hafidi, A.A., et al.: COVID-19 infection risk management during construction activities: an approach based on fault tree analysis (FTA). J. Emerg. Manage. 18(7), 161–176 (2020)
Basgöze, D., Volk, M., Katoen, J., Khan, S., Stoelinga, M.: BDDs strike back - efficient analysis of static and dynamic fault trees. In: Deshmukh, J.V., Havelund, K., Perez, I. (eds.) NFM 2022. LNCS, vol. 13260, pp. 713–732. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-06773-0_38
Ben-Ari, M.: Mathematical Logic for Computer Science. Springer, Heidelberg (2012). https://doi.org/10.1007/978-1-4471-4129-7
Bieber, P., Castel, C., Seguin, C.: Combination of fault tree analysis and model checking for safety assessment of complex system. In: Bondavalli, A., Thevenod-Fosse, P. (eds.) EDCC 2002. LNCS, vol. 2485, pp. 19–31. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36080-8_3
Bobbio, A., Egidi, L., Terruggia, R.: A methodology for qualitative/quantitative analysis of weighted attack trees. IFAC Proc. Vol. 46(22), 133–138 (2013). https://doi.org/10.3182/20130904-3-UK-4041.00007
Boudali, H., Crouzen, P., Stoelinga, M.: Dynamic fault tree analysis using input/output interactive Markov chains. In: DSN, pp. 708–717. IEEE Computer Society (2007). https://doi.org/10.1109/DSN.2007.37
Bozzano, M., Cimatti, A., Katoen, J., Nguyen, V.Y., Noll, T., Roveri, M.: Safety, dependability and performance analysis of extended AADL models. Comput. J. 54(5), 754–775 (2011). https://doi.org/10.1093/comjnl/bxq024
Brace, K., Rudell, R., Bryant, R.: Efficient implementation of a BDD package. In: 27th ACM/IEEE Design Automation Conference, pp. 40–45 (1990). https://doi.org/10.1109/DAC.1990.114826
Budde, C.E., Dehnert, C., Hahn, E.M., Hartmanns, A., Junges, S., Turrini, A.: JANI: quantitative model and tool interaction. In: Legay, A., Margaria, T. (eds.) TACAS 2017. LNCS, vol. 10206, pp. 151–168. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54580-5_9
Budde, C.E., Stoelinga, M.: Efficient algorithms for quantitative attack tree analysis. In: 2021 IEEE 34th Computer Security Foundations Symposium (CSF), pp. 1–15 (2021). https://doi.org/10.1109/CSF51468.2021.00041
Clark, P., Harrison, P., Jenkins, T., Thompson, J.A., Wojcik, R.H., et al.: Acquiring and using world knowledge using a restricted subset of English. In: Flairs Conference, pp. 506–511 (2005)
Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982). https://doi.org/10.1007/BFb0025774
Conrad, E., Titolo, L., Giannakopoulou, D., Pressburger, T., Dutle, A.: A compositional proof framework for FRETish requirements. In: Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, pp. 68–81 (2022)
Corzilius, F., Kremer, G., Junges, S., Schupp, S., Ábrahám, E.: SMT-RAT: an open source C++ toolbox for strategic and parallel SMT solving. In: Heule, M., Weaver, S. (eds.) SAT 2015. LNCS, vol. 9340, pp. 360–368. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24318-4_26
Crapo, A., Moitra, A., McMillan, C., Russell, D.: Requirements capture and analysis in ASSERT (TM). In: 2017 IEEE 25th International Requirements Engineering Conference (RE), pp. 283–291. IEEE (2017)
Cubuktepe, M., Jansen, N., Junges, S., Katoen, J.P., Topcu, U.: Convex optimization for parameter synthesis in MDPs. IEEE Trans. Autom. Control 67, 6333–6348 (2021)
Déharbe, D., Shankar, S., Clarke, E.M.: Model checking VHDL with CV. In: Gopalakrishnan, G., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 508–514. Springer, Heidelberg (1998). https://doi.org/10.1007/3-540-49519-3_33
Dutuit, Y., Rauzy, A.: A linear-time algorithm to find modules of fault trees. IEEE Trans. Reliab. 45(3), 422–425 (1996)
Ericson, C.A.: Fault tree analysis. In: System Safety Conference, vol. 1, pp. 1–9 (1999)
Gainer, P., Hahn, E.M., Schewe, S.: Accelerated model checking of parametric Markov chains. In: Lahiri, S.K., Wang, C. (eds.) ATVA 2018. LNCS, vol. 11138, pp. 300–316. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-01090-4_18
Giannakopoulou, D., Mavridou, A., Rhein, J., Pressburger, T., Schumann, J., Shi, N.: Formal requirements elicitation with FRET. In: International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ-2020). No. ARC-E-DAA-TN77785 (2020)
Hahn, E.M., Han, T., Zhang, L.: Synthesis for PCTL in parametric Markov decision processes. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 146–161. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-20398-5_12
Hansen, K.M., Ravn, A.P., Stavridou, V.: From safety analysis to software requirements. IEEE Trans. Software Eng. 24(7), 573–584 (1998)
Hansson, H., Jonsson, B.: A logic for reasoning about time and reliability. Formal Aspects Comput. 6(5), 512–535 (1994). https://doi.org/10.1007/BF01211866
Hermanns, H., Krämer, J., Krčál, J., Stoelinga, M.: The value of attack-defence diagrams. In: Piessens, F., Viganò, L. (eds.) POST 2016. LNCS, vol. 9635, pp. 163–185. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49635-0_9
International Standardization Organization: ISO/DIS 26262: Road vehicles, functional safety (2018). https://www.iso.org/standard/68383.html
Jimenez-Roa, L., Heskes, T., Tinga, T., Stoelinga, M.: Automatic inference of fault tree models via multi-objective evolutionary algorithms. IEEE Trans. Dependable Secure Comput., 1–12 (2021). https://doi.org/10.1109/TDSC.2022.3203805
Junges, S., et al.: Parameter synthesis for Markov models. arXiv preprint arXiv:1903.07993 (2019)
Katoen, J.P.: The probabilistic model checking landscape. In: Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science, pp. 31–45 (2016)
Kumar, R., Stoelinga, M.: Quantitative security and safety analysis with attack-fault trees. In: Proceedings of the 18th IEEE International Symposium on High Assurance Systems Engineering (HASE 2017), pp. 25–32. HASE, IEEE, USA (2017). https://doi.org/10.1109/HASE.2017.12
Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 585–591. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_47
Moszkowski, B.: A temporal logic for multi-level reasoning about hardware. Technical report, STANFORD UNIV CA (1982)
Nauta, M., Bucur, D., Stoelinga, M.: LIFT: learning fault trees from observational data. In: McIver, A., Horvath, A. (eds.) QEST 2018. LNCS, vol. 11024, pp. 306–322. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99154-2_19
Nicoletti, S., Hahn, E., Stoelinga, M.: A logic to reason about fault trees. Interview Report. https://www.utwente.nl/en/eemcs/fmt/research/files/ft-logic-interview-domain-expert.pdf
Nicoletti, S., Hahn, E., Stoelinga, M.: BFL: a logic to reason about fault trees. In: (DSN), pp. 441–452. IEEE/EUCA (2022). https://doi.org/10.1109/DSN53405.2022.00051
Ognjanovic, Z.: Discrete linear-time probabilistic logics: completeness, decidability and complexity. J. Log. Comput. 16(2), 257–285 (2006). https://doi.org/10.1093/logcom/exi077
Pease, A., Murray, W.: An English to logic translator for ontology-based knowledge representation languages. In: 2003 Proceedings of the International Conference on Natural Language Processing and Knowledge Engineering, pp. 777–783. IEEE (2003)
Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, Providence, Rhode Island, USA, 31 October–1 November 1977, pp. 46–57. IEEE Computer Society (1977). https://doi.org/10.1109/SFCS.1977.32
Raskin, J.F.: Logics, automata and classical theories for deciding real time. Ph.D. thesis, Facultés universitaires Notre-Dame de la Paix, Namur (1999)
Rauzy, A.: New algorithms for fault trees analysis. Reliab. Eng. Syst. Saf. 40(3), 203–211 (1993). https://doi.org/10.1016/0951-8320(93)90060-C
Ruijters, E., Stoelinga, M.: Fault tree analysis: a survey of the state-of-the-art in modeling, analysis and tools. Comput. Sci. Rev. 15–16, 29–62 (2015). https://doi.org/10.1016/j.cosrev.2015.03.001
Schneier, B.: Attack trees. Dr. Dobb’s J. 24(12), 21–29 (1999)
Stamatelatos, M., Vesely, W., Dugan, J., Fragola, J., Minarick, J., Railsback, J.: Fault tree handbook with aerospace applications. Prepared for NASA Office of Safety and Mission Assurance (2002)
Thums, A., Schellhorn, G.: Model checking FTA. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 739–757. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-45236-2_40
Volk, M., Junges, S., Katoen, J.: Fast dynamic fault tree analysis by model checking techniques. IEEE Trans. Ind. Inform. 14(1), 370–379 (2018). https://doi.org/10.1109/TII.2017.2710316
Walker, M.D.: Pandora: a logic for the qualitative analysis of temporal fault trees. Ph.D. thesis, The University of Hull (2009)
White, C., Schwitter, R.: An update on PENG light. In: Proceedings of the Australasian Language Technology Association Workshop 2009, pp. 80–88 (2009)
Yuhua, D., Datao, Y.: Estimation of failure probability of oil and gas transmission pipelines by fuzzy fault tree analysis. J. Loss Prev. Process Ind. 18(2), 83–88 (2005)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
A Appendix: Algorithms and Additional Definitions for Layer One Formulae
Following, operations between \(\textsc {bdd} \textrm{s}\) are represented by bold operands e.g., \(\boldsymbol{\wedge }, \boldsymbol{\vee } \). Algorithms to conduct these operations on \(\textsc {bdd} \textrm{s}\) can be found in [2, 5]. Given a set of variables \(\texttt{V} = \{v_1, \ldots ,v_n\}\), existential quantification (needed to translate part of the semantics of \(\textrm{MCS}\) operator) can be defined as follows: \(\boldsymbol{\exists } v . \boldsymbol{\textrm{B}} = \textsc {Restrict}(\boldsymbol{\textrm{B}},v, 0) \boldsymbol{\vee } \textsc {Restrict}(\boldsymbol{\textrm{B}},v, 1)\); \(\boldsymbol{\exists } V . \boldsymbol{\textrm{B}} = \boldsymbol{\exists } v_1. \boldsymbol{\exists } v_2 . \,\ldots \, \boldsymbol{\exists } v_n . \boldsymbol{\textrm{B}} \).
1.1 A.1 Translating FTs to BDDs
\( \varPsi _{FT} \) is defined as follows:
Definition 7
The translation function of a FT T is a function \( \varPsi _{FT_{\textit{T}}} :\texttt{E} \rightarrow \texttt{BDD} \) that takes as input an element \(e\in \texttt{E} \). With \(e'\in ch (e)\), we can define \( \varPsi _{FT_{\textit{T}}} \):
where \(\overline{\boldsymbol{\textrm{B}}}(v)\) is a BDD with a single node in which \( Low (v)=\mathtt {{0}}\) and \( High (v)=\mathtt {{1}}\).
1.2 A.2 Algorithm 5: Translating FTs/Formulae to BDDs
Following, the recursion scheme taken from [37] to translate \(\textsc {ft} \textrm{s}\) and layer one formulae is presented.
where \(\underline{\boldsymbol{\textrm{B}}} _\textit{T} (\phi )[\texttt{V} \curvearrowright \mathtt {V'} ]\) indicates the \(\textsc {bdd}\) \(\underline{\boldsymbol{\textrm{B}}} _\textit{T} (\phi )\) in which every variable \(v_k\in \texttt{V} \) is renamed to its primed \(v'_k\in \mathtt {V'} \).
1.3 A.3 Algorithm 6: Model Checking \(\textsf{PFL}\) over a FT and a \(\overline{b\,}\)
Overview. As per [37], given a specific vector \(\overline{b}\), a \(\textsc {ft}\) \(\textit{T} \) and a layer one formula \(\phi \), this algorithm showcases how to check if \(\overline{b\,}, \textit{T} \models \phi \). To do so, we translate the given formula to a \(\textsc {bdd}\) and then we walk down the \(\textsc {bdd}\) from the root node following truth assignments given in the specific vector \(\overline{b\,}\).
Algorithm 6. Algorithm 6 shows an algorithm to check whether \(\overline{b\,},\textit{T} \models \phi \), given a status vector \(\overline{b\,}\), a \(\textsc {ft}\) \(\textit{T} \) and a formula \(\phi \). A \(\textsc {bdd}\) for the formula \(\phi \) is computed with regard to the structure function of the given \(\textsc {ft}\) \(\textit{T} \) i.e., we compute \(\underline{\boldsymbol{\textrm{B}}} _\textit{T} (\phi )\) as per Algorithm 5. Subsequently, the algorithm walks down the \(\textsc {bdd}\) following the Boolean assignments given in \(\overline{b\,}\): if the i-th element of \(\overline{b\,}\) is set to 0 then the next node in the path will be given by \( Low (w_i)\), if it is set to 1 then the next node will be \( High (w_i)\). When the algorithm reaches a terminal node it returns True if its value is one - i.e., if \(\overline{b\,},\textit{T} \models \phi \) - and False otherwise.
1.4 A.4 Algorithm 7: Computing all Satisfying Vectors
Overview. Given a \(\textsc {ft}\) \(\textit{T} \) and a formula \(\phi \), we now want to compute all vectors \(\overline{b}\) such that \(\overline{b\,}, \textit{T} \models \phi \). In this scenario no Boolean vector is given. Thus, we need to construct the \(\textsc {bdd}\) for the given formula and then collect every path that leads to the terminal \(\mathtt {{1}}\) to compute all satisfying vectors \({\llbracket {\overline{b\,}}\rrbracket }_\textit{T} \) for the given formula.
Algorithm 7. To achieve the desired outcome we will construct the \(\textsc {bdd}\) \(\underline{\boldsymbol{\textrm{B}}} _\textit{T} (\phi )\) for the given formula following Algorithm 5. Then, the algorithm will walk down the \(\textsc {bdd}\) and store all the paths that lead to the terminal node \(\mathtt {{1}}\). These paths represent all the status vectors that satisfy our formula \(\phi \). The value for the elements of each vector is set to 0 or 1 if the stored path follows respectively the low or high edge of the collected elements of the \(\textsc {bdd}\). After computing the \(\textsc {bdd}\) for a given \(\phi \), AllSat [2] will achieve the desired outcome. This algorithm returns exactly all the satisfying assignments for a given \(\textsc {bdd}\), i.e., in our case, all the Boolean vectors that satisfy our formula.
B Appendix: Proofs
1.1 B.1 Proof for Theorem 1
Proof
For a layer one formula \(\phi \) and \(\overline{\rho \,}\in B\), one can express
This is a polynomial in the n variables \(\rho _i\). Each summand has degree 1 in each \(\rho _i\), hence \(\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}},\phi )\) can be written as
for some constants \(c^h_w \in \mathbb {R}\). Now fix an i, and let \(\phi ,\phi '\) be two Boolean formulae; then we can write \(\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}},\phi ')} = \frac{A\rho _i + B}{C\rho _i + D}\) for some polynomials A, B, C, D in the variables \(\rho _1,\ldots ,\rho _{i-1},\rho _{i+1},\ldots ,\rho _n\). In particular, we have
The sign of this partial derivative does not depend on the value of \(\rho _i\). In particular, when all other \(\rho _{i'}\) are fixed, this expression is maximized on an interval when \(\rho _i\) is at one of the boundary points of that interval.
Now let us return to the setting of the Theorem; we will prove it for the maximum only as the minimum is proved analogously. Let Let \(B = \prod _i [l_i,u_i]\) and let \(\overline{\rho \,}\in \prod _i [l_i^{-1},l_i^{+}]\); our aim is to find a vertex \(\overline{\rho \,}'\) such that \(\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}},\phi ')} \le \frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}'},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}'},\phi ')}\). To do so, we construct a sequence \(\overline{\rho \,}_0,\overline{\rho \,}_1,\ldots ,\overline{\rho \,}_n\) with the following properties:
-
1.
\(\overline{\rho \,}_0 = \overline{\rho \,}\);
-
2.
\(\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_i},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_i},\phi ')} \le \frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}},\phi ')}\) for \(i < n\);
-
3.
\(\rho _{i,i'} \in \{l_{i'},u_{i'}\}\) for \(i' \le i \le n\).
This ensures that \(\overline{\rho \,}' := \overline{\rho \,}_n\) has the required property. We define each \(\overline{\rho \,}_{i}\) from \(\overline{\rho \,}_{i-1}\) as follows: define \(\overline{\rho \,}_{i}^-,\overline{\rho \,}_i^+ \in [l_i,u_i]\) by
By the discussion following (3), one has \(\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i}},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i}},\phi ')} \le \max \left\{ \frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}^-},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}^-},\phi ')},\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}^+},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}^+},\phi ')}\right\} \). Take \(\overline{\rho \,}_{i+1} \in \{\overline{\rho \,}^-_{i+1}\), \(\overline{\rho \,}^+_{i+1}\}\) to maximize \(\frac{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}},\phi \wedge \phi ')}{\varPhi ^*_\textit{T} (\mu _{\overline{\rho \,}_{i+1}},\phi ')}\), then this satisfies conditions 1–3 above.
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Nicoletti, S.M., Lopuhaä-Zwakenberg, M., Hahn, E.M., Stoelinga, M. (2023). \(\textsf{PFL}\): A Probabilistic Logic for Fault Trees. In: Chechik, M., Katoen, JP., Leucker, M. (eds) Formal Methods. FM 2023. Lecture Notes in Computer Science, vol 14000. Springer, Cham. https://doi.org/10.1007/978-3-031-27481-7_13
Download citation
DOI: https://doi.org/10.1007/978-3-031-27481-7_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-27480-0
Online ISBN: 978-3-031-27481-7
eBook Packages: Computer ScienceComputer Science (R0)