Top-down synthesis of divide-and-conquer algorithms
Artificial Intelligence
Special relations in automated deduction
Journal of the ACM (JACM) - The MIT Press scientific computation series
On the algebraic definition of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Extended ML: an institution-independent framework for formal program development
Proceedings of a tutorial and workshop on Category theory and computer programming
The IFIP TC2/WG 2.1 Working Conference on Program specification and transformation
Information Processing Letters
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Algorithm theories and design tactics
Science of Computer Programming
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
Handbook of theoretical computer science (vol. B)
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Parameter Passing in Algebraic Specification Languages
Program Specification, Proceedings of a Workshop
Derived Preconditions and Their Use in Program Synthesis
Proceedings of the 6th Conference on Automated Deduction
Putting theories together to make specifications
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 2
Designware: software development by refinement
High integrity software
The Conceptual Basis for Mediation Services
IEEE Expert: Intelligent Systems and Their Applications
Programs, Proofs and Parametrized Specifications
WADT '01 Selected papers from the 15th International Workshop on Recent Trends in Algebraic Development Techniques
Revisiting the Categorical Approach to Systems
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Generating Programs Plus Proofs by Refinement
Verified Software: Theories, Tools, Experiments
Trustworthy Interface Compliancy: Data Model Adaptation Using B Refinement
Electronic Notes in Theoretical Computer Science (ENTCS)
A concurrent automatic programming system
Proceedings of the 46th Annual Southeast Regional Conference on XX
Abstract compositional analysis of iterated relations: a structural approach to complex state transition systems
Theory presentation combinators
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Hi-index | 0.00 |
Specification morphisms underlie the refinement of algebraic specifications and provide the logical foundations for algorithm and data structure design. We present four techniques for formally, even mechanically, constructing specification morphisms. The first two techniques, verifying a manually constructed signature morphism and composition of specification morphisms are well-known. The remaining two techniques exploit the axioms of the source specification to help infer the translation of sort and function symbols from the source specification. The third, unskolemization, finds the translation of a function symbol by replacing occurrences of it in an axiom by an existentially quantified variable. A constructive proof of the translated axiom yields a witness to the existential that serves as the desired translation of the function symbol. The fourth technique, connections between specifications, allows the transfer of structure from one specification morphism to another. The unskolemization and connection techniques arose as abstractions from the algorithm design tactics implemented in the KIDS program transformation system (Smith (1990)). They suggest a more general approach to providing mechanized support for applying design knowledge expressed axiomatically.