vix.ing · top · new · best · stats · spec

Holistic Specifications for Robust Programs

2020/02/19 by Sophia Drossopoulou, Drossopoulou, Sophia, James Noble +5 · 1 citation
Computer Science · Decision Sciences · #68 #68N19 #68Q60 #68Q65 #Distributed systems and fault tolerance #FOS: Computer and information sciences #Programming Languages (cs.PL) #Scientific Computing and Data Management #Semantic Web and Ontologies #cs.PL #msc:68 #msc:68N19 #msc:68Q60 #msc:68Q65

paper · pdf · doi:10.48550/arxiv.2002.08334

44 pages, 1 Table, 11 Figures

arxiv created 2020/02/19 · openalex publication_date 2020/02/19 · arxiv updated 2020/02/20 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

Functional specifications describe what program components do: the sufficient conditions to invoke a component's operations. They allow us to reason about the use of components in the closed world setting, where the component interacts with known client code, and where the client code must establish the appropriate pre-conditions before calling into the component. Sufficient conditions are not enough to reason about the use of components in the open world setting, where the component interacts with external code, possibly of unknown provenance, and where the component itself may evolve over time. In this open world setting, we must also consider the necessary conditions, i.e, what are the conditions without which an effect will not happen. In this paper we propose the language Chainmail for writing holistic specifications that focus on necessary conditions (as well as sufficient conditions). We give a formal semantics for \Chainmail. The core of Chainmail has been mechanised in the Coq proof assistant.

Cited by

Related