Faulty Logic: Reasoning about Fault Tolerant Programs

被引:0
|
作者
Meola, Matthew L. [1 ]
Walker, David [1 ]
机构
[1] Princeton Univ, Dept Comp Sci, Princeton, NJ 08540 USA
关键词
D O I
暂无
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Transient faults are single-shot hardware errors caused by high energy particles from space, manufacturing defects, overheating, and other sources. Such faults can be devastating for security- and safety-critical systems. In order to mitigate these problems, software developers can add redundancy in various ways to their software systems. However, such redundancy is hard to reason about and corner cases are easy to miss, leaving these systems vulnerable. To solve this problem, we have developed a logic, based on Separation Logic, for reasoning about faults as resources. We show how to use this logic as a language of assertions and incorporate it into a Hoare Logic for verifying imperative programs. This Hoare Logic is parameterized by a formal fault model and it can be used to prove imperative programs correct with respect to that model. In addition to developing this basic verification platform, we have designed a modal operator that abstracts away the effects of individual faults, enabling modularization of proofs and greatly simplifying the reasoning involved. The logic is proved sound and studied through a number of examples, including a simplified version of the RSA Sign/Verify algorithm.
引用
收藏
页码:468 / 487
页数:20
相关论文
共 50 条
  • [31] A logic for reasoning about responsibility
    de Lima, Tiago
    Royakkers, Lamber
    Dignum, Frank
    LOGIC JOURNAL OF THE IGPL, 2010, 18 (01) : 99 - 117
  • [32] A logic for reasoning about evidence
    Halpern, Joseph Y.
    Pucella, Riccardo
    JOURNAL OF ARTIFICIAL INTELLIGENCE RESEARCH, 2006, 26 : 1 - 34
  • [33] REASONING ABOUT UPDATE LOGIC
    VANEIJCK, J
    DEVRIES, FJ
    JOURNAL OF PHILOSOPHICAL LOGIC, 1995, 24 (01) : 19 - 45
  • [34] A logic for reasoning about evidence
    Halpern, Joseph Y.
    Pucella, Riccardo
    Journal of Artificial Intelligence Research, 2006, 26 : 1 - 34
  • [35] LOGIC FOR REASONING ABOUT KNOWLEDGE
    ORLOWSKA, E
    ZEITSCHRIFT FUR MATHEMATISCHE LOGIK UND GRUNDLAGEN DER MATHEMATIK, 1989, 35 (06): : 559 - 572
  • [36] A Logic for Reasoning about Persuasion
    Budzynska, Katarzyna
    Kacprzak, Magdalena
    FUNDAMENTA INFORMATICAE, 2008, 85 (1-4) : 51 - 65
  • [37] Fault-Tolerant Cycle Embedding in Balanced Hypercubes with Faulty Vertices and Faulty Edges
    Gu, Mei-Mei
    Hao, Rong-Xia
    Feng, Yan-Quan
    JOURNAL OF INTERCONNECTION NETWORKS, 2015, 15 (1-2)
  • [38] Reasoning on Logic Programs with Annotated Disjunctions
    Bragaglia, Stefano
    INTELLIGENZA ARTIFICIALE, 2012, 6 (01) : 77 - 96
  • [39] Analysing logic programs by reasoning backwards
    Howe, JM
    King, A
    Lu, LJ
    PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC: A DECADE OF RESEARCH ADVANCES IN LOGIC-BASED PROGRAM DEVELOPMENT, 2004, 3049 : 152 - 188
  • [40] Reasoning about Nondeterminism in Programs
    Cook, Byron
    Koskinen, Eric
    ACM SIGPLAN NOTICES, 2013, 48 (06) : 219 - 229