{"id":"https://openalex.org/W4414977253","doi":"https://doi.org/10.1145/3763117","title":"Incremental Bidirectional Typing via Order Maintenance","display_name":"Incremental Bidirectional Typing via Order Maintenance","publication_year":2025,"publication_date":"2025-10-09","ids":{"openalex":"https://openalex.org/W4414977253","doi":"https://doi.org/10.1145/3763117"},"language":"en","primary_location":{"id":"doi:10.1145/3763117","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763117","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/3763117","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5072260589","display_name":"Tod S. Porter","orcid":null},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Thomas J. Porter","raw_affiliation_strings":["University of Michigan, Ann Arbor, USA"],"raw_orcid":"https://orcid.org/0009-0000-1809-8382","affiliations":[{"raw_affiliation_string":"University of Michigan, Ann Arbor, USA","institution_ids":["https://openalex.org/I27837315"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5037102077","display_name":"Marisa Kirisame","orcid":"https://orcid.org/0000-0002-3418-4835"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Marisa Kirisame","raw_affiliation_strings":["University of Utah, Salt Lake City, USA"],"raw_orcid":"https://orcid.org/0000-0002-3418-4835","affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, USA","institution_ids":["https://openalex.org/I223532165"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110075320","display_name":"Ivan Wei","orcid":null},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ivan Wei","raw_affiliation_strings":["University of Michigan, Ann Arbor, USA"],"raw_orcid":"https://orcid.org/0009-0004-0286-2808","affiliations":[{"raw_affiliation_string":"University of Michigan, Ann Arbor, USA","institution_ids":["https://openalex.org/I27837315"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5022031348","display_name":"Pavel Panchekha","orcid":"https://orcid.org/0000-0003-2621-3592"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Pavel Panchekha","raw_affiliation_strings":["University of Utah, Salt Lake City, USA"],"raw_orcid":"https://orcid.org/0000-0003-2621-3592","affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, USA","institution_ids":["https://openalex.org/I223532165"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5001010367","display_name":"Cyrus Omar","orcid":"https://orcid.org/0000-0003-4502-7971"},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Cyrus Omar","raw_affiliation_strings":["University of Michigan, Ann Arbor, USA"],"raw_orcid":"https://orcid.org/0000-0003-4502-7971","affiliations":[{"raw_affiliation_string":"University of Michigan, Ann Arbor, USA","institution_ids":["https://openalex.org/I27837315"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.0909,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.83819124,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":95,"max":98},"biblio":{"volume":"9","issue":"OOPSLA2","first_page":"1865","last_page":"1892"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"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"}},"topics":[{"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9991999864578247,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9987999796867371,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/liveness","display_name":"Liveness","score":0.8411999940872192},{"id":"https://openalex.org/keywords/base","display_name":"Base (topology)","score":0.5005999803543091},{"id":"https://openalex.org/keywords/traverse","display_name":"Traverse","score":0.49230000376701355},{"id":"https://openalex.org/keywords/information-flow","display_name":"Information flow","score":0.45489999651908875},{"id":"https://openalex.org/keywords/abstract-interpretation","display_name":"Abstract interpretation","score":0.43309998512268066},{"id":"https://openalex.org/keywords/dependent-type","display_name":"Dependent type","score":0.43059998750686646},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.42649999260902405},{"id":"https://openalex.org/keywords/program-analysis","display_name":"Program analysis","score":0.42260000109672546},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.41589999198913574}],"concepts":[{"id":"https://openalex.org/C15569618","wikidata":"https://www.wikidata.org/wiki/Q3561421","display_name":"Liveness","level":2,"score":0.8411999940872192},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8374000191688538},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6240000128746033},{"id":"https://openalex.org/C42058472","wikidata":"https://www.wikidata.org/wiki/Q810214","display_name":"Base (topology)","level":2,"score":0.5005999803543091},{"id":"https://openalex.org/C176809094","wikidata":"https://www.wikidata.org/wiki/Q15401496","display_name":"Traverse","level":2,"score":0.49230000376701355},{"id":"https://openalex.org/C2779136372","wikidata":"https://www.wikidata.org/wiki/Q10283002","display_name":"Information flow","level":2,"score":0.45489999651908875},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.44920000433921814},{"id":"https://openalex.org/C2780654840","wikidata":"https://www.wikidata.org/wiki/Q333341","display_name":"Abstract interpretation","level":2,"score":0.43309998512268066},{"id":"https://openalex.org/C20528804","wikidata":"https://www.wikidata.org/wiki/Q997433","display_name":"Dependent type","level":3,"score":0.43059998750686646},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.42649999260902405},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.42260000109672546},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.41589999198913574},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.3698999881744385},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.35920000076293945},{"id":"https://openalex.org/C182306322","wikidata":"https://www.wikidata.org/wiki/Q1779371","display_name":"Order (exchange)","level":2,"score":0.3560999929904938},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.34709998965263367},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.310699999332428},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.2924000024795532},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.2922999858856201},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.2676999866962433},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.2628999948501587},{"id":"https://openalex.org/C90312973","wikidata":"https://www.wikidata.org/wiki/Q7449052","display_name":"Semantic data model","level":2,"score":0.262800008058548},{"id":"https://openalex.org/C4554734","wikidata":"https://www.wikidata.org/wiki/Q593744","display_name":"Knowledge base","level":2,"score":0.2547000050544739},{"id":"https://openalex.org/C2778112365","wikidata":"https://www.wikidata.org/wiki/Q3511065","display_name":"Sequence (biology)","level":2,"score":0.25099998712539673},{"id":"https://openalex.org/C136643341","wikidata":"https://www.wikidata.org/wiki/Q1361526","display_name":"Reachability","level":2,"score":0.25}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3763117","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763117","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/3763117","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763117","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":[{"id":"https://openalex.org/G7715695409","display_name":null,"funder_award_id":"2238744,2340192","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":40,"referenced_works":["https://openalex.org/W233657246","https://openalex.org/W1573418128","https://openalex.org/W1606615329","https://openalex.org/W1676865579","https://openalex.org/W1963557108","https://openalex.org/W1995307698","https://openalex.org/W2006860739","https://openalex.org/W2028423097","https://openalex.org/W2035829578","https://openalex.org/W2036676170","https://openalex.org/W2045058623","https://openalex.org/W2050204069","https://openalex.org/W2051716170","https://openalex.org/W2064750939","https://openalex.org/W2066353350","https://openalex.org/W2106656979","https://openalex.org/W2124212956","https://openalex.org/W2142890871","https://openalex.org/W2143777056","https://openalex.org/W2162059548","https://openalex.org/W2284690928","https://openalex.org/W2489483223","https://openalex.org/W2513927163","https://openalex.org/W2604229470","https://openalex.org/W2746496408","https://openalex.org/W2791446013","https://openalex.org/W2885728120","https://openalex.org/W3006146940","https://openalex.org/W3098470576","https://openalex.org/W3187876763","https://openalex.org/W3206289870","https://openalex.org/W4205369977","https://openalex.org/W4240956298","https://openalex.org/W4245525132","https://openalex.org/W4254035807","https://openalex.org/W4293228125","https://openalex.org/W4390604815","https://openalex.org/W4390754291","https://openalex.org/W6966677443","https://openalex.org/W7077052675"],"related_works":[],"abstract_inverted_index":{"Live":[0],"programming":[1],"environments":[2],"provide":[3,172],"various":[4],"semantic":[5],"services,":[6],"including":[7],"type":[8,55,70,80,110,125],"checking":[9],"and":[10,44,73,78,99,142,192],"evaluation,":[11],"continuously":[12],"as":[13,89],"the":[14,18,26,76,97,145,160],"user":[15],"is":[16,31,50,86,154,196],"editing":[17],"program.":[19,101],"The":[20,84],"live":[21,59],"paradigm":[22],"promises":[23],"to":[24,52,63,106,116,120,137,143,156,198,206],"improve":[25],"developer":[27],"experience,":[28],"but":[29],"liveness":[30],"an":[32,173],"implementation":[33],"challenge,":[34],"particularly":[35],"when":[36],"working":[37],"with":[38,124,165,188],"large":[39,190],"programs.":[40],"This":[41,67],"paper":[42],"specifies":[43],"efficiently":[45,138],"implements":[46],"a":[47,58,90,107,178,189],"system":[48,85,153],"that":[49,93,194],"able":[51,197],"incrementally":[53],"update":[54,148],"information":[56,68,74],"for":[57],"program":[60,65],"in":[61,159],"response":[62],"fine-grained":[64],"edits.":[66],"includes":[69],"error":[71],"marks":[72],"about":[75],"expected":[77],"actual":[79],"of":[81,147,180,202],"every":[82],"expression.":[83],"specified":[87],"type-theoretically":[88],"small-step":[91],"dynamics":[92],"propagates":[94],"updates":[95,103,126],"through":[96],"marked":[98],"annotated":[100],"Most":[102],"flow":[104],"according":[105],"base":[108],"bidirectional":[109],"system.":[111],"Additional":[112],"pointers":[113,129,141],"are":[114,135],"maintained":[115],"connect":[117],"bound":[118],"variables":[119],"their":[121],"binding":[122],"locations,":[123],"traversing":[127],"these":[128,140],"directly.":[130],"Order":[131],"maintenance":[132],"data":[133],"structures":[134],"employed":[136],"maintain":[139],"prioritize":[144],"order":[146],"propagation.":[149],"We":[150,170,183],"prove":[151],"this":[152,185],"equivalent":[155],"naive":[157],"reanalysis":[158],"Agda":[161],"theorem":[162],"prover,":[163],"along":[164],"other":[166],"important":[167],"metatheoretic":[168],"properties.":[169],"then":[171],"efficient":[174],"OCaml":[175],"implementation,":[176],"detailing":[177],"number":[179],"impactful":[181],"optimizations.":[182],"evaluate":[184],"implementation's":[186],"performance":[187],"stress-test":[191],"find":[193],"it":[195],"achieve":[199],"multiple":[200],"orders":[201],"magnitude":[203],"speed-up":[204],"compared":[205],"from-scratch":[207],"reanalysis.":[208]},"counts_by_year":[{"year":2026,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
