{"id":"https://openalex.org/W2741572329","doi":"https://doi.org/10.1145/3158150","title":"Bonsai: synthesis-based reasoning for type systems","display_name":"Bonsai: synthesis-based reasoning for type systems","publication_year":2017,"publication_date":"2017-12-27","ids":{"openalex":"https://openalex.org/W2741572329","doi":"https://doi.org/10.1145/3158150","mag":"2741572329"},"language":"en","primary_location":{"id":"doi:10.1145/3158150","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158150","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":false,"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":"preprint","indexed_in":["arxiv","crossref","datacite"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://doi.org/10.1145/3158150","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5009878055","display_name":"Kartik Chandra","orcid":"https://orcid.org/0000-0002-1835-3707"},"institutions":[{"id":"https://openalex.org/I1743320","display_name":"Palo Alto University","ror":"https://ror.org/04f812k67","country_code":"US","type":"education","lineage":["https://openalex.org/I1743320"]},{"id":"https://openalex.org/I97018004","display_name":"Stanford University","ror":"https://ror.org/00f54p054","country_code":"US","type":"education","lineage":["https://openalex.org/I97018004"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kartik Chandra","raw_affiliation_strings":["Henry M. Gunn High School, USA / Stanford University, USA","Stanford University ()"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Henry M. Gunn High School, USA / Stanford University, USA","institution_ids":["https://openalex.org/I1743320","https://openalex.org/I97018004"]},{"raw_affiliation_string":"Stanford University ()","institution_ids":["https://openalex.org/I97018004"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5085160432","display_name":"Rastislav Bod\u00edk","orcid":"https://orcid.org/0000-0001-6639-1647"},"institutions":[{"id":"https://openalex.org/I201448701","display_name":"University of Washington","ror":"https://ror.org/00cvxb145","country_code":"US","type":"education","lineage":["https://openalex.org/I201448701"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Rastislav Bodik","raw_affiliation_strings":["University of Washington, USA","University of Washington ;"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Washington, USA","institution_ids":["https://openalex.org/I201448701"]},{"raw_affiliation_string":"University of Washington ;","institution_ids":["https://openalex.org/I201448701"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"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.13362932,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"2","issue":"POPL","first_page":"1","last_page":"34"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9997000098228455,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9993000030517578,"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/soundness","display_name":"Soundness","score":0.9317365884780884},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7852733135223389},{"id":"https://openalex.org/keywords/counterexample","display_name":"Counterexample","score":0.7744414806365967},{"id":"https://openalex.org/keywords/executable","display_name":"Executable","score":0.7235755920410156},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7175620794296265},{"id":"https://openalex.org/keywords/merge","display_name":"Merge (version control)","score":0.6225402355194092},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.48642516136169434},{"id":"https://openalex.org/keywords/symbolic-execution","display_name":"Symbolic execution","score":0.479536771774292},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4583399295806885},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.45664048194885254},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.449124813079834},{"id":"https://openalex.org/keywords/model-checking","display_name":"Model checking","score":0.4230436384677887},{"id":"https://openalex.org/keywords/program-analysis","display_name":"Program analysis","score":0.41862913966178894},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.30158495903015137},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.14450061321258545},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.10743123292922974},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.10126149654388428}],"concepts":[{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.9317365884780884},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7852733135223389},{"id":"https://openalex.org/C162838799","wikidata":"https://www.wikidata.org/wiki/Q596077","display_name":"Counterexample","level":2,"score":0.7744414806365967},{"id":"https://openalex.org/C160145156","wikidata":"https://www.wikidata.org/wiki/Q778586","display_name":"Executable","level":2,"score":0.7235755920410156},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7175620794296265},{"id":"https://openalex.org/C197129107","wikidata":"https://www.wikidata.org/wiki/Q1921621","display_name":"Merge (version control)","level":2,"score":0.6225402355194092},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.48642516136169434},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.479536771774292},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4583399295806885},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.45664048194885254},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.449124813079834},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.4230436384677887},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.41862913966178894},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.30158495903015137},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.14450061321258545},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.10743123292922974},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.10126149654388428},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"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/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":5,"locations":[{"id":"doi:10.1145/3158150","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158150","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":false,"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"},{"id":"pmh:oai:arXiv.org:1708.00551","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1708.00551","pdf_url":"https://arxiv.org/pdf/1708.00551","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"text"},{"id":"mag:2741572329","is_oa":true,"landing_page_url":"https://arxiv.org/pdf/1708.00551","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"arXiv (Cornell University)","raw_type":null},{"id":"doi:10.48550/arxiv.1708.00551","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.1708.00551","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article"},{"id":"mag:2899387314","is_oa":false,"landing_page_url":"https://popl18.sigplan.org/event/popl-2018-papers-bonsai-synthesis-based-reasoning-for-type-systems","pdf_url":null,"source":{"id":"https://openalex.org/S4306420994","display_name":"Symposium on Principles of Programming Languages","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":"Symposium on Principles of Programming Languages","raw_type":null}],"best_oa_location":{"id":"doi:10.1145/3158150","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158150","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":false,"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":[{"id":"https://openalex.org/G5190992562","display_name":null,"funder_award_id":"CCF--1139138,CCF--1337415,ACI--1535191","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5829440966","display_name":null,"funder_award_id":"FA8750--16--2--0032","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320309327","display_name":"Google","ror":"https://ror.org/00njsd438"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":57,"referenced_works":["https://openalex.org/W1495226832","https://openalex.org/W1557561422","https://openalex.org/W1570258731","https://openalex.org/W1604147565","https://openalex.org/W1691700263","https://openalex.org/W1799755352","https://openalex.org/W1963572054","https://openalex.org/W1980629081","https://openalex.org/W1980939032","https://openalex.org/W1984762903","https://openalex.org/W1987647365","https://openalex.org/W1988537734","https://openalex.org/W1992431017","https://openalex.org/W2036812689","https://openalex.org/W2040832338","https://openalex.org/W2057156093","https://openalex.org/W2061079066","https://openalex.org/W2066155701","https://openalex.org/W2078739175","https://openalex.org/W2082334237","https://openalex.org/W2098456636","https://openalex.org/W2098643127","https://openalex.org/W2101432564","https://openalex.org/W2101512909","https://openalex.org/W2101811680","https://openalex.org/W2102182691","https://openalex.org/W2103094658","https://openalex.org/W2103714221","https://openalex.org/W2106192381","https://openalex.org/W2112447468","https://openalex.org/W2115261880","https://openalex.org/W2132525863","https://openalex.org/W2136316331","https://openalex.org/W2136601052","https://openalex.org/W2136952590","https://openalex.org/W2146079248","https://openalex.org/W2148329403","https://openalex.org/W2149236697","https://openalex.org/W2151156765","https://openalex.org/W2155621670","https://openalex.org/W2156428492","https://openalex.org/W2160456755","https://openalex.org/W2166653824","https://openalex.org/W2168986107","https://openalex.org/W2249862487","https://openalex.org/W2289066165","https://openalex.org/W2467676678","https://openalex.org/W2533631495","https://openalex.org/W2620976285","https://openalex.org/W2996075572","https://openalex.org/W4232512250","https://openalex.org/W4234122891","https://openalex.org/W4237412827","https://openalex.org/W4238083723","https://openalex.org/W4243882797","https://openalex.org/W4247694393","https://openalex.org/W4250846042"],"related_works":["https://openalex.org/W2964342690","https://openalex.org/W2164622707","https://openalex.org/W2795742902","https://openalex.org/W2809696358","https://openalex.org/W2767681984","https://openalex.org/W1520669000","https://openalex.org/W2546497838","https://openalex.org/W2921535292","https://openalex.org/W2560089524","https://openalex.org/W1810409436","https://openalex.org/W2377504027","https://openalex.org/W191500592","https://openalex.org/W3100138532","https://openalex.org/W3012611775","https://openalex.org/W1988874658","https://openalex.org/W347573823","https://openalex.org/W3096577786","https://openalex.org/W2080172410","https://openalex.org/W2107334724","https://openalex.org/W2771832401"],"abstract_inverted_index":{"When":[0],"designing":[1],"a":[2,43,48,59,63,137,190,215],"type":[3,29,39,60,176,193],"system,":[4,61],"we":[5],"may":[6],"want":[7],"to":[8,13,119,204,213],"mechanically":[9],"check":[10,38],"the":[11,71,76,93,102,105,124,133,170,209,218],"design":[12],"guide":[14],"its":[15],"further":[16],"development.":[17],"We":[18,165,179],"describe":[19],"algorithms":[20,32,83,168],"that":[21,91,97,146],"perform":[22,180],"symbolic":[23,139],"reasoning":[24],"about":[25],"executable":[26],"models":[27],"of":[28,58,78,95,123,141,158,192],"systems.":[30,194],"The":[31],"support":[33],"three":[34],"queries.":[35],"First,":[36],"they":[37,54,74],"soundness":[40,49,200,222],"and":[41,87,104,143,188,207],"synthesize":[42],"counterexample":[44,80,216],"program":[45,64,144],"if":[46],"such":[47],"bug":[50,223],"is":[51,132,208],"found.":[52],"Second,":[53],"compare":[55],"two":[56],"versions":[57],"synthesizing":[62],"accepted":[65],"by":[66,70,117],"one":[67],"but":[68],"rejected":[69],"other.":[72],"Third,":[73],"minimize":[75],"size":[77],"synthesized":[79],"programs.":[81,128],"These":[82],"symbolically":[84,108],"evaluate":[85],"typecheckers":[86],"interpreters,":[88],"producing":[89],"formulas":[90],"characterize":[92],"set":[94],"programs":[96,142],"fail":[98],"or":[99],"succeed":[100],"in":[101,156,169],"typechecker":[103],"interpreter.":[106],"However,":[107],"evaluating":[109],"interpreters":[110],"poses":[111],"efficiency":[112],"challenges,":[113],"which":[114],"are":[115],"caused":[116],"having":[118],"merge":[120],"execution":[121],"paths":[122],"various":[125],"possible":[126],"input":[127],"Our":[129],"main":[130],"contribution":[131],"bonsai":[134],"tree":[135],",":[136],"novel":[138],"representation":[140],"states":[145],"addresses":[147],"these":[148,167],"challenges.":[149],"Bonsai":[150,171,185,195],"trees":[151],"encode":[152],"complex":[153],"syntactic":[154],"information":[155],"terms":[157],"logical":[159],"constraints,":[160],"enabling":[161],"more":[162],"efficient":[163],"merging.":[164],"implement":[166],"tool,":[172],"an":[173],"assistant":[174],"for":[175,199,217],"system":[177],"designers.":[178],"case":[181],"studies":[182],"on":[183],"how":[184],"helps":[186],"test":[187],"explore":[189],"variety":[191],"efficiently":[196],"synthesizes":[197],"counterexamples":[198],"bugs":[201],"previously":[202],"inaccessible":[203],"automatic":[205],"tools":[206],"first":[210],"automated":[211],"tool":[212],"find":[214],"recently":[219],"discovered":[220],"Scala":[221],"SI-9633.":[224]},"counts_by_year":[],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
