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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Stefan Heule

dblp:124/8937 · DBLP profile ↗
← Back
9ranked-venue papers
7as first author
1since 2021 · last 2022
—ORCID · none

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

Software engineering, systems software and programming languages · 7 · 6 first-authorComputer networks · 1 · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 first-author

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.

Computer networks
1 paper
Software-defined and programmable networks · 50% Network management and operations · 50%
Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 70% Program synthesis and code generation · 30%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Processor architecture and microarchitecture · 100%

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

TopicWeightPapersLastEvidence papers
Network management and operations
network verification
0.612022
SwitchV: automated SDN switch validation with P4 models · SIGCOMM 2022
Software-defined and programmable networks
programmable data plane
0.612022
SwitchV: automated SDN switch validation with P4 models · SIGCOMM 2022
Programming languages and type systems › language semantics
formal semantics
0.212016
Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016
Programming languages and type systems › language semantics › formal semantics
instruction set semantics
0.212016
Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016
Processor architecture and microarchitecture
instruction set architecture
0.112016
Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016
Processor architecture and microarchitecture › instruction set architecture › CISC
x86-64
0.112016
Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016

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

p4 model · 0.6syntax-guided synthesis · 0.5markov chain monte carlo · 0.2heuristic search · 0.2
YearPublicationVenuePosition
2022 SwitchV: automated SDN switch validation with P4 models
abstract
Increasing demand on computer networks continuously pushes manufacturers to incorporate novel features and capabilities into their switches at an ever-accelerating pace. However, the traditional approach to switch development relies on informal specifications and handcrafted tests to ensure reliability, which are tedious and slow to maintain and update, effectively putting feature velocity at odds with reliability.
Kinan Dak Albab, Jonathan DiLorenzo, Stefan Heule, Ali Kheradmand, Steffen Smolka, Konstantin Weitz, Muhammad Timarzi, Minlan Yu
SIGCOMM3
2017 SpaceSearch: a library for building and verifying solver-aided tools
abstract
Many verification tools build on automated solvers. These tools reduce problems in a specific application domain (e.g., compiler optimization validation) to queries that can be discharged with a highly optimized solver. But the correctness of the reductions themselves is rarely verified in practice, limiting the confidence that the solver's output establishes the desired domain-level property. This paper presents SpaceSearch, a new library for developing solver-aided tools within a proof assistant. A user builds their solver-aided tool in Coq against the SpaceSearch interface, and the user then verifies that the results provided by the interface are sufficient to establish the tool's desired high-level properties. Once verified, the tool can be extracted to an implementation in a solver-aided language (e.g., Rosette), where SpaceSearch provides an efficient instantiation of the SpaceSearch interface with calls to an underlying SMT solver. This combines the strong correctness guarantees of developing a tool in a proof assistant with the high performance of modern SMT solvers. This paper also introduces new optimizations for such verified solver-aided tools, including parallelization and incrementalization. We evaluate SpaceSearch by building and verifying two solver-aided tools. The first, SaltShaker, checks that RockSalt's x86 semantics for a given instruction agrees with STOKE's x86 semantics. SaltShaker identified 7 bugs in RockSalt and 1 bug in STOKE. After these systems were patched by their developers, SaltShaker verified the semantics' agreement on 15,255 instruction instantiations in under 2h. The second tool, BGProof, is a verified version of an existing Border Gateway Protocol (BGP) router configuration checker. Like the existing checker, BGProof scales to checking industrial configurations spanning over 240 KLOC, identifying 19 configuration inconsistencies with no false positives. However, the correctness of BGProof has been formally proven, and we found 2 bugs in the unverified implementation. These results demonstrate that SpaceSearch is a practical approach to developing efficient, verified solver-aided tools.
Konstantin Weitz, Steven Lyubomirsky, Stefan Heule, Emina Torlak, Michael D. Ernst, Zachary Tatlock
Proc. ACM Program. Lang.3
2016 Stratified synthesis: automatically learning the x86-64 instruction set
abstract
The x86-64 ISA sits at the bottom of the software stack of most desktop and server software. Because of its importance, many software analysis and verification tools depend, either explicitly or implicitly, on correct modeling of the semantics of x86-64 instructions. However, formal semantics for the x86-64 ISA are difficult to obtain and often written manually through great effort. We describe an automatically synthesized formal semantics of the input/output behavior for a large fraction of the x86-64 Haswell ISA’s many thousands of instruction variants. The key to our results is stratified synthesis, where we use a set of instructions whose semantics are known to synthesize the semantics of additional instructions whose semantics are unknown. As the set of formally described instructions increases, the synthesis vocabulary expands, making it possible to synthesize the semantics of increasingly complex instructions. Using this technique we automatically synthesized formal semantics for 1,795 instruction variants of the x86-64 Haswell ISA. We evaluate the learned semantics against manually written semantics (where available) and find that they are formally equivalent with the exception of 50 instructions, where the manually written semantics contain an error. We further find the learned formulas to be largely as precise as manually written ones and of similar size.
Stefan Heule, Eric Schkufza, Rahul Sharma 0001, Alex Aiken
PLDI1
2015 The Most Dangerous Code in the Browser
Stefan Heule, Devon Rifkin, Alejandro Russo, Deian Stefan
HotOS1
2015 Mimic: computing models for opaque code
abstract
Opaque code, which is executable but whose source is unavailable or hard to process, can be problematic in a number of scenarios, such as program analysis. Manual construction of models is often used to handle opaque code, but this process is tedious and error-prone. (In this paper, we use model to mean a representation of a piece of code suitable for program analysis.) We present a novel technique for automatic generation of models for opaque code, based on program synthesis. The technique intercepts memory accesses from the opaque code to client objects, and uses this information to construct partial execution traces. Then, it performs a heuristic search inspired by Markov Chain Monte Carlo techniques to discover an executable code model whose behavior matches the opaque code. Native execution, parallelization, and a carefully-designed fitness function are leveraged to increase the effectiveness of the search. We have implemented our technique in a tool Mimic for discovering models of opaque JavaScript functions, and used Mimic to synthesize correct models for a variety of array-manipulating routines.
Stefan Heule, Manu Sridharan, Satish Chandra 0001
ESEC/SIGSOFT FSE1
2013 Verification Condition Generation for Permission Logics with Abstract Predicates and Abstraction Functions
Stefan Heule, Ioannis T. Kassios, Peter Müller 0001, Alexander J. Summers
ECOOP1
2013 HyperLogLog in practice: algorithmic engineering of a state of the art cardinality estimation algorithm
abstract
Cardinality estimation has a wide range of applications and is of particular importance in database systems. Various algorithms have been proposed in the past, and the HyperLogLog algorithm is one of them. In this paper, we present a series of improvements to this algorithm that reduce its memory requirements and significantly increase its accuracy for an important range of cardinalities. We have implemented our proposed algorithm for a system at Google and evaluated it empirically, comparing it to the original HyperLogLog algorithm. Like HyperLogLog, our improved algorithm parallelizes perfectly and computes the cardinality estimate in a single pass.
Stefan Heule, Marc Nunkesser, Alexander Hall
EDBT1
2013 Abstract Read Permissions: Fractional Permissions without the Fractions
Stefan Heule, K. Rustan M. Leino, Peter Müller 0001, Alexander J. Summers
VMCAI1
2011 Fractional permissions without the fractions
abstract
Fractional permissions are a popular approach to reasoning about programs that use shared-memory concurrency. Abstractly, they provide a way of managing that either multiple readers or one writer thread can access a resource concurrently. Concretely, specification using fractional permissions typically requires the user to pick concrete mathematical values for partial permissions, making specifications overly verbose, tedious to write, and harder to adapt and re-use.
Stefan Heule, K. Rustan M. Leino, Peter Müller 0001, Alexander J. Summers
FTfJP@ECOOP1