• Publications
  • Influence
Verdi: a framework for implementing and formally verifying distributed systems
TLDR
Verdi, a framework for implementing and formally verifying distributed systems in Coq, formalizes various network semantics with different faults, and enables the developer to first verify their system under an idealized fault model then transfer the resulting correctness guarantees to a more realistic fault model without any additional proof burden.
Automatically improving accuracy for floating point expressions
TLDR
Herbie is a tool which automatically discovers the rewrites experts perform to improve accuracy, and its heuristic search estimates and localizes rounding error using sampled points (rather than static error analysis), applies a database of rules to generate improvements, takes series expansions, and combines improvements for different input regions.
SafeDispatch: Securing C++ Virtual Calls from Memory Corruption Attacks
TLDR
This paper presents SAFEDISPATCH, a novel defense to prevent vtable hijacking by statically analyzing C++ programs and inserting sufficient runtime checks to ensure that control flow at virtual method call sites cannot be arbitrarily influenced by an attacker.
Equality saturation: a new approach to optimization
TLDR
The proposed way of structuring optimizers has a variety of benefits over previous approaches: it obviates the need to worry about optimization ordering, enables the use of a global optimization heuristic that selects among fully optimized programs, and can be used to perform translation validation, even on compilers other than the authors' own.
Proving optimizations correct using parameterized program equivalence
TLDR
Parameterized Equivalence Checking (PEC), a generalization of translation validation that can prove the equivalence of parameterized programs, is presented.
Programming and proving with distributed protocols
TLDR
Disel is presented, the first framework for implementation and compositional verification of distributed systems and their clients, all within the mechanized, foundational context of the Coq proof assistant.
RoboFlow: A flow-based visual programming language for mobile manipulation tasks
TLDR
RoboFlow is designed to ensure a robust low-level implementation of program procedures on a mobile manipulator, and restrict the high-level programming as much as possible to avoid user errors while enabling expressive programs that involve branching, looping, and nesting.
Relay: a new IR for machine learning frameworks
TLDR
This work proposes a new high-level intermediate representation (IR) called Relay, being designed as a purely-functional, statically-typed language with the goal of balancing efficient compilation, expressiveness, and portability.
Planning for change in a formal verification of the raft consensus protocol
TLDR
This work presents the first formal verification of state machine safety for the Raft consensus protocol, a critical component of many distributed systems, with an end-to-end guarantee that the implementation provides linearizable state machine replication.
Toward a Standard Benchmark Format and Suite for Floating-Point Analysis
TLDR
This work introduces FPBench, a standard benchmark format for validation and optimization of numerical accuracy in floating-point computations, and describes the format and measures and shows that FPBench expresses benchmarks from recent papers in the literature by building an initial benchmark suite drawn from these papers.
...
1
2
3
4
5
...