Mechanized relational verification of concurrent programs with continuations

Concurrent higher-order imperative programming languages with continuations are very flexible and allow for the implementation of sophisticated programming patterns. For instance, it is well known that continuations can be used to implement cooperative concurrency. Continuations can also simplify we...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 3; číslo ICFP; s. 1 - 28
Hlavní autoři: Timany, Amin, Birkedal, Lars
Médium: Journal Article
Jazyk:angličtina
Vydáno: 01.08.2019
ISSN:2475-1421, 2475-1421
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract Concurrent higher-order imperative programming languages with continuations are very flexible and allow for the implementation of sophisticated programming patterns. For instance, it is well known that continuations can be used to implement cooperative concurrency. Continuations can also simplify web server implementations. This, in particular, helps simplify keeping track of the state of server’s clients. However, such advanced programming languages are very challenging to reason about. One of the main challenges in reasoning about programs in the presence of continuations is due to the fact that the non-local flow of control breaks the bind rule, one of the important modular reasoning principles of Hoare logic. In this paper we present the first completely formalized tool for interactive mechanized relational verification of programs written in a concurrent higher-order imperative programming language with continuations (call/cc and throw). We develop novel logical relations which can be used to give mechanized proofs of relational properties. In particular, we prove correctness of an implementation of cooperative concurrency with continuations. In addition, we show that that a rudimentary web server implemented using the continuation-based pattern is contextually equivalent to one implemented without the continuation-based pattern. We introduce context-local reasoning principles for our calculus which allows us to regain modular reasoning principles for the fragment of the language without non-local control flow. These novel reasoning principles can be used in tandem with our (non-context-local) Hoare logic for reasoning about programs that do feature non-local control flow. Indeed, we use the combination of context-local and non-context-local reasoning to simplify reasoning about the examples.
AbstractList Concurrent higher-order imperative programming languages with continuations are very flexible and allow for the implementation of sophisticated programming patterns. For instance, it is well known that continuations can be used to implement cooperative concurrency. Continuations can also simplify web server implementations. This, in particular, helps simplify keeping track of the state of server’s clients. However, such advanced programming languages are very challenging to reason about. One of the main challenges in reasoning about programs in the presence of continuations is due to the fact that the non-local flow of control breaks the bind rule, one of the important modular reasoning principles of Hoare logic. In this paper we present the first completely formalized tool for interactive mechanized relational verification of programs written in a concurrent higher-order imperative programming language with continuations (call/cc and throw). We develop novel logical relations which can be used to give mechanized proofs of relational properties. In particular, we prove correctness of an implementation of cooperative concurrency with continuations. In addition, we show that that a rudimentary web server implemented using the continuation-based pattern is contextually equivalent to one implemented without the continuation-based pattern. We introduce context-local reasoning principles for our calculus which allows us to regain modular reasoning principles for the fragment of the language without non-local control flow. These novel reasoning principles can be used in tandem with our (non-context-local) Hoare logic for reasoning about programs that do feature non-local control flow. Indeed, we use the combination of context-local and non-context-local reasoning to simplify reasoning about the examples.
Author Timany, Amin
Birkedal, Lars
Author_xml – sequence: 1
  givenname: Amin
  surname: Timany
  fullname: Timany, Amin
  organization: KU Leuven, Belgium
– sequence: 2
  givenname: Lars
  surname: Birkedal
  fullname: Birkedal, Lars
  organization: Aarhus University, Denmark
BookMark eNplkEtLAzEUhYNUsNbiX8jO1WieM8lSii8YcaPrIUlvbGSaKUmq6K-3HbsQXZ17OB-XwzlFkzhEQOickktKhbziXNCG6CM0ZaKRFRWMTn7dJ2ie8xshhGouFNdT1D6CW5kYvmCJE_SmhCGaHr9DCj640eLBYzdEt00JYsGbNLwms874I5TVPighbkcwn6Fjb_oM84PO0MvtzfPivmqf7h4W123lmFSlslxSzyyR2hrhd5WXwmoAqVwtLWWkdtqD0dQTLYUGVRMJCohiinLREMtn6OLnr0tDzgl8t0lhbdJnR0m336E77LAjqz-kC2UsW5IJ_T_-G3_RYJI
CitedBy_id crossref_primary_10_1145_3676954
crossref_primary_10_1145_3434314
crossref_primary_10_1145_3434287
crossref_primary_10_1145_3632868
crossref_primary_10_1145_3434288
crossref_primary_10_1145_3704841
crossref_primary_10_1145_3434291
crossref_primary_10_1145_3632851
crossref_primary_10_1145_3632862
crossref_primary_10_1145_3674656
Cites_doi 10.1145/2737924.2737964
10.1145/318593.318654
10.1007/978-3-642-11623-0_11
10.1016/j.jlap.2012.01.004
10.1145/800055.802046
10.1145/2429069.2429134
10.1145/3009837.3009855
10.1145/2429069.2429111
10.1007/978-3-662-54434-1_26
10.1145/1926385.1926401
10.1145/73560.73576
10.1016/j.tcs.2006.12.035
10.1145/1190216.1190244
10.1145/1190216.1190235
10.1017/S095679681200024X
10.1145/2676726.2676980
10.1145/2500365.2500600
10.1007/s10990-004-4866-z
10.2168/LMCS-7(2:16)2011
10.1017/S0956796818000151
10.5555/645683.664579
10.1007/978-3-642-40213-5_7
10.1145/2951913.2951943
10.1007/978-3-662-43951-7_9
10.1145/78969.78972
10.1007/978-3-642-54833-8_9
10.1016/0304-3975(92)90014-7
10.1145/2429069.2429104
10.1007/978-3-642-14107-2_24
10.5555/788019.788859
10.1145/504709.504712
10.1145/2544174.2500593
10.1007/978-3-642-54833-8_16
10.1007/978-3-662-44202-9_9
10.1145/91556.91622
10.1007/s10990-007-9008-y
10.1145/3158152
ContentType Journal Article
DBID AAYXX
CITATION
DOI 10.1145/3341709
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 28
ExternalDocumentID 10_1145_3341709
GroupedDBID AAKMM
AAYFX
AAYXX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
CITATION
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
ID FETCH-LOGICAL-c258t-b351f2b059ba4f334d4b9ee58c65b1206c9fea91f09549e8605e8e082813470b3
ISICitedReferencesCount 14
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685201900028&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 Tue Nov 18 22:04:19 EST 2025
Sat Nov 29 07:50:23 EST 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue ICFP
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c258t-b351f2b059ba4f334d4b9ee58c65b1206c9fea91f09549e8605e8e082813470b3
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3341709
PageCount 28
ParticipantIDs crossref_primary_10_1145_3341709
crossref_citationtrail_10_1145_3341709
PublicationCentury 2000
PublicationDate 2019-08-01
PublicationDateYYYYMMDD 2019-08-01
PublicationDate_xml – month: 08
  year: 2019
  text: 2019-08-01
  day: 01
PublicationDecade 2010
PublicationTitle Proceedings of ACM on programming languages
PublicationYear 2019
References e_1_2_2_4_1
e_1_2_2_25_1
e_1_2_2_5_1
e_1_2_2_24_1
e_1_2_2_6_1
e_1_2_2_23_1
e_1_2_2_7_1
e_1_2_2_22_1
e_1_2_2_21_1
e_1_2_2_20_1
e_1_2_2_2_1
e_1_2_2_3_1
e_1_2_2_40_1
e_1_2_2_42_1
e_1_2_2_43_1
e_1_2_2_9_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_45_1
e_1_2_2_27_1
e_1_2_2_46_1
e_1_2_2_26_1
e_1_2_2_47_1
Flatt Matthew (e_1_2_2_19_1) 2017
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_13_1
e_1_2_2_12_1
e_1_2_2_11_1
e_1_2_2_10_1
Plotkin Gordon D. (e_1_2_2_39_1) 1977
e_1_2_2_30_1
e_1_2_2_31_1
e_1_2_2_32_1
e_1_2_2_18_1
e_1_2_2_33_1
Schäfer Steven (e_1_2_2_41_1) 2015; 9236
e_1_2_2_17_1
e_1_2_2_16_1
e_1_2_2_35_1
e_1_2_2_15_1
e_1_2_2_36_1
Pitts Andrew M. (e_1_2_2_38_1)
Andrzej (e_1_2_2_34_1) 2017
References_xml – ident: e_1_2_2_42_1
  doi: 10.1145/2737924.2737964
– volume: 9236
  start-page: 359
  year: 2015
  ident: e_1_2_2_41_1
  article-title: Autosubst: Reasoning with de Bruijn Terms and Parallel Substitutions
  publication-title: ITP (LNCS)
– ident: e_1_2_2_7_1
– ident: e_1_2_2_20_1
  doi: 10.1145/318593.318654
– ident: e_1_2_2_5_1
  doi: 10.1007/978-3-642-11623-0_11
– ident: e_1_2_2_9_1
  doi: 10.1016/j.jlap.2012.01.004
– ident: e_1_2_2_21_1
  doi: 10.1145/800055.802046
– ident: e_1_2_2_32_1
  doi: 10.1145/2429069.2429134
– volume-title: Higher-Order Linearisability. In CONCUR
  year: 2017
  ident: e_1_2_2_34_1
– ident: e_1_2_2_28_1
  doi: 10.1145/3009837.3009855
– ident: e_1_2_2_47_1
  doi: 10.1145/2429069.2429111
– ident: e_1_2_2_27_1
  doi: 10.1007/978-3-662-54434-1_26
– ident: e_1_2_2_6_1
  doi: 10.1145/1926385.1926401
– volume-title: Advanced Topics in Types and Programming Languages
  ident: e_1_2_2_38_1
– ident: e_1_2_2_17_1
  doi: 10.1145/73560.73576
– ident: e_1_2_2_37_1
  doi: 10.1016/j.tcs.2006.12.035
– ident: e_1_2_2_43_1
  doi: 10.1145/1190216.1190244
– ident: e_1_2_2_4_1
  doi: 10.1145/1190216.1190235
– ident: e_1_2_2_16_1
  doi: 10.1017/S095679681200024X
– ident: e_1_2_2_26_1
  doi: 10.1145/2676726.2676980
– ident: e_1_2_2_46_1
  doi: 10.1145/2500365.2500600
– ident: e_1_2_2_40_1
  doi: 10.1007/s10990-004-4866-z
– ident: e_1_2_2_15_1
  doi: 10.2168/LMCS-7(2:16)2011
– ident: e_1_2_2_25_1
  doi: 10.1017/S0956796818000151
– ident: e_1_2_2_2_1
  doi: 10.5555/645683.664579
– ident: e_1_2_2_35_1
  doi: 10.1007/978-3-642-40213-5_7
– ident: e_1_2_2_24_1
  doi: 10.1145/2951913.2951943
– ident: e_1_2_2_8_1
  doi: 10.1007/978-3-662-43951-7_9
– volume-title: More: Systems Programming with Racket. https://docs.racket-lang.org/more/index.html .
  year: 2017
  ident: e_1_2_2_19_1
– ident: e_1_2_2_23_1
  doi: 10.1145/78969.78972
– ident: e_1_2_2_44_1
  doi: 10.1007/978-3-642-54833-8_9
– ident: e_1_2_2_18_1
  doi: 10.1016/0304-3975(92)90014-7
– ident: e_1_2_2_13_1
  doi: 10.1145/2429069.2429104
– ident: e_1_2_2_14_1
  doi: 10.1007/978-3-642-14107-2_24
– ident: e_1_2_2_31_1
  doi: 10.5555/788019.788859
– ident: e_1_2_2_33_1
– ident: e_1_2_2_22_1
– ident: e_1_2_2_30_1
– ident: e_1_2_2_3_1
  doi: 10.1145/504709.504712
– ident: e_1_2_2_12_1
  doi: 10.1145/2544174.2500593
– volume-title: LCF considered as a programming language. Theoretical computer science 5, 3
  year: 1977
  ident: e_1_2_2_39_1
– ident: e_1_2_2_36_1
  doi: 10.1007/978-3-642-54833-8_16
– ident: e_1_2_2_10_1
  doi: 10.1007/978-3-662-44202-9_9
– ident: e_1_2_2_11_1
  doi: 10.1145/91556.91622
– ident: e_1_2_2_29_1
  doi: 10.1007/s10990-007-9008-y
– ident: e_1_2_2_45_1
  doi: 10.1145/3158152
SSID ssj0001934839
Score 2.2225833
Snippet Concurrent higher-order imperative programming languages with continuations are very flexible and allow for the implementation of sophisticated programming...
SourceID crossref
SourceType Enrichment Source
Index Database
StartPage 1
Title Mechanized relational verification of concurrent programs with continuations
Volume 3
WOSCitedRecordID wos000685201900028&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/eLvHCXMwtV1LT9wwELYW6IELLS2IR1v5UPWCAnnYiX2kqyIqsas9bCVuS-xMpAgIaNldIQ78dsaJ44QFCXroJYosO3L8WTPj8XwzhPxgKSS-lsITMdceC1LuSaW1pxjkAaSMZeBXxSaS4VCcn8tRr3fRcGEWV0lZivt7eftfocY2BNtQZ_8BbvdRbMB3BB2fCDs-3wX8AAyZt3iAzBJVKl8f_oYJCnIGIh6DtU3NZEO07lwY-qwo5x1HnjVdR07VVdEfx_2BuWiwg6-Nx6HxfTozHTcCyppK_FwXbhf-KqaXkFWFBg7O0ukzx4PhOonG8VDJp5Al3AtYTXA-hFfarICNOvvoT_9k1JGXQUfx1iTxlyKdmewXEWrbxJet1mpu6peUmQsxrAnXfGIHrpC1MOHSBP0NHjteOBkxUZWbczOvmdVm7JEd2zFZOrbH-BPZsIcGelyDvUl6UH4mH5uCHNTK5y_krMWettjTLvb0Jqct9rTBnhrs6TPst8jfk9_j_qlny2V4OuRi5qmIB3mo0F5WKctx7hlTEoALHXMVhH6sZQ6pDHLfXO2CwIMsCDApDA2d2FfRNlktb0rYITRJFcrpLJciEizjsWRJlulY5hKiMI3VLvnZrMhE21zypqTJ1WRp2XcJdR1v6_Qpy1323u6yT9bbDfiVrM6mc_hGPujFrLibfq8QfQJd4mW2
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=Mechanized+relational+verification+of+concurrent+programs+with+continuations&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Timany%2C+Amin&rft.au=Birkedal%2C+Lars&rft.date=2019-08-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=ICFP&rft.spage=1&rft.epage=28&rft_id=info:doi/10.1145%2F3341709&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3341709
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