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.
Similar content being viewed by others
References
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
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
Backhouse R (1989) An exploration of the Bird-Meertens formalism. In: STOP summer school on constructive algorithmics, Abeland
Backhouse R (2003) Program construction—calculating implementations from specifications. Wiley, New York
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
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
Baier C, Katoen J-P (2008) Principles of model checking. MIT Press, Cambridge
Bandera home page. Web: http://bandera.projects.cis.ksu.edu/
Barendregt HP (1984) The lambda calculus, its syntax and semantics. North-Holland, Amsterdam
Barr M, Wells C (1995) Category theory for computing science. Prentice Hall, New York
Bentley J (2000) Programming pearls. Addison-Wesley, Reading. [10th printing, 2005]
(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
Bird R, de Moor O (1997) Algebra of programming. Prentice Hall, New York
Bird R (1998) Introduction to functional programming using Haskell. Prentice Hall, New York
Bishop RH (2001) LabVIEW student edition 6i. Prentice Hall, New York
Blahut RE (2002) Algebraic codes for data transmission. Cambridge University Press, Cambridge
Boute R (1986) A calculus for reasoning about temporal phenomena. In: Proc. NGI-SION symposium 4, pp 405–411
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
Boute R (1992) The Euclidean definition of the functions div and mod. ACM TOPLAS 14(2):127–144
Boute R (1993) Funmath illustrated: a declarative formalism and application examples. Technical report, Declarative systems series No. 1, Computing Science Institute, Nijmegen University
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
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
Boute R (2003) Concrete generic functionals: principles, design and applications. In: Gibbons J, Jeuring J (eds) Generic programming. Kluwer Academic, Norwell, pp 89–119
Boute R (2005) Functional declarative language design and predicate calculus: a practical approach. ACM TOPLAS 27(5):988–1047
Boute R (2006) Calculational semantics: deriving programming theories from equations by functional predicate calculus. ACM TOPLAS 28(4):747–793
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
Boute R (2007) Functional mathematics: a unifying basis for systems modeling in classical and computer engineering—part I. Course notes, Ghent University
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
Boute R (2009) The decibel done right: a matter of engineering the math. IEEE Antennas and Propagation Magazine 51(6):177–184
Bradley AR, Manna Z (2007) The calculus of computation. Springer, Berlin
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
Clarke EM, Grumberg O, Peled DA (2000) Model checking. MIT Press, Cambridge
Crole RL (1993) Categories for types. Cambridge University Press, Cambridge
Daepp U, Gorkin P (2003) Reading, writing and proving: a closer look at mathematics. Springer, Berlin
Dijkstra EW (1973) On the axiomatic definition of semantics. EWD 367; Web: http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD367.PDF
Dijkstra EW (1982) Why numbering should start at zero. EWD 381; Web: http://userweb.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
Dijkstra EW (1990) How computing science created a new mathematical style. EWD 1073; Web: http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1073.PDF
Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Springer, Berlin
Dijkstra EW (1996) Beware of the empty range. EWD 1247; Web: http://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1247.PDF
Dijkstra EW (2010) Manuscripts archive. University of Texas; Web: http://www.cs.utexas.edu/users/EWD/
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
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
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
Forster TE (1992) Set theory with a universal set. Clarendon, Oxford
Graham RL, Knuth DE, Patashnik O (1994) Concrete mathematics. Addison-Wesley, Reading
Gries D (1991) Improving the curriculum through the teaching of calculation and discrimination. Commun ACM 34(3):45–55
Gries D, Schneider FB (1993) A logical approach to discrete math. Springer, Berlin
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
Halmos PR (1960) Naive set theory. Van Nostrand, Princeton
Hehner ECR (1997) From Boolean algebra to unified algebra. Internal report, University of Toronto
Herstein IN (1964) Topics in algebra. Xerox College Publishing, Lexington
Hoare CAR, Jifeng H (1998) Unifying theories of programming. Prentice Hall, New York
Holzmann GJ (2004) The SPIN model checker: primer and reference manual. Addison-Wesley, Reading
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)
Iverson K (1962) A programming language. Wiley, New York
Jackson D (2006) Software abstractions. MIT Press, Cambridge
Kleiner I (1989) Evolution of the function concept: a brief survey. Coll Math J 20(4):282–300
Knuth D (1992) Two notes on notation. Am Math Mon 99(5):403–422
Lamport L (2002) Specifying systems: the TLA+ language and tools for hardware and software engineers. Pearson Education, Upper Saddle River
Lang S (1983) Undergraduate analysis. Springer, Berlin
Lee EA, Messerschmitt DG (1998) Engineering an education for the future. IEEE Comput 31(1):77–85
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
Lee EA, Varaiya P (2003) Structure and interpretation of signals and systems. Addison-Wesley, Reading
Lydna UI (2008) Problem S127. Math Horizons April 2008, p 32
Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems: specification. Springer, New York
Meyer B (1990) Introduction to the theory of programming languages. Prentice Hall, New York
Meyer B (2009) Touch of class—learning to program well with objects and contracts. Springer, Berlin
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
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
Parnas DL (1990) Education for computing professionals. IEEE Comput 23(1):17–22
Pierce BC (1991) Basic category theory for computer scientists. MIT Press, Cambridge
Prandoni P, Vetterli M (2008) Signal processing for communications. EPFL Press, Lousanne
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
Reynolds JC (1998) Theories of programming languages. Cambridge University Press, Cambridge
Rudin W (1964) Principles of mathematical analysis. McGraw-Hill, New York
Shuard HS (1975) Does it matter? Math Gazette 59(407):7–15
Tarski A, Givant S (1987) A formalization of set theory without variables. AMS colloquium publications, vol 41. American Mathematical Society, Providence
Tennent RD (1991) Semantics of programming languages. Prentice Hall, New York
Thomas GB, Weir MD, Hass J, Giordano FR (2004) Thomas’s calculus, 11th edn. Addison-Wesley, Reading
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
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
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
von Karger B (1998) Temporal algebra. Math Struct Comput Sci 8(3):277–320
Winskel G (1993) Formal semantics of programming languages. MIT Press, Cambridge
Zadeh LA (1965) Fuzzy sets. Inform Control 8(3):338–353; Web: http://dx.doi.org/10.1016/S0019-9958(65)90241-X
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-010-0100-2