Skip to main content

Formal Development and Verification of Reusable Component in PAR Platform

  • Conference paper
  • First Online:
Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2019)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12028))

  • 504 Accesses

Abstract

Formal method is an important approach to develop high trust software systems. Coq is an interactive proof assistant for the development of mathematical theories and formally certified software. Set, Bag, List, Tree, Graph are important reusable components in PAR platform. This paper tries to formally develop ‘Set’ components which have linear structure and verify the correctness of this component mechanically with Coq. The formal development of this component involves formalization of specification, the recurrence relation of problem-solving sequence and loop invariant. Specification language Radl of PAR platform was used to describe the specification, recurrence relation and loop invariants; Software modelling language Apla was used to describe the abstract model of those components. The Dijkstra’s Weakest Precondition method is used to verify abstract model by the interactive proof tool Coq. Finally, the abstract model denoted by Apla was transformed to concrete model written by executable language; such as C++, Java, VB and C#, etc., based on the program generating systems in PAR platform.

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 EPUB and 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

References

  1. Abrial, J.R., Hayes, I.J., Hoare, T.: The Z Notation: A Reference Manual, 2nd edn. Oriel College, Oxford (1998)

    Google Scholar 

  2. Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)

    MATH  Google Scholar 

  3. Tian, C., Duan, Z., Zhang, N.: An efficient approach for abstraction-refinement in model checking. Theoret. Comput. Sci. 461, 76–85 (2012)

    Article  MathSciNet  Google Scholar 

  4. Dijkstra, E.W.: A Discipline of Programming. Springer, Heidelberg (1994)

    Google Scholar 

  5. Gries, D., Schneider, F.B.: A Logical Approach to Discrete Math. Springer, Heidelberg (1981)

    Google Scholar 

  6. He, J., Liu, Z., Li, X.: Component calculus. In: Workshop on Formal Aspects of Component Software (FACS 2003), Satellite Workshop of FME 2003, Pisa, Italy (2003)

    Google Scholar 

  7. Jifeng, H., Li, X., Liu, Z.: Component-based software engineering. In: Van hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 70–95. Springer, Heidelberg (2005). https://doi.org/10.1007/11560647_5

    Chapter  Google Scholar 

  8. Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice Hall, Upper Saddle River (1990)

    Google Scholar 

  9. Morgan, C.C.: Programming from Specification. Prentice Hall, Upper Saddle River (1994)

    Google Scholar 

  10. Schneider, S.: The B-Method: An Introduction. Palgrave, Addison Wesley (2001)

    Google Scholar 

  11. Sommerville, I.: Software Engineering, 9th edn. Pearson Education, London (2011)

    Google Scholar 

  12. Smith, D.R.: Designware: software development by refinement. In: Proceedings of the Eight International Conference on Category Theory and Computer Science, Edinburgh, September 1999

    Google Scholar 

  13. Wu, G., Xue, J.: PAR method and PAR platform used in development process of software outsourcing. Comput. Modernization 11, 042 (2013)

    Google Scholar 

  14. Xue, J.: A unified approach for developing efficient algorithmic programs. J. Comput. Sci. Technol. 12(4) (1997)

    Article  MathSciNet  Google Scholar 

  15. Xue, J.: Two new strategies for developing loop invariants and their applications. J. Comput. Sci. Technol. 8(2), 147–154 (1993)

    Google Scholar 

  16. Xue, J.: Formal derivation of graph algorithmic programs using partition-and-recur. J. Comput. Sci. Technol. 13(6), 553–561 (1998)

    Article  MathSciNet  Google Scholar 

  17. Xue, J.: Methods of Programming. Higher Education Press, Beijing (2002)

    Google Scholar 

  18. Xue, J.: New concept of loop invariant and its application. In: The 3rd Colloquium on Logic in Engineering Dependable Software, Nanchang, China (2013)

    Google Scholar 

  19. Xue, J.: PAR method and its supporting platform. In: Proceedings of AWCVS 2006, Macao, 29–31 October 2006

    Google Scholar 

  20. Xue, J., Davis, R.: A simple program whose derivation and proof is also. In: Proceedings of the First IEEE International Conference on Formal Engineering Method (ICFEM 1997). IEEE CS Press (1997)

    Google Scholar 

  21. Xue, J.: Implementation of model-driven development using PAR. In: Keynote Speech on the 6th International Workshop on Harnessing Theories for Tool Support in Software, Nanchang, China (2013)

    Google Scholar 

  22. Zuo, Z., You, Z., Xue, J.: Derivation and formal proof of non-recursive post-order binary tree traversal algorithm. Comput. Eng. Sci. 32(3), 119–125 (2010)

    Google Scholar 

  23. The Coq proof assistant [EB /OL] (2014). http://coq.inria.fr/

  24. Bertot, Y., Casteran, P.: Interactive Theorem Proving and Program Development-Coq’Art: The Calculus of Inductive Constructions. Springer, London (2004). https://doi.org/10.1007/978-3-662-07964-5

    Book  Google Scholar 

  25. The Coq Development Team. The Coq proof assistant reference manual-version V81 0 (2004)

    Google Scholar 

  26. Duan, Z.: Temporal Logic and Temporal Logic Programming. Science Press, Beijing (2005)

    Google Scholar 

  27. Duan, Z., Tian, C., Zhang, L.: A decision procedure for propositional projection temporal logic with infinite models. Acta Informatica 45(1), 43–78 (2008)

    Article  MathSciNet  Google Scholar 

  28. Duan, Z., Yang, X., Koutny, M.: Framed temporal logic programming. Sci. Comput. Program. 70(1), 31–61 (2008)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgments

This work was supported by the National Nature Science Foundation of China (Grant No. 61662036,No.61862033), the Natural Science Foundation of Jiangxi Province.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Qimin Hu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Hu, Q., Xue, J., You, Z., Cheng, Z., Zuo, Z. (2020). Formal Development and Verification of Reusable Component in PAR Platform. In: Miao, H., Tian, C., Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2019. Lecture Notes in Computer Science(), vol 12028. Springer, Cham. https://doi.org/10.1007/978-3-030-41418-4_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-41418-4_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-41417-7

  • Online ISBN: 978-3-030-41418-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics