Skip to main content
Erschienen in: International Journal on Software Tools for Technology Transfer 4/2014

01.08.2014 | TASE 12

Expressive program verification via structured specifications

verfasst von: Cristian Gherghina, Cristina David, Shengchao Qin, Wei-Ngan Chin

Erschienen in: International Journal on Software Tools for Technology Transfer | Ausgabe 4/2014

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Conventional specifications typically have a flat structure that is based primarily on the underlying logic. Such specifications lack structures that could provide better guidance to the verification process. In this work, we propose to add three new structures to a specification framework for separation logic to achieve a more precise and better guided verification for pointer-based programs. The newly introduced structures empower users with more control over the verification process in the following ways: (1) case analysis can be invoked to take advantage of disjointedness conditions in the logic, (2) early, as opposed to late, instantiation can minimise the use of existential quantification and (3) novel formulae structuring can provide better reuse of the verification process. Initial experiments have shown that structured specifications can lead to more precise verification without incurring any performance overhead. To support our proposal, we shall illustrate the usage of structured specifications in the context of proving termination and we will briefly outline the impact of our proposal on a recent development focussed on verifying the FreeRTOS scheduler Ferreira et al. (Int. J. Softw. Tools Technol. Trans. 2014).

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
which can be automatically enforced by checking that the conjunction of any two case guards is unsatisfiable and that the disjunction of all guards is valid.
 
2
For presentation simplicity, we have used \(\varPhi _1{\vdash }^{\kappa }_{V}\mathsf{Q }_2\,{*}\,\varPhi _R\) as a shorthand for \(\varPhi _1{\vdash }^{\kappa }_{V}\mathsf{Q }_2\,{*}\,\{\varPhi _R\}\) and \(\varPhi _1{\vdash }^{\kappa }_{V}\mathsf{Q }_2\) for \(\varPhi _1{\vdash }^{\kappa }_{V}\mathsf{Q }_2\,{*}\,\{{\mathtt{emp}}\}\).
 
Literatur
2.
Zurück zum Zitat Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: an overview. In: CASSIS, vol. 3362, pp. 49–69. Springer-Verlag, LNCS, New York (2004) Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: an overview. In: CASSIS, vol. 3362, pp. 49–69. Springer-Verlag, LNCS, New York (2004)
3.
Zurück zum Zitat Berdine, J., Calcagno, C., O’Hearn, P.W.: Smallfoot: modular automatic assertion checking with separation logic. In: FMCO, Springer LNCS 4111, pp. 115–137 (2006) Berdine, J., Calcagno, C., O’Hearn, P.W.: Smallfoot: modular automatic assertion checking with separation logic. In: FMCO, Springer LNCS 4111, pp. 115–137 (2006)
4.
Zurück zum Zitat Brock, B., Kaufmann, M., Moore, J.S.: ACL2 theorems about commercial microprocessors. In: FMCAD, pp. 275–293 (1996) Brock, B., Kaufmann, M., Moore, J.S.: ACL2 theorems about commercial microprocessors. In: FMCAD, pp. 275–293 (1996)
5.
Zurück zum Zitat Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35, 677–691 (1986)CrossRefMATH Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35, 677–691 (1986)CrossRefMATH
6.
Zurück zum Zitat Burdy, L., Cheon, Y., Cok, D.R., Ernst, M.D., Kiniry, J.R., Leavens, G.T., Leino, K.R.M., Poll, E.: An overview of JML tools and applications. Int. J. Softw. Tools Technol. Trans. 7(3), 212–232 (2005) Burdy, L., Cheon, Y., Cok, D.R., Ernst, M.D., Kiniry, J.R., Leavens, G.T., Leino, K.R.M., Poll, E.: An overview of JML tools and applications. Int. J. Softw. Tools Technol. Trans. 7(3), 212–232 (2005)
7.
Zurück zum Zitat Chang, B.Y.E., Rival, X.: Relational inductive shape analysis. In: POPL, pp. 247–260 (2008) Chang, B.Y.E., Rival, X.: Relational inductive shape analysis. In: POPL, pp. 247–260 (2008)
8.
Zurück zum Zitat Chin, W.N., David, C., Nguyen, H.H., Qin, S.: Multiple pre/post specifications for heap-manipulating methods. In: HASE, pp. 357–364 (2007) Chin, W.N., David, C., Nguyen, H.H., Qin, S.: Multiple pre/post specifications for heap-manipulating methods. In: HASE, pp. 357–364 (2007)
9.
Zurück zum Zitat Chin, W.N., David, C., Nguyen, H.H., Qin, S.: Automated verification of shape, size and bag properties via user-defined predicates in separation logic. Sci. Comput. Program. 77(9), 1006–1036 (2012)CrossRefMATH Chin, W.N., David, C., Nguyen, H.H., Qin, S.: Automated verification of shape, size and bag properties via user-defined predicates in separation logic. Sci. Comput. Program. 77(9), 1006–1036 (2012)CrossRefMATH
10.
Zurück zum Zitat Distefano, D., Parkinson, M.J.: jStar: towards practical verification for Java. In: OOPSLA (2008) Distefano, D., Parkinson, M.J.: jStar: towards practical verification for Java. In: OOPSLA (2008)
11.
Zurück zum Zitat Ferreira, J.F., Gherghina, C., He, G., Qin, S., Chin, W.-N.: Automated verification of the FreeRTOS scheduler in HIP/SLEEK. Int. J. Softw. Tools Technol. Trans (2014). doi:10.1007/s10009-014-307-4 Ferreira, J.F., Gherghina, C., He, G., Qin, S., Chin, W.-N.: Automated verification of the FreeRTOS scheduler in HIP/SLEEK. Int. J. Softw. Tools Technol. Trans (2014). doi:10.​1007/​s10009-014-307-4
12.
Zurück zum Zitat Gherghina, C., David, C., Qin, S., Chin, W.N.: Structured specifications for better verification of heap-manipulating programs. In: FM (2011) Gherghina, C., David, C., Qin, S., Chin, W.N.: Structured specifications for better verification of heap-manipulating programs. In: FM (2011)
13.
Zurück zum Zitat Ishtiaq, S., O’Hearn, P.: BI as an assertion language for mutable data structures. In: POPL, pp. 14–26. London (2001) Ishtiaq, S., O’Hearn, P.: BI as an assertion language for mutable data structures. In: POPL, pp. 14–26. London (2001)
14.
Zurück zum Zitat Jacobs, B., Smans, J., Piessens, F.: A quick tour of the veriFast program verifier. In: APLAS, pp. 304–311 (2010) Jacobs, B., Smans, J., Piessens, F.: A quick tour of the veriFast program verifier. In: APLAS, pp. 304–311 (2010)
15.
Zurück zum Zitat Jonkers, H.B.M.: Upgrading the pre- and postcondition technique. In: VDM, pp. 428–456. Springer-Verlag, London (1991) Jonkers, H.B.M.: Upgrading the pre- and postcondition technique. In: VDM, pp. 428–456. Springer-Verlag, London (1991)
17.
Zurück zum Zitat Le, T.C., Gherghina, C., Hobor, A., Chin, W.N.: A Specification Logic for Termination and Non-Termination Reasoning Tech. rep. National University of Singapore, Singapore (2012) Le, T.C., Gherghina, C., Hobor, A., Chin, W.N.: A Specification Logic for Termination and Non-Termination Reasoning Tech. rep. National University of Singapore, Singapore (2012)
18.
Zurück zum Zitat Leavens, G.T., Baker, A.L.: Enhancing the pre- and postcondition technique for more expressive specifications. In: FM (1999) Leavens, G.T., Baker, A.L.: Enhancing the pre- and postcondition technique for more expressive specifications. In: FM (1999)
19.
Zurück zum Zitat Leino, K.R.M.: Dafny: An automatic program verifier for functional correctness. In: LPAR (Dakar), pp. 348–370 (2010) Leino, K.R.M.: Dafny: An automatic program verifier for functional correctness. In: LPAR (Dakar), pp. 348–370 (2010)
20.
Zurück zum Zitat Parkinson, M.J., Bierman, G.M.: Separation logic and abstraction. In: POPL, pp. 247–258 (2005) Parkinson, M.J., Bierman, G.M.: Separation logic and abstraction. In: POPL, pp. 247–258 (2005)
21.
Zurück zum Zitat Nguyen, H., David, C., Qin, S., Chin, W.: Automated verification of shape and size properties via separation logic. In: VMCAI. Nice, France (2007) Nguyen, H., David, C., Qin, S., Chin, W.: Automated verification of shape and size properties via separation logic. In: VMCAI. Nice, France (2007)
22.
Zurück zum Zitat O’Hearn, P., Yang, H., Reynolds, J.: Separation and information hiding. In: POPL, Venice, Italy (2004) O’Hearn, P., Yang, H., Reynolds, J.: Separation and information hiding. In: POPL, Venice, Italy (2004)
23.
Zurück zum Zitat Pientka, B.: A heuristic for case analysis. Undergraduate thesis, Technical Paper 37, Department of Artificial Intelligence, University of Edinburgh (1995) Pientka, B.: A heuristic for case analysis. Undergraduate thesis, Technical Paper 37, Department of Artificial Intelligence, University of Edinburgh (1995)
24.
Zurück zum Zitat Pugh, W.: The Omega Test: A fast practical integer programming algorithm for dependence analysis. Commun. ACM 8, 102–114 (1992) Pugh, W.: The Omega Test: A fast practical integer programming algorithm for dependence analysis. Commun. ACM 8, 102–114 (1992)
25.
Zurück zum Zitat Reynolds, J.: Separation logic: a logic for shared mutable data structures. In: LICS, pp. 55–74. Copenhagen, Denmark (2002) Reynolds, J.: Separation logic: a logic for shared mutable data structures. In: LICS, pp. 55–74. Copenhagen, Denmark (2002)
26.
Zurück zum Zitat Seino, T., Ogato, K., Futatsugi, K.: Mechanically supporting case analysis for verification of distributed systems. IJPCC (2005) Seino, T., Ogato, K., Futatsugi, K.: Mechanically supporting case analysis for verification of distributed systems. IJPCC (2005)
27.
Zurück zum Zitat Woodcock, J.: Grand challenge in software verification. In: SBMF (2008) Woodcock, J.: Grand challenge in software verification. In: SBMF (2008)
28.
Zurück zum Zitat Zee, K., Kuncak, V., Rinard, M.C.: An integrated proof language for imperative programs. In: PLDI, pp. 338–351. ACM, New York (2009) Zee, K., Kuncak, V., Rinard, M.C.: An integrated proof language for imperative programs. In: PLDI, pp. 338–351. ACM, New York (2009)
Metadaten
Titel
Expressive program verification via structured specifications
verfasst von
Cristian Gherghina
Cristina David
Shengchao Qin
Wei-Ngan Chin
Publikationsdatum
01.08.2014
Verlag
Springer Berlin Heidelberg
Erschienen in
International Journal on Software Tools for Technology Transfer / Ausgabe 4/2014
Print ISSN: 1433-2779
Elektronische ISSN: 1433-2787
DOI
https://doi.org/10.1007/s10009-014-0306-5

Weitere Artikel der Ausgabe 4/2014

International Journal on Software Tools for Technology Transfer 4/2014 Zur Ausgabe