Robert J. Simmons

dblp:80/5477 · DBLP profile ↗
← Back
12ranked-venue papers
4as first author
2since 2021 · last 2025
0000-0003-2420-3067ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 2 first-author · 1 since 2021Theory of computation · 6 · 3 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Theoretical computer science
3 papers
Logic in computer science · 99% Algorithms and data structures · 1%
Software engineering, system software, and programming languages
3 papers
Program verification · 39% Software testing · 39% Programming languages and type systems · 19%

Topics — the 13 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Logic in computer science
logic programming
1.022025
Finite-Choice Logic Programming · Proc. ACM Program. Lang. 2025
Linear Logical Algorithms · ICALP (2) 2008
Logic in computer science › logic programming
answer set programming
0.912025
Finite-Choice Logic Programming · Proc. ACM Program. Lang. 2025
Logic in computer science › logic programming
stable model semantics
0.912025
Finite-Choice Logic Programming · Proc. ACM Program. Lang. 2025
Program verification
abstraction refinement
0.222010
Proofs from Tests · IEEE Trans. Software Eng. 2010
Proofs from tests · ISSTA 2008
Program verification › model checking
software model checking
0.222010
Proofs from Tests · IEEE Trans. Software Eng. 2010
Proofs from tests · ISSTA 2008
Software testing
test-based verification
0.222010
Proofs from Tests · IEEE Trans. Software Eng. 2010
Proofs from tests · ISSTA 2008
Software testing
test generation
0.222010
Proofs from Tests · IEEE Trans. Software Eng. 2010
Proofs from tests · ISSTA 2008
Programming languages and type systems
evaluation strategies
0.112009
Substructural Operational Semantics as Ordered Logic Programming · LICS 2009
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.112009
Substructural Operational Semantics as Ordered Logic Programming · LICS 2009
Logic in computer science › logic programming
ordered logic programming
0.112009
Substructural Operational Semantics as Ordered Logic Programming · LICS 2009
Logic in computer science › proof theory
substructural logic
0.112009
Substructural Operational Semantics as Ordered Logic Programming · LICS 2009
Logic in computer science › proof theory › substructural logic
linear logic
0.112008
Linear Logical Algorithms · ICALP (2) 2008
Program analysis › static analysis
pointer analysis
0.012010
Proofs from Tests · IEEE Trans. Software Eng. 2010

Methods — techniques the papers use, named apart from their topics

fixed-point semantics · 0.9test generation · 0.2predicate abstraction · 0.2higher-order terms · 0.2committed choice · 0.2symbolic execution · 0.1alias analysis · 0.1
YearPublicationVenuePosition
2025 Finite-Choice Logic Programming
abstract
Logic programming, as exemplified by datalog, defines the meaning of a program as its unique smallest model: the deductive closure of its inference rules. However, many problems call for an enumeration of models that vary along some set of choices while maintaining structural and logical constraints—there is no single canonical model. The notion of stable models for logic programs with negation has successfully captured programmer intuition about the set of valid solutions for such problems, giving rise to a family of programming languages and associated solvers known as answer set programming. Unfortunately, the definition of a stable model is frustratingly indirect, especially in the presence of rules containing free variables. We propose a new formalism, finite-choice logic programming, that uses choice, not negation, to admit multiple solutions. Finite-choice logic programming contains all the expressive power of the stable model semantics, gives meaning to a new and useful class of programs, and enjoys a least-fixed-point interpretation over a novel domain. We present an algorithm for exploring the solution space and prove it correct with respect to our semantics. Our implementation, the Dusa logic programming language, has performance that compares favorably with state-of-the-art answer set solvers and exhibits more predictable scaling with problem size.
Chris Martens 0001, Robert J. Simmons, Michael Arntzenius
Proc. ACM Program. Lang.2
2021 Inbox Games: Poetics and Authoring Support
Chris Martens 0001, Robert J. Simmons
ICIDS2
2016 Relating reasoning methodologies in linear logic and process algebra
abstract
We show that the proof-theoretic notion of logical preorder coincides with the process-theoretic notion of barbed preorder for a CCS-like process calculus obtained from the formula-as-process interpretation of a fragment of linear logic. The argument makes use of other standard notions in process algebra, namely simulation and labelled transition systems. This result establishes a connection between an approach to reason about process specifications, the barbed preorder, and a method to reason about logic specifications, the logical preorder.
Robert J. Simmons, Iliano Cervesato
Math. Struct. Comput. Sci.2
2014 Structural Focalization
abstract
Focusing, introduced by Jean-Marc Andreoli in the context of classical linear logic [Andreoli 1992], defines a normal form for sequent calculus derivations that cuts down on the number of possible derivations by eagerly applying invertible rules and grouping sequences of non-invertible rules. A focused sequent calculus is defined relative to some nonfocused sequent calculus; focalization is the property that every nonfocused derivation can be transformed into a focused derivation. In this article, we present a focused sequent calculus for propositional intuitionistic logic and prove the focalization property relative to a standard presentation of propositional intuitionistic logic. Compared to existing approaches, the proof is quite concise, depending only on the internal soundness and completeness of the focused logic. In turn, both of these properties can be established (and mechanically verified) by structural induction in the style of Pfenning's structural cut elimination without the need for any tedious and repetitious invertibility lemmas. The proof of cut admissibility for the focused system, which establishes internal soundness, is not particularly novel. The proof of identity expansion, which establishes internal completeness, is a major contribution of this work.
Robert J. Simmons
ACM Trans. Comput. Log.1
2013 A logical correspondence between natural semantics and abstract machines
abstract
We present a logical correspondence between natural semantics and abstract machines. This correspondence enables the mechanical and fully-correct construction of an abstract machine from a natural semantics. Our logical correspondence mirrors the Reynolds functional correspondence, but we manipulate semantic specifications encoded in a logical framework instead of manipulating functional programs. Natural semantics and abstract machines are instances of substructural operational semantics. As a byproduct, using a substructural logical framework, we bring concurrent and stateful models into the domain of the logical correspondence.
Robert J. Simmons, Ian Zerny
PPDP1
2011 Products of weighted logic programs
abstract
Abstract Weighted logic programming, a generalization of bottom-up logic programming, is a well-suited framework for specifying dynamic programming algorithms. In this setting, proofs correspond to the algorithm's output space, such as a path through a graph or a grammatical derivation, and are given a real-valued score (often interpreted as a probability) that depends on the real weights of the base axioms used in the proof. The desired output is a function over all possible proofs, such as a sum of scores or an optimal score. We describe theproducttransformation, which can merge two weighted logic programs into a new one. The resulting program optimizes a product of proof scores from the original programs, constituting a scoring function known in machine learning as a “product of experts.” Through the addition of intuitive constraining side conditions, we show that several important dynamic programming algorithms can be derived by applyingproductto weighted logic programs corresponding tosimplerweighted logic programs. In addition, we show how the computation of Kullback–Leibler divergence, an information-theoretic measure, can be interpreted usingproduct.
Shay B. Cohen, Robert J. Simmons, Noah A. Smith
Theory Pract. Log. Program.2
2010 Proofs from Tests
abstract
We present an algorithm DASH to check if a program P satisfies a safety property φ. The unique feature of this algorithm is that it uses only test generation operations, and it refines and maintains a sound program abstraction as a consequence of failed test generation operations. Thus, each iteration of the algorithm is inexpensive, and can be implemented without any global may-alias information. In particular, we introduce a new refinement operator WPαthat uses only the alias information obtained by symbolically executing a test to refine abstractions in a sound manner. We present a full exposition of the DASH algorithm and its theoretical properties. We have implemented DASH in a tool called YOGI that plugs into Microsoft's Static Driver Verifier framework. We have used this framework to run YOGI on 69 Windows Vista drivers with 85 properties and find that YOGI scales much better than SLAM, the current engine driving Microsoft's Static Driver Verifier.
Nels E. Beckman, Aditya V. Nori, Sriram K. Rajamani, Robert J. Simmons, SaiDeep Tetali, Aditya V. Thakur
IEEE Trans. Software Eng.4
2009 Substructural Operational Semantics as Ordered Logic Programming
abstract
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 modularity that allows us to analyze the structural properties required for each feature in isolation. Our substructural framework thereby provides a new methodology for language specification that synthesizes structural operational semantics, abstract machines, and logical approaches.
Frank Pfenning, Robert J. Simmons
LICS2
2009 Linear logical approximations
abstract
The abstract interpretation of programs relates the exact semantics of a programming language to an approximate semantics that can be effectively computed. We show that, by specifying operational semantics in a bottom-up, linear logic programming language -- a technique we call "substructural operational semantics" (SSOS) -- manifestly sound program approximations can be derived by simple and intuitive approximations of the logic program. As examples, we describe how to derive a simple alias analysis, 0CFA, and kCFA analysis from a substructural operational semantics of the relevant languages.
Robert J. Simmons, Frank Pfenning
PEPM1
2008 Linear Logical Algorithms
Robert J. Simmons, Frank Pfenning
ICALP (2)1
2008 Dynamic Programming Algorithms as Products of Weighted Logic Programs
Shay B. Cohen, Robert J. Simmons, Noah A. Smith
ICLP2
2008 Proofs from tests
abstract
We present an algorithm DASH to check if a program P satisfies a safety property phi. The unique feature of the algorithm is that it uses only test generation operations, and it refines and maintains a sound program abstraction as a consequence of failed test generation operations. Thus, each iteration of the algorithm is inexpensive, and can be implemented without any global may-alias information. In particular, we introduce a new refinement operator WP_alpha that uses only the alias information obtained by executing a test to refine abstractions in a sound manner. We present a full exposition of the Dash algorithm, its theoretical properties, and its implementation.
Nels E. Beckman, Aditya V. Nori, Sriram K. Rajamani, Robert J. Simmons
ISSTA4