Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Brandon M. Moore

dblp:27/9117 · DBLP profile ↗
← Back
7ranked-venue papers
1as first author
0since 2021 · last 2019
—ORCID · none

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

Software engineering, systems software and programming languages · 3 · 1 first-authorTheory of computation · 3Systems, architecture and hardware · 1Security and privacy · 1

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.

Software engineering, system software, and programming languages
3 papers
Programming languages and type systems · 66% Program verification · 22% Concurrent programming · 12%
Network and information security
1 paper
Blockchain and cryptocurrency security · 100%

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

TopicWeightPapersLastEvidence papers
Blockchain and cryptocurrency security
formal semantics
0.412019
IELE: A Rigorously Designed Language and Tool Ecosystem for the Blockchain · FM 2019
Programming languages and type systems
language design
0.412019
IELE: A Rigorously Designed Language and Tool Ecosystem for the Blockchain · FM 2019
Program verification › program logic
hoare logic
0.212013
One-Path Reachability Logic · LICS 2013
Programming languages and type systems
language semantics
0.212013
One-Path Reachability Logic · LICS 2013
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.212013
One-Path Reachability Logic · LICS 2013
Programming languages and type systems › rewriting systems
rewrite rules
0.212013
One-Path Reachability Logic · LICS 2013
Concurrent programming › concurrency bug detection
data race detection
0.112011
Thread contracts for safe parallelism · PPoPP 2011
Program verification › concurrent program verification
data race freedom verification
0.112011
Thread contracts for safe parallelism · PPoPP 2011
Concurrent programming › synchronization
synchronization primitives
0.012011
Thread contracts for safe parallelism · PPoPP 2011

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

coq formalization · 0.2runtime assertion · 0.1SMT solver · 0.1
YearPublicationVenuePosition
2019 IELE: A Rigorously Designed Language and Tool Ecosystem for the Blockchain
Theodoros Kasampalis, Dwight Guth, Brandon M. Moore, Traian-Florin Serbanuta, Daniele Filaretti, Virgil Nicolae Serbanuta, Ralph Johnson, Grigore Rosu
FM3
2019 All-Path Reachability Logic
abstract
This paper presents a language-independent proof system for reachability properties of programs written in non-deterministic (e.g., concurrent) languages, referred to as all-path reachability logic. It derives partial-correctness properties with all-path semantics (a state satisfying a given precondition reaches states satisfying a given postcondition on all terminating execution paths). The proof system takes as axioms any unconditional operational semantics, and is sound (partially correct) and (relatively) complete, independent of the object language. The soundness has also been mechanized in Coq. This approach is implemented in a tool for semantics-based verification as part of the K framework (http://kframework.org)
Andrei Stefanescu, Stefan Ciobaca, Radu Mereuta, Brandon M. Moore, Traian-Florin Serbanuta, Grigore Rosu
Log. Methods Comput. Sci.4
2018 KEVM: A Complete Formal Semantics of the Ethereum Virtual Machine
abstract
A developing field of interest for the distributed systems and applied cryptography communities is that of smart contracts: self-executing financial instruments that synchronize their state, often through a blockchain. One such smart contract system that has seen widespread practical adoption is Ethereum, which has grown to a market capacity of 100 billion USD and clears an excess of 500,000 daily transactions. Unfortunately, the rise of these technologies has been marred by a series of costly bugs and exploits. Increasingly, the Ethereum community has turned to formal methods and rigorous program analysis tools. This trend holds great promise due to the relative simplicity of smart contracts and bounded-time deterministic execution inherent to the Ethereum Virtual Machine (EVM). Here we present KEVM, an executable formal specification of the EVM's bytecode stack-based language built with the K Framework, designed to serve as a solid foundation for further formal analyses. We empirically evaluate the correctness and performance of KEVM using the official Ethereum test suite. To demonstrate the usability, several extensions of the semantics are presented. and two different-language implementations of the ERC20 Standard Token are verified against the ERC20 specification. These results are encouraging for the executable semantics approach to language prototyping and specification.
Everett Hildenbrandt, Manasvi Saxena, Nishant Rodrigues, Xiaoran Zhu, Philip Daian, Dwight Guth, Brandon M. Moore, Daejun Park 0001, Andrei Stefanescu, Grigore Rosu
CSF7
2018 Program Verification by Coinduction
abstract
We present a novel program verification approach based on coinduction, which takes as input an operational semantics. No intermediates like program logics or verification condition generators are needed. Specifications can be written using any state predicates. We implement our approach in Coq, giving a certifying language-independent verification framework. Our proof system is implemented as a single module imported unchanged into language-specific proofs. Automation is reached by instantiating a generic heuristic with language-specific tactics. Manual assistance is also smoothly allowed at points the automation cannot handle. We demonstrate the power and versatility of our approach by verifying algorithms as complicated as Schorr-Waite graph marking and instantiating our framework for object languages in several styles of semantics. Finally, we show that our coinductive approach subsumes reachability logic, a recent language-independent sound and (relatively) complete logic for program verification that has been instantiated with operational semantics of languages as complex as C, Java and JavaScript. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Brandon M. Moore, Lucas Peña, Grigore Rosu
ESOP1
2014 ROSRV: Runtime Verification for Robots
Jeff Huang 0001, Cansu Erdogan, Brandon M. Moore, Qingzhou Luo, Aravind Sundaresan, Grigore Rosu
RV4
2013 One-Path Reachability Logic
abstract
This paper introduces (one-path) reachability logic, a language-independent proof system for program verification, which takes an operational semantics as axioms and derives reachability rules, which generalize Hoare triples. This system improves on previous work by allowing operational semantics given with conditional rewrite rules, which are known to support all major styles of operational semantics. In particular, Kahn's big-step and Plotkin's small-step semantic styles are now supported. The reachability logic proof system is shown sound (i.e., partially correct) and (relatively) complete. Reachability logic thus eliminates the need to independently define an axiomatic and an operational semantics for each language, and the nonnegligible effort to prove the former sound and complete w.r.t. the latter. The soundness result has also been formalized in Coq, allowing reachability logic derivations to serve as formal proof certificates that rely only on the operational semantics.
Grigore Rosu, Andrei Stefanescu, Stefan Ciobaca, Brandon M. Moore
LICS4
2011 Thread contracts for safe parallelism
abstract
We build a framework of thread contracts, called Accord, that allows programmers to annotate their concurrency co-ordination strategies. Accord annotations allow programmers to declaratively specify the parts of memory that a thread may read or write into, and the locks that protect them, reflecting the concurrency co-ordination among threads and the reason why the program is free of data-races. We provide automatic tools to check if the concurrency co-ordination strategy ensures race-freedom, using constraint-solvers (SMT solvers). Hence programmers using Accord can both formally state and prove their co-ordination strategies ensure race freedom. The programmer's implementation of the co-ordination strategy may however be correct or incorrect. We show how the formal Accord contracts allow us to automatically insert runtime assertions that serve to check, during testing, whether the implementation conforms to the contract. Using a large class of data-parallel programs that share memory in intricate ways, we show that natural and simple contracts suffice to document the co-ordination strategy amongst threads, and that the task of showing that the strategy ensures race-freedom can be handled efficiently and automatically by an existing SMT solver (Z3). While co-ordination strategies can be proved race-free in our framework, failure to prove the co-ordination strategy race-free, accompanied by counter-examples produced by the solver, indicates the presence of races. Using such counterexamples, we report hitherto undiscovered data-races that we found in the long-tested applu_l benchmark in the Spec OMP2001 suite.
Rajesh K. Karmani, P. Madhusudan, Brandon M. Moore
PPoPP3