TY - JOUR
T1 - Relaxed Effective Callback Freedom
T2 - A Parametric Correctness Condition for Sequential Modules With Callbacks
AU - Albert, Elvira
AU - Grossman, Shelly
AU - Rinetzky, Noam
AU - Rodriguez-Nunez, Clara
AU - Rubio, Albert
AU - Sagiv, Mooly
N1 - Publisher Copyright:
© 2004-2012 IEEE.
PY - 2023/5/1
Y1 - 2023/5/1
N2 - 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.
AB - 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.
KW - Callbacks
KW - Event-driven programming
KW - Smart contract verification
KW - Unbounded re-entrancy
UR - http://www.scopus.com/inward/record.url?scp=85131768226&partnerID=8YFLogxK
U2 - 10.1109/TDSC.2022.3178836
DO - 10.1109/TDSC.2022.3178836
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:85131768226
SN - 1545-5971
VL - 20
SP - 2256
EP - 2273
JO - IEEE Transactions on Dependable and Secure Computing
JF - IEEE Transactions on Dependable and Secure Computing
IS - 3
ER -