학술논문

Relaxed Effective Callback Freedom: A Parametric Correctness Condition for Sequential Modules With Callbacks
Document Type
Periodical
Source
IEEE Transactions on Dependable and Secure Computing IEEE Trans. Dependable and Secure Comput. Dependable and Secure Computing, IEEE Transactions on. 20(3):2256-2273 Jun, 2023
Subject
Computing and Processing
Contracts
Cognition
Codes
Programming
Static analysis
Smart contracts
Safety
Smart contract verification
Event-driven programming
Unbounded re-entrancy
Callbacks
Language
ISSN
1545-5971
1941-0018
2160-9209
Abstract
Callbacks are an essential mechanism for event-driven programming. Unfortunately, callbacks make reasoning challenging because they introduce behaviors where calls to the module are interleaved. We present a parametric method that, from a particular invariant of the program, allows reducing the problem of verifying the invariant in the presence of callbacks, to the callback-free setting. Intuitively, we allow callbacks to introduce behaviors that cannot be produced by callback free executions, as long as they do not affect correctness. A chief insight is that the user is aware of the potential effect of the callbacks on the program state. To this end, we present a parametric verification technique which accepts this insight as a relation between callback and callback free executions. We implemented our approach and applied it successfully to a large set of real-world programs.