Niroop Krishnakumar

dblp:396/5336 · DBLP profile ↗
← Back
1ranked-venue papers
0as first author
1since 2021 · last 2025
0009-0001-8638-6201ORCID · reported

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

Software engineering, systems software and programming languages · 1 · 1 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
1 paper
Programming languages and type systems · 70% Requirements engineering and software design · 30%
Network and information security
1 paper
Authentication and access control · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › program specification
higher-order contracts
0.912025
Generic Refinement Types · Proc. ACM Program. Lang. 2025
Requirements engineering and software design › specification
modular specification
0.912025
Generic Refinement Types · Proc. ACM Program. Lang. 2025
Programming languages and type systems › type systems
refinement types
0.912025
Generic Refinement Types · Proc. ACM Program. Lang. 2025
Programming languages and type systems
rust
0.312025
Generic Refinement Types · Proc. ACM Program. Lang. 2025

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

syntactic unification · 1.7ghost parameters · 1.7constraint solving · 1.7SMT-decidable verification · 1.7
YearPublicationVenuePosition
2025 Generic Refinement Types
abstract
We present Generic Refinement Types : a way to write modular higher-order specifications that abstract invariants over function contracts, while preserving automatic SMT-decidable verification. We show how generic refinements let us write a variety of modular higher-order specifications, including specifications for Rust’s traits which abstract over the concrete refinements that hold for different trait implementations. We formalize generic refinements in a core calculus and show how to synthesize the generic instantiations algorithmically at usage sites via a combination of syntactic unification and constraint solving. We give semantics to generic refinements via the intuition that they correspond to ghost parameters , and we formalize this intuition via a type-preserving translation into the polymorphic contract calculus to establish the soundness of generic refinements. Finally, we evaluate generic refinements by implementing them in F luk and using it for two case studies. First, we show how generic refinements let us write modular specifications for Rust’s vector indexing API that lets us statically verify the bounds safety of a variety of vector-manipulating benchmarks from the literature. Second, we use generic refinements to refine Rust’s diesel ORM library to track the semantics of the database queries issued by client applications, and hence, statically enforce data-dependent access-control policies in several database-backed web applications.
Nico Lehmann, Cole Kurashige, Nikhil Akiti, Niroop Krishnakumar, Ranjit Jhala
Proc. ACM Program. Lang.4