{"id":"https://openalex.org/W4387667031","doi":"https://doi.org/10.1145/3622809","title":"Mutually Iso-Recursive Subtyping","display_name":"Mutually Iso-Recursive Subtyping","publication_year":2023,"publication_date":"2023-10-16","ids":{"openalex":"https://openalex.org/W4387667031","doi":"https://doi.org/10.1145/3622809"},"language":"en","primary_location":{"id":"doi:10.1145/3622809","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622809","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622809","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://dl.acm.org/doi/pdf/10.1145/3622809","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5054382677","display_name":"Andreas Rossberg","orcid":"https://orcid.org/0000-0003-3137-3160"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Andreas Rossberg","raw_affiliation_strings":["Independent, Munich, Germany"],"raw_orcid":"https://orcid.org/0000-0003-3137-3160","affiliations":[{"raw_affiliation_string":"Independent, Munich, Germany","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5054382677"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.9033,"has_fulltext":true,"cited_by_count":7,"citation_normalized_percentile":{"value":0.79426724,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"7","issue":"OOPSLA2","first_page":"347","last_page":"373"},"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/T10260","display_name":"Software Engineering Research","score":0.9958000183105469,"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/T11424","display_name":"Security and Verification in Computing","score":0.9848999977111816,"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/subtyping","display_name":"Subtyping","score":0.9507598280906677},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.7817873358726501},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6238545179367065},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.609274685382843},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.5222785472869873},{"id":"https://openalex.org/keywords/type-theory","display_name":"Type theory","score":0.5023553371429443},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4611433148384094},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.42794176936149597},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.425667941570282},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.3341918885707855}],"concepts":[{"id":"https://openalex.org/C83852419","wikidata":"https://www.wikidata.org/wiki/Q2713292","display_name":"Subtyping","level":2,"score":0.9507598280906677},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.7817873358726501},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6238545179367065},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.609274685382843},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.5222785472869873},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.5023553371429443},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4611433148384094},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.42794176936149597},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.425667941570282},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.3341918885707855},{"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":1,"locations":[{"id":"doi:10.1145/3622809","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622809","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622809","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/3622809","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3622809","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622809","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":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4387667031.pdf","grobid_xml":"https://content.openalex.org/works/W4387667031.grobid-xml"},"referenced_works_count":19,"referenced_works":["https://openalex.org/W1513740842","https://openalex.org/W1557561422","https://openalex.org/W2000785911","https://openalex.org/W2022460813","https://openalex.org/W2027657506","https://openalex.org/W2033348393","https://openalex.org/W2115318924","https://openalex.org/W2123727486","https://openalex.org/W2131770667","https://openalex.org/W2133068450","https://openalex.org/W2167231542","https://openalex.org/W2170800927","https://openalex.org/W2593125519","https://openalex.org/W2597834528","https://openalex.org/W4232865065","https://openalex.org/W4234835746","https://openalex.org/W4287832609","https://openalex.org/W4387667031","https://openalex.org/W6684502292"],"related_works":["https://openalex.org/W1981572083","https://openalex.org/W1977820295","https://openalex.org/W1508337761","https://openalex.org/W2786712325","https://openalex.org/W4391259201","https://openalex.org/W2125274893","https://openalex.org/W2897341314","https://openalex.org/W1507779663","https://openalex.org/W1826736720","https://openalex.org/W2105528288"],"abstract_inverted_index":{"Iso-recursive":[0],"types":[1,130,154,204],"are":[2,39],"often":[3],"taken":[4],"as":[5,12,58,233],"a":[6,71,148,177,182,237],"type-theoretic":[7],"model":[8],"for":[9,59,127,191,236],"type":[10,54,85,104,194],"recursion":[11,90,101,137],"present":[13,147],"in":[14,20,26,78],"many":[15],"programming":[16],"languages,":[17],"e.g.,":[18],"classes":[19],"object-oriented":[21],"languages":[22],"or":[23,61,67,91,173],"algebraic":[24],"datatypes":[25],"functional":[27],"languages.":[28],"Their":[29],"main":[30],"advantage":[31],"over":[32],"an":[33,47],"equi-recursive":[34],"semantics":[35],"is":[36,46,131],"that":[37,75,99,156,189,201],"they":[38],"simpler":[40],"and":[41,102,161],"algorithmically":[42],"less":[43],"expensive,":[44],"which":[45],"important":[48],"consideration":[49],"when":[50,119],"the":[51,123,217,234],"cost":[52],"of":[53,143,152,171,185,219,240],"checking":[55,195],"matters,":[56],"such":[57,165],"intermediate":[60],"low-level":[62],"code":[63],"representations,":[64],"virtual":[65],"machines,":[66],"runtime":[68],"casts.":[69],"However,":[70],"closer":[72],"look":[73],"reveals":[74],"iso-recursion":[76],"cannot,":[77],"its":[79],"standard":[80],"form,":[81],"efficiently":[82],"express":[83,135,158],"essential":[84],"system":[86],"features":[87],"like":[88],"mutual":[89,100,136],"non-uniform":[92,103],"recursion.":[93],"While":[94],"it":[95],"has":[96,230],"been":[97,231],"folklore":[98],"parameterisation":[105],"can":[106,157,205],"nicely":[107],"be":[108,206],"handled":[109],"by":[110,199],"generalising":[111],"to":[112,134,141,208],"higher":[113,172],"kinds,":[114],"this":[115,186],"encoding":[116],"breaks":[117],"down":[118],"combined":[120],"with":[121,242],"subtyping:":[122],"classic":[124],"\u201cAmber\u201d":[125],"rule":[126],"subtyping":[128,163,168],"iso-recursive":[129,153,203],"too":[132],"weak":[133],"without":[138,164,196,225],"falling":[139],"back":[140],"encodings":[142],"quadratic":[144],"size.":[145],"We":[146],"foundational":[149],"core":[150],"calculus":[151,188],"withdeclaredsubtyping":[155],"both":[159],"inter-":[160],"intra-recursion":[162],"blowup,":[166],"including":[167],"between":[169],"constructors":[170],"mixed":[174],"kind.":[175],"In":[176],"second":[178],"step,":[179],"we":[180],"identify":[181],"syntactic":[183],"fragment":[184,214],"general":[187],"allows":[190],"more":[192],"efficient":[193],"\u201cdeep\u201d":[197],"substitutions,":[198],"observing":[200],"higher-kinded":[202],"inserted":[207],"\u201cguard\u201d":[209],"against":[210],"unwanted":[211],"\u03b2-reductions.":[212],"This":[213],"closely":[215],"resembles":[216],"structure":[218],"typical":[220],"nominal":[221,227],"subtype":[222],"systems,":[223],"but":[224],"requiring":[226],"semantics.":[228],"It":[229],"used":[232],"basis":[235],"proposed":[238],"extension":[239],"WebAssembly":[241],"recursive":[243],"types.":[244]},"counts_by_year":[{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":1}],"updated_date":"2026-08-21T09:56:20.448147","created_date":"2025-10-10T00:00:00"}
