Skip to main content
Log in

Pointfree expression and calculation: from quantification to temporal logic

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Pointfree formulation means suppressing domain variables to focus on higher-level objects (functions, relations). Advantages are algebraic-style calculation and abstraction as formal logics pursue by axiomatization. Various specific uses are considered, starting with quantification in the wider sense (∀, ∃, ∑, etc.). Pointfree style is achieved by suitable functionals that prove superior to pointwise conventions such as the Eindhoven notation. Pointwise calculations from the literature are reworked in pointfree form. The second use considered is in describing systems, with generic functionals capturing signal flow patterns. An illustration is the mathematics behind a neat magician’s trick, whose implementation allows comparing the pointfree style in Funmath, LabVIEW, TLA+, Haskell and Maple. The third use is making temporal logic calculational, with a simple generic Functional Temporal Calculus (FTC) for unification. Specific temporal logics are then captured via endosemantic functions. The example is TLA+. Calculation is illustrated by deriving various theorems, most related to liveness issues, and discovering results by calculation rather than proving them afterwards. To conclude, various ramifications, style and abstraction issues are discussed, in relation to engineering mathematics in general and to categorical formulations.

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. Aarts C, Backhouse R, Hoogendijk P, Voermans E, van der Woude J (1992) A relational theory of data types. Lecture notes. Eindhoven University of Technology, Eindhoven

    Google Scholar 

  2. Nirav, Dave A, Katelman M (2008) Getting formal verification into design flow. In: Cuellar J, Maibaum T, Sere K (eds) FM 2008—15th intl. symp. on formal methods. Springer LNCS, vol 5014. Springer, Berlin, pp 12–32, invited paper

    Chapter  Google Scholar 

  3. Backhouse R (1989) An exploration of the Bird-Meertens formalism. In: STOP summer school on constructive algorithmics, Abeland

  4. Backhouse R (2003) Program construction—calculating implementations from specifications. Wiley, New York

    Google Scholar 

  5. Backhouse R, Michaelis D (2006) Exercises in quantifier manipulation. In: Uustalu T (ed) Mathematics of program construction 2006. Springer LNCS, vol 4014. Springer, Berlin, pp 69–81

    Chapter  Google Scholar 

  6. Backus J (1978) Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Commun ACM 21(8):613–641

    Article  MATH  MathSciNet  Google Scholar 

  7. Baier C, Katoen J-P (2008) Principles of model checking. MIT Press, Cambridge

    MATH  Google Scholar 

  8. Bandera home page. Web: http://bandera.projects.cis.ksu.edu/

  9. Barendregt HP (1984) The lambda calculus, its syntax and semantics. North-Holland, Amsterdam

    MATH  Google Scholar 

  10. Barr M, Wells C (1995) Category theory for computing science. Prentice Hall, New York

    Google Scholar 

  11. Bentley J (2000) Programming pearls. Addison-Wesley, Reading. [10th printing, 2005]

    Google Scholar 

  12. (Lex) Bijlsma A (1993) Temporal operators viewed as predicate transformers. Computing science notes 93/41, Eindhoven University; Web: http://alexandria.tue.nl/extra1/wskrap/publichtml/9313406.pdf

  13. Bird R, de Moor O (1997) Algebra of programming. Prentice Hall, New York

    MATH  Google Scholar 

  14. Bird R (1998) Introduction to functional programming using Haskell. Prentice Hall, New York

    Google Scholar 

  15. Bishop RH (2001) LabVIEW student edition 6i. Prentice Hall, New York

    Google Scholar 

  16. Blahut RE (2002) Algebraic codes for data transmission. Cambridge University Press, Cambridge

    Google Scholar 

  17. Boute R (1986) A calculus for reasoning about temporal phenomena. In: Proc. NGI-SION symposium 4, pp 405–411

    Google Scholar 

  18. Boute R (1988) On the shortcomings of the axiomatic approach as presently used in computer science. In: CompEuro ’88. ‘Design: concepts, methods and tools’, pp 184–193

    Chapter  Google Scholar 

  19. Boute R (1992) The Euclidean definition of the functions div and mod. ACM TOPLAS 14(2):127–144

    Article  Google Scholar 

  20. Boute R (1993) Funmath illustrated: a declarative formalism and application examples. Technical report, Declarative systems series No. 1, Computing Science Institute, Nijmegen University

  21. Boute R (1993) Fundamentals of hardware description languages and declarative languages. In: Mermet JP (ed) Fundamentals and standards in hardware description languages. Kluwer Academic, Norwell, pp 3–38

    Google Scholar 

  22. Boute R, Verlinde H (2003) Functionals for the semantic specification of temporal formulas for model checking. In: König H, Heiner M, Wolisz A (eds) FORTE 2003 work-in-progress papers, BTU Cottbus CS Reports, Brandenburg University of Technology pp. 23–28

  23. Boute R (2003) Concrete generic functionals: principles, design and applications. In: Gibbons J, Jeuring J (eds) Generic programming. Kluwer Academic, Norwell, pp 89–119

    Google Scholar 

  24. Boute R (2005) Functional declarative language design and predicate calculus: a practical approach. ACM TOPLAS 27(5):988–1047

    Article  Google Scholar 

  25. Boute R (2006) Calculational semantics: deriving programming theories from equations by functional predicate calculus. ACM TOPLAS 28(4):747–793

    Article  Google Scholar 

  26. Boute R (2006) Using domain-independent problems for introducing formal methods. In: Misra J, Nipkow T, Sekerinski E (eds) FM 2006: formal methods. Springer LNCS, vol 4085. Springer, Berlin, pp 316–331

    Chapter  Google Scholar 

  27. Boute R (2007) Functional mathematics: a unifying basis for systems modeling in classical and computer engineering—part I. Course notes, Ghent University

  28. Boute R (2009) Making temporal logic calculational: a tool for unification and discovery. In: Cavalcanti A, Dams D (eds) FM 2009: formal methods. Springer LNCS, vol 5850. Springer, Berlin, pp 387–402

    Chapter  Google Scholar 

  29. Boute R (2009) The decibel done right: a matter of engineering the math. IEEE Antennas and Propagation Magazine 51(6):177–184

    Article  Google Scholar 

  30. Bradley AR, Manna Z (2007) The calculus of computation. Springer, Berlin

    MATH  Google Scholar 

  31. Chen Y, Liu Z (2004) Integrating temporal logics. In: Boiten EA, Derrick J, Smith G (eds) Proc. IFM 2004, integrated formal methods. Springer LNCS, vol 2999. Springer, Berlin, pp 402–420

    Google Scholar 

  32. Clarke EM, Grumberg O, Peled DA (2000) Model checking. MIT Press, Cambridge

    Google Scholar 

  33. Crole RL (1993) Categories for types. Cambridge University Press, Cambridge

    MATH  Google Scholar 

  34. Daepp U, Gorkin P (2003) Reading, writing and proving: a closer look at mathematics. Springer, Berlin

    MATH  Google Scholar 

  35. Dijkstra EW (1973) On the axiomatic definition of semantics. EWD 367; Web: http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD367.PDF

  36. Dijkstra EW (1982) Why numbering should start at zero. EWD 381; Web: http://userweb.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF

  37. Dijkstra EW (1990) How computing science created a new mathematical style. EWD 1073; Web: http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1073.PDF

  38. Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Springer, Berlin

    MATH  Google Scholar 

  39. Dijkstra EW (1996) Beware of the empty range. EWD 1247; Web: http://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1247.PDF

  40. Dijkstra EW (2010) Manuscripts archive. University of Texas; Web: http://www.cs.utexas.edu/users/EWD/

  41. Dwyer MB, Avrunin GS, Corbett JC (1998) Property specification patterns for finite-state specification. In: Ardis M (ed) Proc. FMSP’98, second workshop on formal methods in software practice. Clearwater Beach, pp 7–15

  42. Dwyer MB, Avrunin GS, Corbett JC (1999) Patterns in property specification for finite-state specification. In: Proc twenty-first intl conf on software engineering. Los Angeles, pp 411–420

  43. Dwyer MB, Hatcliff J (2002) Bandera temporal specification patterns, tutorial presentation at ETAPS’02 (Grenoble) and SMF’02 (Bertinoro) Web: http://www.cis.ksu.edu/santos/bandera/Talks/SFM02/02-SFM-Patterns.ppt

  44. Forster TE (1992) Set theory with a universal set. Clarendon, Oxford

    MATH  Google Scholar 

  45. Graham RL, Knuth DE, Patashnik O (1994) Concrete mathematics. Addison-Wesley, Reading

    MATH  Google Scholar 

  46. Gries D (1991) Improving the curriculum through the teaching of calculation and discrimination. Commun ACM 34(3):45–55

    Article  Google Scholar 

  47. Gries D, Schneider FB (1993) A logical approach to discrete math. Springer, Berlin

    MATH  Google Scholar 

  48. Habrias H, Faucou S (2004) Linking paradigms, semi-formal and formal notations. In: Dean CN, Boute RT (eds) Teaching formal methods. Springer LNCS, vol 3294. Springer, Berlin, pp 166–184

    Chapter  Google Scholar 

  49. Halmos PR (1960) Naive set theory. Van Nostrand, Princeton

    MATH  Google Scholar 

  50. Hehner ECR (1997) From Boolean algebra to unified algebra. Internal report, University of Toronto

  51. Herstein IN (1964) Topics in algebra. Xerox College Publishing, Lexington

  52. Hoare CAR, Jifeng H (1998) Unifying theories of programming. Prentice Hall, New York

    Google Scholar 

  53. Holzmann GJ (2004) The SPIN model checker: primer and reference manual. Addison-Wesley, Reading

    Google Scholar 

  54. ISO/TC 12 and IEC/TC 25 (2009) Quantities and units—Part 2: Mathematical signs and symbols to be used in the natural sciences and technology, 1st edn. ISO 80000-2:2009 (2009-12-01)

  55. Iverson K (1962) A programming language. Wiley, New York

    MATH  Google Scholar 

  56. Jackson D (2006) Software abstractions. MIT Press, Cambridge

    Google Scholar 

  57. Kleiner I (1989) Evolution of the function concept: a brief survey. Coll Math J 20(4):282–300

    Article  Google Scholar 

  58. Knuth D (1992) Two notes on notation. Am Math Mon 99(5):403–422

    Article  MATH  MathSciNet  Google Scholar 

  59. Lamport L (2002) Specifying systems: the TLA+ language and tools for hardware and software engineers. Pearson Education, Upper Saddle River

    Google Scholar 

  60. Lang S (1983) Undergraduate analysis. Springer, Berlin

    MATH  Google Scholar 

  61. Lee EA, Messerschmitt DG (1998) Engineering an education for the future. IEEE Comput 31(1):77–85

    Google Scholar 

  62. Lee EA, Varaiya P (2000) Introducing signals and systems—the Berkeley approach. In: First signal processing education workshop. Hunt, Texas; Web: http://ptolemy.eecs.berkeley.edu/publications/papers/00/spe1

  63. Lee EA, Varaiya P (2003) Structure and interpretation of signals and systems. Addison-Wesley, Reading

    Google Scholar 

  64. Lydna UI (2008) Problem S127. Math Horizons April 2008, p 32

  65. Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems: specification. Springer, New York

    Google Scholar 

  66. Meyer B (1990) Introduction to the theory of programming languages. Prentice Hall, New York

    Google Scholar 

  67. Meyer B (2009) Touch of class—learning to program well with objects and contracts. Springer, Berlin

    MATH  Google Scholar 

  68. Norell U (2008) Dependently typed programming in Agda. In: Koopman P, Plasmeijer R, Swierstrs D (eds) Advanced functional programming, 6th international school, AFP 2008, Revised lectures. Springer LNCS, vol 5832. Springer, Berlin, pp 230–266 Web: http://www.cse.chalmers.se/ulfn/papers/afp08/tutorial.pdf

    Google Scholar 

  69. Oliveira JN (2009) Extended static checking by calculation using the pointfree transform. In: Bove A, Barbosa LS, Pardo A, Pinto JS (eds) Language engineering and rigorous software development: LerNet ALFA summer school 2008. Springer LNCS, vol 5520. Springer, Berlin, pp 195–251

    Chapter  Google Scholar 

  70. Parnas DL (1990) Education for computing professionals. IEEE Comput 23(1):17–22

    Google Scholar 

  71. Pierce BC (1991) Basic category theory for computer scientists. MIT Press, Cambridge

    Google Scholar 

  72. Prandoni P, Vetterli M (2008) Signal processing for communications. EPFL Press, Lousanne

  73. Pnueli A (1985) Linear and branching structures in the semantics and logics of reactive systems. In: Brauer W (ed) 12th coll. on automata, languages and programming. Springer LNCS, vol 194. Springer, Berlin, pp 15–32

    Chapter  Google Scholar 

  74. Reynolds JC (1998) Theories of programming languages. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  75. Rudin W (1964) Principles of mathematical analysis. McGraw-Hill, New York

    MATH  Google Scholar 

  76. Shuard HS (1975) Does it matter? Math Gazette 59(407):7–15

    Article  Google Scholar 

  77. Tarski A, Givant S (1987) A formalization of set theory without variables. AMS colloquium publications, vol 41. American Mathematical Society, Providence

    MATH  Google Scholar 

  78. Tennent RD (1991) Semantics of programming languages. Prentice Hall, New York

    Google Scholar 

  79. Thomas GB, Weir MD, Hass J, Giordano FR (2004) Thomas’s calculus, 11th edn. Addison-Wesley, Reading

    Google Scholar 

  80. Tucker AB, Kelemen CF, Bruce KB (2001) Our curriculum has become math-phobic! ACM SIGCSEB, SIGCSE bulletin 33; Web: http://citeseer.ist.psu.edu/tucker01our.html

  81. Wadler P (1987) Views: a way for pattern matching to cohabit with data abstraction. In: POPL 1987, proc 14th ann ACM sympos on principles of programming languages 1987, pp 307–313; Web: http://www-2.cs.cmu.edu/rwh/courses/modules/papers/wadler87/paper.pdf

  82. van Benthem J (2001) Correspondence theory. In: Gabbay D, Guenthner F (eds) Handbook of philosophical logic, 2nd edn., vol 3. Kluwer Academic, Norwell, pp 325–408

    Google Scholar 

  83. von Karger B (1998) Temporal algebra. Math Struct Comput Sci 8(3):277–320

    Article  MATH  Google Scholar 

  84. Winskel G (1993) Formal semantics of programming languages. MIT Press, Cambridge

    MATH  Google Scholar 

  85. Zadeh LA (1965) Fuzzy sets. Inform Control 8(3):338–353; Web: http://dx.doi.org/10.1016/S0019-9958(65)90241-X

    Article  MATH  MathSciNet  Google Scholar 

  86. Zamfirescu A (1993) Logic and arithmetic in hardware description languages. In: Mermet JP (ed) Fundamentals and standards in hardware description languages. NATO ASI series E, vol 249. Kluwer Academic, Dordrecht, pp 79–107

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Raymond Boute.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Boute, R. Pointfree expression and calculation: from quantification to temporal logic. Form Methods Syst Des 37, 95–140 (2010). https://doi.org/10.1007/s10703-010-0100-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-010-0100-2

Keywords

Navigation