{"record_type":"pith_number_record","schema_url":"https://pith.science/schemas/pith-number/v1.json","pith_number":"pith:2023:MEZPGLUS2I7D3LICARGEYOLPBT","short_pith_number":"pith:MEZPGLUS","schema_version":"1.0","canonical_sha256":"6132f32e92d23e3dad02044c4c396f0ce9d31cc1f9e851f40ad538494eb51533","source":{"kind":"arxiv","id":"2303.05491","version":2},"attestation_state":"computed","paper":{"title":"Verus: Verifying Rust Programs using Linear Ghost Types (extended version)","license":"http://creativecommons.org/licenses/by-sa/4.0/","headline":"","cross_cats":["cs.PL"],"primary_cat":"cs.LO","authors_text":"Andrea Lattuada (VMware Research), Bryan Parno (Carnegie Mellon University), Chanhee Cho (Carnegie Mellon University), Chris Hawblitzel (Microsoft Research), Isitha Subasinghe (UNSW Sydney), Jon Howell (VMware Research), Matthias Brun (ETH Zurich), Travis Hance (Carnegie Mellon University), Yi Zhou (Carnegie Mellon University)","submitted_at":"2023-03-09T18:44:45Z","abstract_excerpt":"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. W"},"verification_status":{"content_addressed":true,"pith_receipt":true,"author_attested":false,"weak_author_claims":0,"strong_author_claims":0,"externally_anchored":false,"storage_verified":false,"citation_signatures":0,"replication_records":0,"graph_snapshot":true,"references_resolved":false,"formal_links_present":false},"canonical_record":{"source":{"id":"2303.05491","kind":"arxiv","version":2},"metadata":{"license":"http://creativecommons.org/licenses/by-sa/4.0/","primary_cat":"cs.LO","submitted_at":"2023-03-09T18:44:45Z","cross_cats_sorted":["cs.PL"],"title_canon_sha256":"9f19a8d6a8a54c4b1a4d10b31d4c898bc4f035173ed1017d0e76e7339839e09b","abstract_canon_sha256":"f4945da4f9929aa0ff5a51fea4fcda288f661a2bad93e443fa1d37e2cb7d7846"},"schema_version":"1.0"},"receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-07-05T05:50:14.968154Z","signature_b64":"9L4lKpsf2lwG5Bfbb0Ss87WWYEaEoCBvQlFOsZsCbdql5k6A/jtiaj34nPJY1k0xYyl0KjNJFH3ynHnAJdW3Aw==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"6132f32e92d23e3dad02044c4c396f0ce9d31cc1f9e851f40ad538494eb51533","last_reissued_at":"2026-07-05T05:50:14.967735Z","signature_status":"signed_v1","first_computed_at":"2026-07-05T05:50:14.967735Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"graph_snapshot":{"paper":{"title":"Verus: Verifying Rust Programs using Linear Ghost Types (extended version)","license":"http://creativecommons.org/licenses/by-sa/4.0/","headline":"","cross_cats":["cs.PL"],"primary_cat":"cs.LO","authors_text":"Andrea Lattuada (VMware Research), Bryan Parno (Carnegie Mellon University), Chanhee Cho (Carnegie Mellon University), Chris Hawblitzel (Microsoft Research), Isitha Subasinghe (UNSW Sydney), Jon Howell (VMware Research), Matthias Brun (ETH Zurich), Travis Hance (Carnegie Mellon University), Yi Zhou (Carnegie Mellon University)","submitted_at":"2023-03-09T18:44:45Z","abstract_excerpt":"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. W"},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"2303.05491","kind":"arxiv","version":2},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"integrity":{"clean":true,"summary":{"advisory":0,"critical":0,"by_detector":{},"informational":0},"endpoint":"/pith/2303.05491/integrity.json","findings":[],"available":true,"detectors_run":[],"snapshot_sha256":"c28c3603d3b5d939e8dc4c7e95fa8dfce3d595e45f758748cecf8e644a296938"},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"aliases":[{"alias_kind":"arxiv","alias_value":"2303.05491","created_at":"2026-07-05T05:50:14.967794+00:00"},{"alias_kind":"arxiv_version","alias_value":"2303.05491v2","created_at":"2026-07-05T05:50:14.967794+00:00"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.2303.05491","created_at":"2026-07-05T05:50:14.967794+00:00"},{"alias_kind":"pith_short_12","alias_value":"MEZPGLUS2I7D","created_at":"2026-07-05T05:50:14.967794+00:00"},{"alias_kind":"pith_short_16","alias_value":"MEZPGLUS2I7D3LIC","created_at":"2026-07-05T05:50:14.967794+00:00"},{"alias_kind":"pith_short_8","alias_value":"MEZPGLUS","created_at":"2026-07-05T05:50:14.967794+00:00"}],"events":[],"event_summary":{},"paper_claims":[],"inbound_citations":{"count":2,"internal_anchor_count":0,"sample":[{"citing_arxiv_id":"2605.30914","citing_title":"Automating Formal Verification with Reinforcement Learning and Recursive Inference","ref_index":15,"is_internal_anchor":false},{"citing_arxiv_id":"2511.17330","citing_title":"Agentic Verification of Software Systems","ref_index":27,"is_internal_anchor":false}]},"formal_canon":{"evidence_count":0,"sample":[],"anchors":[]},"links":{"html":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT","json":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT.json","graph_json":"https://pith.science/api/pith-number/MEZPGLUS2I7D3LICARGEYOLPBT/graph.json","events_json":"https://pith.science/api/pith-number/MEZPGLUS2I7D3LICARGEYOLPBT/events.json","paper":"https://pith.science/paper/MEZPGLUS"},"agent_actions":{"view_html":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT","download_json":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT.json","view_paper":"https://pith.science/paper/MEZPGLUS","resolve_alias":"https://pith.science/api/pith-number/resolve?arxiv=2303.05491&json=true","fetch_graph":"https://pith.science/api/pith-number/MEZPGLUS2I7D3LICARGEYOLPBT/graph.json","fetch_events":"https://pith.science/api/pith-number/MEZPGLUS2I7D3LICARGEYOLPBT/events.json","actions":{"anchor_timestamp":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT/action/timestamp_anchor","attest_storage":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT/action/storage_attestation","attest_author":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT/action/author_attestation","sign_citation":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT/action/citation_signature","submit_replication":"https://pith.science/pith/MEZPGLUS2I7D3LICARGEYOLPBT/action/replication_record"}},"created_at":"2026-07-05T05:50:14.967794+00:00","updated_at":"2026-07-05T05:50:14.967794+00:00"}