Substructural Operational Semantics as Ordered Logic Programming

  title={Substructural Operational Semantics as Ordered Logic Programming},
  author={Frank Pfenning and Robert J. Simmons},
  journal={2009 24th Annual IEEE Symposium on Logic In Computer Science},
  • F. PfenningR. Simmons
  • Published 11 August 2009
  • Computer Science
  • 2009 24th Annual IEEE Symposium on Logic In Computer Science
We describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forward-chaining operational interpretation. Exploiting higher-order terms in this metalanguage, we specify the operational semantics of a number of object language features, such as call-by-value, call-by-name, call-by-need, mutable store, parallelism, communication, exceptions and continuations. The specifications exhibit a high degree of uniformity and… 

Type safety for substructural specifications: preliminary results

A re-orientation of existing logics and logical frameworks based on a presentation of logic as a state transition system is discussed and a safety proof for the SSOS specification of a simple sequential programming language is presented.

Logical frameworks for specifying and reasoning about stateful and concurrent languages ∗

It is proposed to show that a logical framework based on forward reasoning in ordered linear logic can also be used to formally reason about properties of programming languages in ways that can be verified by both human readers and mechanized proof assistants.

Substructural logical specifications

This dissertation introduces and demonstrates four methodologies for developing and using substructural logical frameworks for specifying and reasoning about stateful and concurrent systems, and shows that generative invariants can form the basis of progress-and-preservation-style reasoning about programming languages encoded in SLS.

Higher-Order Processes, Functions, and Sessions: A Monadic Integration

This paper uniformly integrating a Curry-Howard interpretation of linear sequent calculus as session-typed processes in a functional language via a linear contextual monad that isolates session-based concurrency through a logical foundation for higher-order session typed processes.

Substructural Logical Specifications -robert J. Simmons

Linear logic is the most famous of the substructural logics. Traditional intuitionistic logic, which we call persistent to emphasize the treatment of truth as a persistent and reusable resource,

Compiler Generation for Substructural Operational Semantics

This dissertation describes techniques that can be used to synthesize a compiler and virtual machine from a Substructural Operational Semantics (SSOS), and uses linear logical approximations for synthesis.

Back to futures

The resulting language is highly expressive, allowing us to encode futures, fork/join parallelism, and monadic concurrency in the same framework, and give a formal account of linear futures, which have been used in complexity analysis by Blelloch and Reid-Miller.

Lecture Notes on Substructural Operational Semantics 15-317: Constructive Logic

This lecture is an excursion on using linear logic (or other substructural logics) for specifying the operational semantics of programming languages, which is called substructureural operational semantics (SSOS) and explores the use of linear logic to illustrate the main idea of substructurally operational semantics, while also indicating places where generalizations of linear Logic are needed.

A Logical Foundation for Session-based Concurrent Computation

A general purpose concurrent programming language based on the logical basis of intuitionistic linear logic, combining functional programming with a concurrent, session-based process layer through the form of a contextual monad, preserving strong typing guarantees of type preservation and deadlock-freedom in the presence of general recursion and higher-order process communication.

Coinductive Session Types in Higher-Order Communication Centric Programs

A correspondence between the language and the logical foundation of session types based on linear logic is developed, showing that well-typed programs enjoy session fidelity, progress and, crucially, are compositionally non-divergent.



Monadic concurrent linear logic programming

This paper extends Lolli with the remaining connectives of intuitionistic linear logic restricted to occur inside a monad, an idea taken from the concurrent logical framework (CLF) to create LolliMon, a language that has a natural forward chaining, committed choice operational semantics inside the monad.

Substructural Operational Semantics and Linear Destination-Passing Style (Invited Talk)

Substructural operational semantics (SSOS), a presentation form for the semantics of programming languages, combines ideas from structural operational semantics and type theories based on substructural logics in order to obtain a rich, uniform, and modular framework.

Proving Syntactic Properties of Exceptions in an Ordered Logical Framework

This work presents a theoretical justification of using the stack mechanism to implement exceptions of ML-like semantics; and the value of an ordered logical framework as a conceptual tool in the theoretical study of programming languages is demonstrated.

Linear logical approximations

This work shows that, by specifying operational semantics in a bottom-up, linear logic programming language -- a technique it calls "substructural operational semantics" (SSOS) -- manifestly sound program approximations can be derived by simple and intuitive approximation of the logic program.

Proof theoretic approach to specification languages

This thesis uses the proof theory of FORUM to study program equivalence for the functional core of UML augmented with assignable variables, and proves equivalence of programs that have been challenging for other specification languages.

Modular structural operational semantics

  • P. Mosses
  • Computer Science
    J. Log. Algebraic Methods Program.
  • 2004

A Concurrent Logical Framework II: Examples and Applications

This report illustrates the expressive power of the CLF framework by encoding several different concurrent languages including both the synchronous and asynchronous pi-calculus, an ML-like language with futures, lazy evaluation and concurrency primitives in the style of CML, Petri nets and finally, the security protocol specification language MSR.

The Maude System

Maude is a high-performance language and system supporting both equational and rewriting logic computation for a wide range of applications, including development of theorem proving tools, language

A concurrent logical framework I: Judgments and properties

The present report, the first of two technical reports describing CLF, presents the frame- work itself and its metatheory, and a novel, algorithmic formulation of the underlying type theory concentrating on canonical forms leads to a simple notion of definitional equality for concurrent computations in which the order of independent steps cannot be distinguished.