{"id":"https://openalex.org/W3002727729","doi":"https://doi.org/10.1017/s0956796819000182","title":"Elaborating dependent (co)pattern matching: No pattern left behind","display_name":"Elaborating dependent (co)pattern matching: No pattern left behind","publication_year":2020,"publication_date":"2020-01-01","ids":{"openalex":"https://openalex.org/W3002727729","doi":"https://doi.org/10.1017/s0956796819000182","mag":"3002727729"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796819000182","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796819000182","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/F13CECDAB2B6200135D45452CA44A8B3/S0956796819000182a.pdf/div-class-title-elaborating-dependent-co-pattern-matching-no-pattern-left-behind-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/F13CECDAB2B6200135D45452CA44A8B3/S0956796819000182a.pdf/div-class-title-elaborating-dependent-co-pattern-matching-no-pattern-left-behind-div.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5065497509","display_name":"Jesper Cockx","orcid":"https://orcid.org/0000-0003-3862-4073"},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]},{"id":"https://openalex.org/I98358874","display_name":"Delft University of Technology","ror":"https://ror.org/02e2c7k09","country_code":"NL","type":"education","lineage":["https://openalex.org/I98358874"]}],"countries":["NL","SE"],"is_corresponding":true,"raw_author_name":"JESPER COCKX","raw_affiliation_strings":["Chalmers and Gothenburg University, Sweden (until October 2019) and TU Delft, Netherlands (from December 2019) (e-mail:"],"raw_orcid":"https://orcid.org/0000-0003-3862-4073","affiliations":[{"raw_affiliation_string":"Chalmers and Gothenburg University, Sweden (until October 2019) and TU Delft, Netherlands (from December 2019) (e-mail:","institution_ids":["https://openalex.org/I66862912","https://openalex.org/I98358874"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5008534457","display_name":"Andreas Abel","orcid":"https://orcid.org/0000-0003-0420-4492"},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"ANDREAS ABEL","raw_affiliation_strings":["Chalmers and Gothenburg University, Sweden (e-mail:"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Chalmers and Gothenburg University, Sweden (e-mail:","institution_ids":["https://openalex.org/I66862912"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5065497509"],"corresponding_institution_ids":["https://openalex.org/I66862912","https://openalex.org/I98358874"],"apc_list":null,"apc_paid":null,"fwci":0.136,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.52539426,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":"30","issue":null,"first_page":null,"last_page":null},"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/T10260","display_name":"Software Engineering Research","score":0.9994000196456909,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.996399998664856,"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.8929115533828735},{"id":"https://openalex.org/keywords/mathematical-proof","display_name":"Mathematical proof","score":0.7954167127609253},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.7932690978050232},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7357780933380127},{"id":"https://openalex.org/keywords/coinduction","display_name":"Coinduction","score":0.5911551713943481},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.506182849407196},{"id":"https://openalex.org/keywords/proof-assistant","display_name":"Proof assistant","score":0.4983558654785156},{"id":"https://openalex.org/keywords/tree","display_name":"Tree (set theory)","score":0.45510733127593994},{"id":"https://openalex.org/keywords/construct","display_name":"Construct (python library)","score":0.4538603127002716},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.4443855881690979},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4285026490688324},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4139328598976135},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.0884753167629242}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8929115533828735},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.7954167127609253},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.7932690978050232},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7357780933380127},{"id":"https://openalex.org/C40220748","wikidata":"https://www.wikidata.org/wiki/Q4227156","display_name":"Coinduction","level":3,"score":0.5911551713943481},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.506182849407196},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.4983558654785156},{"id":"https://openalex.org/C113174947","wikidata":"https://www.wikidata.org/wiki/Q2859736","display_name":"Tree (set theory)","level":2,"score":0.45510733127593994},{"id":"https://openalex.org/C2780801425","wikidata":"https://www.wikidata.org/wiki/Q5164392","display_name":"Construct (python library)","level":2,"score":0.4538603127002716},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.4443855881690979},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4285026490688324},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4139328598976135},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0884753167629242},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1017/s0956796819000182","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796819000182","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/F13CECDAB2B6200135D45452CA44A8B3/S0956796819000182a.pdf/div-class-title-elaborating-dependent-co-pattern-matching-no-pattern-left-behind-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:research.chalmers.se:515222","is_oa":false,"landing_page_url":"https://research.chalmers.se/en/publication/515222","pdf_url":null,"source":{"id":"https://openalex.org/S4306402469","display_name":"Chalmers Research (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""},{"id":"pmh:oai:tudelft.nl:uuid:ec7aa5db-57b1-44af-853c-aa6cd171f86e","is_oa":true,"landing_page_url":"http://resolver.tudelft.nl/uuid:ec7aa5db-57b1-44af-853c-aa6cd171f86e","pdf_url":null,"source":{"id":"https://openalex.org/S4306400906","display_name":"Research Repository (Delft University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I98358874","host_organization_name":"Delft University of Technology","host_organization_lineage":["https://openalex.org/I98358874"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"journal article"}],"best_oa_location":{"id":"doi:10.1017/s0956796819000182","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796819000182","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/F13CECDAB2B6200135D45452CA44A8B3/S0956796819000182a.pdf/div-class-title-elaborating-dependent-co-pattern-matching-no-pattern-left-behind-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.7900000214576721}],"awards":[{"id":"https://openalex.org/G4048376791","display_name":null,"funder_award_id":"621-2014-4864","funder_id":"https://openalex.org/F4320322581","funder_display_name":"Vetenskapsr\u00e5det"}],"funders":[{"id":"https://openalex.org/F4320322581","display_name":"Vetenskapsr\u00e5det","ror":"https://ror.org/03zttf063"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3002727729.pdf","grobid_xml":"https://content.openalex.org/works/W3002727729.grobid-xml"},"referenced_works_count":29,"referenced_works":["https://openalex.org/W1464569014","https://openalex.org/W1501891810","https://openalex.org/W1522049235","https://openalex.org/W1570978294","https://openalex.org/W1575675278","https://openalex.org/W1625481196","https://openalex.org/W1803100400","https://openalex.org/W1967431146","https://openalex.org/W1979392127","https://openalex.org/W2026557621","https://openalex.org/W2062887328","https://openalex.org/W2070324762","https://openalex.org/W2074592053","https://openalex.org/W2085552917","https://openalex.org/W2096970061","https://openalex.org/W2101274322","https://openalex.org/W2109326210","https://openalex.org/W2113232207","https://openalex.org/W2117477507","https://openalex.org/W2131024625","https://openalex.org/W2145108549","https://openalex.org/W2513071761","https://openalex.org/W2518300910","https://openalex.org/W2595416494","https://openalex.org/W2625673894","https://openalex.org/W2761091821","https://openalex.org/W2886328560","https://openalex.org/W4253158494","https://openalex.org/W6753589444"],"related_works":["https://openalex.org/W1819460135","https://openalex.org/W4295798319","https://openalex.org/W353523607","https://openalex.org/W3098927713","https://openalex.org/W1585401881","https://openalex.org/W2592977449","https://openalex.org/W1589866633","https://openalex.org/W2774311601","https://openalex.org/W3106543884","https://openalex.org/W2163981019"],"abstract_inverted_index":{"Abstract":[0],"In":[1,108],"a":[2,28,64,87,95,116,141,212,234],"dependently":[3,236],"typed":[4,237],"language,":[5],"we":[6,48,50,164,181,224],"can":[7,47,100],"guarantee":[8],"correctness":[9],"of":[10,86,89,118,172,192,214,233],"our":[11],"programmes":[12,70],"by":[13,37,42,73,82,136,157,186,194],"providing":[14],"formal":[15],"proofs.":[16],"To":[17,161],"check":[18,189],"them,":[19],"the":[20,52,121,169,173,183,202,220,229],"typechecker":[21],"elaborates":[22],"these":[23],"programs":[24],"and":[25,71,77,154,207,210,216],"proofs":[26,72],"into":[27],"low-level":[29],"core":[30,34,142],"language.":[31,238],"However,":[32],"this":[33,111,178],"language":[35,66,143],"is":[36,200],"nature":[38],"hard":[39],"to":[40,94,104,140,188],"understand":[41],"mere":[43],"humans,":[44],"so":[45,128],"how":[46],"know":[49],"proved":[51],"right":[53],"thing?":[54],"This":[55],"question":[56],"occurs":[57],"in":[58],"particular":[59],"for":[60,68],"dependent":[61,74,137],"copattern":[62,83,138],"matching,":[63],"powerful":[65],"construct":[67],"writing":[69],"case":[75,96,159],"analysis":[76],"mixed":[78],"induction/coinduction.":[79],"A":[80],"definition":[81],"matching":[84,139],"consists":[85],"list":[88],"clauses":[90],"that":[91,166],"are":[92],"elaborated":[93],"tree":[97],",":[98],"which":[99],"be":[101],"further":[102],"translated":[103],"primitive":[105],"eliminators":[106],".":[107],"previous":[109],"work":[110],"second":[112],"step":[113,123,227],"has":[114,124],"received":[115],"lot":[117],"attention,":[119],"but":[120],"first":[122],"been":[125],"mostly":[126],"ignored":[127],"far.":[129],"We":[130],"present":[131],"an":[132,151],"algorithm":[133,184],"elaborating":[134],"definitions":[135,193],"with":[144,219],"inductive":[145],"data":[146],"types,":[147,150],"coinductive":[148],"record":[149],"identity":[152],"type,":[153],"constants":[155],"defined":[156],"well-typed":[158],"trees.":[160],"ensure":[162],"correctness,":[163],"prove":[165],"elaboration":[167],"preserves":[168],"first-match":[170],"semantics":[171],"user":[174],"clauses.":[175],"Based":[176],"on":[177],"theoretical":[179],"work,":[180],"reimplement":[182],"used":[185],"Agda":[187],"left-hand":[190],"sides":[191],"pattern":[195],"matching.":[196],"The":[197],"new":[198],"implementation":[199,232],"at":[201],"same":[203],"time":[204],"more":[205],"general":[206],"less":[208],"complex,":[209],"fixes":[211],"number":[213],"bugs":[215],"usability":[217],"issues":[218],"old":[221],"version.":[222],"Thus,":[223],"take":[225],"another":[226],"towards":[228],"formally":[230],"verified":[231],"practical":[235]},"counts_by_year":[{"year":2022,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
