Abstract
Formal methods advocate the crucial role played by the algebraic approach in specification and implementation of programs. Traditionally, a top-down approach (with denotational model as its origin) links the algebra of programs with the denotational representation by establishment of the soundness and completeness of the algebra against the given model, while a bottom-up approach (a journey started from operational model) introduces a variety of bisimulations to establish the equivalence relation among programs, and then presents a set of algebraic laws in support of program analysis and verification. This paper proposes a new roadmap for linking theories of programming. Our approach takes an algebra of programs as its foundation, and generates both denotational and operational representations from the algebraic refinement relation.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge Press, Cambridge (1996)
Abrial, J.-R.: Modelling in Event-B: System and Software Engineering. Cambridge Press, Cambridge (2010)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)
Henner, E.C.R.: Predicative programming, Part 1, 2. Commun. ACM 27(2), 134–151
Hennessy, M.C.: Algebraic Theory of Process. The MIT Press, Cambridge (1988)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12, 576–583 (1969)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Upper Saddle River (1985)
Hoare, C.A.R., et al.: Laws of programming. Commun. ACM 30(8), 672–686 (1987)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall, Englewood Cliffs (1998)
Jones, C.B.: Systematic Software Development Using VDM. Prentice Hall, Englewood Cliffs (1986)
Milner, R.: Communicating and Mobile Systems: The \(\pi \)-Calculus. Cambridge Univ. Press, Cambridge (1999)
G.D. Plotkin. A structural approach to operational semantics. Technical report, DAIMI-FN-19, Aarhus University, Denmark, (1981)
Roscoe, A.W.: Laws of occam programming. Theoret. Comput. Sci. 60, 177–229 (1988)
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall (1998)
Spivey, J.M., Notation, T.Z.: A Reference Manual. Prentice Hall, Englewood Cliffs (1992)
Acknowledgements
This work is supported by National Natural Science Foundation of China (Grant No. 61321064), Shanghai Knowledge Service Platform Project (No. ZF1213) and the NSFC-Zhejiang Joint Fund for the Integration of Industrialization and Informatization (No. U1509219).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix
Appendix
Lemma 3.1
If \((s,\,G(Q))\rightarrow ^{*}(t,\,\epsilon )\), then either \((s,\,G(\bot ))\uparrow \) or \((s,\,G(\bot ))\rightarrow ^{*}(t,\,\epsilon )\).
Proof:
Induction on the structure of G.
Base case: \(G(Q)=Q\). The conclusion follows from From Rule (6)
in Definition 3.2.
Inductive step:
-
(1)
\(G(Q)=G_1(Q)\sqcap G_2(Q)\).
-
(2)
\(G(Q)=G_1(Q)\lhd b\rhd G_2(X)\)
-
(3)
\(G(Q)=G_1(Q);G_2(Q)\)
-
(4)
\(G(Q)=\mu X\bullet P(Q,\,X)\)
Lemma 3.2
-
(1)
\((s,\,F(P))\uparrow \,\Rightarrow \,(s,\,\mathcal{F}(\bot ))\uparrow \)
-
(2)
\((s,\,F(\mu X\bullet P(X))\uparrow \,\Rightarrow \, (s,\,F(P(\mu X\bullet P(X))))\uparrow \)
Proof
(1). Based on induction on the structure of F.
Base case: \(F(X)=X\). The conclusion follows from the rule (6).
Inductive Step:
Proof of (2): Similar to (1).
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Jifeng, H. (2017). A New Roadmap for Linking Theories of Programming. In: Bowen, J., Zhu, H. (eds) Unifying Theories of Programming. UTP 2016. Lecture Notes in Computer Science(), vol 10134. Springer, Cham. https://doi.org/10.1007/978-3-319-52228-9_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-52228-9_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-52227-2
Online ISBN: 978-3-319-52228-9
eBook Packages: Computer ScienceComputer Science (R0)