{"id":"https://openalex.org/W7117105482","doi":"https://doi.org/10.1145/3776705","title":"DafnyMPI: A Dafny Library for Verifying Message-Passing Concurrent Programs","display_name":"DafnyMPI: A Dafny Library for Verifying Message-Passing Concurrent Programs","publication_year":2026,"publication_date":"2026-01-08","ids":{"openalex":"https://openalex.org/W7117105482","doi":"https://doi.org/10.1145/3776705"},"language":"en","primary_location":{"id":"doi:10.1145/3776705","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3776705","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":null,"license_id":null,"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":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3776705","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5078966759","display_name":"Aleksandr Fedchin","orcid":"https://orcid.org/0000-0003-0810-1941"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]},{"id":"https://openalex.org/I220289513","display_name":"American University of Central Asia","ror":"https://ror.org/03vvzk644","country_code":"KG","type":"education","lineage":["https://openalex.org/I220289513"]}],"countries":["KG","US"],"is_corresponding":true,"raw_author_name":"Aleksandr Fedchin","raw_affiliation_strings":["American University of Central Asia, Bishkek, Kirghizstan","Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0003-0810-1941","affiliations":[{"raw_affiliation_string":"American University of Central Asia, Bishkek, Kirghizstan","institution_ids":["https://openalex.org/I220289513"]},{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5121127646","display_name":"Antero Mejr","orcid":null},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Antero Mejr","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0009-0000-8124-467X","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5057147489","display_name":"HARI SUNDAR","orcid":null},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Hari Sundar","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0001-9001-5107","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038702707","display_name":"Jeffrey S. Foster","orcid":"https://orcid.org/0000-0001-8043-1166"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeffrey S. Foster","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0001-8043-1166","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5078966759"],"corresponding_institution_ids":["https://openalex.org/I121934306","https://openalex.org/I220289513"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.01171277,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"10","issue":"POPL","first_page":"1820","last_page":"1846"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.4133000075817108,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.4133000075817108,"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/T10142","display_name":"Formal Methods in Verification","score":0.30640000104904175,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.1096000000834465,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/concurrency","display_name":"Concurrency","score":0.692300021648407},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.5004000067710876},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.45750001072883606},{"id":"https://openalex.org/keywords/deadlock","display_name":"Deadlock","score":0.4507000148296356},{"id":"https://openalex.org/keywords/equivalence","display_name":"Equivalence (formal languages)","score":0.4440999925136566},{"id":"https://openalex.org/keywords/concurrent-computing","display_name":"Concurrent computing","score":0.40939998626708984},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.398499995470047},{"id":"https://openalex.org/keywords/message-passing","display_name":"Message passing","score":0.3855000138282776},{"id":"https://openalex.org/keywords/formal-verification","display_name":"Formal verification","score":0.3758000135421753}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8511000275611877},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7013999819755554},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.692300021648407},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.5004000067710876},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.45750001072883606},{"id":"https://openalex.org/C159023740","wikidata":"https://www.wikidata.org/wiki/Q623276","display_name":"Deadlock","level":2,"score":0.4507000148296356},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4447000026702881},{"id":"https://openalex.org/C2780069185","wikidata":"https://www.wikidata.org/wiki/Q7977945","display_name":"Equivalence (formal languages)","level":2,"score":0.4440999925136566},{"id":"https://openalex.org/C150495011","wikidata":"https://www.wikidata.org/wiki/Q128392","display_name":"Concurrent computing","level":2,"score":0.40939998626708984},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.398499995470047},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.39430001378059387},{"id":"https://openalex.org/C854659","wikidata":"https://www.wikidata.org/wiki/Q1859284","display_name":"Message passing","level":2,"score":0.3855000138282776},{"id":"https://openalex.org/C111498074","wikidata":"https://www.wikidata.org/wiki/Q173326","display_name":"Formal verification","level":2,"score":0.3758000135421753},{"id":"https://openalex.org/C75606506","wikidata":"https://www.wikidata.org/wiki/Q1049183","display_name":"Formal methods","level":2,"score":0.35670000314712524},{"id":"https://openalex.org/C155214134","wikidata":"https://www.wikidata.org/wiki/Q1120460","display_name":"Communicating sequential processes","level":4,"score":0.3490999937057495},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.3434000015258789},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.3050000071525574},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.3000999987125397},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.29159998893737793},{"id":"https://openalex.org/C33054407","wikidata":"https://www.wikidata.org/wiki/Q6504747","display_name":"Software verification","level":5,"score":0.27309998869895935},{"id":"https://openalex.org/C173856430","wikidata":"https://www.wikidata.org/wiki/Q3257964","display_name":"Separation logic","level":2,"score":0.2705000042915344},{"id":"https://openalex.org/C116253237","wikidata":"https://www.wikidata.org/wiki/Q1437424","display_name":"Formal specification","level":2,"score":0.26820001006126404},{"id":"https://openalex.org/C84511453","wikidata":"https://www.wikidata.org/wiki/Q2914952","display_name":"Concurrency control","level":3,"score":0.2628999948501587},{"id":"https://openalex.org/C113429609","wikidata":"https://www.wikidata.org/wiki/Q4060699","display_name":"Deadlock prevention algorithms","level":3,"score":0.26260000467300415},{"id":"https://openalex.org/C12269588","wikidata":"https://www.wikidata.org/wiki/Q132364","display_name":"Communications protocol","level":2,"score":0.26080000400543213},{"id":"https://openalex.org/C128838566","wikidata":"https://www.wikidata.org/wiki/Q275603","display_name":"Logic programming","level":2,"score":0.25850000977516174},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.25519999861717224},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.25429999828338623}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3776705","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3776705","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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2512.18842","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2512.18842","pdf_url":"https://arxiv.org/pdf/2512.18842","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3776705","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3776705","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":null,"license_id":null,"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":[{"score":0.7608683109283447,"display_name":"Peace, Justice and strong institutions","id":"https://metadata.un.org/sdg/16"}],"awards":[{"id":"https://openalex.org/G5770373782","display_name":null,"funder_award_id":"2313998","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"The":[0],"Message":[1],"Passing":[2],"Interface":[3],"(MPI)":[4],"is":[5,77,131],"widely":[6],"used":[7,66],"in":[8],"parallel,":[9],"high-performance":[10],"programming,":[11],"yet":[12],"writing":[13],"bug-free":[14],"software":[15,205],"that":[16,82,99,121,142],"uses":[17],"MPI":[18,31,85],"remains":[19],"difficult.":[20],"We":[21,112,181],"introduce":[22],"DafnyMPI,":[23,170],"a":[24,62,80,116,140,192],"novel,":[25],"scalable":[26],"approach":[27],"to":[28,48,90,97,101,125,175,186],"formally":[29],"verifying":[30],"software.":[32],"DafnyMPI":[33,52,76,114,183],"allows":[34],"proving":[35],"deadlock":[36,127],"freedom,":[37],"termination,":[38],"and":[39,57,96,107,119,139,148,152,197,209],"functional":[40],"equivalence":[41,130],"with":[42,72,201],"simpler":[43],"sequential":[44,68],"implementations.":[45],"In":[46],"contrast":[47],"existing":[49],"specialized":[50],"frameworks,":[51],"avoids":[53],"custom":[54],"concurrency":[55],"logics":[56],"instead":[58],"relies":[59],"on":[60],"Dafny,":[61],"verification-ready":[63],"programming":[64,86],"language":[65],"for":[67,191,204],"programs,":[69],"extending":[70],"it":[71],"concurrent":[73,210],"reasoning":[74,135],"abilities.":[75],"implemented":[78],"as":[79,105],"library":[81],"enables":[83],"safe":[84,144],"by":[87],"requiring":[88],"users":[89],"specify":[91],"the":[92,122,153,167],"communication":[93,102],"topology":[94],"upfront":[95],"verify":[98,172],"calls":[100],"primitives":[103],"such":[104],"MPI_ISEND":[106],"MPI_WAIT":[108],"meet":[109],"their":[110],"preconditions.":[111],"formalize":[113],"using":[115,160],"core":[117],"calculus":[118],"prove":[120],"preconditions":[123],"suffice":[124],"guarantee":[126],"freedom.":[128],"Functional":[129],"proved":[132,159],"via":[133],"rely-guarantee":[134],"over":[136],"message":[137],"payloads":[138],"system":[141],"guarantees":[143],"use":[145],"of":[146,155,169,195,207],"read":[147],"write":[149],"buffers.":[150],"Termination":[151],"absence":[154],"runtime":[156],"errors":[157],"are":[158],"standard":[161],"Dafny":[162],"techniques.":[163],"To":[164],"further":[165],"demonstrate":[166],"applicability":[168],"we":[171],"numerical":[173],"solutions":[174],"three":[176],"canonical":[177],"partial":[178],"differential":[179],"equations.":[180],"believe":[182],"demonstrates":[184],"how":[185],"make":[187],"formal":[188],"verification":[189,206],"viable":[190],"broader":[193],"class":[194],"programs":[196],"provides":[198],"proof":[199],"engineers":[200],"additional":[202],"tools":[203],"parallel":[208],"systems.":[211]},"counts_by_year":[],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-12-24T00:00:00"}
