8 Conclusions and Future Work
In this paper, we presented an executable semantics of OO models for the foundation of
both simulation and theorem proving. The semantics is implemented in two languages:
HOL for theorem proving and ML for simulation. We preserved the semantics equiv-
alence between them by implementing the underlying heap memory structure within
the expressive intersection of HOL and ML. We also presented a verification system
ObjectLogic which supports simulation and theorem proving based on the executable
semantics. As an application, we showed a verification of a UML model of a practical
firewall server system. Future work is to reinforce the verification capability of Object-
Logic by implementing a test suite generator and a verification condition generator.
References
1. OMG. Unified Modeling Language. URL: http://www.omg.org/.
2. The HOL system. URL: http://hol.sourceforge.net/.
3. Moscow ML. URL: http://www.dina.dk/ sestoft/mosml.html.
4. J. Warmer and A. Kleppe. The Object Constraint Language: precise modeling with UML.
Addison-Wesley, 1999.
5. Tobias Nipkow, David von Oheimb and Cornelia Pusch. µJava: Embedding a Programming
Language in a Theorem Prover. In Foundations of Secure Computation. IOS Press, 2000.
6. Gerwin Klein et al. Bali project, http://isabelle.in.tum.de/Bali/
7. G. Barthe, G. Dufay, L. Jakubiec, S. Melo de Sousa, and B. Serpette. A Formal Exe-
cutable Semantics of the JavaCard Platform. In D. Sands, editor, Proceedings of ESOP’01,
http://citeseer.ist.psu.edu/470034.html
8. P. S. Rajan. Executing HOL specifications: Towards an evaluation semantics for classical
higher order logic. In L. J. M. Claesen and M. J. C. Gordon, editors, Higher order Logic
Theorem Proving and its Applications, Leuven, Belgium, September 1992. Elsevier.
9. S. Berghofer and T. Nipkow. Executing Higher Order Logic. In P. Callaghan, Z. Luo, J.
McKinna, and R. Pollack, editors, Types for Proofs and Programs (TYPES 2000), volume
2277 of LNCS. Springer-Verlag, 2002.
10. J. van den Berg, M. Huisman, B. Jacobs, and E. Poll. A type-theoretic memory model for
verification of sequential Java programs. Techn. Rep. CSI-R9924, Comput. Sci. Inst., Univ.
of Nijmegen, 1999.
11. Claude March´e and Christine Paulin-Mohring. Reasoning on Java programs with aliasing
and frame conditions. In 18th International Conference on Theorem Proving in Higher Order
Logics (TPHOLs 2005), LNCS, August 2005.
12. Demissie B. Aredo. A Framework for Semantics of UML Sequence Diagrams in PVS. Jour-
nal of Universal Computer Science (JUCS), 8(7), pp. 674-697, July 2002.
13. A. D. Brucker and B. Wolff. A proposal for a formal OCL semantics in Isabelle/HOL.
TPHOLs 2002, LNCS 2410, pp.99-114, 2002.
14. G. Al Sammane, J. Schmaltz, D. Toma, P. Ostier, D. Borrione. Theosim: Combining Sym-
bolic Simulation and Theorem Proving for Hardware Verification. Proc. of the 17th Sympo-
sium on Integrated Circuits and System Design (SBCCI’04), 2004.
15. Matthew Wilding, David Greve, David Hardin, Efficient Simulation of Formal Processor
Models, Formal Methods in Systems Design, 18(3), Kluwer Academic Publishers, May
2001.
16. Kenro Yatake, Toshiaki Aoki and Takuya Katayama. Implementing application-specific
Object-Oriented theories in HOL. In Proceedings of the 2nd International Conference on
Theoretical Aspects of Computing (ICTAC’05), pp.501-516, 2005.
80