Skip to main content

A Technique for Modular Logic Program Refinement

  • Conference paper
  • First Online:
Logic Based Program Synthesis and Transformation (LOPSTR 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2042))

Abstract

Are finement calculus provides a method for transforming specifications to executable code, maintaining the correctness of the code with respect to its specification. In this paper we introduce modules into a logic programming refinement calculus. Modules allow data types to be grouped together with sets of procedures that manipulate the data types. By placing restrictions on the way a program uses a module, we develop a technique for refining the module so that it uses a more efficient representation of the data type.

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. P. Bancroft and I. J. Hayes. Refining a module with opaque types. In Gopal Gupta, George Mohay, and Rodney Topor, editors, Proceedings, 16th Australian Computer Science Conference, Bris b ane, Australian Computer Science Communications, volume 15(1), pages 615–624, February 1993.

    Google Scholar 

  2. R. Colvin, I. J. Hayes, and P. Strooper. Data refining logic programs. In J. Grundy, M. Schwenke, and T. Vickers, editors, International Refinement Workshop and Formal Methods Pacific 1998, Discrete Mathematics and Theoretical Computer Science, pages 100–116. Springer, 1998.

    Google Scholar 

  3. R. Colvin, I. J. Hayes, and P. Strooper. Refining logic programs using types. In J. Edwards, editor, Australasian Computer Science Conference (ACSC 2000), pages 43–50. IEEE Computer Society, 2000. For an extended version see SVRCTR-99-25.

    Google Scholar 

  4. Y. Deville and K.-K. Lau. Logic program synthesis. Journal of Logic Programming, 19,20:321–350, 1994. Special Issue: Ten Years of Logic Programming.

    Article  MathSciNet  Google Scholar 

  5. Yves Deville. Logic Programming: Systematic Program Development. International series in logic programming. Addison-Wesley, 1990.

    Google Scholar 

  6. I. Hayes, R. Nickson, and P. Strooper. Refining specifications to logic programs. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proc. of the 6th Int. Workshop, LOPSTR’96, Stockholm, Sweden, August 1996, volume 1207 of Lecture Notes in Computer Science, pages 1–19. Springer, 1997.

    Google Scholar 

  7. I. Hayes, R. Nickson, P. Strooper, and R. Colvin. Ad eclarative semantics for logic program refinement. Technical Report 00-30, Software Verification Research Centre, The University of Queensland, 2000.

    Google Scholar 

  8. D. Hemer. Building tool support for refinement calculus for logic programming: Acom parison of interactive theorem provers. Technical Report 00-06, Software Verification Research Centre, The University of Queensland, 2000.

    Google Scholar 

  9. K.-K. Lau and M. Ornaghi. On specification frameworks and deductive synthesis of logic programs. In L. Fribourg and F. Turini, editors, Proc. LOPSTR 94 and META 94, Lecture Notes in Computer Science 883, pages 104–121. Springer-Verlag, 1994.

    Google Scholar 

  10. K.-K Lau and M. Ornaghi. Forms of logic specifications: Ap reliminary study. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proc. of the 6th Int. Workshop, LOPSTR’96, Stockholm, Sweden, August 1996, volume 1207 of Lecture Notes in Computer Science, pages 295–312. Springer, 1997.

    Google Scholar 

  11. B. Liskov and J. Guttag. Abstraction and Specification in Program Development. MIT Press, third edition, 1986.

    Google Scholar 

  12. C. C. Morgan. Programming from Specifications. Prentice Hall, second edition, 1994.

    Google Scholar 

  13. M. G. Read and E. Kazmierczak. Formal program development in modular Prolog. In T. P. Clement and K.-K. Lau, editors, Logic Program Synthesis and Transformation. Proc. of LOPSTR’91, University of Manchester, July 1991, Workshops in Computing, pages 69–93. Springer-Verlag, 1992.

    Google Scholar 

  14. Z. Somogyi, F. J. Henderson, and T. C. Conway. Mercury, an efficient purely declarative logic programming language. In R. Kotagiri, editor, Proc. of the Eighteenth Australasian Computer Science Conference, pages 499–512, Glenelg, South Australia, 1995. Australian Computer Science Communications.

    Google Scholar 

  15. J. M. Spivey. The Z Notation: A Reference Manual. Prentice Hall, second edition, 1992.

    Google Scholar 

  16. Y. V. Srinivas and R. Jullig. Specware: Formal support for composing software. In Bernhard Moller, editor, Proceedings of the Conference on Mathematics of Program Construction, volume 947 of Lecture Notes in Computer Science. Kloster Irsee, Germany, 1995.

    Google Scholar 

  17. W. M. Turski and T. S. E. Maibaum. Specification of Computer Programs. Addison-Wesley, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Colvin, R., Hayes, I., Strooper, P. (2001). A Technique for Modular Logic Program Refinement. In: Logic Based Program Synthesis and Transformation. LOPSTR 2000. Lecture Notes in Computer Science, vol 2042. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45142-0_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-45142-0_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42127-6

  • Online ISBN: 978-3-540-45142-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics