Skip to main content

Model Checking Algorithms

  • Chapter
  • First Online:
Concise Guide to Software Verification

Abstract

In Chap. 4, we have explained how NuSMV can be used to verify LTL and CTL formulae, and how Spin can be used to verify LTL formulae. But how do model checkers such as NuSMV and Spin actually perform those computations? In the current chapter, we explain the basics of the algorithms applied by NuSMV and Spin. First, we explain how CTL formulae are commonly checked in NuSMV, after which we present a method used by NuSMV to check LTL formulae that is based on the CTL model checking procedure. After that, we address how Spin verifies assertions, and how an extended version of that procedure is used by Spin to check LTL formulae.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 89.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Technically, transitive, reflexive closures can be defined for relations, as opposed to functions, as explained in Chap. 2. However, \(\mathop {\textsf{chld}()}\) effectively defines a relation C: for CTL subformulae \(\Phi _1\) and \(\Phi _2\) of \(\Phi \), we have \(\Phi _1 \mathrel {C} \Phi _2\) if and only if \(\Phi _2 \in \mathop {\textsf{chld}(\Phi _1)}\). The reflexivity of \(\mathop {\textsf{chld}^*()}\) therefore refers to the fact that for all CTL subformulae \(\Phi _1\) of \(\Phi \), we have \(\Phi _1 \in \mathop {\textsf{chld}^*(\Phi _1)}\), and the transitivity of \(\mathop {\textsf{chld}^*()}\) refers to the fact that for all CTL subformulae \(\Phi _1\), \(\Phi _2\) and \(\Phi _3\) of \(\Phi \), \(\Phi _2 \in \mathop {\textsf{chld}^*(\Phi _1)}\) and \(\Phi _3 \in \mathop {\textsf{chld}^*(\Phi _2)}\) implies that \(\Phi _3 \in \mathop {\textsf{chld}^*(\Phi _1)}\).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marieke Huisman .

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Huisman, M., Wijs, A. (2023). Model Checking Algorithms. In: Concise Guide to Software Verification. Texts in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-031-30167-4_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-30167-4_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-30166-7

  • Online ISBN: 978-3-031-30167-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics