Abstract:
The -calculus is considered an useful mathematical tool in the study of programming languages, since programs can be identified with -terms. However, if one goes further and uses fij-conversion to prove equivalence of programs, then a gross simplification 1 is introduced, that may jeopardise the applicability of theoretical results to real situations. In this paper we introduce a new calculus based on a categorical semantics for computations. This calculus provides a correct basis for proving equivalence of programs, independent from any specific computational model. 1 Introduction This paper is about logics for reasoning about programs, in particular for proving equivalence of programs. Following a consolidated tradition in theoretical computer science we identify programs with the closed -terms, possibly containing extra constants, corresponding to some features of the programming language under consideration. There are three approaches to proving equivalence of programs: ffl T...
Citations
|
870
|
The Lambda Calculus. Its Syntax and Semantics
– Barendregt
- 1984
|
|
240
|
Categories for the Working Mathematician
– MacLane
- 1972
|
|
225
|
Call-by-name, call-by-value, and the -calculus
– Plotkin
- 1975
|
|
206
|
Basic Concepts of Enriched Category Theory
– Kelly
|
|
138
|
Call-by-name, call-by-value, and the λ-calculus
– Plotkin
- 1975
|
|
129
|
Closed categories
– Eilenberg, Kelly
- 1966
|
|
94
|
Towards a geometry of interaction
– Girard
- 1989
|
|
93
|
The Collected Papers of Gerhard Gentzen
– Szabo, editor
- 1969
|
|
85
|
Linear logic, -autonomous categories and cofree coalgebras
– Seely
- 1989
|
|
49
|
Programming with Continuations
– Friedman, Haynes, et al.
- 1984
|
|
40
|
The theory of constructions : Categorical semantics and topos-theoretic models
– Hyland, Pitts
- 1988
|
|
39
|
The Lazy Lambda Calculus/ An Investigation into the Foundations of Functional Programming
– Ong
- 1988
|
|
38
|
Continuity and effectiveness in topoi
– Rosolini
- 1986
|
|
37
|
A type-theoretic alternative to
– Scott
- 1993
|
|
33
|
Strong functors and monoidal monads
– Kock
- 1972
|
|
32
|
Partial objects in constructive type theory
– Constable, Smith
- 1987
|
|
26
|
Monads on symmetric monoidal closed categories
– Kock
- 1970
|
|
26
|
The Partial Lambda-Calculus
– Moggi
- 1988
|
|
24
|
Programming, transforming, and proving with function abstractions and memories
– Mason, Talcott
- 1989
|
|
22
|
A type discipline for program modules
– Harper, Milner, et al.
- 1987
|
|
21
|
Relating theories of the -calculus
– Scott
- 1980
|
|
20
|
Computational foundations of basic recursive function theory
– Constable, Smith
- 1988
|
|
18
|
Edinburgh LCF: A Mechanized Logic of Computation, volume 78 of LNCS
– Gordon, Milner, et al.
- 1979
|
|
16
|
Continuity and eectiveness in topoi
– Rosolini
- 1986
|
|
12
|
Verification of programs that destructively manipulate data
– Mason
- 1988
|
|
10
|
Categories of Partial Morphisms and the partial lambda-calculus
– Moggi
- 1985
|
|
9
|
Relating theories of the λ-calculus
– Scott
- 1980
|
|
6
|
Partial objects in constructive type theory
– Constable, Smith
- 1987
|
|
6
|
Bilinearity and cartesian closed monads
– Kock
- 1971
|
|
6
|
Syntactic Aspects of the Non-deterministic Lambda Calculus
– Sharma
- 1984
|
|
2
|
The lambda calculus and its models
– Barendregt
- 1982
|