Skip to main content

The Pragmatic Dimension of Formal Methods: Towards Building a Sound Synthesiser

  • Conference paper
  • First Online:
Formal Methods: Foundations and Applications (SBMF 2018)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11254))

Included in the following conference series:

  • 328 Accesses

Abstract

Formal methods are mathematically based languages, tools and techniques for the specification, development and verification of systems [12]. Although most effort is being spent on specifying systems and verifying their properties, a final goal of most formal methods is achieving correct code from formal specifications. In this direction we find two representative strategies: (i) one is based on proposing refinements until a certain concrete design is achieved and then an almost direct mapping from mathematical elements to the source code of some programming language is made [17]; and (ii) another is using some refinement calculus in which specification and programming constructs are available in a single language and code is achieved by removing the specification elements by applying specific refinement rules [9]. Both strategies depend on developers experience.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 49.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 64.99
Price excludes VAT (USA)
  • Compact, lightweight 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.

    https://aleksandarmilicevic.github.io/hola/.

  2. 2.

    http://www.inpe.br/.

  3. 3.

    https://embraer.com/.

References

  1. Esparza, J., Lammich, P., Neumann, R., Nipkow, T., Schimpf, A., Smaus, J.-G.: A fully verified executable LTL model checker. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 463–478. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39799-8_31

    Chapter  Google Scholar 

  2. Gomes, A., Mota, A., Sampaio, A., Ferri, F., Watanabe, E.: Constructive model-based analysis for safety assessment. Int. J. Softw. Tools Technol. Transf. 14(6), 673–702 (2012)

    Article  Google Scholar 

  3. Gulwani, S., Polozov, O., Singh, R.: Program synthesis. Found. Trends Program. Lang. 4(1–2), 1–119 (2017)

    Google Scholar 

  4. Hupel, L., Nipkow, T.: A verified compiler from Isabelle/HOL to CakeML. In: Ahmed, A. (ed.) ESOP 2018. LNCS, vol. 10801, pp. 999–1026. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89884-1_35

    Chapter  Google Scholar 

  5. Jackson, D.: Boolean compilation of relational specifications. Technical report, Cambridge, MA, USA (1998)

    Google Scholar 

  6. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge (2006)

    Google Scholar 

  7. Leroy, X.: A formally verified compiler back-end. J. Autom. Reason. 43(4), 363 (2009)

    Article  MathSciNet  Google Scholar 

  8. Milicevic, A., Near, J.P., Kang, E., Jackson, D.: Alloy*: a general-purpose higher-order relational constraint solver. Form. Methods Syst. Des., 1–32 (2017). https://doi.org/10.1007/s10703-016-0267-2

  9. Morgan, C.: Programming from Specifications. Prentice Hall International Series in Computer Science, 2nd edn. Prentice Hall, Upper Saddle River (1994)

    MATH  Google Scholar 

  10. Mota, A., Iyoda, J., Maranhão, H.: Program synthesis by model finding. Inf. Process. Lett. 116(11), 701–705 (2016)

    Article  Google Scholar 

  11. Mota, A., Sampaio, A.: Model-checking CSP-Z: strategy, tool support and industrial application. Sci. Comput. Program. 40(1), 59–96 (2001)

    Article  Google Scholar 

  12. O’Regan, G.: Concise Guide to Software Engineering: From Fundamentals to Application Methods. UTCS. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57750-0

    Book  Google Scholar 

  13. Paulson, L.C.: Designing a theorem prover. In: Handbook of Logic in Computer Science, vol. 2, pp. 415–475. Oxford University Press Inc., New York (1992)

    Google Scholar 

  14. Solar-Lezama, A., Tancau, L., Bodik, R., Seshia, S., Saraswat, V.: Combinatorial sketching for finite programs. SIGOPS Oper. Syst. Rev. 40(5), 404–415 (2006)

    Article  Google Scholar 

  15. Srivastava, S., Gulwani, S., Foster, J.S.: From program verification to program synthesis. In: Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, pp. 313–326. ACM (2010)

    Google Scholar 

  16. Torlak, E., Jackson, D.: Kodkod: a relational model finder. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 632–647. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71209-1_49

    Chapter  Google Scholar 

  17. Woodcock, J., Davies, J.: Using Z: Specification, Refinement, and Proof. Prentice-Hall Inc., Upper Saddle River (1996)

    MATH  Google Scholar 

Download references

Acknowledgements

I would like to thank my colleagues Augusto Sampaio, Juliano Iyoda, Márcio Cornélio, Ana Cavalcanti, and Jim Woodcock for our collaborations. And to CNPq, grant 302170/2016-2, for supporting my research.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexandre Mota .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Mota, A. (2018). The Pragmatic Dimension of Formal Methods: Towards Building a Sound Synthesiser. In: Massoni, T., Mousavi, M. (eds) Formal Methods: Foundations and Applications. SBMF 2018. Lecture Notes in Computer Science(), vol 11254. Springer, Cham. https://doi.org/10.1007/978-3-030-03044-5_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-03044-5_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-03043-8

  • Online ISBN: 978-3-030-03044-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics