{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,1,12]],"date-time":"2023-01-12T23:25:28Z","timestamp":1673565928329},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"2","license":[{"start":{"date-parts":[[2005,3,3]],"date-time":"2005-03-03T00:00:00Z","timestamp":1109808000000},"content-version":"unspecified","delay-in-days":2,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2005,3]]},"abstract":"<jats:p>High-level specification of patterns of communications such as protocols can be modeled elegantly by means of session types (Honda <jats:italic>et al<\/jats:italic>., 1998). However, a number of examples suggest that session types fall short when finer precision on protocol specification is required. In order to increase the expressiveness of session types we appeal to the theory of correspondence assertions (Clarke &amp; Marrero, 1998; Gordon &amp; Jeffrey, 2003b). The resulting type discipline augments the types of long-term channels with effects and thus yields types which may depend on messages read or written earlier within the same session. This new type system can be used to check:\n<jats:list list-type=\"unnumbered\"><jats:list-item><jats:p>source of information,<\/jats:p><\/jats:list-item><jats:list-item><jats:p>whether data is propagated as specified across multiple parties,<\/jats:p><\/jats:list-item><jats:list-item><jats:p>if there are unspecified communications between parties, and<\/jats:p><\/jats:list-item><jats:list-item><jats:p>if the data being exchanged has been modified by the code in an unspecified way.<\/jats:p><\/jats:list-item><\/jats:list>\nWe prove that evaluation preserves typability and that well-typed processes are safe. Also, we illustrate how the resulting theory allows us to address shortcomings present in the pure theory of session types.<\/jats:p>","DOI":"10.1017\/s095679680400543x","type":"journal-article","created":{"date-parts":[[2005,3,3]],"date-time":"2005-03-03T16:11:03Z","timestamp":1109866263000},"page":"219-247","source":"Crossref","is-referenced-by-count":39,"title":["Correspondence assertions for process synchronization in concurrent communications"],"prefix":"10.1017","volume":"15","author":[{"given":"EDUARDO","family":"BONELLI","sequence":"first","affiliation":[]},{"given":"ADRIANA","family":"COMPAGNONI","sequence":"additional","affiliation":[]},{"given":"ELSA","family":"GUNTER","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2005,3,3]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S095679680400543X","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,3,30]],"date-time":"2019-03-30T18:54:56Z","timestamp":1553972096000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S095679680400543X\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,3]]},"references-count":0,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2005,3]]}},"alternative-id":["S095679680400543X"],"URL":"https:\/\/doi.org\/10.1017\/s095679680400543x","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2005,3]]}}}