{"id":"https://openalex.org/W4388429102","doi":"https://doi.org/10.1017/s0956796823000059","title":"Contract lenses: Reasoning about bidirectional programs via calculation","display_name":"Contract lenses: Reasoning about bidirectional programs via calculation","publication_year":2023,"publication_date":"2023-01-01","ids":{"openalex":"https://openalex.org/W4388429102","doi":"https://doi.org/10.1017/s0956796823000059"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796823000059","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/43F612938DAA399A9D35193FB6278F56/S0956796823000059a.pdf/div-class-title-contract-lenses-reasoning-about-bidirectional-programs-via-calculation-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_indexed_in_scopus":true,"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},"type":"article","type_crossref":"journal-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/43F612938DAA399A9D35193FB6278F56/S0956796823000059a.pdf/div-class-title-contract-lenses-reasoning-about-bidirectional-programs-via-calculation-div.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5103036161","display_name":"HANLIANG ZHANG","orcid":"https://orcid.org/0000-0003-3309-0439"},"institutions":[{"id":"https://openalex.org/I36234482","display_name":"University of Bristol","ror":"https://ror.org/0524sp257","country_code":"GB","type":"funder","lineage":["https://openalex.org/I36234482"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"HANLIANG ZHANG","raw_affiliation_strings":["University of Bristol, Bristol BS8 1QU, UK (e-mail:"],"affiliations":[{"raw_affiliation_string":"University of Bristol, Bristol BS8 1QU, UK (e-mail:","institution_ids":["https://openalex.org/I36234482"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5103098209","display_name":"Wenhao Tang","orcid":"https://orcid.org/0009-0000-6589-3821"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"funder","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"WENHAO TANG","raw_affiliation_strings":["The University of Edinburgh, Edinburgh EH8 9AB, UK (e-mail:"],"affiliations":[{"raw_affiliation_string":"The University of Edinburgh, Edinburgh EH8 9AB, UK (e-mail:","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039219488","display_name":"Ruifeng Xie","orcid":"https://orcid.org/0000-0001-7201-1954"},"institutions":[{"id":"https://openalex.org/I20231570","display_name":"Peking University","ror":"https://ror.org/02v51f717","country_code":"CN","type":"funder","lineage":["https://openalex.org/I20231570"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"RUIFENG XIE","raw_affiliation_strings":["Peking University, Beijing, China (e-mail:"],"affiliations":[{"raw_affiliation_string":"Peking University, Beijing, China (e-mail:","institution_ids":["https://openalex.org/I20231570"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5074307489","display_name":"Meng Wang","orcid":"https://orcid.org/0000-0001-7780-630X"},"institutions":[{"id":"https://openalex.org/I36234482","display_name":"University of Bristol","ror":"https://ror.org/0524sp257","country_code":"GB","type":"funder","lineage":["https://openalex.org/I36234482"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"MENG WANG","raw_affiliation_strings":["University of Bristol, Bristol BS8 1QU, UK (e-mail:"],"affiliations":[{"raw_affiliation_string":"University of Bristol, Bristol BS8 1QU, UK (e-mail:","institution_ids":["https://openalex.org/I36234482"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5102717988","display_name":"Zhenjiang Hu","orcid":"https://orcid.org/0000-0002-9034-205X"},"institutions":[{"id":"https://openalex.org/I20231570","display_name":"Peking University","ror":"https://ror.org/02v51f717","country_code":"CN","type":"funder","lineage":["https://openalex.org/I20231570"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"ZHENJIANG HU","raw_affiliation_strings":["Peking University, Beijing, China (e-mail:"],"affiliations":[{"raw_affiliation_string":"Peking University, Beijing, China (e-mail:","institution_ids":["https://openalex.org/I20231570"]}]}],"institution_assertions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.542,"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":3,"citation_normalized_percentile":{"value":0.499378,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":82,"max":85},"biblio":{"volume":"33","issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9996,"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.9996,"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.9984,"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/T10260","display_name":"Software Engineering Research","score":0.9972,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.5831331},{"id":"https://openalex.org/keywords/through-the-lens-metering","display_name":"Through-the-lens metering","score":0.5441209}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8104285},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.7358302},{"id":"https://openalex.org/C15336307","wikidata":"https://www.wikidata.org/wiki/Q1766051","display_name":"Lens (geology)","level":2,"score":0.73497826},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.63744897},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.5831331},{"id":"https://openalex.org/C43091099","wikidata":"https://www.wikidata.org/wiki/Q1067788","display_name":"Through-the-lens metering","level":3,"score":0.5441209},{"id":"https://openalex.org/C2776436953","wikidata":"https://www.wikidata.org/wiki/Q5163215","display_name":"Consistency (knowledge bases)","level":2,"score":0.4122503},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4059323},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.33015686},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.22161874},{"id":"https://openalex.org/C120665830","wikidata":"https://www.wikidata.org/wiki/Q14620","display_name":"Optics","level":1,"score":0.11768952},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796823000059","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/43F612938DAA399A9D35193FB6278F56/S0956796823000059a.pdf/div-class-title-contract-lenses-reasoning-about-bidirectional-programs-via-calculation-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_indexed_in_scopus":true,"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}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796823000059","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/43F612938DAA399A9D35193FB6278F56/S0956796823000059a.pdf/div-class-title-contract-lenses-reasoning-about-bidirectional-programs-via-calculation-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_indexed_in_scopus":true,"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},"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":34,"referenced_works":["https://openalex.org/W1558180172","https://openalex.org/W1559314111","https://openalex.org/W1560650189","https://openalex.org/W1568396250","https://openalex.org/W1650869244","https://openalex.org/W1966981171","https://openalex.org/W1967402308","https://openalex.org/W1968796785","https://openalex.org/W1975580206","https://openalex.org/W1996164638","https://openalex.org/W2000616678","https://openalex.org/W2019746614","https://openalex.org/W2024951218","https://openalex.org/W2037471787","https://openalex.org/W2046832714","https://openalex.org/W2092546644","https://openalex.org/W2103463094","https://openalex.org/W2113582770","https://openalex.org/W2121357705","https://openalex.org/W2146462464","https://openalex.org/W2166159458","https://openalex.org/W2237682209","https://openalex.org/W2795350824","https://openalex.org/W2796830478","https://openalex.org/W2898656866","https://openalex.org/W2925654996","https://openalex.org/W2946969590","https://openalex.org/W3047089539","https://openalex.org/W3086070734","https://openalex.org/W3123540170","https://openalex.org/W3143423357","https://openalex.org/W4244238952","https://openalex.org/W4245100030","https://openalex.org/W4253929418"],"related_works":["https://openalex.org/W4321517506","https://openalex.org/W4321486002","https://openalex.org/W4251444559","https://openalex.org/W2390629623","https://openalex.org/W2386987825","https://openalex.org/W2348285641","https://openalex.org/W2294467482","https://openalex.org/W2065116633","https://openalex.org/W2050941231","https://openalex.org/W1992121547"],"abstract_inverted_index":{"Abstract":[0],"Bidirectional":[1],"transformations":[2],"(BXs)":[3],"are":[4],"a":[5,64,77,103],"mechanism":[6],"for":[7],"maintaining":[8],"consistency":[9],"between":[10],"multiple":[11],"representations":[12],"of":[13,35,47,55,105,113,149],"related":[14],"data.":[15],"The":[16],"lens":[17,24],"framework,":[18],"which":[19,98],"usually":[20],"constructs":[21],"BXs":[22],"from":[23,71],"combinators,":[25],"has":[26],"become":[27],"the":[28,43,50,147],"mainstream":[29],"approach":[30,66,79],"to":[31,67,80,107,138],"BX":[32],"programming":[33],"because":[34],"its":[36],"modularity":[37],"and":[38,53,110,129,132,141],"correctness":[39],"by":[40,85],"construction.":[41],"However,":[42],"involved":[44],"bidirectional":[45,90,135],"behaviors":[46],"lenses":[48,70,96,101,157],"make":[49],"equational":[51],"reasoning":[52,81],"optimization":[54],"them":[56],"much":[57],"harder":[58],"than":[59],"unidirectional":[60],"programs.":[61],"We":[62,116,145],"propose":[63,94],"novel":[65],"deriving":[68],"efficient":[69],"clear":[72],"specifications":[73],"via":[74],"program":[75,91],"calculation,":[76,92],"correct-by-construction":[78],"about":[82,140],"functional":[83],"programs":[84],"algebraic":[86],"laws.":[87],"To":[88],"support":[89],"we":[93],"contract":[95,143,156],",":[97,128,131],"extend":[99],"conventional":[100],"with":[102,158],"pair":[104],"predicates":[106],"enable":[108],"safe":[109],"modular":[111],"composition":[112],"partial":[114],"lenses.":[115,144],"define":[117],"several":[118,134],"contract-lens":[119],"combinators":[120],"capturing":[121],"common":[122],"computation":[123],"patterns":[124],"including":[125],"$\\textit{fold},":[126],"\\textit{filter},\\textit{map}$":[127],"$\\textit{scan}$":[130],"develop":[133],"calculation":[136,152],"laws":[137],"reason":[139],"optimize":[142],"demonstrate":[146],"effectiveness":[148],"our":[150],"new":[151],"framework":[153],"based":[154],"on":[155],"nontrivial":[159],"examples.":[160]},"abstract_inverted_index_v3":null,"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W4388429102","counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2022,"cited_by_count":1}],"updated_date":"2025-04-22T11:13:37.715042","created_date":"2023-11-07"}