{"id":"https://openalex.org/W4411267701","doi":"https://doi.org/10.1145/3729333","title":"Thrust: A Prophecy-Based Refinement Type System for Rust","display_name":"Thrust: A Prophecy-Based Refinement Type System for Rust","publication_year":2025,"publication_date":"2025-06-10","ids":{"openalex":"https://openalex.org/W4411267701","doi":"https://doi.org/10.1145/3729333"},"language":"en","primary_location":{"id":"doi:10.1145/3729333","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729333","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3729333","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Hiromi Ogawa","orcid":"https://orcid.org/0009-0007-0372-4863"},"institutions":[{"id":"https://openalex.org/I146399215","display_name":"University of Tsukuba","ror":"https://ror.org/02956yf07","country_code":"JP","type":"education","lineage":["https://openalex.org/I146399215"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Hiromi Ogawa","raw_affiliation_strings":["University of Tsukuba, Tsukuba, Japan"],"raw_orcid":"https://orcid.org/0009-0007-0372-4863","affiliations":[{"raw_affiliation_string":"University of Tsukuba, Tsukuba, Japan","institution_ids":["https://openalex.org/I146399215"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018002187","display_name":"Taro Sekiyama","orcid":"https://orcid.org/0000-0001-9286-230X"},"institutions":[{"id":"https://openalex.org/I184597095","display_name":"National Institute of Informatics","ror":"https://ror.org/04ksd4g47","country_code":"JP","type":"facility","lineage":["https://openalex.org/I1319490839","https://openalex.org/I184597095","https://openalex.org/I4210158934"]},{"id":"https://openalex.org/I200475212","display_name":"The Graduate University for Advanced Studies, SOKENDAI","ror":"https://ror.org/0516ah480","country_code":"JP","type":"education","lineage":["https://openalex.org/I200475212"]},{"id":"https://openalex.org/I4210110163","display_name":"Nippon Soken (Japan)","ror":"https://ror.org/01yk36x23","country_code":"JP","type":"company","lineage":["https://openalex.org/I4210110163"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Taro Sekiyama","raw_affiliation_strings":["National Institute of Informatics, Tokyo, Japan","SOKENDAI, Hayama, Japan"],"raw_orcid":"https://orcid.org/0000-0001-9286-230X","affiliations":[{"raw_affiliation_string":"National Institute of Informatics, Tokyo, Japan","institution_ids":["https://openalex.org/I184597095"]},{"raw_affiliation_string":"SOKENDAI, Hayama, Japan","institution_ids":["https://openalex.org/I4210110163","https://openalex.org/I200475212"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5044643168","display_name":"Hiroshi Unno","orcid":"https://orcid.org/0000-0002-4225-8195"},"institutions":[{"id":"https://openalex.org/I201537933","display_name":"Tohoku University","ror":"https://ror.org/01dq60k83","country_code":"JP","type":"education","lineage":["https://openalex.org/I201537933"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Hiroshi Unno","raw_affiliation_strings":["Tohoku University, Sendai, Japan"],"raw_orcid":"https://orcid.org/0000-0002-4225-8195","affiliations":[{"raw_affiliation_string":"Tohoku University, Sendai, Japan","institution_ids":["https://openalex.org/I201537933"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.12691092,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"PLDI","first_page":"2056","last_page":"2080"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.8973000049591064,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.8973000049591064,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10317","display_name":"Advanced Database Systems and Queries","score":0.885200023651123,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.8815000057220459,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/rust","display_name":"Rust (programming language)","score":0.7540035247802734},{"id":"https://openalex.org/keywords/thrust","display_name":"Thrust","score":0.4521803855895996},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.42454618215560913},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.4203988313674927},{"id":"https://openalex.org/keywords/geology","display_name":"Geology","score":0.35999804735183716},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3387607932090759},{"id":"https://openalex.org/keywords/engineering","display_name":"Engineering","score":0.24014493823051453},{"id":"https://openalex.org/keywords/mechanical-engineering","display_name":"Mechanical engineering","score":0.16814011335372925},{"id":"https://openalex.org/keywords/paleontology","display_name":"Paleontology","score":0.11112722754478455}],"concepts":[{"id":"https://openalex.org/C197781089","wikidata":"https://www.wikidata.org/wiki/Q575650","display_name":"Rust (programming language)","level":2,"score":0.7540035247802734},{"id":"https://openalex.org/C79420006","wikidata":"https://www.wikidata.org/wiki/Q533668","display_name":"Thrust","level":2,"score":0.4521803855895996},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.42454618215560913},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4203988313674927},{"id":"https://openalex.org/C127313418","wikidata":"https://www.wikidata.org/wiki/Q1069","display_name":"Geology","level":0,"score":0.35999804735183716},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3387607932090759},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.24014493823051453},{"id":"https://openalex.org/C78519656","wikidata":"https://www.wikidata.org/wiki/Q101333","display_name":"Mechanical engineering","level":1,"score":0.16814011335372925},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.11112722754478455}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3729333","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729333","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3729333","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729333","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":63,"referenced_works":["https://openalex.org/W100569329","https://openalex.org/W967948971","https://openalex.org/W1498946538","https://openalex.org/W1684329984","https://openalex.org/W1820726602","https://openalex.org/W1980939032","https://openalex.org/W2008880956","https://openalex.org/W2024914463","https://openalex.org/W2036961426","https://openalex.org/W2041950498","https://openalex.org/W2045900383","https://openalex.org/W2078578987","https://openalex.org/W2101085206","https://openalex.org/W2105656272","https://openalex.org/W2118791871","https://openalex.org/W2124192263","https://openalex.org/W2128963089","https://openalex.org/W2245053900","https://openalex.org/W2293809538","https://openalex.org/W2294722445","https://openalex.org/W2295923951","https://openalex.org/W2482434465","https://openalex.org/W2483771058","https://openalex.org/W2514073783","https://openalex.org/W2779850521","https://openalex.org/W2781295941","https://openalex.org/W2811195459","https://openalex.org/W2893945704","https://openalex.org/W2894135852","https://openalex.org/W2901454403","https://openalex.org/W2911227993","https://openalex.org/W2913530642","https://openalex.org/W2996703997","https://openalex.org/W2996725384","https://openalex.org/W3021257004","https://openalex.org/W3043298057","https://openalex.org/W3046688479","https://openalex.org/W3109967630","https://openalex.org/W3138459719","https://openalex.org/W3174107386","https://openalex.org/W3186533773","https://openalex.org/W3207026105","https://openalex.org/W3209913027","https://openalex.org/W4245729501","https://openalex.org/W4256023041","https://openalex.org/W4256174789","https://openalex.org/W4281773296","https://openalex.org/W4283019774","https://openalex.org/W4294598978","https://openalex.org/W4305010641","https://openalex.org/W4312618946","https://openalex.org/W4312877890","https://openalex.org/W4315630772","https://openalex.org/W4362661194","https://openalex.org/W4379536176","https://openalex.org/W4390410524","https://openalex.org/W4390605075","https://openalex.org/W4399851008","https://openalex.org/W4399872397","https://openalex.org/W4401596853","https://openalex.org/W4401597139","https://openalex.org/W6890139991","https://openalex.org/W6948991539"],"related_works":["https://openalex.org/W2324615561","https://openalex.org/W2086120259","https://openalex.org/W2245170124","https://openalex.org/W2076393078","https://openalex.org/W3186982001","https://openalex.org/W1984402782","https://openalex.org/W2137941439","https://openalex.org/W2004200960","https://openalex.org/W1999891779","https://openalex.org/W2029513011"],"abstract_inverted_index":{"We":[0,291],"introduce":[1],"Thrust,":[2,293],"a":[3,35,161,167,184,294,300],"new":[4,316],"verification":[5,65,86,263,330],"tool":[6,264,298],"for":[7,26,41,99,191,210,302],"ensuring":[8],"functional":[9,249],"correctness":[10,250],"in":[11,17,74,180,229,287],"Rust,":[12],"distinguished":[13],"by":[14,113,130,138,213],"its":[15],"strengths":[16,272],"automated":[18,111,262],"verification,":[19,97,112,279],"including":[20,318],"the":[21,58,88,108,115,120,132,150,158,189,204,215,224,227,230,233,271,303,323],"synthesis":[22],"of":[23,57,110,117,146,160,217,226,232,273,284,325],"inductive":[24],"invariants":[25],"loops":[27],"and":[28,43,90,104,174,187,251,282,306,327],"recursive":[29],"functions.":[30],"Thrust":[31,61,93],"is":[32,80,171],"built":[33],"on":[34,49,246,266],"novel":[36],"dependent":[37],"refinement":[38,44,121,168,196,274,283,295],"type":[39,45,59,68,122,140,169,197,201,240,296],"system":[40,170,202],"Rust":[42,304],"inference":[46,297],"techniques":[47],"based":[48,265],"Constrained":[50],"Horn":[51],"Clause":[52],"(CHC)":[53],"solvers.":[54],"Leveraging":[55],"advantages":[56],"system,":[60,141,241],"also":[62,94,143],"supports":[63],"semi-automated":[64,329],"utilizing":[66],"user":[67],"annotations":[69],"to":[70,149,238,244,259,276],"complement":[71],"CHC":[72],"solvers":[73],"cases":[75],"where":[76],"automatic":[77],"constraint":[78],"solving":[79],"unsuccessful,":[81],"as":[82,84,178,299,312,314],"well":[83,313],"modular":[85,278],"at":[87],"function":[89],"subexpression":[91],"levels.":[92],"achieves":[95,144],"precise":[96],"especially":[98],"programs":[100],"involving":[101],"pointer":[102],"aliasing":[103,236],"borrowing,":[105],"without":[106],"sacrificing":[107],"benefits":[109],"incorporating":[114],"notion":[116],"prophecy":[118,162,165,256],"into":[119,166,194],"system:":[123],"it":[124,208,308],"not":[125],"only":[126],"enables":[127],"strong":[128],"updates":[129],"leveraging":[131],"\u201caliasing":[133,218],"XOR":[134,219],"mutability\u201d":[135],"guarantee":[136,216],"provided":[137],"Rust\u2019s":[139,239],"but":[142],"propagation":[145],"update":[147,253],"information":[148,254],"original":[151],"owner":[152],"upon":[153],"mutable":[154],"borrow":[155],"release":[156],"through":[157,255],"use":[159],"variable.":[163],"Incorporating":[164],"itself":[172],"challenging":[173],"requires":[175],"certain":[176],"tricks,":[177],"discussed":[179],"this":[181],"paper,":[182],"making":[183],"theoretical":[185],"contribution":[186],"paving":[188],"way":[190],"further":[192],"research":[193],"prophecy-based":[195],"systems.":[198],"While":[199],"our":[200,268],"addresses":[203],"challenge,":[205],"we":[206],"keep":[207],"simple":[209],"extensibility,":[211],"specifically":[212],"delegating":[214],"mutability,\u201d":[220],"and,":[221],"more":[222],"technically,":[223],"\u201cwell-borrowedness\u201d":[225],"program":[228],"sense":[231],"stacked":[234],"borrows":[235],"model,":[237],"allowing":[242],"us":[243],"focus":[245],"reasoning":[247],"about":[248],"propagating":[252],"variables.":[257],"Compared":[258],"RustHorn,":[260],"another":[261],"prophecy,":[267],"approach":[269],"leverages":[270],"types":[275],"support":[277],"higher-order":[280],"functions,":[281],"data":[285,289],"stored":[286],"algebraic":[288],"structures.":[290],"implemented":[292],"plugin":[301],"compiler,":[305],"evaluated":[307],"using":[309],"RustHorn":[310,326],"benchmarks,":[311,317],"additional":[315],"those":[319],"that":[320],"are":[321],"beyond":[322],"capabilities":[324],"other":[328],"tools,":[331],"obtaining":[332],"promising":[333],"results.":[334]},"counts_by_year":[],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
