skip to main content
research-article

Prove it! Inferring Formal Proof Scripts from CafeOBJ Proof Scores

Published: 19 July 2018 Publication History

Abstract

CafeOBJ is a language for writing formal specifications for a wide variety of software and hardware systems and for verifying their properties. CafeOBJ makes it possible to verify properties by using either proof scores, which consists of reducing goal-related terms in user-defined modules, or by using theorem proving. While the former is more flexible, it lacks the formal support to ensure that a property has been really proven. On the other hand, theorem proving might be too strict, since only a predefined set of commands can be applied to the current goal; hence, it hardens the verification of properties.
In order to take advantage of the benefits of both techniques, we have extended CafeInMaude, a CafeOBJ interpreter implemented in Maude, with the CafeInMaude Proof Assistant (CiMPA) and the CafeInMaude Proof Generator (CiMPG). CiMPA is a proof assistant for proving inductive properties on CafeOBJ specifications that uses Maude metalevel features to allow programmers to create and manipulate CiMPA proofs. On the other hand, CiMPG provides a minimal set of annotations for identifying proof scores and generating CiMPA scripts for these proof scores. In this article, we present the CiMPA and CiMPG, detailing the behavior of the CiMPA and the algorithm underlying the CiMPG and illustrating the power of the approach by using the QLOCK protocol. Finally, we present some benchmarks that give us confidence in the matureness and usefulness of these tools.

References

[1]
Egidio Astesiano, Hans-Joerg Kreowski, and Bernd Krieg-Brueckner (Eds.). 1999. Algebraic Foundations of Systems Specification (1st ed.). Springer, Secaucus, NJ.
[2]
Keith A. Bartlett, Roger A. Scantlebury, and Peter T. Wilkinson. 1969. A note on reliable full-duplex transmission over half-duplex links. Communications of the ACM 12, 5, 260--261.
[3]
Giampaolo Bella, Fabio Massacci, and Lawrence C. Paulson. 2006. Verifying the SET purchase protocols. Journal of Automated Reasoning 36, 1--2, 5--37.
[4]
Michel Bidoit and Peter D. Mosses. 2004. Casl User Manual, Lecture Notes in Computer Science, Vol. 2900. Springer, Berlin.
[5]
Manuel Clavel, Francisco Durán, Steven Eker, Patrick Lincoln, Narciso Martí-Oliet, José Meseguer, and Carolyn Talcott. 2007. All About Maude: A High-Performance Logical Framework, Lecture Notes in Computer Science, Vol. 4350. Springer, Berlin.
[6]
Manuel Clavel, Miguel Palomino, and Adrián Riesco. 2006. Introducing the ITP tool: A tutorial. Journal of Universal Computer Science 12, 11 (2006), 1618--1650. Programming and Languages. Special Issue with Extended Versions of Selected Papers from PROLE 2005: The 5th Spanish Conference on Programming and Languages.
[7]
Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. 2012. Frama-C: A software analysis perspective. In Proceedings of the 10th International Conference on Software Engineering and Formal Methods (SEFM’12), Lecture Notes in Computer Science. Springer, Berlin, 233--247.
[8]
Kokichi Futatsugi. 2015. Generate 8 check method for verifying transition systems in CafeOBJ. In Software, Services, and Systems - Essays Dedicated to Martin Wirsing on the Occasion of His Retirement from the Chair of Programming and Software Engineering, Lecture Notes in Computer Science, Rocco De Nicola and Rolf Hennicker (Eds.), Vol. 8950. Springer, Berlin, 171--192.
[9]
Kokichi Futatsugi and Razvan Diaconescu. 1998. CafeOBJ Report. World Scientific, Singapore.
[10]
Kokichi Futatsugi, Daniel Gâinâ, and Kazuhiro Ogata. 2012. Principles of proof scores in CafeOBJ. Theoretical Computer Science 464, 90--112.
[11]
Daniel Gâinâ, Min Zhang, Yuki Chiba, and Yasuhito Arimoto. 2013. Constructor-based inductive theorem prover. In Proceedings of the 5th International Conference in Algebra and Coalgebra in Computer Science (CALCO’13), Lecture Notes in Computer Science, Reiko Heckel and Stefan Milius (Eds.), Vol. 8089. Springer, Berlin, 328--333.
[12]
CoFI Tools Task Group. 2004. CoFI, The Common Framework Initiative for algebraic specification and development. Retrieved May 5, 2018 from http://www.cofi.info.
[13]
Rustan Leino. 2010. Dafny: An automatic program verifier for functional correctness. In Proceedings of the 16th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, Revised Selected Papers (LPAR’10), Lecture Notes in Computer Science, Edmund M. Clarke and Andrei Voronkov (Eds.), Vol. 6355. Springer, Berlin, 348--370.
[14]
Gavin Lowe. 1995. An attack on the Needham-Schroeder public-key authentication protocol. Information Processing Letters 56, 3, 131--133.
[15]
Till Mossakowski, Christian Maeder, Mihai Codescu, and Dominik Lücke. 2011. Hets User Guide Version 0.97. Technical Report. DFKI GmbH, Formal Methods for Software Development.
[16]
Till Mossakowski, Christian Maeder, and Klaus Lüttich. 2007. The Heterogeneous Tool Set. In Proceedings of the 13th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’07), Lecture Notes in Computer Science, Orna Grumberg and Michael Huth (Eds.), Vol. 4424. Springer, Berlin, 519--522.
[17]
Peter Mosses (Ed.). 2004. CaslReference Manual, Lecture Notes in Computer Science, Vol. 2960. Springer, Berlin.
[18]
Masahiro Nakano, Kazuhiro Ogata, Masaki Nakamura, and Kokichi Futatsugi. 2007. Creme: An automatic invariant prover of behavioral specifications. International Journal of Software Engineering and Knowledge Engineering 17, 6, 783--804.
[19]
Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic, Lecture Notes in Computer Science, Vol. 2283. Springer, Berlin.
[20]
Kazuhiro Ogata and Kokichi Futatsugi. 2003. Proof scores in the OTS/CafeOBJ Method. In Proceedings of the 6th IFIP WG 6.1 International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’03), Lecture Notes in Computer Science, Elie Najm, Uwe Nestmann, and Perdita Stevens (Eds.), Vol. 2884. Springer, Berlin, 170--184.
[21]
Kazuhiro Ogata and Kokichi Futatsugi. 2006. Some tips on writing proof scores in the OTS/CafeOBJ Method. In Algebra, Meaning, and Computation: Essays Dedicated to Joseph A. Goguen on the Occasion of His 65th Birthday, Lecture Notes in Computer Science, Vol. 4060. Springer, Berlin, 596--615.
[22]
Kazuhiro Ogata and Kokichi Futatsugi. 2008. Proof score approach to verification of liveness properties. IEICE Transactions on Information and Systems E91-D, 12, 2804--2817.
[23]
Sam Owre, John M. Rushby, and Natarajan Shankar. 1992. PVS: A prototype verification system. In Proceedings of the 11th International Conference on Automated Deduction (CADE’92), Deepak Kapur (Ed.). Springer, Berlin, 748--752.
[24]
Lawrence C. Paulson. 1994. Isabelle: A Generic Theorem Prover, Lecture Notes in Computer Science, Vol. 828. Springer, Berlin.
[25]
Nadia Polikarpova, Julian Tschannen, and Carlo A. Furia. 2015. A fully verified container library. In Proceedings of the 20th International Symposium on Formal Methods (FM’15), Lecture Notes in Computer Science. Vol. 9109. Springer, Berlin, 414--434.
[26]
Norbert Preining, Kazuhiro Ogata, and Kokichi Futatsugi. 2015. Liveness properties in CafeOBJ -- A case study for meta-level specifications. In Proceedings of the 24th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR’14), Lecture Notes in Computer Science, Maurizio Proietti and Hirohisa Seki (Eds.). Vol. 8981. Springer, Berlin, 182--198.
[27]
Adrián Riesco and Kazuhiro Ogata. 2017. A formal proof generator from semi-formal proof documents. In Proceedings of the 14th International Colloquium on Theoretical Aspects of Computing (ICTAC’17), Lecture Notes in Computer Science, Dang Van Hung and Deepak Kapur (Eds.). Vol. 10580. Springer, Berlin, 3--12.
[28]
Adrián Riesco, Kazuhiro Ogata, and Kokichi Futatsugi. 2016. A Maude environment for CafeOBJ. Formal Aspects of Computing 29, 2, 309--334.
[29]
Toshimi Sawada, Kokichi Futatsugi, and Norbert Preining. 2015. CafeOBJ Reference Manual (version 1.5.3). Japan Advanced Institute of Science and Technology.
[30]
Julian Tschannen, Carlo A. Furia, Martin Nordio, and Nadia Polikarpova. 2015. AutoProof: Auto-active functional verification of object-oriented programs. In Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’15), Lecture Notes in Computer Science. Springer, Berlin, 566--580.
[31]
Julian Tschannen, Nadia Polikarpova, Carlo A. Furia, Martin Nordio, and Bertrand Meyer. 2016. The Eiffel Verification Environment. Retrieved May 5, 2018 from http://se.inf.ethz.ch/research/eve/.
[32]
Min Zhang, Kazuhiro Ogata, and Masaki Nakamura. 2011. Translation of state machines from equational theories into rewrite theories with tool support. IEICE Transactions on Information and Systems 94-D, 5, 976--988.

Cited By

View all
  • (2023)Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scoresPeerJ Computer Science10.7717/peerj-cs.12849(e1284)Online publication date: 31-Mar-2023
  • (2023)Integration of state machine graphical animation and Maude to facilitate characteristic conjecture: an approach to lemma discovery in theorem provingMultimedia Tools and Applications10.1007/s11042-023-15780-583:12(36865-36898)Online publication date: 24-Jul-2023
  • (2022)Advances of proof scores in CafeOBJScience of Computer Programming10.1016/j.scico.2022.102893224:COnline publication date: 1-Dec-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 27, Issue 2
April 2018
186 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3234930
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 July 2018
Accepted: 01 June 2009
Revised: 01 March 2009
Received: 01 February 2007
Published in TOSEM Volume 27, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CafeOBJ
  2. proof scores
  3. script inference
  4. theorem proving

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • MINECO Spanish projects StrongSoft
  • JSPS KAKENHI
  • JSPS
  • Comunidad de Madrid project N-Greens Software-CM
  • TRACES

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)25
  • Downloads (Last 6 weeks)8
Reflects downloads up to 15 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scoresPeerJ Computer Science10.7717/peerj-cs.12849(e1284)Online publication date: 31-Mar-2023
  • (2023)Integration of state machine graphical animation and Maude to facilitate characteristic conjecture: an approach to lemma discovery in theorem provingMultimedia Tools and Applications10.1007/s11042-023-15780-583:12(36865-36898)Online publication date: 24-Jul-2023
  • (2022)Advances of proof scores in CafeOBJScience of Computer Programming10.1016/j.scico.2022.102893224:COnline publication date: 1-Dec-2022
  • (2022)An integrated tool set for verifying CafeOBJ specificationsJournal of Systems and Software10.1016/j.jss.2022.111302189(111302)Online publication date: Jul-2022
  • (2022)Formal verification of TLS 1.2 by automatically generating proof scoresComputers and Security10.1016/j.cose.2022.102909123:COnline publication date: 1-Dec-2022
  • (2021)Advances of Proof Scores in CafeOBJ : Invited Paper2021 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE52547.2021.00012(3-12)Online publication date: Aug-2021
  • (2021)Formal Specification and Model Checking of an Autonomous Vehicle Merging Protocol2021 IEEE 21st International Conference on Software Quality, Reliability and Security Companion (QRS-C)10.1109/QRS-C55045.2021.00057(333-342)Online publication date: Dec-2021
  • (2021)Simulation-Based Invariant Verification Technique for the OTS/CafeOBJ MethodIEEE Access10.1109/ACCESS.2021.30932119(93847-93870)Online publication date: 2021
  • (2020)Lemma Weakening for State Machine Invariant Proofs2020 27th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC51365.2020.00010(21-30)Online publication date: Dec-2020
  • (2020)CiMPG+F: A Proof Generator and Fixer-Upper for CafeOBJ SpecificationsTheoretical Aspects of Computing – ICTAC 202010.1007/978-3-030-64276-1_4(64-82)Online publication date: 25-Nov-2020

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media