Pi-calculus, dialogue games and full abstraction PCF
J. M. E. Hyland, C.-H. Luke Ong · 1995
Game semantics is an unusual denotational semantics in that it captures the intentional (or algorithmic) and dynamical aspects of the computation.This makes it an ideal semantical framework in which to seek to unify analyses of both the qualitative (correctness) as well as the quantitative (efficiency) properties of programming languages.This paper reports work arising from a recent construction of an order (or inequationall y) fully abstract model for Scot t's functional programming language PCF based on a kind of two-person (Player and Opponent) dialogue game of questions and answers [H094].In this model types are interpreted as games and terms as innocent strategies.The fully abstract game model may be said to be canonical for the semantical analysis of sequential functional languages.Unfortunately even for relatively simple PCF-terms, precise description of their denotations as strategies in [H094] very rapidly becomes unwieldy and opaque.What is needed to remedy the situation is an expressive formal language which lends itself to a succinct and economical representation of innocent strategies.In this paper we give just such a representation in terms of an appropriately sorted polyadic r-calculus, reading input ~-actions as Opponent's moves, and output ~-actions as Player's moves.This correspondence captures every essential aspect of the dialogue game paradigm so precisely that the r-representation may as well be taken to be the basis for its formal dejinitzon.Although the rr-representation of strategies already gives an encoding of PCF in the rr-calculus -indirectly via the fully abstract denotation of PCF-terms as innocent strategies, we define by recursion a new encoding of PCF in the n-calculus directly.The two ~-encodings of PCF are weakly bisimilar; if the latter is regarded as a compilation, then the former amounts to a more efficient version with compile-time optimization. PCF: observational preorder and full abstractionThe functional language PCF [SC093, P1077] is essentially the simply typed A-calculus augmented by basic arithmetic, conq