## Refinement Types for Specification (1998)

Venue: | IFIP Working Conference on Programming Concepts and Methods (PROCOMET ’98), Shelter Island |

Citations: | 9 - 2 self |

### BibTeX

@INPROCEEDINGS{Denney98refinementtypes,

author = {E. Denney},

title = {Refinement Types for Specification},

booktitle = {IFIP Working Conference on Programming Concepts and Methods (PROCOMET ’98), Shelter Island},

year = {1998},

pages = {148--166},

publisher = {Chapman & Hall}

}

### Years of Citing Articles

### OpenURL

### Abstract

We develop a theory of program specification using the notion of refinement type. This provides a notion of structured specification, useful for verification and program development. We axiomatise the satisfaction of specifications by programs as a generalised typing relation and give rules for refining specifications. A per semantics based on Henkin models is given, for which the system is proven to be sound and complete. Keywords Specification, refinement, verification, type theory, Henkin models 1

### Citations

483 |
Programming from Specifications
- Morgan
- 1990
(Show Context)
Citation Context ... and an embedding in a calculus of full program annotations. Although we have given a refinement relation OE v OE 0 on specifications, this does not constitute a full refinement calculus (such as in (=-=Morgan 1994-=-)). The idea there is to internalise specifications into programs and consider a refinement relation on mixtures of specification and program. This is carried out in the author's forthcoming PhD thesi... |

185 |
Completeness in the theory of types
- Henkin
- 1950
(Show Context)
Citation Context ...2m + 1 The remainder of the proof is arithmetic reasoning. In practice, we would use a theorem prover here. 5 MODELS We give interpretations of the calculus in general models, known as Henkin models (=-=Henkin 1950-=-), with additional per structure. As is usual in concrete models of applied lambda calculi, we must consider such general models in order to get completeness. The per structure is to account for strat... |

182 | Refinement types for ML - Freeman, Pfenning - 1991 |

98 | Programming in MartinLöf ’s type theory - Nordström, Petersson, et al. - 1990 |

69 | Subtyping dependent types - Aspinall, Compagnoni |

48 | Subtyping with singleton types
- Aspinall
- 1994
(Show Context)
Citation Context ...a! with subset types, though equality does not depend on the type, as it does here. Refinement can be defined in the logic, and is not explicitly axiomatised. Other type-theoretic approaches include (=-=Aspinall 1995-=-, Aspinall & Compagnoni 1996), which differ from the present work in being concerned with subtyping type families. Dependency there is at the level of types themselves, whereas we only allow dependent... |

40 |
Foundations for Programming Languages. Foundations of Computing
- Mitchell
- 1996
(Show Context)
Citation Context ... for F : preds1 ; : : : ;sn Now, a Henkin Model is an applicative structure with two additional conditions, namely, that it is extensional, and that it satisfies the environment model condition. See (=-=Mitchell 1996-=-) for details. It is extensionality which allows us to interpret abstractions, pairs and the unit uniquely, up to equality in the appropriate per, and the environment model condition which gives enoug... |

29 | Automatic binding time analysis for a typed l calculus - Nielson, Nielson - 1988 |

28 | Program specification and data refinement in type theory - Luo - 1993 |

24 | Deliverables: A categorical approach to program development in type theory
- McKinna, Burstall
- 1993
(Show Context)
Citation Context ...erned with subtyping type families. Dependency there is at the level of types themselves, whereas we only allow dependent structure at the refinement type level. The deliverables approach (Burstall & =-=McKinna 1992-=-, McKinna 1992) is to consider a program paired with its proof of correctness. We are similarly motivated in wanting to structure specifications using program types, but differ in taking proof Example... |

19 | Deliverables: a categorical approach to program development in type theory - Burstall, McKinna - 1992 |

7 | A logical framework for program analysis
- Burn
- 1992
(Show Context)
Citation Context ...ompleteness. Finally, we make some conclusions in Section 6. Related Work There have been a number of papers in the `non-standard type system as program logic' paradigm. Nielson & Nielson (1988) and (=-=Burn 1992) axiomati-=-se consequence relations on properties as a form of refinement. Pfenning, who introduced the term "refinement type", used them to express properties of mini-ML programs (Freeman & Pfenning 1... |

6 | A Theory of Program Refinement
- Denney
- 1998
(Show Context)
Citation Context ...ules of the Calculus Rather than give an exhaustive listing of all the rules of the calculus, we restrict the discussion to a subset of the rules and refer the interested reader to (Denney 1997) and (=-=Denney 1998-=-) for more details. One distinctive feature of the calculus is the mutual dependencies of the different syntactic categories, and hence of the different judgement classes. Refinement types can contain... |

4 | A theory of variable types - Feferman - 1985 |

1 |
Refining Refinement Types, in `Informal
- Denney
- 1997
(Show Context)
Citation Context ...pecification 3.3 Rules of the Calculus Rather than give an exhaustive listing of all the rules of the calculus, we restrict the discussion to a subset of the rules and refer the interested reader to (=-=Denney 1997-=-) and (Denney 1998) for more details. One distinctive feature of the calculus is the mutual dependencies of the different syntactic categories, and hence of the different judgement classes. Refinement... |

1 | Logic of refinement types, in `Types for Proofs and programs - Hayashi - 1994 |