Skip to main content

2015 | OriginalPaper | Buchkapitel

A Program Construction and Verification Tool for Separation Logic

verfasst von : Brijesh Dongol, Victor B. F. Gomes, Georg Struth

Erschienen in: Mathematics of Program Construction

Verlag: Springer International Publishing

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

search-config
loading …

Abstract

An algebraic approach to the design of program construction and verification tools is applied to separation logic. The control-flow level is modelled by power series with convolution as separating conjunction. A generic construction lifts resource monoids to assertion and predicate transformer quantales. The data domain is captured by concrete store-heap models. These are linked to the separation algebra by soundness proofs. Verification conditions and transformation or refinement laws are derived by equational reasoning within the predicate transformer quantale. This separation of concerns makes an implementation in the Isabelle/HOL proof assistant simple and highly automatic. The resulting tool is itself correct by construction; it is explained on three simple examples.

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!

Literatur
1.
Zurück zum Zitat Armstrong, A., Gomes, V.B.F., Struth, G.: Algebraic principles for rely-guarantee style concurrency verification tools. In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 78–93. Springer, Heidelberg (2014) CrossRef Armstrong, A., Gomes, V.B.F., Struth, G.: Algebraic principles for rely-guarantee style concurrency verification tools. In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 78–93. Springer, Heidelberg (2014) CrossRef
2.
Zurück zum Zitat Armstrong, A., Gomes, V.B.F., Struth, G.: Lightweight program construction and verification tools in Isabelle/HOL. In: Giannakopoulou, D., Salaün, G. (eds.) SEFM 2014. LNCS, vol. 8702, pp. 5–19. Springer, Heidelberg (2014) CrossRef Armstrong, A., Gomes, V.B.F., Struth, G.: Lightweight program construction and verification tools in Isabelle/HOL. In: Giannakopoulou, D., Salaün, G. (eds.) SEFM 2014. LNCS, vol. 8702, pp. 5–19. Springer, Heidelberg (2014) CrossRef
3.
Zurück zum Zitat Back, R.-J., von Wright, J.: Refinement Calculus. Springer, Berlin (1999) MATH Back, R.-J., von Wright, J.: Refinement Calculus. Springer, Berlin (1999) MATH
4.
Zurück zum Zitat Bergelson, V., Blass, A., Hindman, N.: Partition theorems for spaces of variable words. Proc. London Math. Soc. 68(3), 449–476 (1994)MathSciNetCrossRefMATH Bergelson, V., Blass, A., Hindman, N.: Partition theorems for spaces of variable words. Proc. London Math. Soc. 68(3), 449–476 (1994)MathSciNetCrossRefMATH
5.
Zurück zum Zitat Berstel, J., Reutenauer, C.: Les séries rationnelles et leurs langagues. Masson (1984) Berstel, J., Reutenauer, C.: Les séries rationnelles et leurs langagues. Masson (1984)
6.
Zurück zum Zitat Bornat, R., Calcagno, C., O’Hearn, P.W., Parkinson, M.J.: Permission accounting in separation logic. In: Palsberg, J., Abadi, M. (eds.) POPL, pp. 259–270. ACM (2005) Bornat, R., Calcagno, C., O’Hearn, P.W., Parkinson, M.J.: Permission accounting in separation logic. In: Palsberg, J., Abadi, M. (eds.) POPL, pp. 259–270. ACM (2005)
7.
Zurück zum Zitat Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: LICS 2007, pp. 366–378. IEEE Computer Society (2007) Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: LICS 2007, pp. 366–378. IEEE Computer Society (2007)
8.
Zurück zum Zitat Chlipala, A., Malecha, J.G., Morrisett, G., Shinnar, A., Wisnesky, R.: Effective interactive proofs for higher-order imperative programs. In: Hutton, G., Tolmach, A.P. (eds.) ICFP 2009, pp. 79–90. ACM (2009) Chlipala, A., Malecha, J.G., Morrisett, G., Shinnar, A., Wisnesky, R.: Effective interactive proofs for higher-order imperative programs. In: Hutton, G., Tolmach, A.P. (eds.) ICFP 2009, pp. 79–90. ACM (2009)
10.
Zurück zum Zitat Dang, H.-H., Möller, B.: Transitive separation logic. In: Kahl, W., Griffin, T.G. (eds.) RAMICS 2012. LNCS, vol. 7560, pp. 1–16. Springer, Heidelberg (2012) CrossRef Dang, H.-H., Möller, B.: Transitive separation logic. In: Kahl, W., Griffin, T.G. (eds.) RAMICS 2012. LNCS, vol. 7560, pp. 1–16. Springer, Heidelberg (2012) CrossRef
11.
Zurück zum Zitat Dang, H.-H., Möller, B.: Concurrency and local reasoning under reverse interchange. Sci. Comput. Program. 85, 204–223 (2014)CrossRef Dang, H.-H., Möller, B.: Concurrency and local reasoning under reverse interchange. Sci. Comput. Program. 85, 204–223 (2014)CrossRef
12.
Zurück zum Zitat Day, B.: On closed categories of functors. In: MacLane, S., et al. (eds.) Reports of the Midwest Category Seminar IV. Lecture Notes in Mathematics, vol. 137, pp. 1–38. Springer, Heidelberg (1970) CrossRef Day, B.: On closed categories of functors. In: MacLane, S., et al. (eds.) Reports of the Midwest Category Seminar IV. Lecture Notes in Mathematics, vol. 137, pp. 1–38. Springer, Heidelberg (1970) CrossRef
13.
Zurück zum Zitat Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: compositional reasoning for concurrent programs. In: Giacobazzi, R., Cousot, R. (eds.) POPL, pp. 287–300. ACM (2013) Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: compositional reasoning for concurrent programs. In: Giacobazzi, R., Cousot, R. (eds.) POPL, pp. 287–300. ACM (2013)
14.
Zurück zum Zitat Distefano, D., Parkinson, M.J.: jstar: towards practical verification for Java. In: Harris, G.E. (ed.) OOPSLA 2008, pp. 213–226. ACM (2008) Distefano, D., Parkinson, M.J.: jstar: towards practical verification for Java. In: Harris, G.E. (ed.) OOPSLA 2008, pp. 213–226. ACM (2008)
15.
Zurück zum Zitat Dongol, B., Hayes, I.J., Struth, G.: Convolution, separation and concurrency. CoRR, abs/1312.1225 (2014) Dongol, B., Hayes, I.J., Struth, G.: Convolution, separation and concurrency. CoRR, abs/1312.1225 (2014)
16.
Zurück zum Zitat Droste, M., Kuich, W., Vogler, H.: Handbook of Weighted Automata, 1st edn. Springer, Heidelberg (2009) CrossRefMATH Droste, M., Kuich, W., Vogler, H.: Handbook of Weighted Automata, 1st edn. Springer, Heidelberg (2009) CrossRefMATH
17.
Zurück zum Zitat Dudka, K., Peringer, P., Vojnar, T.: Byte-precise verification of low-level list manipulation. In: Logozzo, F., Fähndrich, M. (eds.) Static Analysis. LNCS, vol. 7935, pp. 215–237. Springer, Heidelberg (2013) CrossRef Dudka, K., Peringer, P., Vojnar, T.: Byte-precise verification of low-level list manipulation. In: Logozzo, F., Fähndrich, M. (eds.) Static Analysis. LNCS, vol. 7935, pp. 215–237. Springer, Heidelberg (2013) CrossRef
18.
Zurück zum Zitat Gardiner, P.H.B., Martin, C.E., de Moor, O.: An algebraic construction of predicate transformers. Sci. Comput. Program. 22(1–2), 21–44 (1994)MathSciNetCrossRefMATH Gardiner, P.H.B., Martin, C.E., de Moor, O.: An algebraic construction of predicate transformers. Sci. Comput. Program. 22(1–2), 21–44 (1994)MathSciNetCrossRefMATH
19.
Zurück zum Zitat Guttmann, W., Struth, G., Weber, T.: Automating algebraic methods in Isabelle. In: Qin, S., Qiu, Z. (eds.) ICFEM 2011. LNCS, vol. 6991, pp. 617–632. Springer, Heidelberg (2011) CrossRef Guttmann, W., Struth, G., Weber, T.: Automating algebraic methods in Isabelle. In: Qin, S., Qiu, Z. (eds.) ICFEM 2011. LNCS, vol. 6991, pp. 617–632. Springer, Heidelberg (2011) CrossRef
20.
Zurück zum Zitat Hoare, C.A.R., Hussain, A., Möller, B., O’Hearn, P.W., Petersen, R.L., Struth, G.: On locality and the exchange law for concurrent processes. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 250–264. Springer, Heidelberg (2011) CrossRef Hoare, C.A.R., Hussain, A., Möller, B., O’Hearn, P.W., Petersen, R.L., Struth, G.: On locality and the exchange law for concurrent processes. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 250–264. Springer, Heidelberg (2011) CrossRef
21.
Zurück zum Zitat Hoare, T., Möller, B., Struth, G., Wehrman, I.: Concurrent kleene algebra and its foundations. J. Log. Algebr. Program. 80(6), 266–296 (2011)MathSciNetCrossRefMATH Hoare, T., Möller, B., Struth, G., Wehrman, I.: Concurrent kleene algebra and its foundations. J. Log. Algebr. Program. 80(6), 266–296 (2011)MathSciNetCrossRefMATH
22.
Zurück zum Zitat Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM TOPLAS 5(4), 596–619 (1983)CrossRefMATH Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM TOPLAS 5(4), 596–619 (1983)CrossRefMATH
23.
Zurück zum Zitat Klein, G., Kolanski, R., Boyton, A.: Mechanised separation algebra. In: Beringer, L., Felty, A. (eds.) ITP 2012. LNCS, vol. 7406, pp. 332–337. Springer, Heidelberg (2012) CrossRef Klein, G., Kolanski, R., Boyton, A.: Mechanised separation algebra. In: Beringer, L., Felty, A. (eds.) ITP 2012. LNCS, vol. 7406, pp. 332–337. Springer, Heidelberg (2012) CrossRef
26.
27.
Zurück zum Zitat Morgan, C.: Programming from Specifications. Prentice-Hall, New York (1998)MATH Morgan, C.: Programming from Specifications. Prentice-Hall, New York (1998)MATH
28.
Zurück zum Zitat Naumann, D.A.: Beyond fun: order and membership in polytypic imperative programming. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 286–314. Springer, Heidelberg (1998) CrossRef Naumann, D.A.: Beyond fun: order and membership in polytypic imperative programming. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 286–314. Springer, Heidelberg (1998) CrossRef
29.
Zurück zum Zitat Nipkow, T., Paulson, L.C., Wenzel, M. (eds.): Isabelle/HOL – A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002) MATH Nipkow, T., Paulson, L.C., Wenzel, M. (eds.): Isabelle/HOL – A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002) MATH
32.
Zurück zum Zitat O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001) CrossRef O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001) CrossRef
34.
Zurück zum Zitat Preoteasa, V.: Algebra of monotonic boolean transformers. In: Simao, A., Morgan, C. (eds.) SBMF 2011. LNCS, vol. 7021, pp. 140–155. Springer, Heidelberg (2011) CrossRef Preoteasa, V.: Algebra of monotonic boolean transformers. In: Simao, A., Morgan, C. (eds.) SBMF 2011. LNCS, vol. 7021, pp. 140–155. Springer, Heidelberg (2011) CrossRef
35.
Zurück zum Zitat Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS, pp. 55–74. IEEE Computer Society (2002) Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS, pp. 55–74. IEEE Computer Society (2002)
36.
Zurück zum Zitat Smans, J., Jacobs, B., Piessens, F.: VeriFast for Java: a tutorial. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 407–442. Springer, Heidelberg (2013) Smans, J., Jacobs, B., Piessens, F.: VeriFast for Java: a tutorial. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 407–442. Springer, Heidelberg (2013)
37.
Zurück zum Zitat Tuerk, T.: A Separation Logic Framework for HOL. Ph.D. thesis, Computer Laboratory, University of Cambridge (2011) Tuerk, T.: A Separation Logic Framework for HOL. Ph.D. thesis, Computer Laboratory, University of Cambridge (2011)
38.
Zurück zum Zitat V. Vafeiadis. Modular Fine-Grained Concurrency Verificaiton. PhD thesis, Computer Laboratory, University of Cambridge, 2007 V. Vafeiadis. Modular Fine-Grained Concurrency Verificaiton. PhD thesis, Computer Laboratory, University of Cambridge, 2007
39.
Zurück zum Zitat van Staden, S.: Constructing the Views Framework. In: Naumann, D. (ed.) UTP 2014. LNCS, vol. 8963, pp. 62–83. Springer, Heidelberg (2015) van Staden, S.: Constructing the Views Framework. In: Naumann, D. (ed.) UTP 2014. LNCS, vol. 8963, pp. 62–83. Springer, Heidelberg (2015)
40.
Zurück zum Zitat Weber, T.: Towards Mechanized Program Verification with Separation Logic. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 250–264. Springer, Heidelberg (2004) CrossRefMATH Weber, T.: Towards Mechanized Program Verification with Separation Logic. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 250–264. Springer, Heidelberg (2004) CrossRefMATH
41.
Zurück zum Zitat Yang, H., O’Hearn, P.W.: A Semantic Basis for Local Reasoning. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 402–416. Springer, Heidelberg (2002) CrossRef Yang, H., O’Hearn, P.W.: A Semantic Basis for Local Reasoning. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 402–416. Springer, Heidelberg (2002) CrossRef
Metadaten
Titel
A Program Construction and Verification Tool for Separation Logic
verfasst von
Brijesh Dongol
Victor B. F. Gomes
Georg Struth
Copyright-Jahr
2015
Verlag
Springer International Publishing
DOI
https://doi.org/10.1007/978-3-319-19797-5_7

Premium Partner