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

Anish Tondwalkar

dblp:209/9952 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 2 · 1 first-author · 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
Program verification · 50% Programming languages and type systems · 50%
Theoretical computer science
1 paper
Automated reasoning and model checking · 100%

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

TopicWeightPapersLastEvidence papers
Program verification
deductive verification
0.312018
Refinement reflection: complete verification with SMT · Proc. ACM Program. Lang. 2018
Programming languages and type systems › type systems › refinement types
liquid types
0.312018
Refinement reflection: complete verification with SMT · Proc. ACM Program. Lang. 2018
Programming languages and type systems › type systems
refinement types
0.312018
Refinement reflection: complete verification with SMT · Proc. ACM Program. Lang. 2018
Program verification
SMT-based verification
0.312018
Refinement reflection: complete verification with SMT · Proc. ACM Program. Lang. 2018
Automated reasoning and model checking › theorem proving
proof search
0.312018
Refinement reflection: complete verification with SMT · Proc. ACM Program. Lang. 2018

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

model checking · 0.7equational reasoning · 0.7abstract interpretation · 0.7SMT solving · 0.7
YearPublicationVenuePosition
2021 Refinements of Futures Past: Higher-Order Specification with Implicit Refinement Types
abstract
Refinement types decorate types with assertions that enable automatic verification. Like assertions, refinements are limited to binders that are in scope, and hence, cannot express higher-order specifications. Ghost variables circumvent this limitation but are prohibitively tedious to use as the programmer must divine and explicate their values at all call-sites. We introduce Implicit Refinement Types which turn ghost variables into implicit pair and function types, in a way that lets the refinement typechecker automatically synthesize their values at compile time. Implicit Refinement Types further take advantage of refinement type information, allowing them to be used as a lightweight verification tool, rather than merely as a technique to automate programming tasks. We evaluate the utility of Implicit Refinement Types by showing how they enable the modular specification and automatic verification of various higher-order examples including stateful protocols, access control, and resource usage.
Anish Tondwalkar, Matthew Kolosick, Ranjit Jhala
ECOOP1
2018 Refinement reflection: complete verification with SMT
abstract
We introduce Refinement Reflection , a new framework for building SMT-based deductive verifiers. The key idea is to reflect the code implementing a user-defined function into the function’s (output) refinement type. As a consequence, at uses of the function, the function definition is instantiated in the SMT logic in a precise fashion that permits decidable verification. Reflection allows the user to write equational proofs of programs just by writing other programs using pattern-matching and recursion to perform case-splitting and induction. Thus, via the propositions-as-types principle, we show that reflection permits the specification of arbitrary functional correctness properties. Finally, we introduce a proof-search algorithm called Proof by Logical Evaluation that uses techniques from model checking and abstract interpretation, to completely automate equational reasoning. We have implemented reflection in Liquid Haskell and used it to verify that the widely used instances of the Monoid, Applicative, Functor, and Monad typeclasses actually satisfy key algebraic laws required to make the clients safe, and have used reflection to build the first library that actually verifies assumptions about associativity and ordering that are crucial for safe deterministic parallelism.
Niki Vazou, Anish Tondwalkar, Vikraman Choudhury, Ryan G. Scott, Ryan Newton, Philip Wadler, Ranjit Jhala
Proc. ACM Program. Lang.2