Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
IEEE Transactions on Software Engineering
A Discipline of Programming
Artificial Intelligence Programming
Artificial Intelligence Programming
Towards a Time Model for Circus
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
ArcAngelC: a Refinement Tactic Language for Circus
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Aspects of Computing
Slotted-circus: a UTP-family of reactive theories
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
Encoding circus programs in ProofPower-Z
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
ClawZ: cost-effective formal verification for control systems
ICFEM'05 Proceedings of the 7th international conference on Formal Methods and Software Engineering
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
Control law diagrams in circus
FM'05 Proceedings of the 2005 international conference on Formal Methods
Unifying theories in Isabelle/HOL
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
Automating refinement of circus programs
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
Hi-index | 0.00 |
The Unifying Theories of Programming (UTP) of Hoare and He is a general framework in which the semantics of a variety of specification and programming languages can be uniformly defined. In this paper we present a semantic embedding of the UTP into the ProofPower-Z theorem prover; it concisely captures the notion of UTP theory, theory instantiation, and, additionally, type restrictions on the alphabet of UTP predicates. We show how the encoding can be used to reason about UTP theories and their predicates, including models of particular specifications and programs. We support encoding and reasoning about combinations of predicates of various theory instantiations, as typically found in UTP models. Our results go beyond what has already been discussed in the literature in that we support encoding of both theories and programs (or their specifications), and high-level proof tactics. We also create structuring mechanisms that support the incremental construction and reuse of encoded theories, associated laws and proof tactics.