Cultural advice

The Australian National University acknowledges, celebrates and pays our respects to the Ngunnawal and Ngambri people of the Canberra region and to all First Nations Australians on whose traditional lands we meet and work, and whose cultures are among the oldest continuing cultures in human history.

Aboriginal and Torres Strait Islander peoples are advised that ANU Library collections may include images, names, voices, and other representations of deceased persons.

Material in the collection may contain terms, language or views that reflect the period in which the item was created and may be considered inappropriate today.

Refactoring and Equivalence in Rust: Expanding the REM Toolchain with a Novel Approach to Automated Equivalence Proofs

dc.contributor.authorBritton, Matthewen
dc.contributor.authorPak, Sashaen
dc.contributor.authorPotanin, Alexen
dc.date.accessioned2026-03-26T14:41:44Z
dc.date.available2026-03-26T14:41:44Z
dc.date.issued2026-01-27en
dc.description.abstractRefactoring tools are central to modern development, with extract-function refactorings used heavily in day-to-day work. For Rust, however, ownership, borrowing, and advanced type features make automated extract-function refactoring challenging. Existing tools either rely on slow compiler-based analysis, support only restricted language fragments, or provide little assurance beyond "it still compiles." This paper presents REM2.0, a new extract-function and verification toolchain for Rust. REM2.0 works atop rust-analyzer as a persistent daemon, providing low-latency refactorings with a VSCode front-end. It adds a repairer that automatically adjusts lifetimes and signatures when extraction exposes borrow-checker issues, and an optional verification pipeline connecting to CHARON and AENEAS to generate Coq equivalence proofs for a supported Rust subset. The architecture is evaluated on three benchmark suites. On the original REM artefact, REM2.0 achieves 100% compatibility while reducing latency from ~1000ms to single-digit milliseconds in the daemon. On 40 feature-focused extractions from 20 highly starred GitHub repositories, REM2.0 handles most examples involving async/await, const fn, non-local control flow, generics, and higher-ranked trait bounds. On twenty verification benchmarks, the CHARON/AENEAS pipeline constructs end-to-end equivalence proofs for cases within its current subset. Overall, results show that a rust-analyzer-based design can provide fast, feature-rich extract-function refactoring for real Rust programs, while opt-in verification delivers machine-checked behaviour preservation.en
dc.format.extent71en
dc.identifier.issn2331-8422en
dc.identifier.otherdblp:journals/corr/abs-2601-19207en
dc.identifier.otherORCID:/0000-0002-4242-2725/work/209469313en
dc.identifier.urihttps://hdl.handle.net/1885/733807899
dc.language.isoenen
dc.publisherarXiven
dc.relation.ispartofseriesCoRRen
dc.rightsDBLP License: DBLP's bibliographic metadata records provided through http://dblp.org/ are distributed under a Creative Commons CC0 1.0 Universal Public Domain Dedication. Although the bibliographic metadata records are provided consistent with CC0 1.0 Dedication, the content described by the metadata records is not. Content may be subject to copyright, rights of privacy, rights of publicity and other restrictions.en
dc.titleRefactoring and Equivalence in Rust: Expanding the REM Toolchain with a Novel Approach to Automated Equivalence Proofsen
dc.typeManuscripten
dspace.entity.typePublicationen
local.contributor.affiliationBritton, Matthew; Australian National Universityen
local.contributor.affiliationPak, Sasha; Australian National Universityen
local.contributor.affiliationPotanin, Alex; School of Computing, ANU College of Systems and Society, The Australian National Universityen
local.identifier.doi10.48550/arXiv.2601.19207en
local.identifier.pure1845e780-70d4-4324-a515-5c3565d42d79en
local.type.statusPublisheden

Downloads