2010 · 53 citations · 16 references
EngineeringAlgebraic StructureType TheoryAlgebraic AnalysisSemanticsContextual PreorderSyntaxOperational SemanticsDependently Typed ProgrammingGeneric Operational MetatheoryLanguage StudiesSyntactic AnalysisProgramming LanguagesPolymorphism (Computer Science)Abstract InterpretationUniversal AlgebraAutomated ReasoningProgram AnalysisPolymorphic Programming LanguageFormal Methods
We provide a syntactic analysis of contextual preorder and equivalence for a polymorphic programming language with effects. Our approach applies uniformly across a range of {algebraic effects}, and incorporates, as instances: errors, input/output, global state, nondeterminism, probabilistic choice, and combinations thereof. Our approach is to extend Plotkin and Power's structural operational semantics for algebraic effects (FoSSaCS 2001) with a primitive "basic preorder" on ground type computation trees. The basic preorder is used to derive notions of contextual preorder and equivalence on program terms. Under mild assumptions on this relation, we prove fundamental properties of contextual preorder (hence equivalence) including extensionality properties and a characterisation via applicative contexts, and we provide machinery for reasoning about polymorphism using relational parametricity.
16
A Structural Approach to Operational Semantics
Gordon Plotkin · 2004 · 2K citations
Computational lambda-calculus and monads
Eugenio Moggi · 2003 · 847 citations
Engineering, Computational Lambda-calculus, Software Systems +16
Fully abstract models of typed λ-calculi
Robin Milner · Theoretical Computer Science · 1977 · 474 citations · Full text