{"id":"https://openalex.org/W2135322712","doi":"https://doi.org/10.1145/1542476.1542510","title":"Type-based data structure verification","display_name":"Type-based data structure verification","publication_year":2009,"publication_date":"2009-06-15","ids":{"openalex":"https://openalex.org/W2135322712","doi":"https://doi.org/10.1145/1542476.1542510","mag":"2135322712"},"language":"en","primary_location":{"id":"doi:10.1145/1542476.1542510","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1542476.1542510","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5010589761","display_name":"Ming Kawaguchi","orcid":"https://orcid.org/0000-0001-5999-2882"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Ming Kawaguchi","raw_affiliation_strings":["University of California, San Diego, San Diego, CA, USA"],"affiliations":[{"raw_affiliation_string":"University of California, San Diego, San Diego, CA, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5038923915","display_name":"Patrick M. Rondon","orcid":null},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Patrick Rondon","raw_affiliation_strings":["University of California, San Diego, San Diego, CA, USA"],"affiliations":[{"raw_affiliation_string":"University of California, San Diego, San Diego, CA, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5002412544","display_name":"Ranjit Jhala","orcid":"https://orcid.org/0000-0002-1802-9421"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California, San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ranjit Jhala","raw_affiliation_strings":["University of California, San Diego, San Diego, USA"],"affiliations":[{"raw_affiliation_string":"University of California, San Diego, San Diego, USA","institution_ids":["https://openalex.org/I36258959"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5010589761"],"corresponding_institution_ids":["https://openalex.org/I36258959"],"apc_list":null,"apc_paid":null,"fwci":9.0102,"has_fulltext":false,"cited_by_count":79,"citation_normalized_percentile":{"value":0.97890304,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"304","last_page":"315"},"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.9995999932289124,"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.9995999932289124,"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/T10260","display_name":"Software Engineering Research","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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.9939000010490417,"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.8286523222923279},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.7298415899276733},{"id":"https://openalex.org/keywords/abstract-interpretation","display_name":"Abstract interpretation","score":0.724073588848114},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.6235682964324951},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.614945113658905},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5895684361457825},{"id":"https://openalex.org/keywords/hash-function","display_name":"Hash function","score":0.5607582330703735},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.5576090812683105},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.5371101498603821},{"id":"https://openalex.org/keywords/hash-table","display_name":"Hash table","score":0.5260753035545349},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5132917761802673},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.49193263053894043},{"id":"https://openalex.org/keywords/binary-search-tree","display_name":"Binary search tree","score":0.476629376411438},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.45043304562568665},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.4305272698402405},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.41412466764450073},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.40777942538261414},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.37762966752052307},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.15393704175949097}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8286523222923279},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.7298415899276733},{"id":"https://openalex.org/C2780654840","wikidata":"https://www.wikidata.org/wiki/Q333341","display_name":"Abstract interpretation","level":2,"score":0.724073588848114},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.6235682964324951},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.614945113658905},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5895684361457825},{"id":"https://openalex.org/C99138194","wikidata":"https://www.wikidata.org/wiki/Q183427","display_name":"Hash function","level":2,"score":0.5607582330703735},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.5576090812683105},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.5371101498603821},{"id":"https://openalex.org/C67388219","wikidata":"https://www.wikidata.org/wiki/Q207440","display_name":"Hash table","level":3,"score":0.5260753035545349},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5132917761802673},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.49193263053894043},{"id":"https://openalex.org/C91154448","wikidata":"https://www.wikidata.org/wiki/Q623818","display_name":"Binary search tree","level":3,"score":0.476629376411438},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.45043304562568665},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.4305272698402405},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.41412466764450073},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.40777942538261414},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.37762966752052307},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.15393704175949097},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1542476.1542510","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1542476.1542510","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.205.3399","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.205.3399","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://pho.ucsd.edu/rjhala/papers/type-based_data_structure_verification.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.210.1015","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.210.1015","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.ucsd.edu/~prondon/papers/structures-pldi09.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Decent work and economic growth","id":"https://metadata.un.org/sdg/8","score":0.75}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":25,"referenced_works":["https://openalex.org/W1480909796","https://openalex.org/W1508482211","https://openalex.org/W1557561422","https://openalex.org/W1557880268","https://openalex.org/W1566645750","https://openalex.org/W1590844387","https://openalex.org/W1964952791","https://openalex.org/W1979619055","https://openalex.org/W2005192022","https://openalex.org/W2013050211","https://openalex.org/W2015542055","https://openalex.org/W2027584005","https://openalex.org/W2105045857","https://openalex.org/W2106229114","https://openalex.org/W2132251441","https://openalex.org/W2135322712","https://openalex.org/W2141210774","https://openalex.org/W2147650421","https://openalex.org/W2149127686","https://openalex.org/W2154632906","https://openalex.org/W2295923951","https://openalex.org/W3181441684","https://openalex.org/W4285719527","https://openalex.org/W6633355477","https://openalex.org/W6633458264"],"related_works":["https://openalex.org/W2078122686","https://openalex.org/W1836373119","https://openalex.org/W1603809778","https://openalex.org/W1966955252","https://openalex.org/W3101540591","https://openalex.org/W4287601783","https://openalex.org/W3118134322","https://openalex.org/W1753357466","https://openalex.org/W4246999925","https://openalex.org/W2135322712"],"abstract_inverted_index":{"We":[0,44,126,141],"present":[1,142],"a":[2],"refinement":[3,75],"type-based":[4,48,148],"approach":[5,16,130,149],"for":[6],"the":[7,20,62,84,89,97,100,103,124,151],"static":[8],"verification":[9],"of":[10,65,79,86,102,107,170],"complex":[11,23,114,157],"data":[12,24],"structure":[13],"invariants.":[14],"Our":[15],"is":[17],"based":[18],"on":[19,77],"observation":[21],"that":[22,144,146],"structures":[25],"are":[26],"typically":[27],"fashioned":[28],"from":[29,116],"two":[30,46],"elements:":[31,53],"recursion":[32],"(e.g.,":[33,39],"lists":[34],"and":[35,37,41,56,67,81,92,163],"trees),":[36],"maps":[38],"arrays":[40],"hash":[42],"tables).":[43],"introduce":[45],"novel":[47],"mechanisms":[49,60,98],"targeted":[50],"towards":[51],"these":[52],"recursive":[54],"refinements":[55],"polymorphic":[57],"refinements.":[58],"These":[59],"automate":[61],"challenging":[63],"work":[64],"generalizing":[66],"instantiating":[68],"rich":[69],"universal":[70],"invariants":[71,115],"by":[72,165],"piggybacking":[73],"simple":[74,117],"predicates":[76],"top":[78],"types,":[80],"carefully":[82],"dividing":[83],"labor":[85],"analysis":[87],"between":[88],"type":[90,109],"system":[91],"an":[93,168],"SMT":[94],"solver.":[95],"Further,":[96],"permit":[99],"use":[101],"abstract":[104],"interpretation":[105],"framework":[106],"liquid":[108,135],"inference":[110],"to":[111,137,155],"automatically":[112],"synthesize":[113],"logical":[118],"qualifiers,":[119],"thereby":[120],"almost":[121],"completely":[122],"automating":[123],"verification.":[125],"have":[127],"implemented":[128],"our":[129,147],"in":[131],"dsolve,":[132],"which":[133],"uses":[134],"types":[136],"verify":[138,156],"ocaml":[139],"programs.":[140],"experiments":[143],"show":[145],"reduces":[150],"manual":[152],"annotation":[153],"required":[154],"properties":[158],"like":[159],"sortedness,":[160],"balancedness,":[161],"binary-search-ordering,":[162],"acyclicity":[164],"more":[166],"than":[167],"order":[169],"magnitude.":[171]},"counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":3},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":4},{"year":2019,"cited_by_count":4},{"year":2017,"cited_by_count":7},{"year":2016,"cited_by_count":8},{"year":2015,"cited_by_count":6},{"year":2014,"cited_by_count":14},{"year":2013,"cited_by_count":6},{"year":2012,"cited_by_count":5}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
