Prove it! Inferring Formal Proof Scripts from CafeOBJ Proof Scores

被引:12
|
作者
Riesco, Adrian [1 ]
Ogata, Kazuhiro [2 ]
机构
[1] Univ Complutense Madrid, Fac Informat, C Prof Jose Garcia Santesmases 9,Ciudad Univ, E-28040 Madrid, Spain
[2] Japan Adv Inst Sci & Technol, Sch Informat Sci, 1-1 1 Asahidai, Nomi, Ishikawa 9231292, Japan
关键词
CafeOBJ; theorem proving; proof scores; script inference; TOOL; SET;
D O I
10.1145/3208951
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 CafelnMaude, a CafeOBJ interpreter implemented in Maude, with the CafelnMaude Proof Assistant (CiMPA) and the CafelnMaude 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 CLMPG, 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.
引用
收藏
页数:32
相关论文
共 50 条
  • [31] Proof Patterns for Formal Methods
    Freitas, Leo
    Whiteside, Iain
    FM 2014: FORMAL METHODS, 2014, 8442 : 279 - 295
  • [32] Formal specification and proof of Gridjack
    Mao, Li
    Qi, Deyu
    2012 FIFTH INTERNATIONAL SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DESIGN (ISCID 2012), VOL 1, 2012, : 110 - 114
  • [33] Formal proof of a program:: Find
    Filliatre, Jean-Christophe
    SCIENCE OF COMPUTER PROGRAMMING, 2007, 64 (03) : 332 - 340
  • [34] A FORMAL PROOF OF THE KEPLER CONJECTURE
    Hales, Thomas
    Adams, Mark
    Bauer, Gertrud
    Tat Dat Dang
    Harrison, John
    Le Truong Hoang
    Kaliszyk, Cezary
    Magron, Victor
    Mclaughlin, Sean
    Tat Thang Nguyen
    Quang Truong Nguyen
    Nipkow, Tobias
    Obua, Steven
    Pleso, Joseph
    Rute, Jason
    Solovyev, Alexey
    Thi Hoai An Ta
    Nam Trung Tran
    Thi Diep Trieu
    Urban, Josef
    Vu, Ky
    Zumkeller, Roland
    FORUM OF MATHEMATICS PI, 2017, 5
  • [35] Verifying design with proof scores
    Futatsugi, Kokichi
    Goguen, Joseph A.
    Ogata, Kazuhiro
    VERIFIED SOFTWARE: THEORIES, TOOLS, EXPERIMENTS, 2008, 4171 : 277 - +
  • [36] Learning how to Prove: From the Coq Proof Assistant to Textbook Style
    Boehne, Sebastian
    Kreitz, Christoph
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2018, (267): : 1 - 18
  • [37] CiMPG plus F: A Proof Generator and Fixer-Upper for CafeOBJ Specifications
    Riesco, Adrian
    Ogata, Kazuhiro
    THEORETICAL ASPECTS OF COMPUTING, ICTAC 2020, 2020, 12545 : 64 - 82
  • [38] Formal proof of provable security by game-playing in a proof assistant
    Affeldt, Reynald
    Tanaka, Miki
    Marti, Nicolas
    PROVABLE SECURITY, PROCEEDINGS, 2007, 4784 : 151 - +
  • [39] What does the proof of Birnbaum's theorem prove?
    Evans, Michael
    ELECTRONIC JOURNAL OF STATISTICS, 2013, 7 : 2645 - 2655
  • [40] Learning to Prove Theorems via Interacting with Proof Assistants
    Yang, Kaiyu
    Deng, Jia
    INTERNATIONAL CONFERENCE ON MACHINE LEARNING, VOL 97, 2019, 97