Skip to main content
Log in

A logic for Miranda

  • Published:
Formal Aspects of Computing

Abstract

We formulate a logical description of the functional programming language Miranda. Distinctive features include a full treatment of pattern matching with repeated variables and the characterisation of various (sub-)domains, like the defined natural numbers and finite definite lists, by means of new quantifiers. These quantifiers are introduced by induction rules, and also carry elimination rules. We also discuss the rôle of fixed point induction and issues of modularisation and scale.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abramsky, S.: The Lazy Lambda Calculus. In:Declarative Programming, David A. Turner, (ed.), Addison Wesley, 1989.

  2. Alagić, S and Arbib, M. A.:The Design of Well-Structured and Correct Programs, Springer Verlag, 1978.

  3. Barrett, G.: Formal Methods Applied to a Floating Point Number System. IEEE Transactions on Software Engineering, Vol. 15, No. 5, May 1989.

  4. Bird, R. and Wadler, P.:An Introduction to Functional Programming, Prentice-Hall, 1988.

  5. Hudak, P. and Wadler, P.: Report on the functional programming language Haskell, December 1988. Draft proposed standard for the functional programming language, designed by the authors and twelve others.

  6. Bell, J. L. and Machover, M.:A Course in Mathematical Logic, North-Holland, 1977.

  7. Jones, C. B.:Systematic Software Development using VDM, Prentice-Hall, 1986.

  8. Moggi, E.: Categories of partial morphisms and the λp calculus. In:Category Theory and Computer Programming, Lecture Notes in Computer Science 240, Springer Verlag, 1985.

  9. Paulson, L. C.:Logic and Computation — Interactive Proof with Cambridge LCF, Cambridge University Press, 1987.

  10. Peyton Jones, S.:The Implementation of Functional Programming Languages, Prentice Hall International, 1987.

  11. Plotkin, G.: Lecture notes on ‘bottomless’ domains. Lectures delivered at CSLI, 1985.

  12. Plotkin, G.: (Towards a) logic for computable functions. Manuscript describing a logic based on ‘bottomless’ domains, 1985.

  13. Scott, D. S.: Identity and existence in intuitionistic logic. In:Applications of Sheaves, M. P. Fourman, C. S. Mulvey, and D. S. Scott (eds), Lecture Notes in Mathematics 753, Springer-Verlag, 1979.

  14. Thompson, S. J. Laws in Miranda. In:Proc. ACM Conf. on LISP and Functional Programming, ACM Press, 1986.

  15. Thompson, S. J. Proving properties of functions defined on lawful types, Technical Report 37, Computing Laboratory, University of Kent at Canterbury, 1986. (Revised version to appear in “Science of Computer Programming”).

  16. Thompson, S. J. A logic for Miranda, Technical Report 56, Computing Laboratory, University of Kent at Canterbury, Canterbury, Kent, UK, October 1988.

    Google Scholar 

  17. Turner, D. A.: Miranda: a non-strict functional language with polymorphic types. In:Functional Programming Languages and Computer Architecture, J. -P. Jouannaud, (ed.) Springer-Verlag, 1985.

  18. Wadler, P.: Pattern matching. In:The Implementation of Functional Programming Languages, S. Peyton Jones (ed.) Chapter 5, Prentice Hall, 1987.

  19. Wikstrom, A.:Functional Programming in Standard ML, Prentice-Hall, 1987.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Miranda is a trade mark of Research Software Ltd.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Thompson, S. A logic for Miranda. Formal Aspects of Computing 1, 339–365 (1989). https://doi.org/10.1007/BF01887213

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01887213

Key words

Navigation