--- _id: '6426' abstract: - lang: eng text: Synchronous programs are easy to specify because the side effects of an operation are finished by the time the invocation of the operation returns to the caller. Asynchronous programs, on the other hand, are difficult to specify because there are side effects due to pending computation scheduled as a result of the invocation of an operation. They are also difficult to verify because of the large number of possible interleavings of concurrent asynchronous computation threads. We show that specifications and correctness proofs for asynchronous programs can be structured by introducing the fiction, for proof purposes, that intermediate, non-quiescent states of asynchronous operations can be ignored. Then, the task of specification becomes relatively simple and the task of verification can be naturally decomposed into smaller sub-tasks. The sub-tasks iteratively summarize, guided by the structure of an asynchronous program, the atomic effect of non-atomic operations and the synchronous effect of asynchronous operations. This structuring of specifications and proofs corresponds to the introduction of multiple layers of stepwise refinement for asynchronous programs. We present the first proof rule, called synchronization, to reduce asynchronous invocations on a lower layer to synchronous invocations on a higher layer. We implemented our proof method in CIVL and evaluated it on a collection of benchmark programs. alternative_title: - IST Austria Technical Report author: - first_name: Thomas A full_name: Henzinger, Thomas A id: 40876CD8-F248-11E8-B48F-1D18A9856A87 last_name: Henzinger orcid: 0000−0002−2985−7724 - first_name: Bernhard full_name: Kragl, Bernhard id: 320FC952-F248-11E8-B48F-1D18A9856A87 last_name: Kragl orcid: 0000-0001-7745-9117 - first_name: Shaz full_name: Qadeer, Shaz last_name: Qadeer citation: ama: Henzinger TA, Kragl B, Qadeer S. Synchronizing the Asynchronous. IST Austria; 2017. doi:10.15479/AT:IST-2018-853-v2-2 apa: Henzinger, T. A., Kragl, B., & Qadeer, S. (2017). Synchronizing the asynchronous. IST Austria. https://doi.org/10.15479/AT:IST-2018-853-v2-2 chicago: Henzinger, Thomas A, Bernhard Kragl, and Shaz Qadeer. Synchronizing the Asynchronous. IST Austria, 2017. https://doi.org/10.15479/AT:IST-2018-853-v2-2. ieee: T. A. Henzinger, B. Kragl, and S. Qadeer, Synchronizing the asynchronous. IST Austria, 2017. ista: Henzinger TA, Kragl B, Qadeer S. 2017. Synchronizing the asynchronous, IST Austria, 28p. mla: Henzinger, Thomas A., et al. Synchronizing the Asynchronous. IST Austria, 2017, doi:10.15479/AT:IST-2018-853-v2-2. short: T.A. Henzinger, B. Kragl, S. Qadeer, Synchronizing the Asynchronous, IST Austria, 2017. date_created: 2019-05-13T08:15:55Z date_published: 2017-08-04T00:00:00Z date_updated: 2023-02-21T16:59:21Z day: '04' ddc: - '000' department: - _id: ToHe doi: 10.15479/AT:IST-2018-853-v2-2 file: - access_level: open_access checksum: b48d42725182d7ca10107a118815f4cf content_type: application/pdf creator: dernst date_created: 2019-05-13T08:14:44Z date_updated: 2020-07-14T12:47:30Z file_id: '6431' file_name: main(1).pdf file_size: 971347 relation: main_file file_date_updated: 2020-07-14T12:47:30Z has_accepted_license: '1' language: - iso: eng month: '08' oa: 1 oa_version: Published Version page: '28' publication_identifier: issn: - 2664-1690 publication_status: published publisher: IST Austria related_material: record: - id: '133' relation: later_version status: public status: public title: Synchronizing the asynchronous type: technical_report user_id: 2DF688A6-F248-11E8-B48F-1D18A9856A87 year: '2017' ...