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 条
  • [1] Principles of proof scores in CafeOBJ
    Futatsugi, Kokichi
    Gaina, Daniel
    Ogata, Kazuhiro
    THEORETICAL COMPUTER SCIENCE, 2012, 464 : 90 - 112
  • [2] Fostering Proof Scores in CafeOBJ
    Futatsugi, Kokichi
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2010, 6447 : 1 - 20
  • [3] Advances of proof scores in CafeOBJ
    Futatsugi, Kokichi
    SCIENCE OF COMPUTER PROGRAMMING, 2022, 224
  • [4] Verifying specifications with proof scores in CafeOBJ
    Futatsugi, Kokichi
    ASE 2006: 21ST IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2006, : 3 - 10
  • [5] Proof scores in the OTS/CafeOBJ method
    Ogata, K
    Futatsugi, K
    FORMAL METHODS FOR OPEN OBJECT-BASED DISTRIBUTED SYSTEMS, PROCEEDINGS, 2003, 2884 : 170 - 184
  • [6] Advances of Proof Scores in CafeOBJ Invited Paper
    Futatsugi, Kokichi
    2021 INTERNATIONAL SYMPOSIUM ON THEORETICAL ASPECTS OF SOFTWARE ENGINEERING (TASE 2021), 2021, : 3 - 12
  • [7] Generic Proof Scores for Generate & Check Method in CafeOBJ
    Futatsugi, Kokichi
    LOGIC, REWRITING, AND CONCURRENCY, 2015, 9200 : 287 - 310
  • [8] Some tips on writing proof scores in the OTS/CafeOBJ method
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    ALGEBRA, MEANING, AND COMPUTATION: ESSAYS DEDICATED TO JOSEPH A. GOGUEN ON THE OCCASION OF HIS 65TH BIRTHDAY, 2006, 4060 : 596 - 615
  • [9] A Toolkit for Generating and Displaying Proof Scores in the OTS/CafeOBJ Method
    Seino, Takahiro
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2006, 147 (01) : 57 - 72
  • [10] Compositionally Writing Proof Scores of Invariants in the OTS/CafeOBJ Method
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2013, 19 (06) : 771 - 804