The design of divide and conquer algorithms
Science of Computer Programming
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
Program development schemata as derived rules
Journal of Symbolic Computation - Special Issue on Schemas
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The Development Graph Manager MAYA
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
TkWinHOL: A Tool for Window Inference in HOL
Proceedings of the 8th International Workshop on Higher Order Logic Theorem Proving and Its Applications
Notions of Computation Determine Monads
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Combining Computational Effects: commutativity & sum
TCS '02 Proceedings of the IFIP 17th World Computer Congress - TC1 Stream / 2nd IFIP International Conference on Theoretical Computer Science: Foundations of Information Technology in the Era of Networking and Mobile Computing
Correct and User-Friendly Implementations of Transformation Systems
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
Specware: Formal Support for Composing Software
MPC '95 Mathematics of Program Construction
An Infrastructure for Intertheory Reasoning
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Handbook of automated reasoning
Theory Interpretations in PVS
Journal of Functional Programming
Abstracting refinements for transformation
Nordic Journal of Computing
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Axiomatic constructor classes in Isabelle/HOLCF
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Generic Tools via General Refinement
Electronic Notes in Theoretical Computer Science (ENTCS)
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Local Theory Specifications in Isabelle/Isar
Types for Proofs and Programs
Structured formal development with quotient types in Isabelle/HOL
AISC'10/MKM'10/Calculemus'10 Proceedings of the 10th ASIC and 9th MKM international conference, and 17th Calculemus conference on Intelligent computer mathematics
The open theory standard theory library
NFM'11 Proceedings of the Third international conference on NASA Formal methods
A mechanized translation from higher-order logic to set theory
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Towards logical frameworks in the heterogeneous tool set hets
WADT'10 Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques
Hi-index | 0.00 |
General purpose theorem provers provide advanced facilities for proving properties about specifications, and may therefore be a valuable tool in formal program development. However, these provers generally lack many of the useful structuring mechanisms found in functional programming or specification languages. This paper presents a constructive approach to adding theory morphisms and parametrisation to theorem provers, while preserving the proof support and consistency of the prover. The approach is implemented in Isabelle and illustrated by examples of an algorithm design rule and of the modular development of computational effects for imperative language features based on monads.