{"id":"https://openalex.org/W4399851440","doi":"https://doi.org/10.1145/3656433","title":"A HAT Trick: Automatically Verifying Representation Invariants using Symbolic Finite Automata","display_name":"A HAT Trick: Automatically Verifying Representation Invariants using Symbolic Finite Automata","publication_year":2024,"publication_date":"2024-06-20","ids":{"openalex":"https://openalex.org/W4399851440","doi":"https://doi.org/10.1145/3656433"},"language":"en","primary_location":{"id":"doi:10.1145/3656433","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656433","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/3656433","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5101482422","display_name":"Z. Zhou","orcid":"https://orcid.org/0000-0003-3900-7501"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Zhe Zhou","raw_affiliation_strings":["Purdue University, WEST LAFAYETTE, USA"],"raw_orcid":"https://orcid.org/0000-0003-3900-7501","affiliations":[{"raw_affiliation_string":"Purdue University, WEST LAFAYETTE, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5013294460","display_name":"Qianchuan Ye","orcid":"https://orcid.org/0000-0002-5977-5236"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Qianchuan Ye","raw_affiliation_strings":["Purdue University, WEST LAFAYETTE, USA"],"raw_orcid":"https://orcid.org/0000-0002-5977-5236","affiliations":[{"raw_affiliation_string":"Purdue University, WEST LAFAYETTE, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5073767542","display_name":"Benjamin Delaware","orcid":"https://orcid.org/0000-0002-1016-6261"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Benjamin Delaware","raw_affiliation_strings":["Purdue University, WEST LAFAYETTE, USA"],"raw_orcid":"https://orcid.org/0000-0002-1016-6261","affiliations":[{"raw_affiliation_string":"Purdue University, WEST LAFAYETTE, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5034957233","display_name":"Suresh Jagannathan","orcid":"https://orcid.org/0000-0001-6871-2424"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Suresh Jagannathan","raw_affiliation_strings":["Purdue University, WEST LAFAYETTE, USA"],"raw_orcid":"https://orcid.org/0000-0001-6871-2424","affiliations":[{"raw_affiliation_string":"Purdue University, WEST LAFAYETTE, USA","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":1.3942,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.83469921,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":96,"max":99},"biblio":{"volume":"8","issue":"PLDI","first_page":"1387","last_page":"1411"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9994000196456909,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9994000196456909,"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"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9993000030517578,"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/T11567","display_name":"semigroups and automata theory","score":0.9969000220298767,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/automaton","display_name":"Automaton","score":0.709433913230896},{"id":"https://openalex.org/keywords/representation","display_name":"Representation (politics)","score":0.6403990983963013},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.5645768046379089},{"id":"https://openalex.org/keywords/finite-state-machine","display_name":"Finite-state machine","score":0.48066484928131104},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.42005494236946106},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4136059880256653},{"id":"https://openalex.org/keywords/algebra-over-a-field","display_name":"Algebra over a field","score":0.32913899421691895},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.29622626304626465},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.12753498554229736}],"concepts":[{"id":"https://openalex.org/C112505250","wikidata":"https://www.wikidata.org/wiki/Q787116","display_name":"Automaton","level":2,"score":0.709433913230896},{"id":"https://openalex.org/C2776359362","wikidata":"https://www.wikidata.org/wiki/Q2145286","display_name":"Representation (politics)","level":3,"score":0.6403990983963013},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.5645768046379089},{"id":"https://openalex.org/C167822520","wikidata":"https://www.wikidata.org/wiki/Q176452","display_name":"Finite-state machine","level":2,"score":0.48066484928131104},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.42005494236946106},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4136059880256653},{"id":"https://openalex.org/C136119220","wikidata":"https://www.wikidata.org/wiki/Q1000660","display_name":"Algebra over a field","level":2,"score":0.32913899421691895},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.29622626304626465},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.12753498554229736},{"id":"https://openalex.org/C17744445","wikidata":"https://www.wikidata.org/wiki/Q36442","display_name":"Political science","level":0,"score":0.0},{"id":"https://openalex.org/C199539241","wikidata":"https://www.wikidata.org/wiki/Q7748","display_name":"Law","level":1,"score":0.0},{"id":"https://openalex.org/C94625758","wikidata":"https://www.wikidata.org/wiki/Q7163","display_name":"Politics","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3656433","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656433","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/3656433","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656433","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":[{"display_name":"Reduced inequalities","score":0.5699999928474426,"id":"https://metadata.un.org/sdg/10"}],"awards":[{"id":"https://openalex.org/G2727268378","display_name":"SHF: Small: Automated Verification and Synthesis of Input Generators in Property-Based Testing Frameworks","funder_award_id":"2321680","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":53,"referenced_works":["https://openalex.org/W122051056","https://openalex.org/W1480909796","https://openalex.org/W1511982475","https://openalex.org/W1513224132","https://openalex.org/W1651415197","https://openalex.org/W1735825634","https://openalex.org/W1826894354","https://openalex.org/W1941373452","https://openalex.org/W1990409169","https://openalex.org/W2002529995","https://openalex.org/W2007738069","https://openalex.org/W2007846881","https://openalex.org/W2008880956","https://openalex.org/W2048921878","https://openalex.org/W2073904768","https://openalex.org/W2098697136","https://openalex.org/W2105045857","https://openalex.org/W2126484338","https://openalex.org/W2142756246","https://openalex.org/W2143665015","https://openalex.org/W2166049140","https://openalex.org/W2293797630","https://openalex.org/W2507710874","https://openalex.org/W2676873924","https://openalex.org/W2752785089","https://openalex.org/W2779005308","https://openalex.org/W2798609500","https://openalex.org/W2811195459","https://openalex.org/W2885689644","https://openalex.org/W2904362559","https://openalex.org/W2965353800","https://openalex.org/W2995075587","https://openalex.org/W3011591621","https://openalex.org/W3032926401","https://openalex.org/W3033394649","https://openalex.org/W3036883373","https://openalex.org/W3102469351","https://openalex.org/W3124307800","https://openalex.org/W3136970019","https://openalex.org/W3159568777","https://openalex.org/W3175804584","https://openalex.org/W3187876763","https://openalex.org/W3195848376","https://openalex.org/W3202806445","https://openalex.org/W3205111252","https://openalex.org/W4239433846","https://openalex.org/W4242049669","https://openalex.org/W4245524452","https://openalex.org/W4285429132","https://openalex.org/W4309131240","https://openalex.org/W4315630772","https://openalex.org/W4393924739","https://openalex.org/W6892499248"],"related_works":["https://openalex.org/W4281261571","https://openalex.org/W4242459863","https://openalex.org/W127357700","https://openalex.org/W1480528870","https://openalex.org/W2508541108","https://openalex.org/W4243191745","https://openalex.org/W2724597727","https://openalex.org/W2315419748","https://openalex.org/W1029445510","https://openalex.org/W2072177288"],"abstract_inverted_index":{"Functional":[0],"programs":[1],"typically":[2],"interact":[3],"with":[4],"stateful":[5,130,148,183,249],"libraries":[6,27,53],"that":[7,23,36,109,186,200,231],"hide":[8],"state":[9,84],"behind":[10],"typed":[11],"abstractions.":[12],"One":[13],"particularly":[14],"important":[15],"class":[16],"of":[17,32,47,63,77,98,124,174,228,235,248],"applications":[18],"are":[19,54],"data":[20,242],"structure":[21,243],"implementations":[22,244],"rely":[24],"on":[25,80,182,225,246],"such":[26,99,152],"to":[28,41,60,114,146,165],"provide":[29],"a":[30,142,175,194,213],"level":[31],"efficiency":[33],"and":[34,57,96,116,121,129,135,168,238],"scalability":[35],"may":[37],"be":[38,73,112],"otherwise":[39],"difficult":[40],"achieve.":[42],"However,":[43],"because":[44],"the":[45,48,61,81,87,94,171,233],"specifications":[46],"methods":[49,185],"provided":[50],"by":[51,86],"these":[52],"necessarily":[55],"general":[56],"rarely":[58],"specialized":[59],"needs":[62],"any":[64,67],"specific":[65],"client,":[66],"required":[68],"application-level":[69],"invariants":[70,101,173],"must":[71],"often":[72],"expressed":[74],"in":[75],"terms":[76],"additional":[78],"constraints":[79],"(often)":[82],"opaque":[83],"maintained":[85],"library.":[88],"In":[89],"this":[90,229],"paper,":[91],"we":[92,138,157],"consider":[93],"specification":[95],"verification":[97],"representation":[100,172],"using":[102],"symbolic":[103],"finite":[104],"automata":[105],"(SFA).":[106],"We":[107,191,220],"show":[108],"SFAs":[110,140],"can":[111],"used":[113],"succinctly":[115],"precisely":[117],"capture":[118],"fine-grained":[119],"temporal":[120],"data-dependent":[122],"histories":[123],"interactions":[125],"between":[126],"functional":[127],"clients":[128],"libraries.":[131],"To":[132],"facilitate":[133],"modular":[134],"compositional":[136],"reasoning,":[137],"integrate":[139],"into":[141,212],"refinement":[143],"type":[144,197],"system":[145],"qualify":[147],"computations":[149],"resulting":[150],"from":[151],"interactions.":[153],"The":[154],"particular":[155],"instantiation":[156],"consider,":[158],"Hoare":[159],"Automata":[160],"Types":[161],"(HATs),":[162],"allows":[163],"us":[164],"both":[166],"specify":[167],"automatically":[169],"type-check":[170],"datatype,":[176],"even":[177],"when":[178],"its":[179],"implementation":[180,227],"depends":[181],"library":[184,250],"operate":[187],"over":[188,207],"hidden":[189],"state.":[190],"also":[192],"develop":[193],"new":[195],"bidirectional":[196],"checking":[198],"algorithm":[199,230],"implements":[201],"an":[202,226],"efficient":[203],"subtyping":[204],"inclusion":[205],"check":[206],"HATs,":[208],"enabling":[209],"their":[210],"translation":[211],"form":[214],"amenable":[215],"for":[216],"SMT-based":[217],"automated":[218],"verification.":[219],"present":[221],"extensive":[222],"experimental":[223],"results":[224],"demonstrates":[232],"feasibility":[234],"type-checking":[236],"complex":[237],"sophisticated":[239],"HAT-specified":[240],"OCaml":[241],"layered":[245],"top":[247],"APIs.":[251]},"counts_by_year":[{"year":2026,"cited_by_count":3},{"year":2025,"cited_by_count":3}],"updated_date":"2026-08-21T09:56:20.448147","created_date":"2025-10-10T00:00:00"}
