Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Predicate calculus and program semantics
Predicate calculus and program semantics
Introduction to the theory of programming languages
Introduction to the theory of programming languages
Teaching calculation and discrimination: a more effective curriculum
Communications of the ACM
Basic category theory for computer scientists
Basic category theory for computer scientists
The Euclidean definition of the functions div and mod
ACM Transactions on Programming Languages and Systems (TOPLAS)
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
American Mathematical Monthly
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
A logical approach to discrete math
A logical approach to discrete math
Category theory for computing science, 2nd ed.
Category theory for computing science, 2nd ed.
Algebra of programming
Property specification patterns for finite-state verification
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Patterns in property specifications for finite-state verification
Proceedings of the 21st international conference on Software engineering
Theories of programming languages
Theories of programming languages
Communications of the ACM
Our curriculum has become math-phobic!
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Concrete Mathematics: A Foundation for Computer Science
Concrete Mathematics: A Foundation for Computer Science
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Introduction to Functional Programming
Introduction to Functional Programming
Linear and Branching Structures in the Semantics and Logics of Reactive Systems
Proceedings of the 12th Colloquium on Automata, Languages and Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Program Construction: Calculating Implementations from Specifications
Program Construction: Calculating Implementations from Specifications
Mathematical Structures in Computer Science
Functional declarative language design and predicate calculus: a practical approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
A programming language
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Principles of Model Checking (Representation and Mind Series)
Principles of Model Checking (Representation and Mind Series)
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Getting Formal Verification into Design Flow
FM '08 Proceedings of the 15th international symposium on Formal Methods
Touch of Class: Learning to Program Well with Objects and Contracts
Touch of Class: Learning to Program Well with Objects and Contracts
Extended Static Checking by Calculation Using the Pointfree Transform
Language Engineering and Rigorous Software Development
Making Temporal Logic Calculational: A Tool for Unification and Discovery
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Dependently typed programming in Agda
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Using domain-independent problems for introducing formal methods
FM'06 Proceedings of the 14th international conference on Formal Methods
Exercises in quantifier manipulation
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Hi-index | 0.01 |
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.