{"id":"https://openalex.org/W4409311360","doi":"https://doi.org/10.1145/3720448","title":"Metamorph: Synthesizing Large Objects from Dafny Specifications","display_name":"Metamorph: Synthesizing Large Objects from Dafny Specifications","publication_year":2025,"publication_date":"2025-04-09","ids":{"openalex":"https://openalex.org/W4409311360","doi":"https://doi.org/10.1145/3720448"},"language":"en","primary_location":{"id":"doi:10.1145/3720448","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720448","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/3720448","any_repository_has_fulltext":false},"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"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Aleksandr Fedchin","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0003-0810-1941","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5117093688","display_name":"Alexander Y. Bai","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":"Alexander Y. Bai","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0009-0009-7458-7864","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":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5078966759"],"corresponding_institution_ids":["https://openalex.org/I121934306"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.06079454,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"OOPSLA1","first_page":"759","last_page":"785"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.9966999888420105,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9955000281333923,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/computer-science","display_name":"Computer science","score":0.4628007113933563},{"id":"https://openalex.org/keywords/business","display_name":"Business","score":0.3239160180091858}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4628007113933563},{"id":"https://openalex.org/C144133560","wikidata":"https://www.wikidata.org/wiki/Q4830453","display_name":"Business","level":0,"score":0.3239160180091858}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3720448","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720448","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/3720448","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720448","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":36,"referenced_works":["https://openalex.org/W1480909796","https://openalex.org/W1858945639","https://openalex.org/W2094878426","https://openalex.org/W2101432564","https://openalex.org/W2128953477","https://openalex.org/W2130427425","https://openalex.org/W2149236697","https://openalex.org/W2157976942","https://openalex.org/W2561055248","https://openalex.org/W2604556510","https://openalex.org/W2735077751","https://openalex.org/W2770103357","https://openalex.org/W2808614825","https://openalex.org/W2883187296","https://openalex.org/W3013443015","https://openalex.org/W3080260123","https://openalex.org/W3124300503","https://openalex.org/W3160962021","https://openalex.org/W3173363254","https://openalex.org/W3205927779","https://openalex.org/W4226087539","https://openalex.org/W4226496243","https://openalex.org/W4226521406","https://openalex.org/W4242364663","https://openalex.org/W4284676027","https://openalex.org/W4285586640","https://openalex.org/W4294768173","https://openalex.org/W4307884541","https://openalex.org/W4313563577","https://openalex.org/W4323027107","https://openalex.org/W4362661194","https://openalex.org/W4367176064","https://openalex.org/W4379142282","https://openalex.org/W4391505367","https://openalex.org/W4400675892","https://openalex.org/W6893155292"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W2390279801","https://openalex.org/W4391913857","https://openalex.org/W2358668433","https://openalex.org/W4396701345","https://openalex.org/W2376932109","https://openalex.org/W2001405890","https://openalex.org/W4396696052"],"abstract_inverted_index":{"Program":[0],"synthesis":[1,115,167,200],"aims":[2],"to":[3,8,21,25,52,125,146,197,238,265,274,313,319],"produce":[4],"code":[5],"that":[6,28,109,117,221,262,292,307,329],"adheres":[7],"user-provided":[9],"specifications.":[10],"In":[11,90,169],"this":[12,91,229],"work,":[13],"we":[14,93,111,162,171,210,280,316],"focus":[15,94],"on":[16,95,185,242],"synthesizing":[17,96],"sequences":[18,99],"of":[19,60,67,85,100,130,140,151,188,216,300,341],"calls":[20,74,86,102,132,190,268],"formally":[22],"specified":[23],"APIs":[24],"generate":[26,239,320],"objects":[27,241],"satisfy":[29],"certain":[30],"properties.":[31],"This":[32],"problem":[33,201],"is":[34,75,310],"particularly":[35],"relevant":[36],"in":[37,87,103,191,338],"automated":[38,286],"test":[39,43,287,296],"generation,":[40],"where":[41],"a":[42,54,114,135,173,180,324],"engine":[44],"may":[45,64],"need":[46],"an":[47,275],"object":[48,212],"with":[49,283],"specific":[50],"properties":[51],"trigger":[53],"given":[55],"execution":[56],"path.":[57],"Constructing":[58],"instances":[59],"complex":[61],"data":[62,247],"structures":[63],"require":[65,263],"dozens":[66],"method":[68,101,131,189,223,267],"calls,":[69],"but":[70],"reasoning":[71],"about":[72,127],"consecutive":[73],"computationally":[76],"expensive,":[77],"and":[78,194,227,255,271,290],"existing":[79],"work":[80],"typically":[81],"limits":[82],"the":[83,88,104,122,128,138,148,156,166,186,192,199,301,330,339],"number":[84,150,187],"solution.":[89],"paper,":[92],"such":[97],"long":[98],"Dafny":[105,123],"programming":[106],"language.":[107],"To":[108],"end,":[110],"introduce":[112,172],"Metamorph,":[113],"tool":[116],"uses":[118],"counterexamples":[119,157],"returned":[120],"by":[121,154],"verifier":[124],"reason":[126],"effects":[129],"one":[133],"at":[134],"time,":[136],"limiting":[137],"complexity":[139],"solver":[141],"queries.":[142],"We":[143,234],"also":[144],"aim":[145],"limit":[147],"overall":[149],"SMT":[152],"queries":[153],"comparing":[155],"using":[158,231],"two":[159],"distance":[160,176],"metrics":[161],"develop":[163],"for":[164,298,323],"guiding":[165],"process.":[168],"particular,":[170],"novel":[174],"piecewise":[175,208],"metric,":[177],"which":[178],"puts":[179],"provably":[181],"correct":[182],"lower":[183],"bound":[184],"solution":[193],"allows":[195],"us":[196],"frame":[198],"as":[202,214],"weighted":[203],"A*":[204],"search.":[205],"When":[206],"computing":[207],"distance,":[209],"view":[211],"states":[213],"conjunctions":[215],"atomic":[217],"constraints,":[218],"identify":[219],"constraints":[220],"each":[222],"call":[224],"can":[225,258,294],"satisfy,":[226],"combine":[228],"information":[230],"integer":[232],"programming.":[233],"evaluate":[235],"Metamorph\u2019s":[236],"ability":[237],"large":[240],"six":[243],"benchmarks":[244],"defining":[245],"key":[246],"structures:":[248],"linked":[249],"lists,":[250],"queues,":[251],"arrays,":[252],"binary":[253],"trees,":[254],"graphs.":[256],"Metamorph":[257,282,293,318],"successfully":[259],"construct":[260],"programs":[261],"up":[264],"57":[266],"per":[269],"instance":[270],"compares":[272],"favorably":[273],"alternative":[276],"baseline":[277],"approach.":[278],"Additionally,":[279],"integrate":[281],"DTest,":[284],"Dafny\u2019s":[285],"generation":[288],"toolkit,":[289],"show":[291],"synthesize":[295],"inputs":[297],"parts":[299],"AWS":[302],"Cryptographic":[303],"Material":[304],"Providers":[305],"Library":[306],"DTest":[308],"alone":[309],"not":[311],"able":[312],"cover.":[314],"Finally,":[315],"use":[317],"executable":[321],"bytecode":[322],"simple":[325],"virtual":[326],"machine,":[327],"demonstrating":[328],"techniques":[331],"described":[332],"here":[333],"are":[334],"more":[335],"broadly":[336],"applicable":[337],"context":[340],"specification-guided":[342],"synthesis.":[343]},"counts_by_year":[],"updated_date":"2026-05-21T09:19:25.381259","created_date":"2025-10-10T00:00:00"}
