A type and scope safe universe of syntaxes with binding: their semantics and proofs

Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of α-equivalence, capture avoiding substitution, typing contexts, runtime environments, and so on. In the past, implementing and reasoning about programming...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages Jg. 2; H. ICFP; S. 1 - 30
Hauptverfasser: Allais, Guillaume, Atkey, Robert, Chapman, James, McBride, Conor, McKinna, James
Format: Journal Article
Sprache:Englisch
Veröffentlicht: 01.09.2018
ISSN:2475-1421, 2475-1421
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Abstract Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of α-equivalence, capture avoiding substitution, typing contexts, runtime environments, and so on. In the past, implementing and reasoning about programming languages required careful handling to maintain the correct behaviour of bound variables. Modern programming languages include features that enable constraints like scope safety to be expressed in types. Nevertheless, the programmer is still forced to write the same boilerplate over again for each new implementation of a scope safe operation (e.g., renaming, substitution, desugaring, printing, etc.), and then again for correctness proofs. We present an expressive universe of syntaxes with binding and demonstrate how to (1) implement scope safe traversals once and for all by generic programming; and (2) how to derive properties of these traversals by generic proving. Our universe description, generic traversals and proofs, and our examples have all been formalised in Agda and are available in the accompanying material. NB. we recommend printing the paper in colour to benefit from syntax highlighting in code fragments.
AbstractList Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of α-equivalence, capture avoiding substitution, typing contexts, runtime environments, and so on. In the past, implementing and reasoning about programming languages required careful handling to maintain the correct behaviour of bound variables. Modern programming languages include features that enable constraints like scope safety to be expressed in types. Nevertheless, the programmer is still forced to write the same boilerplate over again for each new implementation of a scope safe operation (e.g., renaming, substitution, desugaring, printing, etc.), and then again for correctness proofs. We present an expressive universe of syntaxes with binding and demonstrate how to (1) implement scope safe traversals once and for all by generic programming; and (2) how to derive properties of these traversals by generic proving. Our universe description, generic traversals and proofs, and our examples have all been formalised in Agda and are available in the accompanying material. NB. we recommend printing the paper in colour to benefit from syntax highlighting in code fragments.
Author Allais, Guillaume
McKinna, James
Chapman, James
McBride, Conor
Atkey, Robert
Author_xml – sequence: 1
  givenname: Guillaume
  surname: Allais
  fullname: Allais, Guillaume
  organization: Radboud University Nijmegen, Netherlands
– sequence: 2
  givenname: Robert
  surname: Atkey
  fullname: Atkey, Robert
  organization: University of Strathclyde, UK
– sequence: 3
  givenname: James
  surname: Chapman
  fullname: Chapman, James
  organization: University of Strathclyde, UK
– sequence: 4
  givenname: Conor
  surname: McBride
  fullname: McBride, Conor
  organization: University of Strathclyde, UK
– sequence: 5
  givenname: James
  surname: McKinna
  fullname: McKinna, James
  organization: University of Edinburgh, UK
BookMark eNplkEtLAzEUhYNUsNbiX8jO1Wie83BXii8ouFDXw53MjY20yZDER_-9o3YhujofnI-zOMdk4oNHQk45O-dc6QspZFnV-oBMhap0wZXgk198ROYpvTDGeCNVLZspeVjQvBuQgu9pMmGkBBbpq3dvGBPSYGna-QwfmOi7y2vaOd87_3xJ8xpdpAm34LMz6XthiCHYdEIOLWwSzvc5I0_XV4_L22J1f3O3XKwKI3SdC2gYl4CsAqhQlWWvuGwUWA1Np0wnpEZmRQmyEghVWWtgprNi7LTua8vkjJz97JoYUopo2yG6LcRdy1n7dUe7v2M0iz-mcRmyCz5HcJt__ieEPGKC
CitedBy_id crossref_primary_10_1145_3704893
crossref_primary_10_1145_3747524
crossref_primary_10_1145_3689786
crossref_primary_10_1007_s10817_023_09672_4
crossref_primary_10_1145_3408972
crossref_primary_10_1145_3563355
crossref_primary_10_1145_3290335
crossref_primary_10_1007_s10817_019_09522_2
crossref_primary_10_1017_S0956796825100087
Cites_doi 10.1017/S0956796897002864
10.1017/S0956796807006326
10.1007/978-3-642-02273-9_11
10.1145/2976002.2976013
10.1007/978-3-662-49498-1_17
10.1145/3158104
10.1016/0168-0072(91)90067-V
10.1145/2544174.2500618
10.1023/A:1019964114625
10.1145/1863543.1863547
10.1145/2480359.2429075
10.1017/S095679681300018X
10.1007/978-3-642-28869-2_22
10.1016/S0049-237X(09)70189-2
10.1145/3167098
10.1016/0167-6423(94)00022-0
10.1007/s10817-011-9219-0
10.1007/978-3-642-39634-2_29
10.1145/3167081
10.1007/11617990_16
10.1145/1411203.1411226
10.1017/S0956796899003366
10.1017/S0956796808006758
10.1007/978-3-319-21401-6_26
10.4204/EPTCS.43.2
10.5555/2370077.2370079
10.1145/242224.242477
10.1145/3018610.3018613
10.1007/11541868_4
10.1007/s10817-011-9225-2
10.5555/647100.717294
10.1145/345099.345100
10.5555/648334.755596
10.1007/s001650200016
10.1007/978-3-642-12032-9_21
ContentType Journal Article
DBID AAYXX
CITATION
DOI 10.1145/3236785
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 30
ExternalDocumentID 10_1145_3236785
GroupedDBID AAKMM
AAYFX
AAYXX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
CITATION
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
ID FETCH-LOGICAL-c258t-a9013ae07aa7e466d41394af5a9b4cb235e0f26a372ea7685a0cbf2b4c55d8f03
ISICitedReferencesCount 1
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000461309200024&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Sat Nov 29 07:49:44 EST 2025
Tue Nov 18 21:52:08 EST 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue ICFP
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c258t-a9013ae07aa7e466d41394af5a9b4cb235e0f26a372ea7685a0cbf2b4c55d8f03
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3236785
PageCount 30
ParticipantIDs crossref_primary_10_1145_3236785
crossref_citationtrail_10_1145_3236785
PublicationCentury 2000
PublicationDate 2018-09-01
PublicationDateYYYYMMDD 2018-09-01
PublicationDate_xml – month: 09
  year: 2018
  text: 2018-09-01
  day: 01
PublicationDecade 2010
PublicationTitle Proceedings of ACM on programming languages
PublicationYear 2018
References e_1_2_2_4_1
e_1_2_2_24_1
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_22_1
Fiore Marcelo (e_1_2_2_30_1) 1999
Norell Ulf (e_1_2_2_48_1)
e_1_2_2_2_1
e_1_2_2_41_1
e_1_2_2_43_1
e_1_2_2_8_1
e_1_2_2_45_1
e_1_2_2_26_1
e_1_2_2_47_1
Abel Andreas (e_1_2_2_3_1) 2017
Altenkirch Thorsten (e_1_2_2_10_1)
e_1_2_2_13_1
e_1_2_2_38_1
e_1_2_2_11_1
Dybjer Peter (e_1_2_2_28_1)
e_1_2_2_51_1
e_1_2_2_19_1
e_1_2_2_17_1
e_1_2_2_34_1
e_1_2_2_36_1
Ghani Neil (e_1_2_2_32_1) 2006; 2006
de Bruijn Nicolaas Govert (e_1_2_2_25_1)
e_1_2_2_5_1
e_1_2_2_21_1
e_1_2_2_1_1
Dybjer Peter (e_1_2_2_27_1) 1994
e_1_2_2_40_1
e_1_2_2_42_1
e_1_2_2_9_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_46_1
Benke Marcin (e_1_2_2_15_1) 2003; 10
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_12_1
e_1_2_2_39_1
Altenkirch Thorsten (e_1_2_2_7_1) 2014; 7
e_1_2_2_52_1
e_1_2_2_31_1
e_1_2_2_18_1
e_1_2_2_33_1
e_1_2_2_16_1
e_1_2_2_35_1
e_1_2_2_50_1
References_xml – ident: e_1_2_2_35_1
  doi: 10.1017/S0956796897002864
– ident: e_1_2_2_44_1
  doi: 10.1017/S0956796807006326
– ident: e_1_2_2_33_1
  doi: 10.1007/978-3-642-02273-9_11
– volume-title: A Finite Axiomatization of Inductive-Recursive Definitions
  ident: e_1_2_2_28_1
– ident: e_1_2_2_49_1
  doi: 10.1145/2976002.2976013
– ident: e_1_2_2_29_1
– volume: 2006
  volume-title: Proc. of 7th Symp. on Trends in Functional Programming, TFP
  year: 2006
  ident: e_1_2_2_32_1
– ident: e_1_2_2_39_1
  doi: 10.1007/978-3-662-49498-1_17
– ident: e_1_2_2_13_1
  doi: 10.1145/3158104
– ident: e_1_2_2_11_1
– ident: e_1_2_2_36_1
– ident: e_1_2_2_46_1
  doi: 10.1016/0168-0072(91)90067-V
– volume-title: Monadic presentations of lambda terms using generalized inductive types
  ident: e_1_2_2_10_1
– ident: e_1_2_2_38_1
  doi: 10.1145/2544174.2500618
– ident: e_1_2_2_24_1
  doi: 10.1023/A:1019964114625
– ident: e_1_2_2_19_1
  doi: 10.1145/1863543.1863547
– ident: e_1_2_2_4_1
  doi: 10.1145/2480359.2429075
– ident: e_1_2_2_43_1
– ident: e_1_2_2_18_1
  doi: 10.1017/S095679681300018X
– ident: e_1_2_2_40_1
  doi: 10.1007/978-3-642-28869-2_22
– ident: e_1_2_2_41_1
  doi: 10.1016/S0049-237X(09)70189-2
– volume-title: Indagationes Mathematicae
  ident: e_1_2_2_25_1
– ident: e_1_2_2_37_1
  doi: 10.1145/3167098
– ident: e_1_2_2_14_1
  doi: 10.1016/0167-6423(94)00022-0
– ident: e_1_2_2_16_1
  doi: 10.1007/s10817-011-9219-0
– volume: 10
  start-page: 4
  year: 2003
  ident: e_1_2_2_15_1
  article-title: Universes for Generic Programs and Proofs in Dependent Type Theory
  publication-title: Nordic J. of Computing
– ident: e_1_2_2_51_1
  doi: 10.1007/978-3-642-39634-2_29
– ident: e_1_2_2_45_1
  doi: 10.1145/3167081
– ident: e_1_2_2_47_1
  doi: 10.1007/11617990_16
– ident: e_1_2_2_22_1
  doi: 10.1145/1411203.1411226
– ident: e_1_2_2_17_1
  doi: 10.1017/S0956796899003366
– ident: e_1_2_2_42_1
– ident: e_1_2_2_52_1
  doi: 10.1017/S0956796808006758
– ident: e_1_2_2_26_1
  doi: 10.1007/978-3-319-21401-6_26
– ident: e_1_2_2_2_1
  doi: 10.4204/EPTCS.43.2
– volume-title: POPLMark Reloaded. Proceedings of the Logical Frameworks and Meta-Languages: Theory and Practice Workshop
  year: 2017
  ident: e_1_2_2_3_1
– ident: e_1_2_2_1_1
  doi: 10.5555/2370077.2370079
– ident: e_1_2_2_34_1
  doi: 10.1145/242224.242477
– ident: e_1_2_2_5_1
  doi: 10.1145/3018610.3018613
– ident: e_1_2_2_12_1
  doi: 10.1007/11541868_4
– ident: e_1_2_2_21_1
  doi: 10.1007/s10817-011-9225-2
– volume-title: AFP Summer School
  ident: e_1_2_2_48_1
– ident: e_1_2_2_9_1
  doi: 10.5555/647100.717294
– ident: e_1_2_2_50_1
  doi: 10.1145/345099.345100
– volume-title: Inductive families. Formal aspects of computing 6, 4
  year: 1994
  ident: e_1_2_2_27_1
– ident: e_1_2_2_8_1
  doi: 10.5555/648334.755596
– ident: e_1_2_2_31_1
  doi: 10.1007/s001650200016
– ident: e_1_2_2_6_1
  doi: 10.1007/978-3-642-12032-9_21
– volume-title: Proc. 14 th LICS Conf. IEEE, Computer Society Press, 193–202
  year: 1999
  ident: e_1_2_2_30_1
– volume: 7
  start-page: 1
  year: 2014
  ident: e_1_2_2_7_1
  article-title: Relative Monads Formalised
  publication-title: Journal of Formalized Reasoning
SSID ssj0001934839
Score 2.2449982
Snippet Almost every programming language’s syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of...
SourceID crossref
SourceType Enrichment Source
Index Database
StartPage 1
Title A type and scope safe universe of syntaxes with binding: their semantics and proofs
Volume 2
WOSCitedRecordID wos000461309200024&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9QwELaWwoFLeavlJR8Ql1UgcezE5hZWLSDRaiWK1NvKSWxp1W62ymar5cI_4b8yfiTrLkjAgUsUOXYUeT6PJ-NvZhB6lShYBrquYX1rGVFKWVRmmYaFJ1JzpMhjaZO4fs5PT_n5uZiORj_6WJjry7xp-GYjrv6rqKENhG1CZ_9B3MNLoQHuQehwBbHD9a8EXzi3qnWIm5CT8UpqNV47Aob1EKy-NZ3cKB_YVs5tYIsneMzb8UotYLr77M2gYWGfDG3Y6bDnWRpIMTkxJw6e6LUwrofeCTrY6wWAzSUz-LA2ZY7Wiy3Sugt_dGU53gHdoI-LsETerf_wfTt3qYIny2bZhl6LhA-0LK_cCM1ZlFAXHf1G_abNa2cSgPDT5HgaKNsk2LXd4c6v-wE1qTNSk6bOVQa6mXF7Zycc-IkuWpvN_MBb6DbJmTCMwZPvgQtPpJTbWnXDl7uwbDP2rR8b2DuB4XJ2H-37Pw5cOKQ8QCPVPET3-moe2Cv3R-hLgQ1wMAgdW-BgAxzcAwcvNe6Bgw1wsAfOO2xhgwfY2Dc42DxGX4-PziYfI19yI6oI410kwTxMpYpzKXNFs6wGG0dQqZkUJa1KkjIVa5LJNCdKwp8qk3FVagLPGKu5jtMnaK9ZNuoAYRkrWiVcKUFrypNMVqVQqVCa5KWoSH2IXvcTM6t8PnpTFuVytjP7hwgPHa9cCpbdLk__3OUZurvF4XO017Vr9QLdqa67-ap9aQX7E019etc
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=A+type+and+scope+safe+universe+of+syntaxes+with+binding%3A+their+semantics+and+proofs&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Allais%2C+Guillaume&rft.au=Atkey%2C+Robert&rft.au=Chapman%2C+James&rft.au=McBride%2C+Conor&rft.date=2018-09-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=2&rft.issue=ICFP&rft.spage=1&rft.epage=30&rft_id=info:doi/10.1145%2F3236785&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3236785
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon