A Synthesis Method of Safe Rust Code Based on Pushdown Colored Petri Nets

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Zhang, Kaiwen, Liu, Guanjun
Formato: Preprint
Publicado: 2026
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866908934351093760
author Zhang, Kaiwen
Liu, Guanjun
author_facet Zhang, Kaiwen
Liu, Guanjun
contents Safe Rust guarantees memory safety through strict compile-time constraints: ownership can be transferred, borrowing can temporarily guarantee either shared read-only or exclusive write access, and ownership and borrowing are scoped by lifetime. Automatically synthesizing correct and safe Rust code is challenging, as the generated code must not only satisfy ownership, borrowing, and lifetime constraints, but also meet type and interface requirements at compile time. This work proposes a synthesis method based on our newly defined Pushdown Colored Petri Net (PCPN) that models these compilation constraints directly from public API signatures to synthesize valid call sequences. Token colors encode dynamic resource states together with a scope level indicating the lifetime region in which a borrow is valid. The pushdown stack tracks the entering or leaving of lifetime parameter via pushing and popping tokens. A transition is enabled only when type matching and interface obligations both hold and the required resource states are available. Based on the bisimulation theory, we prove that the enabling and firing rules of PCPN are consistent with the compile-time check of these three constraints. We develop an automatic synthesis tool based on PCPN and the experimental results show that the synthesized codes are all correct.
format Preprint
id arxiv_https___arxiv_org_abs_2604_02399
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle A Synthesis Method of Safe Rust Code Based on Pushdown Colored Petri Nets
Zhang, Kaiwen
Liu, Guanjun
Software Engineering
Artificial Intelligence
Formal Languages and Automata Theory
Programming Languages
Safe Rust guarantees memory safety through strict compile-time constraints: ownership can be transferred, borrowing can temporarily guarantee either shared read-only or exclusive write access, and ownership and borrowing are scoped by lifetime. Automatically synthesizing correct and safe Rust code is challenging, as the generated code must not only satisfy ownership, borrowing, and lifetime constraints, but also meet type and interface requirements at compile time. This work proposes a synthesis method based on our newly defined Pushdown Colored Petri Net (PCPN) that models these compilation constraints directly from public API signatures to synthesize valid call sequences. Token colors encode dynamic resource states together with a scope level indicating the lifetime region in which a borrow is valid. The pushdown stack tracks the entering or leaving of lifetime parameter via pushing and popping tokens. A transition is enabled only when type matching and interface obligations both hold and the required resource states are available. Based on the bisimulation theory, we prove that the enabling and firing rules of PCPN are consistent with the compile-time check of these three constraints. We develop an automatic synthesis tool based on PCPN and the experimental results show that the synthesized codes are all correct.
title A Synthesis Method of Safe Rust Code Based on Pushdown Colored Petri Nets
topic Software Engineering
Artificial Intelligence
Formal Languages and Automata Theory
Programming Languages
url https://arxiv.org/abs/2604.02399