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

Hemant Gouni

dblp:323/3874 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
3since 2021 · last 2026
0009-0009-3888-8440ORCID · corroborated

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

Software engineering, systems software and programming languages · 3 · 2 first-author · 3 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.

Software engineering, system software, and programming languages
3 papers
Programming languages and type systems · 82% Program verification · 18%
Network and information security
2 papers
Systems and software security · 61% Privacy and data protection · 39%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
type systems
1.922026
Security Reasoning via Substructural Dependency Tracking · Proc. ACM Program. Lang. 2026
Structural Information Flow: A Fresh Look at Types for Non-interference · Proc. ACM Program. Lang. 2025
Systems and software security
information flow control
1.322026
Security Reasoning via Substructural Dependency Tracking · Proc. ACM Program. Lang. 2026
Structural Information Flow: A Fresh Look at Types for Non-interference · Proc. ACM Program. Lang. 2025
Privacy and data protection › information leakage
information leakage quantification
1.012026
Security Reasoning via Substructural Dependency Tracking · Proc. ACM Program. Lang. 2026
Programming languages and type systems › type systems
substructural type systems
1.012026
Security Reasoning via Substructural Dependency Tracking · Proc. ACM Program. Lang. 2026
Programming languages and type systems › type systems › security type systems
information-flow type systems
0.912025
Structural Information Flow: A Fresh Look at Types for Non-interference · Proc. ACM Program. Lang. 2025
Programming languages and type systems › information flow control
noninterference
0.912025
Structural Information Flow: A Fresh Look at Types for Non-interference · Proc. ACM Program. Lang. 2025
Systems and software security › operating system security
sandboxing
0.312026
Security Reasoning via Substructural Dependency Tracking · Proc. ACM Program. Lang. 2026
Program verification › program logic
separation logic
0.212024
Gradual C0: Symbolic Execution for Gradual Verification · ACM Trans. Program. Lang. Syst. 2024

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

kripke semantics · 2.0logical relations · 1.9logical relation · 1.9modal logic · 1.7symbolic execution · 0.8separation logic · 0.8
YearPublicationVenuePosition
2026 Security Reasoning via Substructural Dependency Tracking
abstract
Substructural type systems provide the ability to speak about resources . By enforcing usage restrictions on inputs to computations they allow programmers to reify limited system units–such as memory–in types. We demonstrate a new form of resource reasoning founded on constraining outputs and explore its utility for practical programming. In particular, we identify a number of disparate programming features explored largely in the security literature as various fragments of our unified framework. These encompass capabilities, quantitative information leakage, sandboxing in the style of the Linux seccomp interface, authorization protocols, and more. We furthermore explore its connection to conventional input-based resource reasoning, casting it as an internal treatment of the constructive Kripke semantics of substructural logics. We verify the capability, quantity, and protocol safety of our system through a single logical relations argument. In doing so, we take the first steps towards obtaining the ultimate multitool for security reasoning.
Hemant Gouni, Frank Pfenning, Jonathan Aldrich
Proc. ACM Program. Lang.1
2025 Structural Information Flow: A Fresh Look at Types for Non-interference
abstract
Information flow control is a long-studied approach for establishing non-interference properties of programs. For instance, it can be used to prove that a secret does not interfere with some computation, thereby establishing that the former does not leak through the latter. Despite their potential as a holy grail for security reasoning and their maturity within the literature, information flow type systems have seen limited adoption. In practice, information flow specifications tend to be excessively complex and can easily spiral out of control even for simple programs. Additionally, while non-interference is well-behaved in an idealized setting where information leakage never occurs, most practical programs must violate non-interference in order to fulfill their purpose. Useful information flow type systems in prior work must therefore contend with a definition of non-interference extended with declassification, which often offers weaker modular reasoning properties. We introduce structural information flow, which both illuminates and addresses these issues from a logical viewpoint. In particular, we draw on established insights from the modal logic literature to argue that information flow reasoning arises from hybrid logic, rather than conventional modal logic as previously imagined. We show with a range of examples that structural information flow specifications are straightforward to write and easy to visually parse. Uniquely in the structural setting, we demonstrate that declassification emerges not as an aberration to non-interference, but as a natural and unavoidable consequence of sufficiently general machinery for information flow. This flavor of declassification features excellent local reasoning and enables our approach to account for real-world information flow needs without compromising its theoretical elegance. Finally, we establish non-interference via a logical relations approach, showing off its simplicity in the face of the expressive power captured.
Hemant Gouni, Frank Pfenning, Jonathan Aldrich
Proc. ACM Program. Lang.1
2024 Gradual C0: Symbolic Execution for Gradual Verification
abstract
Current static verification techniques such as separation logic support a wide range of programs. However, such techniques only support complete and detailed specifications, which places an undue burden on users. To solve this problem, prior work proposed gradual verification, which handles complete, partial, or missing specifications by soundly combining static and dynamic checking. Gradual verification has also been extended to programs that manipulate recursive, mutable data structures on the heap. Unfortunately, this extension does not reward users with decreased dynamic checking as more specifications are written and more static guarantees are made. In fact, all properties are checked dynamically regardless of any static guarantees. Additionally, no full-fledged implementation of gradual verification exists so far, which prevents studying its performance and applicability in practice. We present Gradual C0, the first practicable gradual verifier for recursive heap data structures, which targets C0, a safe subset of C designed for education. Static verifiers supporting separation logic or implicit dynamic frames use symbolic execution for reasoning; so Gradual C0, which extends one such verifier, adopts symbolic execution at its core instead of the weakest liberal precondition approach used in prior work. Our approach addresses technical challenges related to symbolic execution with imprecise specifications, heap ownership, and branching in both program statements and specification formulas. We also deal with challenges related to minimizing insertion of dynamic checks and extensibility to other programming languages beyond C0. Finally, we provide the first empirical performance evaluation of a gradual verifier, and found that on average, Gradual C0 decreases run-time overhead between 7.1 and 40.2% compared to the fully dynamic approach used in prior work (for context, the worst cases for the approach by Wise et al. [ 2020 ] range from 0.1 to 4.5 seconds depending on the benchmark). Further, the worst-case scenarios for performance are predictable and avoidable. This work paves the way towards evaluating gradual verification at scale.
Jenna DiVincenzo, Ian McCormack, Conrad Zimmerman, Hemant Gouni, Jacob Gorenburg, Jan-Paul Ramos-Dávila, Mona Zhang, Joshua Sunshine, Éric Tanter, Jonathan Aldrich
ACM Trans. Program. Lang. Syst.4