Skip to main content

Automating Refinement of Circus Programs

  • Conference paper
Book cover Formal Methods: Foundations and Applications (SBMF 2010)

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

Included in the following conference series:

Abstract

In previous work, we have presented a mechanisation of Circus for the theorem prover ProofPowerZ. Circus is a refinement language for state-rich reactive systems that combines Z and CSP. In this paper, we present techniques to automate the discharge of proof obligations typically generated by the Circus refinement laws. They eliminate most of the proofs that are imposed by the fact that the encoding has to be precise about typing and well-definedness issues, and leave just those that are expected in a pen-and-paper refinement. This allows us to concentrate on the proof of properties that are significant for the problem at hand, while benefiting from the increased assurance and efficiency afforded by the use of a theorem prover as well as high-level tactic languages for refinement. Our case study is a refinement strategy for verification of control systems; we present the result of several experiments.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Butterfield, A.: Saoithín Proof Assistant, http://www.scss.tcd.ie/Andrew.Butterfield/Saoithin/

  2. Cavalcanti, A., Clayton, P., O’Halloran, C.: Control Law Diagrams in Circus. In: FM 2005: Formal Methods. LNCS, vol. 3582, pp. 253–268. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  3. Cavalcanti, A., Clayton, P., O’Halloran, C.: From Control Law Diagrams to Ada via Circus. Technical report, University of York, York, U.K. (April 2008)

    Google Scholar 

  4. Cavalcanti, A., Sampaio, A., Woodcock, J.: A Refinement Strategy for Circus. Formal Aspects of Computing 15(2-3), 146–181 (2003)

    Article  MATH  Google Scholar 

  5. Dijkstra, E.: A Discipline of Programming. Prentice Hall Series in Automatic Computation. Prentice Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

  6. Hoare, C.A.R., Jifeng, H.: Unifying Theories of Programming. Prentice Hall Series in Computer Science. Prentice Hall, Englewood Cliffs (1998)

    MATH  Google Scholar 

  7. Martin, A., Gardiner, P., Woodcock, J.: A Tactic Calculus - Abridged Version. Formal Aspects of Computing 8(4), 479–489 (1996)

    Article  MATH  Google Scholar 

  8. Morgan, C.: Programming from Specifications. Prentice Hall International Series in Computer Science. Prentice Hall, Englewood Cliffs (1998)

    MATH  Google Scholar 

  9. Oliveira, M.: Formal Derivation of State-Rich Reactive Programs using Circus. PhD thesis, Department of Computer Science, University of York (2005)

    Google Scholar 

  10. Oliveira, M., Cavalcanti, A.: ArcAngelC: a refinement tactic language for Circus. Electronic Notes in Theoretical Computer Science 214, 203–229 (2008)

    Article  Google Scholar 

  11. Oliveira, M., Cavalcanti, A., Woodcock, J.: ArcAngel: a Tactic Language for Refinement. Formal Aspects of Computing 15(1), 28–47 (2003)

    Article  MATH  Google Scholar 

  12. Oliveira, M., Cavalcanti, A., Woodcock, J.: A UTP semantics for Circus. Formal Aspects of Computing, Online First (December 2007)

    Google Scholar 

  13. Oliveira, M., Cavalcanti, A., Zeyda, F.: A Tactic Language for Refinement of State-Rich Concurrent Specifications (to appear)

    Google Scholar 

  14. Oliveira, M., Xavier, M., Cavalcanti, A.: Refine and Gabriel: Support for Refinement and Tactics. In: Proceedings of the Second Int. Conference on Software Engineering and Formal Methods, pp. 310–319. IEEE Computer Society, Los Alamitos (2004)

    Google Scholar 

  15. Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall Series in Computer Science. Prentice Hall, Englewood Cliffs (1997)

    Google Scholar 

  16. Spivey, J.M.: The Z Notation: A Reference Manual. Prentice-Hall International Series In Computer Science. Prentice Hall PTR, Englewood Cliffs (1992)

    MATH  Google Scholar 

  17. von Wright, J.: Program Refinement by Theorem Prover. In: BCS FACS Sixth Refinement Workshop – Theory and Practise of Formal Software Development, London, U.K. Springer, Heidelberg (1994)

    Google Scholar 

  18. Zeyda, F., Cavalcanti, A.: Supporting ArcAngel in ProofPower. Electronic Notes in Theoretical Computer Science 259, 225–243 (2009)

    Article  Google Scholar 

  19. Zeyda, F., Cavalcanti, A.: Mechanical Reasoning about Families of UTP Theories. Science of Computer Programming (March 2010), doi:dx.doi.org/10.1016/j.scico.2010.02.010

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zeyda, F., Cavalcanti, A. (2011). Automating Refinement of Circus Programs. In: Davies, J., Silva, L., Simao, A. (eds) Formal Methods: Foundations and Applications. SBMF 2010. Lecture Notes in Computer Science, vol 6527. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19829-8_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-19829-8_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-19828-1

  • Online ISBN: 978-3-642-19829-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics