{"id":"https://openalex.org/W2763435855","doi":"https://doi.org/10.1145/3133903","title":"TiML: a functional language for practical complexity analysis with invariants","display_name":"TiML: a functional language for practical complexity analysis with invariants","publication_year":2017,"publication_date":"2017-10-12","ids":{"openalex":"https://openalex.org/W2763435855","doi":"https://doi.org/10.1145/3133903","mag":"2763435855"},"language":"en","primary_location":{"id":"doi:10.1145/3133903","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3133903","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=3133903&type=pdf","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":null,"license_id":null,"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":"bronze","oa_url":"http://dl.acm.org/ft_gateway.cfm?id=3133903&type=pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5100396076","display_name":"Peng Wang","orcid":"https://orcid.org/0000-0002-8003-4686"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Peng Wang","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100401412","display_name":"Di Wang","orcid":"https://orcid.org/0000-0002-2418-7987"},"institutions":[{"id":"https://openalex.org/I20231570","display_name":"Peking University","ror":"https://ror.org/02v51f717","country_code":"CN","type":"education","lineage":["https://openalex.org/I20231570"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Di Wang","raw_affiliation_strings":["Peking University, China"],"affiliations":[{"raw_affiliation_string":"Peking University, China","institution_ids":["https://openalex.org/I20231570"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078100439","display_name":"Adam Chlipala","orcid":"https://orcid.org/0000-0001-7085-9417"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Adam Chlipala","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5100396076"],"corresponding_institution_ids":["https://openalex.org/I63966007"],"apc_list":null,"apc_paid":null,"fwci":4.7744,"has_fulltext":true,"cited_by_count":47,"citation_normalized_percentile":{"value":0.95967249,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":"1","issue":"OOPSLA","first_page":"1","last_page":"26"},"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.9998000264167786,"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.9998000264167786,"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.9991000294685364,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9979000091552734,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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.7655106782913208},{"id":"https://openalex.org/keywords/soundness","display_name":"Soundness","score":0.6516885161399841},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.5988298654556274},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.5820637345314026},{"id":"https://openalex.org/keywords/dijkstras-algorithm","display_name":"Dijkstra's algorithm","score":0.5487674474716187},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5427648425102234},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5187642574310303},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5144600868225098},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.5029518008232117},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4738762080669403},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.46445298194885254},{"id":"https://openalex.org/keywords/heuristic","display_name":"Heuristic","score":0.43138137459754944},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.43010714650154114},{"id":"https://openalex.org/keywords/graph","display_name":"Graph","score":0.29407304525375366},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.2536829710006714},{"id":"https://openalex.org/keywords/shortest-path-problem","display_name":"Shortest path problem","score":0.2370178997516632},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.1321631669998169}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7655106782913208},{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.6516885161399841},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.5988298654556274},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.5820637345314026},{"id":"https://openalex.org/C173870130","wikidata":"https://www.wikidata.org/wiki/Q8548","display_name":"Dijkstra's algorithm","level":4,"score":0.5487674474716187},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5427648425102234},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5187642574310303},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5144600868225098},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.5029518008232117},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4738762080669403},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.46445298194885254},{"id":"https://openalex.org/C173801870","wikidata":"https://www.wikidata.org/wiki/Q201413","display_name":"Heuristic","level":2,"score":0.43138137459754944},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.43010714650154114},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.29407304525375366},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.2536829710006714},{"id":"https://openalex.org/C22590252","wikidata":"https://www.wikidata.org/wiki/Q1058754","display_name":"Shortest path problem","level":3,"score":0.2370178997516632},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1321631669998169},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","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}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3133903","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3133903","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=3133903&type=pdf","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":null,"license_id":null,"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/3133903","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3133903","pdf_url":"http://dl.acm.org/ft_gateway.cfm?id=3133903&type=pdf","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":null,"license_id":null,"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/G3408632036","display_name":"SHF: Medium: Fiat: Correct-by-Construction and Mostly Automated Derivation of Programs with an Interactive Theorem Prover","funder_award_id":"1512611","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G5921281487","display_name":null,"funder_award_id":"number","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6085561891","display_name":null,"funder_award_id":"FA8750-16-C-0007","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G8418705754","display_name":null,"funder_award_id":"CCF-1512611","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G848032724","display_name":null,"funder_award_id":"Science","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"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2763435855.pdf","grobid_xml":"https://content.openalex.org/works/W2763435855.grobid-xml"},"referenced_works_count":59,"referenced_works":["https://openalex.org/W115593648","https://openalex.org/W912214939","https://openalex.org/W1132947466","https://openalex.org/W1230660382","https://openalex.org/W1424217719","https://openalex.org/W1480909796","https://openalex.org/W1492171827","https://openalex.org/W1507039213","https://openalex.org/W1557561422","https://openalex.org/W1563352283","https://openalex.org/W1563402047","https://openalex.org/W1575284330","https://openalex.org/W1590648473","https://openalex.org/W1595456961","https://openalex.org/W1613874182","https://openalex.org/W1980177715","https://openalex.org/W1981525818","https://openalex.org/W1982529770","https://openalex.org/W1987927249","https://openalex.org/W2005192022","https://openalex.org/W2008880956","https://openalex.org/W2010790229","https://openalex.org/W2020692742","https://openalex.org/W2024914463","https://openalex.org/W2034711041","https://openalex.org/W2043310309","https://openalex.org/W2063460035","https://openalex.org/W2066550846","https://openalex.org/W2068055184","https://openalex.org/W2094647969","https://openalex.org/W2095624220","https://openalex.org/W2105045857","https://openalex.org/W2105346957","https://openalex.org/W2109863363","https://openalex.org/W2112969535","https://openalex.org/W2119859640","https://openalex.org/W2122917953","https://openalex.org/W2125995229","https://openalex.org/W2130413583","https://openalex.org/W2130427425","https://openalex.org/W2135155734","https://openalex.org/W2137062096","https://openalex.org/W2138657070","https://openalex.org/W2152456366","https://openalex.org/W2159897916","https://openalex.org/W2171496589","https://openalex.org/W2258276823","https://openalex.org/W2295923951","https://openalex.org/W2408675243","https://openalex.org/W2514317887","https://openalex.org/W2547267640","https://openalex.org/W2565334366","https://openalex.org/W2565399133","https://openalex.org/W2565511473","https://openalex.org/W2752885492","https://openalex.org/W3098546239","https://openalex.org/W4240835555","https://openalex.org/W4242321992","https://openalex.org/W4242556270"],"related_works":["https://openalex.org/W1966091859","https://openalex.org/W2139966078","https://openalex.org/W3019138974","https://openalex.org/W2081551198","https://openalex.org/W2294370068","https://openalex.org/W2095136535","https://openalex.org/W2105831091","https://openalex.org/W2531621405","https://openalex.org/W4251133021","https://openalex.org/W2510433231"],"abstract_inverted_index":{"We":[0,147,228],"present":[1],"TiML":[2,50],"(Timed":[3],"ML),":[4],"an":[5,104],"ML-like":[6],"functional":[7,197],"language":[8],"with":[9,86,202,221],"time-complexity":[10],"annotations":[11],"in":[12,66,233],"types.":[13],"It":[14],"uses":[15],"indexed":[16],"types":[17,45],"to":[18,35,62,83,113,143,173],"express":[19],"sizes":[20],"of":[21,30,55,157],"data":[22,84,182],"structures":[23,85,183],"and":[24,32,42,57,94,108,167,181,199,213],"upper":[25],"bounds":[26,203],"on":[27,134,224],"running":[28],"time":[29],"functions;":[31],"refinement":[33],"kinds":[34],"constrain":[36],"these":[37],"indices,":[38],"expressing":[39],"data-structure":[40],"invariants":[41],"pre/post-conditions.":[43],"Indexed":[44],"are":[46,101,111,216],"flexible":[47],"enough":[48,172],"that":[49,69,100,161],"avoids":[51],"a":[52,130,154],"built-in":[53],"notion":[54],"\u2274size,\u2275":[56],"the":[58,95,140],"programmer":[59,90],"can":[60,121],"choose":[61],"index":[63,109],"user-defined":[64],"datatypes":[65],"any":[67],"way":[68],"helps":[70],"her":[71],"analysis.":[72],"TiML's":[73,150,230],"distinguishing":[74],"characteristic":[75],"is":[76,170],"supporting":[77],"highly":[78],"automated":[79],"time-bound":[80],"verification":[81,98],"applicable":[82],"nontrivial":[87],"invariants.":[88],"The":[89,210],"provides":[91],"type":[92],"annotations,":[93],"typechecker":[96],"generates":[97],"conditions":[99],"discharged":[102],"by":[103,129,152],"SMT":[105],"solver.":[106],"Type":[107],"inference":[110],"supported":[112],"lower":[114],"annotation":[115,214],"burden,":[116],"and,":[117],"furthermore,":[118],"big-O":[119],"complexity":[120],"be":[122],"inferred":[123],"from":[124],"recurrences":[125],"generated":[126],"during":[127],"typechecking":[128],"recurrence":[131],"solver":[132],"based":[133],"heuristic":[135],"pattern":[136],"matching":[137],"(e.g.":[138],"using":[139],"Master":[141],"Theorem":[142],"handle":[144],"divide-and-conquer-like":[145],"recurrences).":[146],"have":[148],"evaluated":[149],"usability":[151],"implementing":[153],"broad":[155],"suite":[156],"case-study":[158],"modules,":[159],"demonstrating":[160],"TiML,":[162],"though":[163],"lacking":[164],"full":[165],"automation":[166],"theoretical":[168],"completeness,":[169],"versatile":[171],"verify":[174],"worst-case":[175],"and/or":[176],"amortized":[177],"complexities":[178],"for":[179],"algorithms":[180],"like":[184,204],"classic":[185],"list":[186],"operations,":[187],"merge":[188],"sort,":[189],"Dijkstra's":[190],"shortest-path":[191],"algorithm,":[192],"red-black":[193],"trees,":[194,196],"Braun":[195],"queues,":[198],"dynamic":[200],"tables":[201],"m":[205],"n":[206,208],"log":[207],".":[209],"learning":[211],"curve":[212],"burden":[215],"reasonable,":[217],"as":[218],"we":[219],"argue":[220],"empirical":[222],"results":[223],"our":[225],"case":[226],"studies.":[227],"formalized":[229],"type-soundness":[231],"proof":[232],"Coq.":[234]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":3},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":12},{"year":2020,"cited_by_count":11},{"year":2019,"cited_by_count":6},{"year":2018,"cited_by_count":5},{"year":2017,"cited_by_count":1}],"updated_date":"2026-03-15T09:29:46.208133","created_date":"2025-10-10T00:00:00"}
