{"id":"https://openalex.org/W4415248110","doi":"https://doi.org/10.1007/978-3-032-22720-1_7","title":"Code Generation via Meta-programming in Dependently Typed Proof Assistants","display_name":"Code Generation via Meta-programming in Dependently Typed Proof Assistants","publication_year":2026,"publication_date":"2026-01-01","ids":{"openalex":"https://openalex.org/W4415248110","doi":"https://doi.org/10.1007/978-3-032-22720-1_7"},"language":"en","primary_location":{"id":"doi:10.1007/978-3-032-22720-1_7","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-032-22720-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},"type":"book-chapter","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://doi.org/10.1007/978-3-032-22720-1_7","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5092172030","display_name":"Mathis Bouverot-Dupuis","orcid":null},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en sciences et technologies du num\u00e9rique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"government","lineage":["https://openalex.org/I1326498283"]},{"id":"https://openalex.org/I29607241","display_name":"\u00c9cole Normale Sup\u00e9rieure - PSL","ror":"https://ror.org/05a0dhs15","country_code":"FR","type":"other","lineage":["https://openalex.org/I2746051580","https://openalex.org/I29607241"]},{"id":"https://openalex.org/I4210149507","display_name":"\u00c9cole des Neurosciences de Paris","ror":"https://ror.org/05re0sm29","country_code":"FR","type":"other","lineage":["https://openalex.org/I39804081","https://openalex.org/I4210149507"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Mathis Bouverot-Dupuis","raw_affiliation_strings":["ENS, Paris, France","Inria, Paris, France","ENS-PSL - \u00c9cole normale sup\u00e9rieure - Paris (45, Rue d'Ulm - 75230 Paris cedex 05 - France)","CAMBIUM - Langages de programmation : syst\u00e8mes de types, concurrence, preuve de programme (48 Rue Barrault, 75013 Paris - France)"],"raw_orcid":"https://orcid.org/0009-0005-7817-9551","affiliations":[{"raw_affiliation_string":"ENS, Paris, France","institution_ids":["https://openalex.org/I4210149507","https://openalex.org/I29607241"]},{"raw_affiliation_string":"Inria, Paris, France","institution_ids":["https://openalex.org/I1326498283"]},{"raw_affiliation_string":"ENS-PSL - \u00c9cole normale sup\u00e9rieure - Paris (45, Rue d'Ulm - 75230 Paris cedex 05 - France)","institution_ids":["https://openalex.org/I29607241"]},{"raw_affiliation_string":"CAMBIUM - Langages de programmation : syst\u00e8mes de types, concurrence, preuve de programme (48 Rue Barrault, 75013 Paris - France)","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5080496189","display_name":"Yannick Forster","orcid":"https://orcid.org/0000-0002-8676-9819"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en sciences et technologies du num\u00e9rique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"government","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Yannick Forster","raw_affiliation_strings":["Inria, Paris, France","CAMBIUM - Langages de programmation : syst\u00e8mes de types, concurrence, preuve de programme (48 Rue Barrault, 75013 Paris - France)"],"raw_orcid":"https://orcid.org/0000-0002-8676-9819","affiliations":[{"raw_affiliation_string":"Inria, Paris, France","institution_ids":["https://openalex.org/I1326498283"]},{"raw_affiliation_string":"CAMBIUM - Langages de programmation : syst\u00e8mes de types, concurrence, preuve de programme (48 Rue Barrault, 75013 Paris - France)","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5092172030"],"corresponding_institution_ids":["https://openalex.org/I1326498283","https://openalex.org/I29607241","https://openalex.org/I4210149507"],"apc_list":{"value":5000,"currency":"EUR","value_usd":5392},"apc_paid":{"value":5000,"currency":"EUR","value_usd":5392},"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.01117166,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"166","last_page":"189"},"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.991100013256073,"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.991100013256073,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9848999977111816,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9700000286102295,"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/gas-meter-prover","display_name":"Gas meter prover","score":0.8026999831199646},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.6198999881744385},{"id":"https://openalex.org/keywords/representation","display_name":"Representation (politics)","score":0.5860999822616577},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.555899977684021},{"id":"https://openalex.org/keywords/term","display_name":"Term (time)","score":0.5101000070571899},{"id":"https://openalex.org/keywords/automation","display_name":"Automation","score":0.4837000072002411},{"id":"https://openalex.org/keywords/ideal","display_name":"Ideal (ethics)","score":0.4528000056743622},{"id":"https://openalex.org/keywords/proof-assistant","display_name":"Proof assistant","score":0.4415000081062317},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.43720000982284546}],"concepts":[{"id":"https://openalex.org/C159718280","wikidata":"https://www.wikidata.org/wiki/Q5526353","display_name":"Gas meter prover","level":3,"score":0.8026999831199646},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7383999824523926},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7232000231742859},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.6198999881744385},{"id":"https://openalex.org/C2776359362","wikidata":"https://www.wikidata.org/wiki/Q2145286","display_name":"Representation (politics)","level":3,"score":0.5860999822616577},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.555899977684021},{"id":"https://openalex.org/C61797465","wikidata":"https://www.wikidata.org/wiki/Q1188986","display_name":"Term (time)","level":2,"score":0.5101000070571899},{"id":"https://openalex.org/C115901376","wikidata":"https://www.wikidata.org/wiki/Q184199","display_name":"Automation","level":2,"score":0.4837000072002411},{"id":"https://openalex.org/C2776639384","wikidata":"https://www.wikidata.org/wiki/Q840396","display_name":"Ideal (ethics)","level":2,"score":0.4528000056743622},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.4415000081062317},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.43720000982284546},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.4207000136375427},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4004000127315521},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3889999985694885},{"id":"https://openalex.org/C124978682","wikidata":"https://www.wikidata.org/wiki/Q1201019","display_name":"Proof of concept","level":2,"score":0.38670000433921814},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.3783999979496002},{"id":"https://openalex.org/C206880738","wikidata":"https://www.wikidata.org/wiki/Q431667","display_name":"Automated theorem proving","level":2,"score":0.3538999855518341},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.337799996137619},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.3149999976158142},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.31139999628067017},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.30730000138282776},{"id":"https://openalex.org/C142998047","wikidata":"https://www.wikidata.org/wiki/Q193983","display_name":"Metalanguage","level":2,"score":0.288100004196167},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.2809000015258789},{"id":"https://openalex.org/C2318724","wikidata":"https://www.wikidata.org/wiki/Q852732","display_name":"Proof theory","level":3,"score":0.2793000042438507},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.26969999074935913},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.2574999928474426},{"id":"https://openalex.org/C106624574","wikidata":"https://www.wikidata.org/wiki/Q5270387","display_name":"Diagrammatic reasoning","level":2,"score":0.25130000710487366},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.2506999969482422}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1007/978-3-032-22720-1_7","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-032-22720-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},{"id":"pmh:oai:HAL:hal-05024207v1","is_oa":true,"landing_page_url":"https://hal.science/hal-05024207","pdf_url":null,"source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"Centre National de la Recherche Scientifique","host_organization_lineage":["https://openalex.org/I1294671590"],"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":"2025","raw_type":"Preprints, Working Papers, ..."}],"best_oa_location":{"id":"doi:10.1007/978-3-032-22720-1_7","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-032-22720-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Abstract":[0],"Dependently":[1],"typed":[2],"proof":[3,14],"assistants":[4],"offer":[5],"powerful":[6],"meta-programming":[7,23,104],"features,":[8],"which":[9,90],"allow":[10],"users":[11],"to":[12,50],"implement":[13],"automation":[15],"or":[16],"compile-time":[17],"code":[18],"generation.":[19],"This":[20,42],"paper":[21],"surveys":[22],"frameworks":[24,59],"in":[25,66,92],"Rocq,":[26],"Agda,":[27],"and":[28,65,73,86],"Lean,":[29],"with":[30,54,98],"seven":[31],"implementations":[32],"of":[33,58],"a":[34],"running":[35],"example:":[36],"deriving":[37],"instances":[38],"for":[39],"the":[40],"typeclass.":[41],"example":[43],"is":[44],"fairly":[45],"simple,":[46],"but":[47],"realistic":[48],"enough":[49],"highlight":[51],"recurring":[52],"difficulties":[53],"meta-programming:":[55],"conceptual":[56],"limitations":[57,79],"such":[60,80],"as":[61,75,77,81],"term":[62],"representation":[63,69],"\u2013":[64],"particular":[67],"binder":[68],"\u2013,":[70],"meta-language":[71],"expressiveness,":[72],"verifiability,":[74],"well":[76],"current":[78],"API":[82],"completeness,":[83],"learning":[84],"curve,":[85],"prover":[87],"state":[88],"management,":[89],"could":[91],"principle":[93],"be":[94],"remedied.":[95],"We":[96],"conclude":[97],"insights":[99],"regarding":[100],"features":[101],"an":[102],"ideal":[103],"framework":[105],"should":[106],"provide.":[107]},"counts_by_year":[],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-16T00:00:00"}
