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

Siddharth Krishna 0001

dblp:134/9987-1 · DBLP profile ↗
← Back
7ranked-venue papers
5as first author
1since 2021 · last 2021
0009-0006-0785-4609ORCID · verified

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

Software engineering, systems software and programming languages · 6 · 4 first-author · 1 since 2021Theory of computation · 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.

Software engineering, system software, and programming languages
3 papers
Program verification · 72% Concurrent programming · 20% Software testing · 3%

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

TopicWeightPapersLastEvidence papers
Program verification › program logic › separation logic
concurrent separation logic
1.332021
Verifying concurrent multicopy search structures · Proc. ACM Program. Lang. 2021
Verifying concurrent search structure templates · PLDI 2020
Go with the flow: compositional abstractions for concurrent data structures · Proc. ACM Program. Lang. 2018
Concurrent programming
concurrent data structures
0.822021
Verifying concurrent multicopy search structures · Proc. ACM Program. Lang. 2021
Go with the flow: compositional abstractions for concurrent data structures · Proc. ACM Program. Lang. 2018
Program verification › concurrent program verification
linearizability verification
0.822021
Verifying concurrent multicopy search structures · Proc. ACM Program. Lang. 2021
Go with the flow: compositional abstractions for concurrent data structures · Proc. ACM Program. Lang. 2018
Program verification › concurrent program verification
concurrent data structure verification
0.412020
Verifying concurrent search structure templates · PLDI 2020
Software testing › configuration testing
configuration space sampling
0.112020
Verifying concurrent search structure templates · PLDI 2020
Program analysis › heap analysis
heap abstraction
0.112018
Go with the flow: compositional abstractions for concurrent data structures · Proc. ACM Program. Lang. 2018
Programming languages and type systems › language-based security
memory safety
0.112018
Go with the flow: compositional abstractions for concurrent data structures · Proc. ACM Program. Lang. 2018

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

iris · 0.9concurrent separation logic · 0.9template algorithms · 0.5flow framework · 0.4separation logic · 0.3flow interface · 0.3RGSep · 0.3
YearPublicationVenuePosition
2021 Verifying concurrent multicopy search structures
abstract
Multicopy search structures such as log-structured merge (LSM) trees are optimized for high insert/update/delete (collectively known as upsert) performance. In such data structures, an upsert on key k , which adds ( k , v ) where v can be a value or a tombstone, is added to the root node even if k is already present in other nodes. Thus there may be multiple copies of k in the search structure. A search on k aims to return the value associated with the most recent upsert. We present a general framework for verifying linearizability of concurrent multicopy search structures that abstracts from the underlying representation of the data structure in memory, enabling proof-reuse across diverse implementations. Based on our framework, we propose template algorithms for (a) LSM structures forming arbitrary directed acyclic graphs and (b) differential file structures, and formally verify these templates in the concurrent separation logic Iris. We also instantiate the LSM template to obtain the first verified concurrent in-memory LSM tree implementation.
Nisarg Patel, Siddharth Krishna 0001, Dennis E. Shasha, Thomas Wies
Proc. ACM Program. Lang.2
2020 Verifying Visibility-Based Weak Consistency
abstract
Abstract Multithreaded programs generally leverage efficient and thread-safe concurrent objects like sets, key-value maps, and queues. While some concurrent-object operations are designed to behave atomically, each witnessing the atomic effects of predecessors in a linearization order, others forego such strong consistency to avoid complex control and synchronization bottlenecks. For example, contains (value) methods of key-value maps may iterate through key-value entries without blocking concurrent updates, to avoid unwanted performance bottlenecks, and consequently overlook the effects of some linearization-order predecessors. While such weakly-consistent operations may not be atomic, they still offer guarantees, e.g., only observing values that have been present. In this work we develop a methodology for proving that concurrent object implementations adhere to weak-consistency specifications. In particular, we consider (forward) simulation-based proofs of implementations against relaxed-visibility specifications, which allow designated operations to overlook some of their linearization-order predecessors, i.e., behaving as if they never occurred. Besides annotating implementation code to identify linearization points, i.e., points at which operations’ logical effects occur, we also annotate code to identify visible operations, i.e., operations whose effects are observed; in practice this annotation can be done automatically by tracking the writers to each accessed memory location. We formalize our methodology over a general notion of transition systems, agnostic to any particular programming language or memory model, and demonstrate its application, using automated theorem provers, by verifying models of Java concurrent object implementations.
Siddharth Krishna 0001, Michael Emmi, Constantin Enea, Dejan Jovanovic
ESOP1
2020 Local Reasoning for Global Graph Properties
abstract
Abstract Separation logics are widely used for verifying programs that manipulate complex heap-based data structures. These logics build on so-called separation algebras, which allow expressing properties of heap regions such that modifications to a region do not invalidate properties stated about the remainder of the heap. This concept is key to enabling modular reasoning and also extends to concurrency. While heaps are naturally related to mathematical graphs, many ubiquitous graph properties are non-local in character, such as reachability between nodes, path lengths, acyclicity and other structural invariants, as well as data invariants which combine with these notions. Reasoning modularly about such graph properties remains notoriously difficult, since a local modification can have side-effects on a global property that cannot be easily confined to a small region. In this paper, we address the question: What separation algebra can be used to avoid proof arguments reverting back to tedious global reasoning in such cases? To this end, we consider a general class of global graph properties expressed as fixpoints of algebraic equations over graphs. We present mathematical foundations for reasoning about this class of properties, imposing minimal requirements on the underlying theory that allow us to define a suitable separation algebra. Building on this theory, we develop a general proof technique for modular reasoning about global graph properties expressed over program heaps, in a way which can be directly integrated with existing separation logics. To demonstrate our approach, we present local proofs for two challenging examples: a priority inheritance protocol and the non-blocking concurrent Harris list.
Siddharth Krishna 0001, Alexander J. Summers, Thomas Wies
ESOP1
2020 Verifying concurrent search structure templates
abstract
Concurrent separation logics have had great success reasoning about concurrent data structures. This success stems from their application of modularity on multiple levels, leading to proofs that are decomposed according to program structure, program state, and individual threads. Despite these advances, it remains difficult to achieve proof reuse across different data structure implementations. For the large class of search structures, we demonstrate how one can achieve further proof modularity by decoupling the proof of thread safety from the proof of structural integrity. We base our work on the template algorithms of Shasha and Goodman that dictate how threads interact but abstract from the concrete layout of nodes in memory. Building on the recently proposed flow framework of compositional abstractions and the separation logic Iris, we show how to prove correctness of template algorithms, and how to instantiate them to obtain multiple verified implementations.
Siddharth Krishna 0001, Nisarg Patel, Dennis E. Shasha, Thomas Wies
PLDI1
2018 Go with the flow: compositional abstractions for concurrent data structures
abstract
Concurrent separation logics have helped to significantly simplify correctness proofs for concurrent data structures. However, a recurring problem in such proofs is that data structure abstractions that work well in the sequential setting are much harder to reason about in a concurrent setting due to complex sharing and overlays. To solve this problem, we propose a novel approach to abstracting regions in the heap by encoding the data structure invariant into a local condition on each individual node. This condition may depend on a quantity associated with the node that is computed as a fixpoint over the entire heap graph. We refer to this quantity as a flow . Flows can encode both structural properties of the heap (e.g. the reachable nodes from the root form a tree) as well as data invariants (e.g. sortedness). We then introduce the notion of a flow interface , which expresses the relies and guarantees that a heap region imposes on its context to maintain the local flow invariant with respect to the global heap. Our main technical result is that this notion leads to a new semantic model of separation logic. In this model, flow interfaces provide a general abstraction mechanism for describing complex data structures. This abstraction mechanism admits proof rules that generalize over a wide variety of data structures. To demonstrate the versatility of our approach, we show how to extend the logic RGSep with flow interfaces. We have used this new logic to prove linearizability and memory safety of nontrivial concurrent data structures. In particular, we obtain parametric linearizability proofs for concurrent dictionary algorithms that abstract from the details of the underlying data structure representation. These proofs cannot be easily expressed using the abstraction mechanisms provided by existing separation logics.
Siddharth Krishna 0001, Dennis E. Shasha, Thomas Wies
Proc. ACM Program. Lang.1
2017 Learning Shape Analysis
Marc Brockschmidt, Yuxin Chen 0001, Pushmeet Kohli, Siddharth Krishna 0001, Daniel Tarlow
SAS4
2013 A quadratic construction for Zielonka automata with acyclic communication structure
Siddharth Krishna 0001, Anca Muscholl
Theor. Comput. Sci.1