Abstract
Given a specification R, it is common for a candidate program P to be doing more than R requires; this is not necessarily bad, and is often unavoidable, due to programming language constraints or to otherwise sensible design decisions. In this paper, we introduce a relational operator that captures, for a given specification R and candidate program P, the functionality delivered by P that is relevant to R. This operator, which we call the projection of P over R (for reasons we explain), has a number of interesting properties, which we explore in this paper.
Original language | English (US) |
---|---|
Pages (from-to) | 26-48 |
Number of pages | 23 |
Journal | Science of Computer Programming |
Volume | 138 |
DOIs | |
State | Published - May 1 2017 |
All Science Journal Classification (ASJC) codes
- Software
- Information Systems
- Modeling and Simulation
- Computational Theory and Mathematics
Keywords
- Absolute correctness
- Lattices
- Projection
- Refinement
- Relative correctness