Interaction trees: representing recursive and impure programs in Coq

Interaction trees (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant of “free monads,” ITrees are built out of uninterpreted events and their continuations. They support compositional constru...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 4; no. POPL; pp. 1 - 32
Main Authors: Xia, Li-yao, Zakowski, Yannick, He, Paul, Hur, Chung-Kil, Malecha, Gregory, Pierce, Benjamin C., Zdancewic, Steve
Format: Journal Article
Language:English
Published: ACM 01.01.2020
Subjects:
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Interaction trees (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant of “free monads,” ITrees are built out of uninterpreted events and their continuations. They support compositional construction of interpreters from event handlers , which give meaning to events by defining their semantics as monadic actions. ITrees are expressive enough to represent impure and potentially nonterminating, mutually recursive computations, while admitting a rich equational theory of equivalence up to weak bisimulation. In contrast to other approaches such as relationally specified operational semantics, ITrees are executable via code extraction, making them suitable for debugging, testing, and implementing software artifacts that are amenable to formal verification. We have implemented ITrees and their associated theory as a Coq library, mechanizing classic domain- and category-theoretic results about program semantics, iteration, monadic structures, and equational reasoning. Although the internals of the library rely heavily on coinductive proofs, the interface hides these details so that clients can use and reason about ITrees without explicit use of Coq’s coinduction tactics. To showcase the utility of our theory, we prove the termination-sensitive correctness of a compiler from a simple imperative source language to an assembly-like target whose meanings are given in an ITree-based denotational semantics. Unlike previous results using operational techniques, our bisimulation proof follows straightforwardly by structural induction and elementary rewriting via an equational theory of combinators for control-flow graphs.
AbstractList Interaction trees (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant of “free monads,” ITrees are built out of uninterpreted events and their continuations. They support compositional construction of interpreters from event handlers , which give meaning to events by defining their semantics as monadic actions. ITrees are expressive enough to represent impure and potentially nonterminating, mutually recursive computations, while admitting a rich equational theory of equivalence up to weak bisimulation. In contrast to other approaches such as relationally specified operational semantics, ITrees are executable via code extraction, making them suitable for debugging, testing, and implementing software artifacts that are amenable to formal verification. We have implemented ITrees and their associated theory as a Coq library, mechanizing classic domain- and category-theoretic results about program semantics, iteration, monadic structures, and equational reasoning. Although the internals of the library rely heavily on coinductive proofs, the interface hides these details so that clients can use and reason about ITrees without explicit use of Coq’s coinduction tactics. To showcase the utility of our theory, we prove the termination-sensitive correctness of a compiler from a simple imperative source language to an assembly-like target whose meanings are given in an ITree-based denotational semantics. Unlike previous results using operational techniques, our bisimulation proof follows straightforwardly by structural induction and elementary rewriting via an equational theory of combinators for control-flow graphs.
Author He, Paul
Zakowski, Yannick
Pierce, Benjamin C.
Malecha, Gregory
Zdancewic, Steve
Hur, Chung-Kil
Xia, Li-yao
Author_xml – sequence: 1
  givenname: Li-yao
  surname: Xia
  fullname: Xia, Li-yao
  organization: University of Pennsylvania, USA
– sequence: 2
  givenname: Yannick
  surname: Zakowski
  fullname: Zakowski, Yannick
  organization: University of Pennsylvania, USA
– sequence: 3
  givenname: Paul
  surname: He
  fullname: He, Paul
  organization: University of Pennsylvania, USA
– sequence: 4
  givenname: Chung-Kil
  surname: Hur
  fullname: Hur, Chung-Kil
  organization: Seoul National University, South Korea
– sequence: 5
  givenname: Gregory
  surname: Malecha
  fullname: Malecha, Gregory
  organization: BedRock Systems, USA
– sequence: 6
  givenname: Benjamin C.
  surname: Pierce
  fullname: Pierce, Benjamin C.
  organization: University of Pennsylvania, USA
– sequence: 7
  givenname: Steve
  surname: Zdancewic
  fullname: Zdancewic, Steve
  organization: University of Pennsylvania, USA
BackLink https://hal.science/hal-03105140$$DView record in HAL
BookMark eNpdkE1LAzEQhoNUsNbiX8hNPKxmkmw38VbqRwsFL3oO093ZGmmza7It-O_dYgXpaT54eOed95INQhOIsWsQdwA6v1eqAAB7xoZSF3kGWsLgX3_Bxil9CiHAKm2UHbLHRegoYtn5JvAuEqUHHqmNlCh0Pqz7odzF5PfEMVTcb9tdJN7GZh1xm7gPfNZ8XbHzGjeJxsc6Yu_PT2-zebZ8fVnMpsuslFZ2WamgIGWN1ZOaBJp6Uhq7EoVUhiagrK1Ao7G4Mii1qSTVvcUqFwZQmVyhGrHbX90P3Lg2-i3Gb9egd_Pp0h12QoHIQYs99Gz2y5axSSlS7Urf4eHNLqLfOBDukJg7JtbzNyf834FT8gdsXWoX
CitedBy_id crossref_primary_10_1145_3473599
crossref_primary_10_1145_3571220
crossref_primary_10_1145_3547630
crossref_primary_10_1145_3622857
crossref_primary_10_1145_3547632
crossref_primary_10_1145_3656433
crossref_primary_10_1145_3428220
crossref_primary_10_1145_3747522
crossref_primary_10_1145_3674652
crossref_primary_10_1017_S0956796825100105
crossref_primary_10_1145_3563355
crossref_primary_10_1145_3607852
crossref_primary_10_1145_3607854
crossref_primary_10_1145_3498689
crossref_primary_10_1145_3579834
crossref_primary_10_1145_3571232
crossref_primary_10_1145_3591220
crossref_primary_10_1145_3547624
crossref_primary_10_1145_3674645
crossref_primary_10_1145_3729321
crossref_primary_10_1145_3632916
crossref_primary_10_1145_3704880
crossref_primary_10_1145_3704881
crossref_primary_10_1145_3591266
crossref_primary_10_1145_3704884
crossref_primary_10_1145_3632914
crossref_primary_10_1145_3704889
crossref_primary_10_1145_3704847
crossref_primary_10_1145_3498685
crossref_primary_10_1145_3527324
crossref_primary_10_1109_ACCESS_2025_3539584
crossref_primary_10_1145_3591253
crossref_primary_10_1007_s00165_020_00523_2
crossref_primary_10_1145_3729311
crossref_primary_10_1145_3591259
crossref_primary_10_1145_3460860
crossref_primary_10_1145_3473572
crossref_primary_10_1145_3571202
crossref_primary_10_1145_3607833
crossref_primary_10_1145_3747512
crossref_primary_10_1145_3571254
crossref_primary_10_1145_3720457
crossref_primary_10_1016_j_jlamp_2023_100940
crossref_primary_10_1145_3632854
crossref_primary_10_1145_3632898
crossref_primary_10_1145_3704860
crossref_primary_10_1145_3522729
crossref_primary_10_1145_3648439
crossref_primary_10_1145_3473586
Cites_doi 10.1007/978-3-662-02880-3_8
10.1016/j.jlap.2004.03.009
10.1016/j.jlamp.2014.02.001
10.5555/1987211.1987212
10.1145/174675.178068
10.1145/2815400.2815428
10.1016/j.ic.2004.05.003
10.1007/3-540-44622-2_21
10.1007/978-3-319-95582-7_20
10.1016/S0747-7171(89)80065-3
10.1016/j.ic.2007.12.004
10.2168/LMCS-9(4:23)2013
10.1145/2804302.2804319
10.1017/S0956796808006758
10.2168/LMCS-1(2:1)2005
10.1007/978-3-319-21401-6_26
10.1145/2429069.2429094
10.1145/2676726.2676975
10.7551/mitpress/9153.001.0001
10.1145/1250734.1250742
10.1007/978-3-642-78034-9
10.1145/3293880.3294106
10.1023/A:1023064908962
10.1145/1706299.1706312
10.1016/0890-5401(91)90052-4
10.1007/978-3-319-25150-9_8
10.1007/978-1-4471-0865-8_7
10.1017/S0305004100074338
10.1007/978-3-319-19797-5_13
10.1145/2737924.2737958
10.1109/LICS.2010.29
10.1007/978-3-642-37036-6_3
10.1145/1538788.1538814
10.1016/S0304-3975(02)00728-4
10.1145/2535838.2535841
10.1007/978-3-662-54458-7_30
10.1145/3192366.3192381
10.1016/S0049-237X(08)71948-7
10.1145/2429069.2429093
10.1145/1629575.1629596
10.1007/978-3-319-67729-3_3
10.1145/1706299.1706329
10.1016/j.tcs.2006.03.013
10.1145/2503778.2503791
10.4204/EPTCS.32.5
10.1145/199448.199528
ContentType Journal Article
Copyright Distributed under a Creative Commons Attribution 4.0 International License
Copyright_xml – notice: Distributed under a Creative Commons Attribution 4.0 International License
DBID AAYXX
CITATION
1XC
DOI 10.1145/3371119
DatabaseName CrossRef
Hyper Article en Ligne (HAL)
DatabaseTitle CrossRef
DatabaseTitleList CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 32
ExternalDocumentID oai:HAL:hal-03105140v1
10_1145_3371119
GroupedDBID AAKMM
AAYFX
AAYXX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
CITATION
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
1XC
ID FETCH-LOGICAL-c292t-c317e398946fe0a8f6c89b07238e61399d14a89ab8a248d2ef839d5081a3853a3
ISICitedReferencesCount 77
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685202400052&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 Oct 14 20:32:20 EDT 2025
Tue Nov 18 21:09:17 EST 2025
Sat Nov 29 07:47:58 EST 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Language English
License Distributed under a Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c292t-c317e398946fe0a8f6c89b07238e61399d14a89ab8a248d2ef839d5081a3853a3
ORCID 0000-0002-3516-1512
0000-0003-4585-6470
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3371119
PageCount 32
ParticipantIDs hal_primary_oai_HAL_hal_03105140v1
crossref_citationtrail_10_1145_3371119
crossref_primary_10_1145_3371119
PublicationCentury 2000
PublicationDate 2020-01-00
2020-01
PublicationDateYYYYMMDD 2020-01-01
PublicationDate_xml – month: 01
  year: 2020
  text: 2020-01-00
PublicationDecade 2020
PublicationTitle Proceedings of ACM on programming languages
PublicationYear 2020
Publisher ACM
Publisher_xml – name: ACM
References Apfelmus Heinrich (e_1_2_2_5_1) 2010
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_22_1
e_1_2_2_2_1
Hasegawa Masahito (e_1_2_2_33_1)
Chlipala Adam (e_1_2_2_19_1)
e_1_2_2_41_1
e_1_2_2_43_1
e_1_2_2_8_1
e_1_2_2_26_1
e_1_2_2_47_1
e_1_2_2_60_1
Setzer Anton (e_1_2_2_72_1) 2006
Cartwright Robert (e_1_2_2_13_1) 1994; 272
Giménez Eduardo (e_1_2_2_24_1)
Danielsson Nils Anders (e_1_2_2_20_1) 2012
Cenciarelli Pietro (e_1_2_2_14_1) 1993
e_1_2_2_38_1
e_1_2_2_11_1
Piròg Maciej (e_1_2_2_64_1) 2014
e_1_2_2_30_1
e_1_2_2_51_1
e_1_2_2_76_1
e_1_2_2_32_1
e_1_2_2_53_1
Plotkin Gordon D. (e_1_2_2_68_1) 2004
e_1_2_2_74_1
Abel Andreas (e_1_2_2_1_1) 2017
Owens Scott (e_1_2_2_61_1)
e_1_2_2_17_1
e_1_2_2_34_1
e_1_2_2_55_1
Lampropoulos Leonidas (e_1_2_2_45_1) 2018
Pierce Benjamin C. (e_1_2_2_63_1) 2018
e_1_2_2_15_1
e_1_2_2_36_1
Altenkirch Thorsten (e_1_2_2_4_1) 2017
Benton Nick (e_1_2_2_9_1) 2010
e_1_2_2_70_1
e_1_2_2_48_1
e_1_2_2_21_1
Peyton Jones Simon L (e_1_2_2_62_1) 1993
e_1_2_2_40_1
e_1_2_2_42_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_67_1
Goncharov Sergey (e_1_2_2_25_1) 2011
e_1_2_2_27_1
e_1_2_2_46_1
e_1_2_2_69_1
Appel Andrew W. (e_1_2_2_7_1)
Plotkin Gordon (e_1_2_2_65_1)
Nipkow Tobias (e_1_2_2_59_1) 2002
e_1_2_2_37_1
e_1_2_2_12_1
e_1_2_2_39_1
Benton Nick (e_1_2_2_10_1)
e_1_2_2_52_1
e_1_2_2_75_1
e_1_2_2_54_1
e_1_2_2_73_1
e_1_2_2_18_1
e_1_2_2_56_1
e_1_2_2_16_1
e_1_2_2_35_1
e_1_2_2_58_1
e_1_2_2_77_1
e_1_2_2_50_1
Gu Ronghui (e_1_2_2_28_1) 2016
Plotkin Gordon (e_1_2_2_66_1)
References_xml – volume-title: Paulson
  year: 2002
  ident: e_1_2_2_59_1
– volume-title: Interactive programming in Agda–Objects and graphical user interfaces. Journal of Functional Programming 27
  year: 2017
  ident: e_1_2_2_1_1
– volume-title: Object-oriented programming in dependent type theory. Trends in functional programming. 7
  year: 2006
  ident: e_1_2_2_72_1
– volume: 272
  volume-title: Extensible Denotational Language Specifications. In Symposium on Theoretical Aspects of Computer Software
  year: 1994
  ident: e_1_2_2_13_1
– ident: e_1_2_2_76_1
  doi: 10.1007/978-3-662-02880-3_8
– volume-title: Foundations of Software Science and Computation Structures
  ident: e_1_2_2_66_1
– ident: e_1_2_2_67_1
  doi: 10.1016/j.jlap.2004.03.009
– ident: e_1_2_2_8_1
  doi: 10.1016/j.jlamp.2014.02.001
– ident: e_1_2_2_6_1
  doi: 10.5555/1987211.1987212
– volume-title: Program Logics - for Certified Compilers
  ident: e_1_2_2_7_1
– ident: e_1_2_2_73_1
  doi: 10.1145/174675.178068
– ident: e_1_2_2_34_1
  doi: 10.1145/2815400.2815428
– ident: e_1_2_2_54_1
  doi: 10.1016/j.ic.2004.05.003
– ident: e_1_2_2_32_1
  doi: 10.1007/3-540-44622-2_21
– volume-title: Theorem Proving in Higher Order Logics
  ident: e_1_2_2_10_1
– ident: e_1_2_2_48_1
  doi: 10.1007/978-3-319-95582-7_20
– volume-title: Types for Proofs and Programs, Peter Dybjer, Bengt Nordström
  ident: e_1_2_2_24_1
– ident: e_1_2_2_30_1
  doi: 10.1016/S0747-7171(89)80065-3
– volume-title: Imperative Functional Programming. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: Papers Presented at the Symposium. ACM Press.
  year: 1993
  ident: e_1_2_2_62_1
– ident: e_1_2_2_47_1
  doi: 10.1016/j.ic.2007.12.004
– volume-title: Ultrametric Spaces and Semantics of Programming Languages. (July
  year: 2010
  ident: e_1_2_2_9_1
– volume-title: The Operational Monad Tutorial. The Monad.Reader Issue 15
  year: 2010
  ident: e_1_2_2_5_1
– volume-title: Technical Report. In Proceedings of the Conference on Category Theory and Computer Science.
  year: 1993
  ident: e_1_2_2_14_1
– ident: e_1_2_2_70_1
  doi: 10.2168/LMCS-9(4:23)2013
– volume-title: Nils Anders Danielsson, and Nicolai Kraus
  year: 2017
  ident: e_1_2_2_4_1
– volume-title: Chris Casinghino, Marco Gaboardi, Michael Greenberg, Cˇatˇalin Hriţcu, Vilhelm Sjöberg, and Brent Yorgey.
  year: 2018
  ident: e_1_2_2_63_1
– ident: e_1_2_2_40_1
  doi: 10.1145/2804302.2804319
– ident: e_1_2_2_74_1
  doi: 10.1017/S0956796808006758
– ident: e_1_2_2_12_1
  doi: 10.2168/LMCS-1(2:1)2005
– ident: e_1_2_2_52_1
– ident: e_1_2_2_21_1
  doi: 10.1007/978-3-319-21401-6_26
– ident: e_1_2_2_22_1
  doi: 10.1145/2429069.2429094
– ident: e_1_2_2_27_1
  doi: 10.1145/2676726.2676975
– volume-title: Certified Programming with Dependent Types
  ident: e_1_2_2_19_1
  doi: 10.7551/mitpress/9153.001.0001
– ident: e_1_2_2_60_1
– ident: e_1_2_2_17_1
  doi: 10.1145/1250734.1250742
– ident: e_1_2_2_11_1
  doi: 10.1007/978-3-642-78034-9
– ident: e_1_2_2_43_1
  doi: 10.1145/3293880.3294106
– volume-title: A structural approach to operational semantics. J. Log. Algebr. Program. 60-61
  year: 2004
  ident: e_1_2_2_68_1
– volume-title: CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels. In 12th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2016
  year: 2016
  ident: e_1_2_2_28_1
– ident: e_1_2_2_69_1
  doi: 10.1023/A:1023064908962
– ident: e_1_2_2_18_1
  doi: 10.1145/1706299.1706312
– ident: e_1_2_2_56_1
  doi: 10.1016/0890-5401(91)90052-4
– ident: e_1_2_2_51_1
– ident: e_1_2_2_15_1
  doi: 10.1007/978-3-319-25150-9_8
– volume-title: Recursion from cyclic sharing: Traced monoidal categories and models of cyclic lambda calculi
  ident: e_1_2_2_33_1
  doi: 10.1007/978-1-4471-0865-8_7
– ident: e_1_2_2_39_1
  doi: 10.1017/S0305004100074338
– ident: e_1_2_2_35_1
– ident: e_1_2_2_53_1
  doi: 10.1007/978-3-319-19797-5_13
– ident: e_1_2_2_77_1
  doi: 10.1145/2737924.2737958
– volume-title: A Coinductive Calculus for Asynchronous Side-effecting Processes. CoRR abs/1104.2936
  year: 2011
  ident: e_1_2_2_25_1
– volume-title: Pierce
  year: 2018
  ident: e_1_2_2_45_1
– ident: e_1_2_2_38_1
  doi: 10.1109/LICS.2010.29
– ident: e_1_2_2_16_1
  doi: 10.1007/978-3-642-37036-6_3
– ident: e_1_2_2_46_1
  doi: 10.1145/1538788.1538814
– ident: e_1_2_2_2_1
  doi: 10.1016/S0304-3975(02)00728-4
– volume-title: The Coinductive Resumption Monad. Electronic notes in theoretical computer science. 308
  year: 2014
  ident: e_1_2_2_64_1
– volume-title: Foundations of Software Science and Computation Structures
  ident: e_1_2_2_65_1
– volume-title: In: International Conference on Functional Programming
  year: 2012
  ident: e_1_2_2_20_1
– ident: e_1_2_2_44_1
  doi: 10.1145/2535838.2535841
– ident: e_1_2_2_26_1
  doi: 10.1007/978-3-662-54458-7_30
– ident: e_1_2_2_29_1
  doi: 10.1145/3192366.3192381
– ident: e_1_2_2_55_1
  doi: 10.1016/S0049-237X(08)71948-7
– ident: e_1_2_2_36_1
  doi: 10.1145/2429069.2429093
– ident: e_1_2_2_42_1
  doi: 10.1145/1629575.1629596
– ident: e_1_2_2_75_1
  doi: 10.1007/978-3-319-67729-3_3
– ident: e_1_2_2_50_1
  doi: 10.1145/1706299.1706329
– ident: e_1_2_2_37_1
  doi: 10.1016/j.tcs.2006.03.013
– ident: e_1_2_2_41_1
  doi: 10.1145/2503778.2503791
– ident: e_1_2_2_58_1
  doi: 10.4204/EPTCS.32.5
– ident: e_1_2_2_49_1
  doi: 10.1145/199448.199528
– volume-title: Functional Big-Step Semantics
  ident: e_1_2_2_61_1
SSID ssj0001934839
Score 2.4946947
Snippet Interaction trees (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A...
SourceID hal
crossref
SourceType Open Access Repository
Enrichment Source
Index Database
StartPage 1
SubjectTerms Computer Science
Programming Languages
Title Interaction trees: representing recursive and impure programs in Coq
URI https://hal.science/hal-03105140
Volume 4
WOSCitedRecordID wos000685202400052&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/eLvHCXMwtV1LbxMxELbSwoELb0TLQxZC3Ay7Xm_X5hYVUCTSkkNB4RS5tleNaDchTdNy4cjvZsb2ukuKBBy4rCJnbSWeT-PxzHwzhDznpQYjO5fMZNYwUdQV03CyMOu0E3DFsIUn0n4aVvv7cjxWo17vR8uFWR1XTSMvLtT8v4oaxkDYSJ39B3GnRWEAPoPQ4Qlih-dfCd77-GIHcAw5-5w3X7sSeUboGVigj92nrfvIwckcgwgxUes00AC_do3WUTrkfN5Hf3cPQwxxwgmu2Ho9k4E-Djm4wyn7pmfJOa2_zM5jn-zP2CvJJJrQwK2nKQ7OAkPxCLQRex8TQaJ7gmcd94TXYlxUJctFoEG_dL8Zi2pYdNA2-jAadrRq3jmegzf0quIXWCOjKCrQ3erybGvj-WtHXkpEDLTschInbpBrvCoVpgbufe_46lQhpG9Kl3554F_j3Fdx7i-GzcZR65f3dsrBbXIzXjBoPwDjDum55i651TbvoFGX3yNvOjihHievaRclNKGEAkpoQAltUUKnDQWU3Ccf37092B2w2FKDGa74khkwF12BRfd3apdpWe8YqQ4z7DznwLBTyuZCS6UPpeZCWu5q-N8WjPhcF2DY6eIB2WxmjXtIaG2NyqTJnNFwJa3h3m-ddVhBkpcm03yLvGj3Y2JivXlse3I8Wdv0LULTi_NQYuXqK89gQ9O3WBJ90B9OcAxL24LRn63y7T-v84jcuMToY7K5XJy5J-S6WS2np4unXug_ARoneRs
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=Interaction+trees%3A+representing+recursive+and+impure+programs+in+Coq&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Xia%2C+Li-yao&rft.au=Zakowski%2C+Yannick&rft.au=He%2C+Paul&rft.au=Hur%2C+Chung-Kil&rft.date=2020-01-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=4&rft.issue=POPL&rft.spage=1&rft.epage=32&rft_id=info:doi/10.1145%2F3371119&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3371119
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