CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Fast and Loose Reasoning is Morally Correct

Nils Anders Danielsson (Institutionen för data- och informationsteknik, Datavetenskap, Programmeringslogik (Chalmers)) ; John Hughes (Institutionen för data- och informationsteknik, Datavetenskap (Chalmers)) ; Patrik Jansson (Institutionen för data- och informationsteknik, Datavetenskap, Programmeringslogik (Chalmers)) ; Jeremy Gibbons
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 2006) p. 206-217. (2006)
[Konferensbidrag, refereegranskat]

Functional programmers often reason about programs as if they were written in a total language, expecting the results to carry over to non-total (partial) languages. We justify such reasoning. Two languages are defined, one total and one partial, with identical syntax. The semantics of the partial language includes partial and infinite values, and all types are lifted, including the function spaces. A partial equivalence relation (PER) is then defined, the domain of which is the total subset of the partial language. For types not containing function spaces the PER relates equal values, and functions are related if they map related values to related values. It is proved that if two closed terms have the same semantics in the total language, then they have related semantics in the partial language. It is also shown that the PER gives rise to a bicartesian closed category which can be used to reason about values in the domain of the relation.

Nyckelord: Equational reasoning, partial and total languages, non-strict and strict languages, partial and infinite values, lifted types, inductive and coinductive types



Denna post skapades 2006-11-02. Senast ändrad 2014-09-02.
CPL Pubid: 23040

 

Läs direkt!


Länk till annan sajt (kan kräva inloggning)