{"id":"https://openalex.org/W2777305358","doi":"https://doi.org/10.1145/3158133","title":"Generating good generators for inductive relations","display_name":"Generating good generators for inductive relations","publication_year":2017,"publication_date":"2017-12-27","ids":{"openalex":"https://openalex.org/W2777305358","doi":"https://doi.org/10.1145/3158133","mag":"2777305358"},"language":"en","primary_location":{"id":"doi:10.1145/3158133","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158133","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158133?download=true","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":"https://dl.acm.org/doi/pdf/10.1145/3158133?download=true","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5075217645","display_name":"Leonidas Lampropoulos","orcid":"https://orcid.org/0000-0003-0269-9815"},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Leonidas Lampropoulos","raw_affiliation_strings":["University of Pennsylvania, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, USA","institution_ids":["https://openalex.org/I36788626"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011183925","display_name":"Zoe Paraskevopoulou","orcid":"https://orcid.org/0009-0001-2352-9818"},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Zoe Paraskevopoulou","raw_affiliation_strings":["Princeton University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Princeton University, USA","institution_ids":["https://openalex.org/I20089843"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5085361253","display_name":"Benjamin C. Pierce","orcid":"https://orcid.org/0000-0001-7839-1636"},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Benjamin C. Pierce","raw_affiliation_strings":["University of Pennsylvania, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, USA","institution_ids":["https://openalex.org/I36788626"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":6.4615,"has_fulltext":true,"cited_by_count":41,"citation_normalized_percentile":{"value":0.96293909,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"2","issue":"POPL","first_page":"1","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":1.0,"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"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":1.0,"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/T10260","display_name":"Software Engineering Research","score":0.9984999895095825,"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9984999895095825,"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.726248562335968},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6734423041343689},{"id":"https://openalex.org/keywords/generator","display_name":"Generator (circuit theory)","score":0.6595574021339417},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.5964370369911194},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5401791930198669},{"id":"https://openalex.org/keywords/random-testing","display_name":"Random testing","score":0.5222995281219482},{"id":"https://openalex.org/keywords/property","display_name":"Property (philosophy)","score":0.4977443516254425},{"id":"https://openalex.org/keywords/extension","display_name":"Extension (predicate logic)","score":0.4892082214355469},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.47860878705978394},{"id":"https://openalex.org/keywords/relation","display_name":"Relation (database)","score":0.47474175691604614},{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.4604826867580414},{"id":"https://openalex.org/keywords/proof-assistant","display_name":"Proof assistant","score":0.4477963149547577},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.44130265712738037},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.430025577545166},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4125375747680664},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3984210789203644},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.22151479125022888},{"id":"https://openalex.org/keywords/test-case","display_name":"Test case","score":0.17172971367835999}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.726248562335968},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6734423041343689},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.6595574021339417},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.5964370369911194},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5401791930198669},{"id":"https://openalex.org/C106159264","wikidata":"https://www.wikidata.org/wiki/Q17146789","display_name":"Random testing","level":4,"score":0.5222995281219482},{"id":"https://openalex.org/C189950617","wikidata":"https://www.wikidata.org/wiki/Q937228","display_name":"Property (philosophy)","level":2,"score":0.4977443516254425},{"id":"https://openalex.org/C2778029271","wikidata":"https://www.wikidata.org/wiki/Q5421931","display_name":"Extension (predicate logic)","level":2,"score":0.4892082214355469},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.47860878705978394},{"id":"https://openalex.org/C25343380","wikidata":"https://www.wikidata.org/wiki/Q277521","display_name":"Relation (database)","level":2,"score":0.47474175691604614},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.4604826867580414},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.4477963149547577},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.44130265712738037},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.430025577545166},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4125375747680664},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3984210789203644},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.22151479125022888},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.17172971367835999},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.0},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0},{"id":"https://openalex.org/C152877465","wikidata":"https://www.wikidata.org/wiki/Q208042","display_name":"Regression analysis","level":2,"score":0.0},{"id":"https://openalex.org/C163258240","wikidata":"https://www.wikidata.org/wiki/Q25342","display_name":"Power (physics)","level":2,"score":0.0},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.0},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3158133","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158133","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158133?download=true","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/3158133","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3158133","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3158133?download=true","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/G1285827851","display_name":"SHF: Medium: Collaborative Research: Principled Optimizing Compilation of Dependently Typed Languages","funder_award_id":"1407794","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2090296422","display_name":"SHF: Small: Random Testing for Language Design","funder_award_id":"1421243","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G2368694300","display_name":null,"funder_award_id":"1421243,1521523,1407794","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6080364906","display_name":"Collaborative Research:  Expeditions in Computing:  The Science of Deep Specification","funder_award_id":"1521523","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/F4320309370","display_name":"University of Pennsylvania","ror":"https://ror.org/00b30xv10"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2777305358.pdf","grobid_xml":"https://content.openalex.org/works/W2777305358.grobid-xml"},"referenced_works_count":37,"referenced_works":["https://openalex.org/W37906187","https://openalex.org/W126590973","https://openalex.org/W315983254","https://openalex.org/W1507441114","https://openalex.org/W1534887562","https://openalex.org/W1558115254","https://openalex.org/W1585088833","https://openalex.org/W1799755352","https://openalex.org/W1965194038","https://openalex.org/W1987557201","https://openalex.org/W1990069336","https://openalex.org/W1992067231","https://openalex.org/W1992085465","https://openalex.org/W2005957051","https://openalex.org/W2029976661","https://openalex.org/W2059895047","https://openalex.org/W2095144546","https://openalex.org/W2103139643","https://openalex.org/W2103999647","https://openalex.org/W2118155805","https://openalex.org/W2119717320","https://openalex.org/W2125126351","https://openalex.org/W2135841285","https://openalex.org/W2139474931","https://openalex.org/W2145400374","https://openalex.org/W2159192310","https://openalex.org/W2171269531","https://openalex.org/W2176407799","https://openalex.org/W2215196193","https://openalex.org/W2239429731","https://openalex.org/W2329154668","https://openalex.org/W2396983327","https://openalex.org/W2476059279","https://openalex.org/W2911450990","https://openalex.org/W3106469537","https://openalex.org/W4244488020","https://openalex.org/W4246769448"],"related_works":["https://openalex.org/W1793478138","https://openalex.org/W2531895878","https://openalex.org/W2367359933","https://openalex.org/W2057474779","https://openalex.org/W2150616836","https://openalex.org/W1492479631","https://openalex.org/W2521829344","https://openalex.org/W1886863601","https://openalex.org/W4250882027","https://openalex.org/W4235947164"],"abstract_inverted_index":{"Property-based":[0],"random":[1,26,43],"testing":[2,15,38,189],"(PBRT)":[3],"is":[4,160],"widely":[5],"used":[6],"in":[7,190,207],"the":[8,84,98,101,107,137,145,168,202,205],"functional":[9],"programming":[10,214],"and":[11,51,76,163],"verification":[12],"communities.":[13],"For":[14],"simple":[16,74],"properties,":[17,36],"PBRT":[18],"tools":[19],"such":[20,64],"as":[21,110,179],"QuickCheck":[22,56],"can":[23,70,86],"automatically":[24,197],"generate":[25],"inputs":[27,44],"of":[28,60,100,106,129,140,182,204],"a":[29,48,58,126,210],"given":[30,49],"type.":[31],"But":[32],"for":[33,42,62,73,79,187,201],"more":[34,80],"complex":[35,81],"effective":[37],"often":[39,87],"demands":[40],"generators":[41,65,200],"that":[45,156],"belong":[46],"to":[47,119,124,151,167],"type":[50],"satisfy":[52],"some":[53],"logical":[54],"condition.":[55],"provides":[57],"library":[59],"combinators":[61],"building":[63],"by":[66,96,196],"hand,":[67],"but":[68],"this":[69],"be":[71,88],"tedious":[72],"conditions":[75],"error":[77],"prone":[78],"ones.":[82],"Fortunately,":[83],"process":[85],"automated.":[89],"The":[90],"most":[91],"prominent":[92],"method,":[93],"narrowing,":[94],"works":[95],"traversing":[97],"structure":[99,109],"condition,":[102],"lazily":[103],"instantiating":[104],"parts":[105],"data":[108],"constraints":[111],"involving":[112],"them":[113],"are":[114],"met.":[115],"We":[116,175,192],"show":[117],"how":[118],"use":[120],"ideas":[121],"from":[122],"narrowing":[123],"compile":[125],"large":[127],"subclass":[128],"Coq's":[130],"inductive":[131,169],"relations":[132],"into":[133],"efficient":[134],"generators,":[135],"avoiding":[136],"interpretive":[138],"overhead":[139],"previous":[141],"implementations.":[142],"More":[143],"importantly,":[144],"same":[146],"compilation":[147],"technique":[148],"allows":[149],"us":[150],"produce":[152],"proof":[153],"terms":[154],"certifying":[155],"each":[157],"derived":[158,173],"generator":[159],"good---i.e.,":[161],"sound":[162],"complete":[164],"with":[165],"respect":[166],"relation":[170],"it":[171],"was":[172],"from.":[174],"implement":[176],"our":[177,194],"algorithm":[178],"an":[180,184],"extension":[181],"QuickChick,":[183],"existing":[185],"tool":[186],"property-based":[188],"Coq.":[191],"evaluate":[193],"method":[195],"deriving":[198],"good":[199],"majority":[203],"specifications":[206],"Software":[208],"Foundations,":[209],"formalized":[211],"textbook":[212],"on":[213],"language":[215],"foundations.":[216]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":8},{"year":2022,"cited_by_count":7},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":4},{"year":2019,"cited_by_count":5},{"year":2018,"cited_by_count":4}],"updated_date":"2026-07-17T09:13:05.818461","created_date":"2025-10-10T00:00:00"}
