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

Isitha Subasinghe

dblp:342/2839 · DBLP profile ↗
← Back
1ranked-venue papers
0as first author
1since 2021 · last 2023
0009-0001-2401-1682ORCID · 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
Program verification · 56% Programming languages and type systems · 44%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems › substructural type systems
linear types
0.712023
Verus: Verifying Rust Programs using Linear Ghost Types · Proc. ACM Program. Lang. 2023
Program verification › code-level verification
rust verification
0.712023
Verus: Verifying Rust Programs using Linear Ghost Types · Proc. ACM Program. Lang. 2023
Program verification
SMT-based verification
0.212023
Verus: Verifying Rust Programs using Linear Ghost Types · Proc. ACM Program. Lang. 2023

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

lambda calculus · 0.7SMT solving · 0.7
YearPublicationVenuePosition
2023 Verus: Verifying Rust Programs using Linear Ghost Types
abstract
The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems. For such systems, formal verification can be useful to prove functional correctness properties beyond type safety. This paper presents Verus, an SMT-based tool for formally verifying Rust programs. With Verus, programmers express proofs and specifications using the Rust language, allowing proofs to take advantage of Rust's linear types and borrow checking. We show how this allows proofs to manipulate linearly typed permissions that let Rust code safely manipulate memory, pointers, and concurrent resources. Verus organizes proofs and specifications using a novel mode system that distinguishes specifications, which are not checked for linearity and borrowing, from executable code and proofs, which are checked for linearity and borrowing. We formalize Verus' linearity, borrowing, and modes in a small lambda calculus, for which we prove type safety and termination of specifications and proofs. We demonstrate Verus on a series of examples, including pointer-manipulating code (an xor-based doubly linked list), code with interior mutability, and concurrent code.
Andrea Lattuada 0001, Travis Hance, Chanhee Cho, Matthias Brun 0002, Isitha Subasinghe, Yi Zhou 0025, Jon Howell, Bryan Parno, Chris Hawblitzel
Proc. ACM Program. Lang.5