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

William T. Hallahan

dblp:208/7435 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
4since 2021 · last 2025
0000-0003-4925-3861ORCID · verified

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

Software engineering, systems software and programming languages · 5 · 3 first-author · 3 since 2021Computer networks · 2 · 1 since 2021Theory of computation · 2 · 2 first-authorArtificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 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
5 papers
Program verification · 47% Program synthesis and code generation · 23% Program analysis · 16%
Computer networks
2 papers
Software-defined and programmable networks · 82% Network management and operations · 18%

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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation › inductive program synthesis
counterexample-guided inductive synthesis
0.912025
Counterexample-Guided Inference of Modular Specifications · Proc. ACM Program. Lang. 2025
Requirements engineering and software design › specification
modular specification
0.912025
Counterexample-Guided Inference of Modular Specifications · Proc. ACM Program. Lang. 2025
Program verification
modular verification
0.912025
Counterexample-Guided Inference of Modular Specifications · Proc. ACM Program. Lang. 2025
Program analysis
specification mining
0.912025
Counterexample-Guided Inference of Modular Specifications · Proc. ACM Program. Lang. 2025
Program verification › formal proof
coinductive proof
0.612022
Checking equivalence in a non-strict language · Proc. ACM Program. Lang. 2022
Program verification › model checking
counterexample generation
0.612022
Checking equivalence in a non-strict language · Proc. ACM Program. Lang. 2022
Program verification › equivalence checking
program equivalence checking
0.612022
Checking equivalence in a non-strict language · Proc. ACM Program. Lang. 2022
Program synthesis and code generation
programming by example
0.412020
Grammar Filtering for Syntax-Guided Synthesis · AAAI 2020
Program synthesis and code generation
syntax-guided synthesis
0.412020
Grammar Filtering for Syntax-Guided Synthesis · AAAI 2020
Program verification › type-based verification
refinement type verification
0.412019
Lazy counterfactual symbolic execution · PLDI 2019
Program analysis
symbolic execution
0.412019
Lazy counterfactual symbolic execution · PLDI 2019
Software-defined and programmable networks › programmable data plane
p4 program verification
0.312018
p4v: practical verification for programmable data planes · SIGCOMM 2018
Software-defined and programmable networks
programmable data plane
0.312018
p4v: practical verification for programmable data planes · SIGCOMM 2018
Programming languages and type systems
functional language
0.212022
Checking equivalence in a non-strict language · Proc. ACM Program. Lang. 2022
Network management and operations
network configuration
0.112021
Avenir: Managing Data Plane Diversity with Control Plane Synthesis · NSDI 2021

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

symbolic execution · 1.0size-bounded synthesis · 0.9counterexample-guided inference · 0.9constraint-guided synthesis · 0.9domain-specific optimization · 0.7coinduction · 0.6neural network · 0.4automated reasoning · 0.4SMT solver · 0.4refinement types · 0.4formal verification · 0.3
YearPublicationVenuePosition
2025 Checking equivalence in a non-strict language
abstract
Abstract Program equivalence checking is the task of confirming that two programs have the same behavior on corresponding inputs. We develop a calculus based on symbolic execution and coinduction to check the equivalence of programs in a non-strict functional language. Additionally, we show that our calculus can be used to derive counterexamples for pairs of inequivalent programs, including counterexamples that arise from non-termination. We describe a fully automated approach for finding both equivalence proofs and counterexamples. Our implementation, nebula , proves equivalences of programs written in Haskell. We demonstrate nebula ’s practical effectiveness at both proving equivalence and producing counterexamples automatically by applying nebula to existing benchmark properties.
John C. Kolesar, Ruzica Piskac, William T. Hallahan
J. Funct. Program.3
2025 Counterexample-Guided Inference of Modular Specifications
abstract
Modular verification tools allow programmers to compositionally specify and prove function specifications. When using a modular verifier, proving a specification about a function f requires additional specifications for the functions called by f . With existing state of the art tools, programmers must manually write the specifications for callee functions. We present a counterexample guided algorithm to automatically infer these specifications. The algorithm is parameterized over a verifier, counterexample generator, and constraint guided synthesizer. We show that if each of these three components is sound and complete over a finite set of possible specifications, our algorithm is sound and complete as well. Additionally, we introduce size-bounded synthesis functions, which extends our completeness result to an infinite set of possible specifications. In particular, we describe a size-bounded synthesis function for linear integer arithmetic constraints. We conclude with an evaluation demonstrating our technique on a variety of benchmarks.
William T. Hallahan, Ranjit Jhala, Ruzica Piskac
Proc. ACM Program. Lang.1
2022 Checking equivalence in a non-strict language
abstract
Program equivalence checking is the task of confirming that two programs have the same behavior on corresponding inputs. We develop a calculus based on symbolic execution and coinduction to check the equivalence of programs in a non-strict functional language. Additionally, we show that our calculus can be used to derive counterexamples for pairs of inequivalent programs, including counterexamples that arise from non-termination. We describe a fully automated approach for finding both equivalence proofs and counterexamples. Our implementation, Nebula, proves equivalences of programs written in Haskell. We demonstrate Nebula's practical effectiveness at both proving equivalence and producing counterexamples automatically by applying Nebula to existing benchmark properties.
John C. Kolesar, Ruzica Piskac, William T. Hallahan
Proc. ACM Program. Lang.3
2021 Avenir: Managing Data Plane Diversity with Control Plane Synthesis
Eric Hayden Campbell, William T. Hallahan, Priya Srikumar, Carmelo Cascone, Jed Liu, Vignesh Ramamurthy, Hossein Hojjat, Ruzica Piskac, Robert Soulé, Nate Foster
NSDI2
2020 Grammar Filtering for Syntax-Guided Synthesis
abstract
Programming-by-example (PBE) is a synthesis paradigm that allows users to generate functions by simply providing input-output examples. While a promising interaction paradigm, synthesis is still too slow for realtime interaction and more widespread adoption. Existing approaches to PBE synthesis have used automated reasoning tools, such as SMT solvers, as well as works applying machine learning techniques. At its core, the automated reasoning approach relies on highly domain specific knowledge of programming languages. On the other hand, the machine learning approaches utilize the fact that when working with program code, it is possible to generate arbitrarily large training datasets. In this work, we propose a system for using machine learning in tandem with automated reasoning techniques to solve Syntax Guided Synthesis (SyGuS) style PBE problems. By preprocessing SyGuS PBE problems with a neural network, we can use a data driven approach to reduce the size of the search space, then allow automated reasoning-based solvers to more quickly find a solution analytically. Our system is able to run atop existing SyGuS PBE synthesis tools, decreasing the runtime of the winner of the 2019 SyGuS Competition for the PBE Strings track by 47.65% to outperform all of the competing tools.
Kairo Morton, William T. Hallahan, Elven Shum, Ruzica Piskac, Mark Santolucito
AAAI2
2020 Automated repair by example for firewalls
William T. Hallahan, Ennan Zhai, Ruzica Piskac
Formal Methods Syst. Des.1
2019 Lazy counterfactual symbolic execution
abstract
We present counterfactual symbolic execution, a new approach that produces counterexamples that localize the causes of failure of static verification. First, we develop a notion of symbolic weak head normal form and use it to define lazy symbolic execution reduction rules for non-strict languages like Haskell. Second, we introduce counterfactual branching, a new method to identify places where verification fails due to imprecise specifications (as opposed to incorrect code). Third, we show how to use counterfactual symbolic execution to localize refinement type errors, by translating refinement types into assertions. We implement our approach in a new Haskell symbolic execution engine, G2, and evaluate it on a corpus of 7550 errors gathered from users of the LiquidHaskell refinement type system. We show that for 97.7% of these errors, G2 is able to quickly find counterexamples that show how the code or specifications must be fixed to enable verification.
William T. Hallahan, Anton Xue, Maxwell Troy Bland, Ranjit Jhala, Ruzica Piskac
PLDI1
2018 p4v: practical verification for programmable data planes
abstract
We present the design and implementation of p4v, a practical tool for verifying data planes described using the P4 programming language. The design of p4v is based on classic verification techniques but adds several key innovations including a novel mechanism for incorporating assumptions about the control plane and domain-specific optimizations which are needed to scale to large programs. We present case studies showing that p4v verifies important properties and finds bugs in real-world programs. We conduct experiments to quantify the scalability of p4v on a wide range of additional examples. We show that with just a few hundred lines of control-plane annotations, p4v is able to verify critical safety properties for switch.p4, a program that implements the functionality of on a modern data center switch, in under three minutes.
Jed Liu, William T. Hallahan, Cole Schlesinger, Milad Sharif, Jeongkeun Lee, Robert Soulé, Han Wang 0009, Calin Cascaval, Nick McKeown, Nate Foster
SIGCOMM2
2017 Automated repair by example for firewalls
abstract
Firewalls are widely deployed to manage enterprise networks. Because enterprise-scale firewalls contain hundreds or thousands of rules, ensuring the correctness of firewalls - that the rules in the firewalls meet the specifications of their administrators - is an important but challenging problem. Although existing firewall diagnosis and verification techniques can identify potentially faulty rules, they offer administrators little or no help with automatically fixing faulty rules. This paper presents FireMason, the first effort that offers automated repair by example for firewalls. Once an administrator observes undesired behavior in a firewall, she may provide input/output examples that comply with the intended behaviors. Based on the examples, FireMason automatically synthesizes new firewall rules for the existing firewall. This new firewall correctly handles packets specified by the examples, while maintaining the rest of the behaviors of the original firewall. Through a conversion of the firewalls to SMT formulas, we offer formal guarantees that the change is correct. Our evaluation results from real-world case studies show that FireMason can efficiently find repairs.
William T. Hallahan, Ennan Zhai, Ruzica Piskac
FMCAD1