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

Dhruv C. Makwana

dblp:244/4639 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
3since 2021 · last 2026
0000-0001-7220-4991ORCID · corroborated

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

Software engineering, systems software and programming languages · 4 · 1 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
2 papers
Program verification · 94% Programming languages and type systems · 6%

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

TopicWeightPapersLastEvidence papers
Program verification › program logic
separation logic
1.522025
Fulminate: Testing CN Separation-Logic Specifications in C · Proc. ACM Program. Lang. 2025
CN: Verifying Systems C Code with Separation-Logic Refinement Types · Proc. ACM Program. Lang. 2023
Program verification › dynamic verification
runtime verification
0.912025
Fulminate: Testing CN Separation-Logic Specifications in C · Proc. ACM Program. Lang. 2025
Program verification › theorem proving
interactive proof
0.712023
CN: Verifying Systems C Code with Separation-Logic Refinement Types · Proc. ACM Program. Lang. 2023
Program verification › proof assistants
proof automation
0.712023
CN: Verifying Systems C Code with Separation-Logic Refinement Types · Proc. ACM Program. Lang. 2023
Programming languages and type systems
type systems
0.312025
Fulminate: Testing CN Separation-Logic Specifications in C · Proc. ACM Program. Lang. 2025
Program verification › system verification › systems code verification
hypervisor verification
0.212023
CN: Verifying Systems C Code with Separation-Logic Refinement Types · Proc. ACM Program. Lang. 2023

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

separation logic · 1.5runtime ownership testing · 0.9ghost state · 0.9refinement types · 0.7ghost variable inference · 0.7
YearPublicationVenuePosition
2026 Code-Specify-Test-Debug-Prove: Flexibly Integrating Separation Logic Specification into Conventional Workflows
abstract
We seek to enable more flexible use of rich specifications in a variety of ways that smoothly extend conventional software development practice. We show how a single specification language, based on separation logic to capture the subtle ownership disciplines of systems code, can be used for runtime assertion checking, for property-based testing, and for formal machine-checked proof—and how each of these complements and supports the others. We demonstrate all this on a challenging example: a component of a production hypervisor, running both stand-alone at user level and in situ in the hypervisor.
Zain K. Aamer, Rini Banerjee, Hiroyuki Katsura, David Kaloper-Mersinjak, Dimitrios J. Economou, Kayvan Memarian, Dhruv C. Makwana, Neelakantan R. Krishnaswami, Benjamin C. Pierce, Christopher Pulte, Peter Sewell
Proc. ACM Program. Lang.7
2025 Fulminate: Testing CN Separation-Logic Specifications in C
abstract
Separation logic has become an important tool for formally capturing and reasoning about the ownership patterns of imperative programs, originally for paper proof, and now the foundation for industrial static analyses and multiple proof tools. However, there has been very little work on program testing of separationlogic specifications in concrete execution. At first sight, separation-logic formulas are hard to evaluate in reasonable time, with their implicit quantification over heap splittings, and other explicit existentials. In this paper we observe that a restricted fragment of separation logic, adopted in the CN proof tool to enable predictable proof automation, also has a natural and readable computational interpretation, that makes it practically usable in runtime testing. We discuss various design issues and develop this as a C + CN source to C source translation, Fulminate. This adds checks – including ownership checks and ownership transfer – for C code annotated with CN pre- and post-conditions; we demonstrate this on nontrivial examples, including the allocator from a production hypervisor. We formalise our runtime ownership testing scheme, showing (and proving) how its reified ghost state correctly captures ownership passing, in a semantics for a small C-like language.
Rini Banerjee, Kayvan Memarian, Dhruv C. Makwana, Christopher Pulte, Neelakantan R. Krishnaswami, Peter Sewell
Proc. ACM Program. Lang.3
2023 CN: Verifying Systems C Code with Separation-Logic Refinement Types
abstract
Despite significant progress in the verification of hypervisors, operating systems, and compilers, and in verification tooling, there exists a wide gap between the approaches used in verification projects and conventional development of systems software. We see two main challenges in bringing these closer together: verification handling the complexity of code and semantics of conventional systems software, and verification usability. We describe an experiment in verification tool design aimed at addressing some aspects of both: we design and implement CN, a separation-logic refinement type system for C systems software, aimed at predictable proof automation, based on a realistic semantics of ISO C. CN reduces refinement typing to decidable propositional logic reasoning, uses first-class resources to support pointer aliasing and pointer arithmetic, features resource inference for iterated separating conjunction, and uses a novel syntactic restriction of ghost variables in specifications to guarantee their successful inference. We implement CN and formalise key aspects of the type system, including a soundness proof of type checking. To demonstrate the usability of CN we use it to verify a substantial component of Google's pKVM hypervisor for Android.
Christopher Pulte, Dhruv C. Makwana, Thomas Sewell, Kayvan Memarian, Peter Sewell, Neelakantan R. Krishnaswami
Proc. ACM Program. Lang.2
2019 NumLin: Linear Types for Linear Algebra
abstract
We present NumLin, a functional programming language whose type system is designed to enforce the safe usage of the APIs of low-level linear algebra libraries (such as BLAS/LAPACK). We do so through a brief description of its key features and several illustrative examples. We show that NumLin’s type system is sound and that its implementation improves upon naïve implementations of linear algebra programs, almost towards C-levels of performance. By doing so, we demonstrate (a) that linear types are well-suited to expressing the APIs of low-level linear algebra libraries accurately and concisely and (b) that, despite the complexity of prior work on it, fractional permissions can actually be implemented using simple, well-known techniques and be used practically in real programs.
Dhruv C. Makwana, Neelakantan R. Krishnaswami
ECOOP1